Checksum#

Added in version 2.16.

class Checksum(**kwargs)#

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 new. To free a GChecksum, use free.

GLib supports incremental checksums using the GChecksum data structure, by calling update as long as there’s data available and then using get_string or 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 compute_checksum_for_data and compute_checksum_for_string, respectively.

Constructors#

class Checksum
classmethod new(checksum_type: ChecksumType) Checksum | None#

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

A Checksum works by feeding a binary blob through update() until there is data to be checked; the digest can then be extracted using get_string(), which will return the checksum as a hexadecimal string; or get_digest(), which will return a vector of raw bytes. Once either get_string() or get_digest() have been called on a Checksum, the checksum will be closed and it won’t be possible to call update() on it anymore.

Added in version 2.16.

Parameters:

checksum_type – the desired type of checksum

Methods#

class Checksum
free() None#

Frees the memory allocated for checksum.

Added in version 2.16.

get_string() str#

Gets the digest as a hexadecimal string.

Once this function has been called the Checksum can no longer be updated with update().

The hexadecimal characters will be lower case.

Added in version 2.16.

reset() None#

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

Added in version 2.18.

classmethod type_get_length() int#

Gets the length in bytes of digests of type checksum_type

Added in version 2.16.

update(data: list[int]) None#

Feeds data into an existing Checksum. The checksum must still be open, that is get_string() or get_digest() must not have been called on checksum.

Added in version 2.16.

Parameters:

data – buffer used to compute the checksum