![]() | ![]() | ![]() | GSK Reference Manual | ![]() |
---|
struct GskHash; GskHash* gsk_hash_new_md5 (); GskHash* gsk_hash_new_sha1 (); GskHash* gsk_hash_new_crc32 (gboolean big_endian); void gsk_hash_feed (GskHash *hash, gconstpointer data, guint length); void gsk_hash_feed_str (GskHash *hash, const char *str); void gsk_hash_done (GskHash *hash); guint gsk_hash_get_size (GskHash *hash); void gsk_hash_get (GskHash *hash, guint8 *data_out); void gsk_hash_get_hex (GskHash *hash, gchar *hex_out); void gsk_hash_destroy (GskHash *hash);
These small objects can compute a hash-function of a stream of data incrementally. Just pass pieces of data to gsk_hash_feed() and it will keep track of the hash-objects state. Call gsk_hash_done() to finish the hash off, then use gsk_hash_get() or gsk_hash_get_hex() to get the value of the hash.
struct GskHash { /* The size of the hash-key (in bytes) */ guint size; };
An abstract hashing object.
guint size | number of bytes in the hash. |
GskHash* gsk_hash_new_md5 ();
Create a new MD5 hasher.
Returns : | the newly allocated hash object. |
GskHash* gsk_hash_new_sha1 ();
Create a new SHA1 hasher.
Returns : | the newly allocated hash object. |
GskHash* gsk_hash_new_crc32 (gboolean big_endian);
Typically called as gsk_hash_new_crc32(G_BYTE_ORDER == G_BIG_ENDIAN).
big_endian : | whether to compute a big-endian crc32 hash. (As opposed to a little endian hash). |
Returns : | the newly allocated hash object. |
void gsk_hash_feed (GskHash *hash, gconstpointer data, guint length);
Affect the hash incrementally; hash the given binary data.
You may call this function on little bits of data and it must have exactly the same effect is if you called it once with a larger slab of data.
hash : | the hash to feed data. |
data : | binary data to accumulate in the hash. |
length : | length of the binary data. |
void gsk_hash_feed_str (GskHash *hash, const char *str);
Hash the given binary data (incrementally).
You may mix calls to gsk_hash_feed() and gsk_hash_feed_str().
hash : | the hash to feed data. |
str : | a NUL-terminated string to feed to the hash. |
void gsk_hash_done (GskHash *hash);
Finish processing loose data for the hash. This may only be called once in the lifetime of the hash.
hash : | the hash to finish. |
guint gsk_hash_get_size (GskHash *hash);
Get the number of binary bytes that this function maps to.
hash : | the hash to query. |
Returns : | the number of bytes of binary data in this hash. |
void gsk_hash_get (GskHash *hash, guint8 *data_out);
Get a binary hash value. This should be of the size returned by gsk_hash_get_size().
hash : | the hash to query. |
data_out : | binary buffer to fill with the hash value. |
void gsk_hash_get_hex (GskHash *hash, gchar *hex_out);
Get a hex hash value. This should be of the size returned by (gsk_hash_get_size() * 2 + 1).
hash : | the hash to query. |
hex_out : | buffer to fill with a NUL-terminated hex hash value. |
<<< Base-64 | gskmempool >>> |