utls_hmac_init:: (gnutls_hmac_hd_t * DIG, gnutls_mac_algorithm_t ALGORITHM, const void * KEY, size_t KEYLEN)’ ‘INT *note gnutls_hmac:: (gnutls_hmac_hd_t HANDLE, const void * PTEXT, size_t PTEXT_LEN)’ ‘VOID *note gnutls_hmac_output:: (gnutls_hmac_hd_t HANDLE, void * DIGEST)’ ‘VOID *note gnutls_hmac_deinit:: (gnutls_hmac_hd_t HANDLE, void * DIGEST)’ ‘UNSIGNED *note gnutls_hmac_get_len:: (gnutls_mac_algorithm_t ALGORITHM)’ ‘INT *note 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 *note Figure 9.4: gnutls_digest_algorithm_t. ‘INT *note gnutls_hash_init:: (gnutls_hash_hd_t * DIG, gnutls_digest_algorithm_t ALGORITHM)’ ‘INT *note gnutls_hash:: (gnutls_hash_hd_t HANDLE, const void * PTEXT, size_t PTEXT_LEN)’ ‘VOID *note gnutls_hash_output:: (gnutls_hash_hd_t HANDLE, void * DIGEST)’ ‘VOID *note gnutls_hash_deinit:: (gnutls_hash_hd_t HANDLE, void * DIGEST)’ ‘UNSIGNED *note gnutls_hash_get_len:: (gnutls_digest_algorithm_t ALGORITHM)’ ‘INT *note gnutls_hash_fast:: (gnutls_digest_algorithm_t ALGORITHM, const void * PTEXT, size_t PTEXT_LEN, void * DIGEST)’ ‘INT *note gnutls_fingerprint:: (gnutls_digest_algorithm_t ALGO, const gnutls_datum_t * DATA, void * RESULT, size_t * RESULT_SIZE)’ ‘GNUTLS_DIG_UNKNOWN’ Unknown hash algorithm. ‘GNUTLS_DIG_NULL’ NULL hash algorithm (empty output). ‘GNUTLS_DIG_MD5’ MD5 algorithm. ‘GNUTLS_DIG_SHA1’ SHA-1 algorithm. ‘GNUTLS_DIG_RMD160’ RMD160 algorithm. ‘GNUTLS_DIG_MD2’ MD2 algorithm. ‘GNUTLS_DIG_SHA256’ SHA-256 algorithm. ‘GNUTLS_DIG_SHA384’ SHA-384 algorithm. ‘GNUTLS_DIG_SHA512’ SHA-512 algorithm. ‘GNUTLS_DIG_SHA224’ SHA-224 algorithm. ‘GNUTLS_DIG_SHA3_224’ SHA3-224 algorithm. ‘GNUTLS_DIG_SHA3_256’ SHA3-256 algorithm. ‘GNUTLS_DIG_SHA3_384’ SHA3-384 algorithm. ‘GNUTLS_DIG_SHA3_512’ SHA3-512 algorithm. ‘GNUTLS_DIG_MD5_SHA1’ Combined MD5+SHA1 algorithm. ‘GNUTLS_DIG_GOSTR_94’ GOST R 34.11-94 algorithm. ‘GNUTLS_DIG_STREEBOG_256’ GOST R 34.11-2001 (Streebog) algorithm, 256 bit. ‘GNUTLS_DIG_STREEBOG_512’ GOST R 34.11-2001 (Streebog) algorithm, 512 bit. ‘GNUTLS_DIG_SHAKE_128’ The SHAKE128 extendable output function. ‘GNUTLS_DIG_SHAKE_256’ The SHAKE256 extendable output function. Figure 9.4: The supported hash algorithms.