head 1.2; access; symbols; locks; strict; comment @ * @; 1.2 date 2005.05.16.18.32.29; author wessels; state Exp; branches; next 1.1; 1.1 date 2004.04.05.16.39.42; author wessels; state Exp; branches; next ; desc @@ 1.2 log @dont print md5 inside the loop @ text @#include #include #include #include #include #include #include #include #define RND_BUF_SZ 1<<20 void md_print(char *digest) { int i; for(i=0;i<16;i++) { printf("%02x%c", *(digest+i) & 0xff, i == 15 ? '\n' : ' '); } } int main(int argc, char *argv[]) { MD5_CTX m; char *buf; char first_digest[16]; char later_digest[16]; int i; unsigned int u; buf = malloc(RND_BUF_SZ); i = read(open("/dev/urandom", 0), buf, RND_BUF_SZ); fprintf(stderr, "read %d random bytes\n", i); MD5Init(&m); MD5Update(&m, buf, RND_BUF_SZ); MD5Final(first_digest, &m); md_print(first_digest); for (u=0;u<1000000;u++) { MD5Init(&m); MD5Update(&m, buf, RND_BUF_SZ); MD5Final(later_digest, &m); /* md_print(later_digest); */ if (memcmp(first_digest, later_digest, 16)) { fprintf(stderr, "Digests differ after %d iterations!\n", u); } } return 0; } @ 1.1 log @Initial revision @ text @d42 1 a42 1 md_print(later_digest); @