diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2014-05-28 16:50:47 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2014-05-28 16:50:47 +0000 |
commit | e090cd9ccfee394d7343ac101eb9d16c902267c7 (patch) | |
tree | 0fe1213768a668fb1334e9b8f26a14ab232da27f | |
parent | 1bebff26972a3fd97c969072a6e44cfc1306fab6 (diff) |
Added MD5 self-test
-rw-r--r-- | src/htscoremain.c | 2 | ||||
-rw-r--r-- | src/htsmd5.c | 20 | ||||
-rw-r--r-- | src/htsmd5.h | 1 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/htscoremain.c b/src/htscoremain.c index 77dc93a..1ca82e8 100644 --- a/src/htscoremain.c +++ b/src/htscoremain.c @@ -45,6 +45,7 @@ Please visit our Website: http://www.httrack.com #include "htszlib.h" #include "htscharset.h" #include "htsencoding.h" +#include "htsmd5.h" #include <ctype.h> #if USE_BEGINTHREAD @@ -2410,6 +2411,7 @@ HTSEXT_API int hts_main2(int argc, char **argv, httrackp * opt) { return 0; break; case '7': // hashtable selftest: httrack -#7 nb_entries + md5selftest(); if (++na < argc) { char *const snum = strdup(argv[na]); unsigned long count = 0; 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"); +} diff --git a/src/htsmd5.h b/src/htsmd5.h index 194d8c8..091a454 100644 --- a/src/htsmd5.h +++ b/src/htsmd5.h @@ -42,6 +42,7 @@ Please visit our Website: http://www.httrack.com #ifdef HTS_INTERNAL_BYTECODE int domd5mem(const char *buf, size_t len, char *digest, int asAscii); unsigned long int md5sum32(const char *buff); +void md5selftest(void); #endif #endif |