X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=hashfunction_descriptor.h;h=8eb12c1d23e5b5db90a537c63448d888ad4ddf84;hb=cd50f65c371296cc88b46f45a609713f96644662;hp=e1347dcaccbc54015e1dc71ea111706808263dd7;hpb=74fe0d1999c8dee4babb971174648da906886874;p=avr-crypto-lib.git diff --git a/hashfunction_descriptor.h b/hashfunction_descriptor.h index e1347dc..8eb12c1 100644 --- a/hashfunction_descriptor.h +++ b/hashfunction_descriptor.h @@ -21,20 +21,33 @@ typedef void(*hf_mem_fpt)(void*, const void*, uint32_t); #define HFDESC_TYPE_HASHFUNCTION 0x02 typedef struct { + /** typefield, always 2 for hash functions */ uint8_t type; /* 2 == hashfunction */ + /** flags, currently unused should be set to zero */ uint8_t flags; + /** name, flash pointer to the name string */ PGM_P name; + /** ctxsize_B, size of the hash context in bytes */ uint16_t ctxsize_B; + /** blocksize_b, size of an input block in bits */ uint16_t blocksize_b; + /** hashsize_b, size of the output hash value in bits */ uint16_t hashsize_b; - + /** init, function pointer to the algorithms init function */ hf_init_fpt init; + /** nextBlock, function pointer to the algorithms nextBlock function */ hf_nextBlock_fpt nextBlock; + /** lastBlock, function pointer to the algorithms lastBlock function */ hf_lastBlock_fpt lastBlock; + /** ctx2hash, function pointer to the algorithms ctx2hash function */ hf_ctx2hash_fpt ctx2hash; + /** free, function pointer to the algorithms free function or NULL if + * there is no such function */ hf_free_fpt free; + /** mem, function pointer to a function which hashes a message in RAM + * completely or NULL if there is no such function */ hf_mem_fpt mem; -} hfdesc_t; /* blockcipher descriptor type */ +} hfdesc_t; /* hashfunction descriptor type */ typedef struct{ hfdesc_t* desc_ptr;