Imported Upstream version 2.4
[platform/upstream/nettle.git] / testsuite / md5-compat-test.c
1 #include "testutils.h"
2 #include "md5-compat.h"
3
4 int
5 test_main(void)
6 {
7   MD5_CTX ctx;
8   unsigned char digest[MD5_DIGEST_SIZE];
9
10   MD5Init(&ctx);
11   MD5Final(digest, &ctx);
12   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("D41D8CD98F00B204 E9800998ECF8427E")))
13     FAIL();
14
15   MD5Init(&ctx);
16   MD5Update(&ctx, "a", 1);
17   MD5Final(digest, &ctx);
18
19   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("0CC175B9C0F1B6A8 31C399E269772661")))
20     FAIL();
21
22   MD5Init(&ctx);
23   MD5Update(&ctx, "abc", 3);
24   MD5Final(digest, &ctx);
25
26   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("900150983cd24fb0 D6963F7D28E17F72")))
27     FAIL();
28
29   MD5Init(&ctx);
30   MD5Update(&ctx, "message digest", 14);
31   MD5Final(digest, &ctx);
32
33   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("F96B697D7CB7938D 525A2F31AAF161D0")))
34     FAIL();
35
36   MD5Init(&ctx);
37   MD5Update(&ctx, "abcdefghijklmnopqrstuvwxyz", 26);
38   MD5Final(digest, &ctx);
39
40   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("C3FCD3D76192E400 7DFB496CCA67E13B")))
41     FAIL();
42
43   MD5Init(&ctx);
44   MD5Update(&ctx, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62);
45   MD5Final(digest, &ctx);
46
47   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("D174AB98D277D9F5 A5611C2C9F419D9F")))
48     FAIL();
49
50   MD5Init(&ctx);
51   MD5Update(&ctx, "1234567890123456789012345678901234567890"
52             "1234567890123456789012345678901234567890",
53             80);
54   MD5Final(digest, &ctx);
55
56   if (!MEMEQ(MD5_DIGEST_SIZE, digest, H("57EDF4A22BE3C955 AC49DA2E2107B67A")))
57     FAIL();
58
59   SUCCESS();
60 }