| Top |  |  |  |  | 
| gssize | g_checksum_type_get_length () | 
| GChecksum * | g_checksum_new () | 
| GChecksum * | g_checksum_copy () | 
| void | g_checksum_free () | 
| void | g_checksum_reset () | 
| void | g_checksum_update () | 
| const gchar * | g_checksum_get_string () | 
| void | g_checksum_get_digest () | 
| gchar * | g_compute_checksum_for_data () | 
| gchar * | g_compute_checksum_for_string () | 
| gchar * | g_compute_checksum_for_bytes () | 
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.
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.
Support for checksums has been added in GLib 2.16
gssize
g_checksum_type_get_length (GChecksumType checksum_type);
Gets the length in bytes of digests of type checksum_type
Since: 2.16
GChecksum *
g_checksum_new (GChecksumType checksum_type);
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.
A GChecksum works by feeding a binary blob through g_checksum_update()
until there is data to be checked; the digest can then be extracted
using g_checksum_get_string(), which will return the checksum as a
hexadecimal string; or g_checksum_get_digest(), which will return a
vector of raw bytes. Once either g_checksum_get_string() or
g_checksum_get_digest() have been called on a GChecksum, the checksum
will be closed and it won't be possible to call g_checksum_update()
on it anymore.
the newly created GChecksum, or NULL.
Use g_checksum_free() to free the memory allocated by it. 
[transfer full]
Since: 2.16
GChecksum *
g_checksum_copy (const GChecksum *checksum);
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
void
g_checksum_free (GChecksum *checksum);
Frees the memory allocated for checksum
.
Since: 2.16
void
g_checksum_reset (GChecksum *checksum);
Resets the state of the checksum
 back to its initial state.
Since: 2.18
void g_checksum_update (GChecksum *checksum,const guchar *data,gssize length);
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
.
| checksum | ||
| data | buffer used to compute the checksum. | [array length=length][element-type guint8] | 
| length | size of the buffer, or -1 if it is a null-terminated string. | 
Since: 2.16
const gchar *
g_checksum_get_string (GChecksum *checksum);
Gets the digest as an hexadecimal string.
Once this function has been called the GChecksum can no longer be
updated with g_checksum_update().
The hexadecimal characters will be lower case.
the hexadecimal representation of the checksum. The returned string is owned by the checksum and should not be modified or freed.
Since: 2.16
void g_checksum_get_digest (GChecksum *checksum,guint8 *buffer,gsize *digest_len);
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.
Once this function has been called, the GChecksum is closed and can
no longer be updated with g_checksum_update().
[skip]
| checksum | ||
| buffer | output buffer | |
| digest_len | an inout parameter. The caller initializes it to the size of  | 
Since: 2.16
gchar * g_compute_checksum_for_data (GChecksumType checksum_type,const guchar *data,gsize length);
Computes the checksum for a binary data
 of length
. This is a
convenience wrapper for g_checksum_new(), g_checksum_get_string()
and g_checksum_free().
The hexadecimal string returned will be in lower case.
| checksum_type | ||
| data | binary blob to compute the digest of. | [array length=length][element-type guint8] | 
| length | length of  | 
 the digest of the binary data as a string in hexadecimal.
The returned string should be freed with g_free() when done using it.
Since: 2.16
gchar * g_compute_checksum_for_string (GChecksumType checksum_type,const gchar *str,gssize length);
Computes the checksum of a string.
The hexadecimal string returned will be in lower case.
| checksum_type | ||
| str | the string to compute the checksum of | |
| length | the length of the string, or -1 if the string is null-terminated. | 
 the checksum as a hexadecimal string. The returned string
should be freed with g_free() when done using it.
Since: 2.16
gchar * g_compute_checksum_for_bytes (GChecksumType checksum_type,GBytes *data);
Computes the checksum for a binary data
. This is a
convenience wrapper for g_checksum_new(), g_checksum_get_string()
and g_checksum_free().
The hexadecimal string returned will be in lower case.
 the digest of the binary data as a string in hexadecimal.
The returned string should be freed with g_free() when done using it.
Since: 2.34
The hashing algorithm to be used by GChecksum when performing the digest of some data.
Note that the GChecksumType enumeration may be extended at a later date to include new hashing algorithm types.
Since: 2.16
typedef struct _GChecksum GChecksum;
An opaque structure representing a checksumming operation.
To create a new GChecksum, use g_checksum_new(). To free
a GChecksum, use g_checksum_free().
Since: 2.16