summaryrefslogtreecommitdiff
path: root/src/htsmd5.c
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2014-05-28 16:50:47 +0000
committerXavier Roche <xroche@users.noreply.github.com>2014-05-28 16:50:47 +0000
commite090cd9ccfee394d7343ac101eb9d16c902267c7 (patch)
tree0fe1213768a668fb1334e9b8f26a14ab232da27f /src/htsmd5.c
parent1bebff26972a3fd97c969072a6e44cfc1306fab6 (diff)
Added MD5 self-test
Diffstat (limited to 'src/htsmd5.c')
-rw-r--r--src/htsmd5.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/htsmd5.c b/src/htsmd5.c
index def901d..84399be 100644
--- a/src/htsmd5.c
+++ b/src/htsmd5.c
@@ -77,3 +77,23 @@ unsigned long int md5sum32(const char *buff) {
domd5mem(buff, strlen(buff), u.md5digest, 0);
return u.hash;
}
+
+void md5selftest() {
+ static const char str1[] = "The quick brown fox jumps over the lazy dog\n";
+ static const char str1m[] = "37c4b87edffc5d198ff5a185cee7ee09";
+ static const char str2[] = "Hello";
+ static const char str2m[] = "09f7e02f1290be211da707a266f153b3";
+ char digest[64];
+#define MDCHECK(VAR, VARMD) do { \
+ memset(digest, 0xCC, sizeof(digest)); \
+ domd5mem(VAR, sizeof(VAR) - 1, digest, 1); \
+ if (strcmp(digest, VARMD) != 0) { \
+ fprintf(stderr, "error: md5 selftest failed: '%s' => '%s'\n", \
+ VAR, digest); \
+ } \
+} while(0)
+MDCHECK(str1, str1m);
+MDCHECK(str2, str2m);
+#undef MDCHECK
+ fprintf(stderr, "md5 selftest succeeded\n");
+}