]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - hashfunction_descriptor.h
fixing some decryption bugs in GCM128
[avr-crypto-lib.git] / hashfunction_descriptor.h
index e1347dcaccbc54015e1dc71ea111706808263dd7..de3c8074b5ce06b7271b45019c23d61a8d4b026e 100644 (file)
@@ -21,23 +21,36 @@ 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;
-       uint16_t ctxsize_B;
+       /** ctxsize_B, size of the hash context in bytes */
+       size_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_tdesc_ptr;
+       hfdesc_t *desc_ptr;
        void*     ctx;
 } hfgen_ctx_t;