#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 */