d9898ee8 |
1 | /* |
2 | ** Copyright 2001-2005 Double Precision, Inc. |
3 | ** See COPYING for distribution information. |
4 | */ |
5 | |
6 | #include "config.h" |
7 | #include "sha1.h" |
8 | #include <stdio.h> |
9 | #include <stdlib.h> |
10 | #include <string.h> |
11 | |
12 | static const char rcsid[]="$Id: testsuite.c,v 1.3 2005/02/21 03:18:31 mrsam Exp $"; |
13 | |
14 | static char foo[1000001]; |
15 | |
16 | static void sha1() |
17 | { |
18 | SHA1_DIGEST digest; |
19 | unsigned i, n; |
20 | |
21 | static char *testcases[]={"abc", |
22 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", foo}; |
23 | |
24 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) |
25 | { |
26 | i=strlen(testcases[n]); |
27 | sha1_digest(testcases[n], i, digest); |
28 | printf( (i < 200 ? "SHA1(%s)=": |
29 | "SHA1(%-1.20s...)="), testcases[n]); |
30 | |
31 | for (i=0; i<20; i++) |
32 | { |
33 | if (i && (i & 3) == 0) putchar(' '); |
34 | printf("%02X", digest[i]); |
35 | } |
36 | printf("\n"); |
37 | } |
38 | } |
39 | |
40 | static void sha256() |
41 | { |
42 | SHA256_DIGEST digest; |
43 | unsigned i, n; |
44 | |
45 | static char *testcases[]={"abc", |
46 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", |
47 | foo}; |
48 | |
49 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) |
50 | { |
51 | i=strlen(testcases[n]); |
52 | sha256_digest(testcases[n], i, digest); |
53 | printf( (i < 200 ? "SHA256(%s)=": |
54 | "SHA1(%-1.20s...)="), testcases[n]); |
55 | |
56 | for (i=0; i<sizeof(digest); i++) |
57 | { |
58 | if (i && (i & 3) == 0) putchar(' '); |
59 | printf("%02X", digest[i]); |
60 | } |
61 | printf("\n"); |
62 | } |
63 | } |
64 | |
65 | int main() |
66 | { |
67 | memset(foo, 'a', 1000000); |
68 | sha1(); |
69 | sha256(); |
70 | exit (0); |
71 | return (0); |
72 | } |