Function

GLibHmacnew

since: 2.30

Declaration

GHmac*
g_hmac_new (
  GChecksumType digest_type,
  const guchar* key,
  gsize key_len
)

Description

Creates a new GHmac, using the digest algorithm digest_type. If the digest_type is not known, NULL is returned. A GHmac can be used to compute the HMAC of a key and an arbitrary binary blob, using different hashing algorithms.

A GHmac works by feeding a binary blob through g_hmac_update() until the data is complete; the digest can then be extracted using g_hmac_get_string(), which will return the checksum as a hexadecimal string; or g_hmac_get_digest(), which will return a array of raw bytes. Once either g_hmac_get_string() or g_hmac_get_digest() have been called on a GHmac, the HMAC will be closed and it won’t be possible to call g_hmac_update() on it anymore.

Support for digests of type G_CHECKSUM_SHA512 has been added in GLib 2.42. Support for G_CHECKSUM_SHA384 was added in GLib 2.52.

Available since: 2.30

Parameters

digest_type

Type: GChecksumType

The desired type of digest.

key

Type: An array of guchar

The key for the HMAC.

The length of the array is specified in the key_len argument.
The data is owned by the caller of the function.
key_len

Type: gsize

The length of the keys.

Return value

Type: GHmac

The newly created GHmac, or NULL. Use g_hmac_unref() to free the memory allocated by it.

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be NULL.