source: lib/md5.c

Last change on this file was 1bdc669, checked in by GitHub <noreply@…>, at 2023-02-23T23:48:10Z

Migrate internal users of md5.h to using GChecksum directly (#169)

  • Use GChecksum directly rather than md5 wrapper
  • Mark md5 functions as deprecated.
  • Migrate more users of md5.h to GChecksum
  • Property mode set to 100644
File size: 1009 bytes
Line 
1#include "md5.h"
2
3/* Creates a new GChecksum in ctx */
4void md5_init(md5_state_t *ctx)
5{
6        *ctx = g_checksum_new(G_CHECKSUM_MD5);
7}
8
9/* Wrapper for g_checksum_update */
10void md5_append(md5_state_t *ctx, const guint8 *buf, unsigned int len)
11{
12        g_checksum_update(*ctx, buf, len);
13}
14
15/* Wrapper for g_checksum_get_digest
16 * Also takes care of g_checksum_free(), since it can't be reused anyway
17 * (the GChecksum is closed after get_digest) */
18void md5_finish(md5_state_t *ctx, guint8 digest[MD5_HASH_SIZE])
19{
20        gsize digest_len = MD5_HASH_SIZE;
21
22        g_checksum_get_digest(*ctx, digest, &digest_len);
23        g_checksum_free(*ctx);
24}
25
26/* Variant of md5_finish that copies the GChecksum
27 * and finishes that one instead of the original */
28void md5_digest_keep(md5_state_t *ctx, guint8 digest[MD5_HASH_SIZE])
29{
30        gsize digest_len = MD5_HASH_SIZE;
31        GChecksum *copy = g_checksum_copy(*ctx);
32
33        g_checksum_get_digest(copy, digest, &digest_len);
34        g_checksum_free(copy);
35}
36
37void md5_free(md5_state_t *ctx)
38{
39        g_checksum_free(*ctx);
40}
Note: See TracBrowser for help on using the repository browser.