since: 2.30


struct GHmac {
  /* No available fields */

HMACs should be used when producing a cookie or hash based on data and a key. Simple mechanisms for using SHA1 and other algorithms to digest a key and data together are vulnerable to various security issues. HMAC uses algorithms like SHA1 in a secure way to produce a digest of a key and data.

Both the key and data are arbitrary byte arrays of bytes or characters.

Support for HMAC Digests has been added in GLib 2.30, and support for SHA-512 in GLib 2.42. Support for SHA-384 was added in GLib 2.52.

To create a new GHmac, use g_hmac_new(). To free a GHmac, use g_hmac_unref().

Available since: 2.30



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.

since: 2.30

Instance methods


Copies a GHmac. If hmac has been closed, by calling g_hmac_get_string() or g_hmac_get_digest(), the copied HMAC will be closed as well.

since: 2.30


Gets the digest from checksum as a raw binary array and places it into buffer. The size of the digest depends on the type of checksum.

since: 2.30


Gets the HMAC as a hexadecimal string.

since: 2.30


Atomically increments the reference count of hmac by one.

since: 2.30


Atomically decrements the reference count of hmac by one.

since: 2.30


Feeds data into an existing GHmac.

since: 2.30