### Struct

# GLib Checksum

since: 2.16

#### Description [src]

    struct GChecksum {
      /* No available fields */
    }

GLib provides a generic API for computing checksums (or ‘digests’) for a sequence of arbitrary bytes, using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.

To create a new `GChecksum`, use `g_checksum_new()`. To free a `GChecksum`, use `g_checksum_free()`.

GLib supports incremental checksums using the `GChecksum` data structure, by calling `g_checksum_update()` as long as there’s data available and then using `g_checksum_get_string()` or `g_checksum_get_digest()` to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes. To compute the checksum for binary blobs and nul-terminated strings in one go, use the convenience functions `g_compute_checksum_for_data()` and `g_compute_checksum_for_string()`, respectively.

Available since: 2.16

#### Constructors

###### g_checksum_new

Creates a new `GChecksum`, using the checksum algorithm `checksum_type`. If the `checksum_type` is not known, `NULL` is returned. A `GChecksum` can be used to compute the checksum, or digest, of an arbitrary binary blob, using different hashing algorithms.

since: 2.16

#### Functions

###### g_checksum_type_get_length

Gets the length in bytes of digests of type `checksum_type`.

since: 2.16

#### Instance methods

###### g_checksum_copy

Copies a `GChecksum`. If `checksum` has been closed, by calling `g_checksum_get_string()` or g_checksum_get_digest(), the copied checksum will be closed as well.

since: 2.16

###### g_checksum_free

Frees the memory allocated for `checksum`.

since: 2.16

###### g_checksum_get_digest

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

since: 2.16

###### g_checksum_get_string

Gets the digest as a hexadecimal string.

since: 2.16

###### g_checksum_reset

Resets the state of the `checksum` back to its initial state.

since: 2.18

###### g_checksum_update

Feeds `data` into an existing `GChecksum`. The checksum must still be open, that is `g_checksum_get_string()` or `g_checksum_get_digest()` must not have been called on `checksum`.

since: 2.16