aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
authorbertrand <Bertrand.Guiheneuf@aful.org>1999-09-06 19:32:54 +0800
committerBertrand Guiheneuf <bertrand@src.gnome.org>1999-09-06 19:32:54 +0800
commit8e70e42b1e00c9b04d1cfc24ccda38a7ff6f42a0 (patch)
tree273817cca365e14fbb596b1f6c8d65727e88e9e2 /camel
parenta35e5f993fa4538431234bb3fde2f4be2e2cd26f (diff)
downloadgsoc2013-evolution-8e70e42b1e00c9b04d1cfc24ccda38a7ff6f42a0.tar.gz
gsoc2013-evolution-8e70e42b1e00c9b04d1cfc24ccda38a7ff6f42a0.tar.zst
gsoc2013-evolution-8e70e42b1e00c9b04d1cfc24ccda38a7ff6f42a0.zip
new function : get file md5 signature. To be used in providers code.
1999-09-06 bertrand <Bertrand.Guiheneuf@aful.org> * camel/md5-utils.h: * camel/md5-utils.c: (md5_get_digest_from_file): new function : get file md5 signature. To be used in providers code. svn path=/trunk/; revision=1186
Diffstat (limited to 'camel')
-rw-r--r--camel/md5-utils.c29
-rw-r--r--camel/md5-utils.h4
2 files changed, 33 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);
+
+}
+
+
+
+
diff --git a/camel/md5-utils.h b/camel/md5-utils.h
index 3c403e86d2..cb4768bbac 100644
--- a/camel/md5-utils.h
+++ b/camel/md5-utils.h
@@ -41,5 +41,9 @@ typedef struct {
void md5_get_digest (const gchar *buffer, gint buffer_size, guchar digest[16]);
void md5_get_digest_from_stream (CamelStream *stream, gint buffer_size, guchar digest[16]);
+/* use this onr when speed is needed */
+/* for use in provider code only */
+void md5_get_digest_from_file (gchar *filename, gint buffer_size, guchar digest[16]);
+
#endif /* MD5_UTILS_H */