MD5 Functions

MD5 Functions — MD5 hash implementation

Synopsis


#include <exo/exo.h>


            ExoMd5Digest;
ExoMd5Digest* exo_str_get_md5_digest        (const gchar *contents);
gchar*      exo_str_get_md5_str             (const gchar *contents);
ExoMd5Digest* exo_md5_str_to_digest         (const gchar *str_digest);
gchar*      exo_md5_digest_to_str           (const ExoMd5Digest *digest);
ExoMd5Digest* exo_md5_digest_dup            (const ExoMd5Digest *digest);
void        exo_md5_digest_free             (ExoMd5Digest *digest);
guint       exo_md5_digest_hash             (gconstpointer digest);
gboolean    exo_md5_digest_equal            (gconstpointer digest1,
                                             gconstpointer digest2);


Description

This is an implementation 16-byte MD5 hash algorithm with some related utility functions.

Details

ExoMd5Digest

typedef struct {
  guchar digest[16];
} ExoMd5Digest;


exo_str_get_md5_digest ()

ExoMd5Digest* exo_str_get_md5_digest        (const gchar *contents);

Creates a binary MD5 digest of the string contents.

contents : The string to create a digest of.
Returns : A new binary MD5 digest. It should be freed with exo_md5_digest_free() when no longer needed.

exo_str_get_md5_str ()

gchar*      exo_str_get_md5_str             (const gchar *contents);

Creates a character array MD5 digestof the string contents.

contents : The string to create a digest of.
Returns : A newly-allocated character array which should be free with g_free() when no longer needed.

exo_md5_str_to_digest ()

ExoMd5Digest* exo_md5_str_to_digest         (const gchar *str_digest);

Converts thq str_digest character array digest into a binary digest.

str_digest : The character array digest to convert.
Returns : A newly allocated binary digest. It should be freed with exo_md5_digest_free() when no longer needed.

exo_md5_digest_to_str ()

gchar*      exo_md5_digest_to_str           (const ExoMd5Digest *digest);

Converts the binary digest to an ASCII character array digest. The result can be used as an ordinary C string.

digest : The binary MD5 digest to convert.
Returns : A newly-allocated character array which should be freed with g_free() when no longer needed.

exo_md5_digest_dup ()

ExoMd5Digest* exo_md5_digest_dup            (const ExoMd5Digest *digest);

Duplicates the contents of the digest binary MD5 digest.

digest : The MD5 digest to copy.
Returns : A new binary MD5 digest. It should be freed with exo_md5_digest_free() when no longer needed.

exo_md5_digest_free ()

void        exo_md5_digest_free             (ExoMd5Digest *digest);

Frees the memory allocated for the MD5 binary digest.

digest : The MD5 digest to free.

exo_md5_digest_hash ()

guint       exo_md5_digest_hash             (gconstpointer digest);

Gets the numeric hash of digest, for use in GHashTable and GCache.

digest : The ExoMd5Digest to hash.
Returns : An unsigned integer hash of the digest;

exo_md5_digest_equal ()

gboolean    exo_md5_digest_equal            (gconstpointer digest1,
                                             gconstpointer digest2);

Tests the equality of digest1 and digest2, useful for GHashTable and GCashe.

digest1 : the first ExoMd5Digest to compare.
digest2 : the second ExoMd5Digest to compare.
Returns : TRUE if both digests are equal, FALSE otherwise.