NAME
hasher.h - generic message digest interface
SYNOPSIS
#include <limb/hasher.h>
DESCRIPTION
This header defines the required functions to compute message digests through a generic interface.
Types
The following types are defined :
hasher_init
Generic pointer function for context initialization
hasher_upate
Generic pointer function for feeding data into a hashing context
hasher_final
Generic pointer function for computing/obtaining the message digest
Constants
The following constants are defined :
ALGO_SHA1, ALGO_SHA256, ALGO_SHA512, ALGO_SHA3_224, ALGO_SHA3_256, ALGO_SHA3_384, ALGO_SHA3_512, ALGO_BLAKE3
Indices to identify each of the algorithms for which a hasher is available in the arrays algos and hashers.
NB_AGLOS
Number of elements/algorithms.
Structures
The following structures are defined :
struct hasher, hasher
A structure representing a hasher, allowing to compute a message digest through the algorithm of said hasher.
Pointers
The following pointers are defined :
algos
Pointer to an NULL-terminated array of NB_ALGOS strings naming the algorithms.
hashers
Pointer to an array of NB_ALGOS pointers to the available *hasher*s.
Functions
The following functions/macros are defined :
To compute the message digest through a given hasher
To initialize a hasher.
To feed data into a hasher.
To obtain the hash from a hasher.