d9898ee8 |
1 | /* |
2 | ** Copyright 1998 - 1999 Double Precision, Inc. |
3 | ** See COPYING for distribution information. |
4 | */ |
5 | |
6 | #if HAVE_CONFIG_H |
7 | #include "config.h" |
8 | #endif |
9 | |
10 | #define MD5_INTERNAL |
11 | #include "../md5/md5.h" |
12 | #include "hmac.h" |
13 | |
14 | #include <stdio.h> |
15 | |
16 | static const char rcsid[]="$Id: md5hmactest.c,v 1.3 1999/12/06 23:41:55 mrsam Exp $"; |
17 | |
18 | static struct { |
19 | const char *key, *data; |
20 | } testcases[]={ |
21 | {"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", |
22 | "Hi There"}, |
23 | {"Jefe", "what do ya want for nothing?" }, |
24 | |
25 | {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", |
26 | "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"}, |
27 | |
28 | {"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19", |
29 | "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"}, |
30 | |
31 | {"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c", |
32 | "Test With Truncation"}, |
33 | |
34 | {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", |
35 | "Test Using Larger Than Block-Size Key - Hash Key First"}, |
36 | |
37 | {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", |
38 | "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"} |
39 | } ; |
40 | |
41 | int main() |
42 | { |
43 | unsigned i, j; |
44 | |
45 | for (i=0; i<sizeof(testcases)/sizeof(testcases[0]); i++) |
46 | { |
47 | MD5_DIGEST ok, ik, hash; |
48 | |
49 | hmac_hashkey(&hmac_md5, testcases[i].key, |
50 | strlen(testcases[i].key), ok, ik); |
51 | |
52 | hmac_hashtext(&hmac_md5, testcases[i].data, |
53 | strlen(testcases[i].data), ok, ik, hash); |
54 | |
55 | printf("test_cases[%i].digest=0x", i+1); |
56 | for (j=0; j<MD5_DIGEST_SIZE; j++) |
57 | printf("%02x", hash[j]); |
58 | printf("\n"); |
59 | } |
60 | return (0); |
61 | } |