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.

type_get_length(checksum_type: ChecksumType) int

Gets the length in bytes of digests of type checksum_type

Added in version 2.16.

Parameters:

checksum_type – a ChecksumType

update(data: Sequence[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