Branch data Line data Source code
1 : : /*
2 : : * Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
3 : : * Written by Simon Josefsson
4 : : *
5 : : * This program is free software: you can redistribute it and/or modify
6 : : * it under the terms of the GNU General Public License as published by
7 : : * the Free Software Foundation; either version 3 of the License, or
8 : : * (at your option) any later version.
9 : : *
10 : : * This program is distributed in the hope that it will be useful,
11 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 : : * GNU General Public License for more details.
14 : : *
15 : : * You should have received a copy of the GNU General Public License
16 : : * along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 : :
18 : : /* Written by Simon Josefsson. */
19 : :
20 : : #include <config.h>
21 : :
22 : : #include <stdio.h>
23 : : #include <string.h>
24 : :
25 : : #include "md5.h"
26 : :
27 : : int
28 : 1 : main (void)
29 : : {
30 : : /* Test vectors from RFC 1321. */
31 : :
32 : 1 : const char *in1 = "abc";
33 : 1 : const char *out1 =
34 : : "\x90\x01\x50\x98\x3C\xD2\x4F\xB0\xD6\x96\x3F\x7D\x28\xE1\x7F\x72";
35 : 1 : const char *in2 = "message digest";
36 : 1 : const char *out2 =
37 : : "\xF9\x6B\x69\x7D\x7C\xB7\x93\x8D\x52\x5A\x2F\x31\xAA\xF1\x61\xD0";
38 : : char buf[MD5_DIGEST_SIZE];
39 : :
40 [ - + ]: 1 : if (memcmp (md5_buffer (in1, strlen (in1), buf), out1, MD5_DIGEST_SIZE) != 0)
41 : : {
42 : : size_t i;
43 : 0 : printf ("expected:\n");
44 [ # # ]: 0 : for (i = 0; i < MD5_DIGEST_SIZE; i++)
45 : 0 : printf ("%02x ", out1[i] & 0xFF);
46 : 0 : printf ("\ncomputed:\n");
47 [ # # ]: 0 : for (i = 0; i < MD5_DIGEST_SIZE; i++)
48 : 0 : printf ("%02x ", buf[i] & 0xFF);
49 : 0 : printf ("\n");
50 : 0 : return 1;
51 : : }
52 : :
53 [ - + ]: 1 : if (memcmp (md5_buffer (in2, strlen (in2), buf), out2, MD5_DIGEST_SIZE) != 0)
54 : : {
55 : : size_t i;
56 : 0 : printf ("expected:\n");
57 [ # # ]: 0 : for (i = 0; i < MD5_DIGEST_SIZE; i++)
58 : 0 : printf ("%02x ", out2[i] & 0xFF);
59 : 0 : printf ("\ncomputed:\n");
60 [ # # ]: 0 : for (i = 0; i < MD5_DIGEST_SIZE; i++)
61 : 0 : printf ("%02x ", buf[i] & 0xFF);
62 : 0 : printf ("\n");
63 : 0 : return 1;
64 : : }
65 : :
66 : 1 : return 0;
67 : : }
|