Next: Random number generation, Previous: Cryptographic Message Syntax / PKCS7, Up: Using GnuTLS as a cryptographic library [Contents][Index]
The available operations to access hash functions and hash-MAC (HMAC) algorithms
are shown below. HMAC algorithms provided keyed hash functionality. The supported MAC and HMAC
algorithms are listed in Figure 9.3. Note that, despite the hmac part
in the name of the MAC functions listed below, they can be used either for HMAC or MAC operations.
GNUTLS_MAC_UNKNOWNUnknown MAC algorithm.
GNUTLS_MAC_NULLNULL MAC algorithm (empty output).
GNUTLS_MAC_MD5HMAC-MD5 algorithm.
GNUTLS_MAC_SHA1HMAC-SHA-1 algorithm.
GNUTLS_MAC_RMD160HMAC-RMD160 algorithm.
GNUTLS_MAC_MD2HMAC-MD2 algorithm.
GNUTLS_MAC_SHA256HMAC-SHA-256 algorithm.
GNUTLS_MAC_SHA384HMAC-SHA-384 algorithm.
GNUTLS_MAC_SHA512HMAC-SHA-512 algorithm.
GNUTLS_MAC_SHA224HMAC-SHA-224 algorithm.
GNUTLS_MAC_SHA3_224Reserved; unimplemented.
GNUTLS_MAC_SHA3_256Reserved; unimplemented.
GNUTLS_MAC_SHA3_384Reserved; unimplemented.
GNUTLS_MAC_SHA3_512Reserved; unimplemented.
GNUTLS_MAC_MD5_SHA1Combined MD5+SHA1 MAC placeholder.
GNUTLS_MAC_GOSTR_94HMAC GOST R 34.11-94 algorithm.
GNUTLS_MAC_STREEBOG_256HMAC GOST R 34.11-2001 (Streebog) algorithm, 256 bit.
GNUTLS_MAC_STREEBOG_512HMAC GOST R 34.11-2001 (Streebog) algorithm, 512 bit.
GNUTLS_MAC_AEADMAC implicit through AEAD cipher.
GNUTLS_MAC_UMAC_96The UMAC-96 MAC algorithm (requires nonce).
GNUTLS_MAC_UMAC_128The UMAC-128 MAC algorithm (requires nonce).
GNUTLS_MAC_AES_CMAC_128The AES-CMAC-128 MAC algorithm.
GNUTLS_MAC_AES_CMAC_256The AES-CMAC-256 MAC algorithm.
GNUTLS_MAC_AES_GMAC_128The AES-GMAC-128 MAC algorithm (requires nonce).
GNUTLS_MAC_AES_GMAC_192The AES-GMAC-192 MAC algorithm (requires nonce).
GNUTLS_MAC_AES_GMAC_256The AES-GMAC-256 MAC algorithm (requires nonce).
GNUTLS_MAC_GOST28147_TC26Z_IMITThe GOST 28147-89 working in IMIT mode with TC26 Z S-box.
GNUTLS_MAC_SHAKE_128The SHAKE128 extendable output function.
GNUTLS_MAC_SHAKE_256The SHAKE256 extendable output function.
GNUTLS_MAC_MAGMA_OMACGOST R 34.12-2015 (Magma) in OMAC (CMAC) mode.
GNUTLS_MAC_KUZNYECHIK_OMACGOST R 34.12-2015 (Kuznyechik) in OMAC (CMAC) mode.
GNUTLS_MAC_PBMAC1– undescribed –
Figure 9.3: The supported MAC and HMAC algorithms.
int gnutls_hmac_init (gnutls_hmac_hd_t * dig, gnutls_mac_algorithm_t algorithm, const void * key, size_t keylen)int gnutls_hmac (gnutls_hmac_hd_t handle, const void * ptext, size_t ptext_len)void gnutls_hmac_output (gnutls_hmac_hd_t handle, void * digest)void gnutls_hmac_deinit (gnutls_hmac_hd_t handle, void * digest)unsigned gnutls_hmac_get_len (gnutls_mac_algorithm_t algorithm)int gnutls_hmac_fast (gnutls_mac_algorithm_t algorithm, const void * key, size_t keylen, const void * ptext, size_t ptext_len, void * digest)The available functions to access hash functions are shown below. The supported hash functions are shown in Figure 9.4.
int gnutls_hash_init (gnutls_hash_hd_t * dig, gnutls_digest_algorithm_t algorithm)int gnutls_hash (gnutls_hash_hd_t handle, const void * ptext, size_t ptext_len)void gnutls_hash_output (gnutls_hash_hd_t handle, void * digest)void gnutls_hash_deinit (gnutls_hash_hd_t handle, void * digest)unsigned gnutls_hash_get_len (gnutls_digest_algorithm_t algorithm)int gnutls_hash_fast (gnutls_digest_algorithm_t algorithm, const void * ptext, size_t ptext_len, void * digest)int gnutls_fingerprint (gnutls_digest_algorithm_t algo, const gnutls_datum_t * data, void * result, size_t * result_size)GNUTLS_DIG_UNKNOWNUnknown hash algorithm.
GNUTLS_DIG_NULLNULL hash algorithm (empty output).
GNUTLS_DIG_MD5MD5 algorithm.
GNUTLS_DIG_SHA1SHA-1 algorithm.
GNUTLS_DIG_RMD160RMD160 algorithm.
GNUTLS_DIG_MD2MD2 algorithm.
GNUTLS_DIG_SHA256SHA-256 algorithm.
GNUTLS_DIG_SHA384SHA-384 algorithm.
GNUTLS_DIG_SHA512SHA-512 algorithm.
GNUTLS_DIG_SHA224SHA-224 algorithm.
GNUTLS_DIG_SHA3_224SHA3-224 algorithm.
GNUTLS_DIG_SHA3_256SHA3-256 algorithm.
GNUTLS_DIG_SHA3_384SHA3-384 algorithm.
GNUTLS_DIG_SHA3_512SHA3-512 algorithm.
GNUTLS_DIG_MD5_SHA1Combined MD5+SHA1 algorithm.
GNUTLS_DIG_GOSTR_94GOST R 34.11-94 algorithm.
GNUTLS_DIG_STREEBOG_256GOST R 34.11-2001 (Streebog) algorithm, 256 bit.
GNUTLS_DIG_STREEBOG_512GOST R 34.11-2001 (Streebog) algorithm, 512 bit.
GNUTLS_DIG_SHAKE_128The SHAKE128 extendable output function.
GNUTLS_DIG_SHAKE_256The SHAKE256 extendable output function.
Figure 9.4: The supported hash algorithms.
Next: Random number generation, Previous: Cryptographic Message Syntax / PKCS7, Up: Using GnuTLS as a cryptographic library [Contents][Index]