annotate tests/test-gc-md2.c @ 8891:633babea5f62

Unconditionally include <config.h> in unit tests. * tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H. * tests/test-allocsa.c, tests/test-arcfour.c, tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c, tests/test-array_list.c, tests/test-array_oset.c, tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c, test-avltreehash_list.c, test-base64.c, test-binary-io.c, test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c, test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c, test-carray_list.c, test-crc.c, test-des.c, test-dirname.c, test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c, test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c, test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c, test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c, test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c, test-iconv.c, test-linked_list.c, test-linkedhash_list.c, test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c, test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c, test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c, test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c, test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c, test-md5.c, test-memmem.c, test-printf-posix.c, test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c, test-read-file.c, test-rijndael.c, test-snprintf-posix.c, test-snprintf.c, test-sprintf-posix.c, test-stdint.c, test-strcasestr.c, test-striconv.c, test-striconveh.c, test-striconveha.c, test-tls.c, test-vasnprintf-posix.c, test-vasnprintf-posix2.c, test-vasnprintf.c, test-vasprintf-posix.c, test-vasprintf.c, test-verify.c, test-vfprintf-posix.c, test-vprintf-posix.c, test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c, test-xvasprintf.c: Likewise.
author Eric Blake <ebb9@byu.net>
date Mon, 28 May 2007 16:49:41 +0000
parents fca6cdd9520b
children e8d2c6fc33ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6431
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
1 /*
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
2 * Copyright (C) 2005 Free Software Foundation
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
3 * Written by Simon Josefsson
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
4 *
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
7 * the Free Software Foundation; either version 2, or (at your option)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
8 * any later version.
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
9 *
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
13 * GNU General Public License for more details.
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
14 *
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
16 * along with this program; if not, write to the Free Software
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
18 * 02110-1301, USA. */
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
19
8891
633babea5f62 Unconditionally include <config.h> in unit tests.
Eric Blake <ebb9@byu.net>
parents: 6436
diff changeset
20 #include <config.h>
6431
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
21
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
22 #include <stdio.h>
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
23 #include <string.h>
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
24 #include "gc.h"
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
25
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
26 int
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
27 main (int argc, char *argv[])
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
28 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
29 Gc_rc rc;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
30 gc_hash_handle h;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
31
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
32 rc = gc_init ();
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
33 if (rc != GC_OK)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
34 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
35 printf ("gc_init() failed\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
36 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
37 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
38
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
39 /* Test vectors from RFC 1319. */
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
40
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
41 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
42 char *in = "abcdefghijklmnopqrstuvwxyz";
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
43 size_t inlen = strlen (in);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
44 char *expect =
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
45 "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47\x94\x0b";
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
46 char out[16];
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
47 const char *p;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
48
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
49 if (gc_md2 (in, inlen, out) != 0)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
50 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
51 printf ("gc_md2 call failed\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
52 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
53 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
54
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
55 if (memcmp (out, expect, 16) != 0)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
56 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
57 size_t i;
6436
fca6cdd9520b Fix typos in comment, suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
Simon Josefsson <simon@josefsson.org>
parents: 6431
diff changeset
58 printf ("md2 1 mismatch. expected:\n");
6431
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
59 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
60 printf ("%02x ", expect[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
61 printf ("\ncomputed:\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
62 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
63 printf ("%02x ", out[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
64 printf ("\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
65 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
66 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
67
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
68 if (gc_hash_buffer (GC_MD2, in, inlen, out) != 0)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
69 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
70 printf ("gc_hash_buffer(MD2) call failed\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
71 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
72 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
73
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
74 if (memcmp (out, expect, 16) != 0)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
75 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
76 size_t i;
6436
fca6cdd9520b Fix typos in comment, suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
Simon Josefsson <simon@josefsson.org>
parents: 6431
diff changeset
77 printf ("md2 2 mismatch. expected:\n");
6431
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
78 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
79 printf ("%02x ", expect[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
80 printf ("\ncomputed:\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
81 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
82 printf ("%02x ", out[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
83 printf ("\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
84 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
85 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
86
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
87 if (gc_hash_digest_length (GC_MD2) != 16)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
88 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
89 printf ("gc_hash_digest_length (GC_MD2) failed\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
90 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
91 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
92
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
93 if ((rc = gc_hash_open (GC_MD2, 0, &h)) != GC_OK)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
94 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
95 printf ("gc_hash_open(GC_MD2) failed (%d)\n", rc);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
96 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
97 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
98
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
99 gc_hash_write (h, inlen, in);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
100
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
101 p = gc_hash_read (h);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
102
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
103 if (!p)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
104 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
105 printf ("gc_hash_read failed\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
106 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
107 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
108
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
109 if (memcmp (p, expect, 16) != 0)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
110 {
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
111 size_t i;
6436
fca6cdd9520b Fix typos in comment, suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
Simon Josefsson <simon@josefsson.org>
parents: 6431
diff changeset
112 printf ("md2 3 mismatch. expected:\n");
6431
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
113 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
114 printf ("%02x ", expect[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
115 printf ("\ncomputed:\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
116 for (i = 0; i < 16; i++)
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
117 printf ("%02x ", p[i] & 0xFF);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
118 printf ("\n");
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
119 return 1;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
120 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
121
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
122 gc_hash_close (h);
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
123 }
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
124
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
125 gc_done ();
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
126
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
127 return 0;
076accb971ef Add MD2 and hash fixes.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
128 }