|
Lightweight Cryptography Primitives
|
Hashed Message Authentication Code (HMAC) based on PHOTON-Beetle-Hash. More...
Go to the source code of this file.
Macros | |
| #define | PHOTON_BEETLE_HMAC_SIZE PHOTON_BEETLE_HASH_SIZE |
| Default size of the output for PHOTON-Beetle-HMAC. | |
Typedefs | |
| typedef photon_beetle_hash_state_t | photon_beetle_hmac_state_t |
| State information for the PHOTON-Beetle-HMAC incremental mode. | |
Functions | |
| void | photon_beetle_hmac (unsigned char *out, const unsigned char *key, size_t keylen, const unsigned char *in, size_t inlen) |
| Computes a HMAC value using PHOTON-Beetle-Hash. More... | |
| void | photon_beetle_hmac_init (photon_beetle_hmac_state_t *state, const unsigned char *key, size_t keylen) |
| Initializes an incremental HMAC state using PHOTON-Beetle-Hash. More... | |
| void | photon_beetle_hmac_update (photon_beetle_hmac_state_t *state, const unsigned char *in, size_t inlen) |
| Updates an incremental PHOTON-Beetle-HMAC state with more input data. More... | |
| void | photon_beetle_hmac_finalize (photon_beetle_hmac_state_t *state, const unsigned char *key, size_t keylen, unsigned char *out) |
| Finalizes an incremental PHOTON-Beetle-HMAC state. More... | |
Hashed Message Authentication Code (HMAC) based on PHOTON-Beetle-Hash.
The HMAC mode provides a method to authenticate a sequence of bytes using PHOTON-Beetle-Hash as the underlying digest algorithm.
HMAC uses an underlying block size to pad the key data. The PHOTON-Beetle-Hash block absorption rates of 16 and 4 bytes are too short so we use the HMAC-SHA-256 block size of 64 instead.
Reference: https://tools.ietf.org/html/rfc2104
| void photon_beetle_hmac | ( | unsigned char * | out, |
| const unsigned char * | key, | ||
| size_t | keylen, | ||
| const unsigned char * | in, | ||
| size_t | inlen | ||
| ) |
Computes a HMAC value using PHOTON-Beetle-Hash.
| out | Buffer to receive the output HMAC value; must be at least PHOTON_BEETLE_HMAC_SIZE bytes in length. |
| key | Points to the key. |
| keylen | Number of bytes in the key. |
| in | Points to the data to authenticate. |
| inlen | Number of bytes of data to authenticate. |
| void photon_beetle_hmac_finalize | ( | photon_beetle_hmac_state_t * | state, |
| const unsigned char * | key, | ||
| size_t | keylen, | ||
| unsigned char * | out | ||
| ) |
Finalizes an incremental PHOTON-Beetle-HMAC state.
| state | HMAC state to squeeze the output data from. |
| key | Points to the key. |
| keylen | Number of bytes in the key. |
| out | Points to the output buffer to receive the HMAC value; must be at least PHOTON_BEETLE_HMAC_SIZE bytes in length. |
| void photon_beetle_hmac_init | ( | photon_beetle_hmac_state_t * | state, |
| const unsigned char * | key, | ||
| size_t | keylen | ||
| ) |
Initializes an incremental HMAC state using PHOTON-Beetle-Hash.
| state | Points to the state to be initialized. |
| key | Points to the key. |
| keylen | Number of bytes in the key. |
The key needs to be preserved until the photon_beetle_hmac_finalize() call to provide the outer HMAC hashing key.
| void photon_beetle_hmac_update | ( | photon_beetle_hmac_state_t * | state, |
| const unsigned char * | in, | ||
| size_t | inlen | ||
| ) |
Updates an incremental PHOTON-Beetle-HMAC state with more input data.
| state | HMAC state to be updated. |
| in | Points to the input data to be incorporated into the state. |
| inlen | Length of the input data to be incorporated into the state. |
1.8.6