diff options
Diffstat (limited to 'camel/md5-utils.c')
-rw-r--r-- | camel/md5-utils.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/camel/md5-utils.c b/camel/md5-utils.c index 6d8039a0ba..aac720e8e9 100644 --- a/camel/md5-utils.c +++ b/camel/md5-utils.c @@ -316,3 +316,32 @@ md5_get_digest_from_stream (CamelStream *stream, gint buffer_size, guchar digest +void +md5_get_digest_from_file (gchar *filename, gint buffer_size, guchar digest[16]) +{ + MD5Context ctx; + guchar tmp_buf[1024]; + gint nb_bytes_read; + FILE *fp; + + md5_init (&ctx); + fp = fopen(filename, "r"); + if (!fp) { + return; + } + + while ((nb_bytes_read = fread (tmp_buf, sizeof (guchar), 1024, fp)) > 0) + md5_update (&ctx, tmp_buf, nb_bytes_read); + + if (ferror(fp)) { + fclose(fp); + return; + } + + md5_final (digest, &ctx); + +} + + + + |