Commit | Line | Data |
---|---|---|
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 | ||
8d138742 | 12 | static const char rcsid[]="$Id: testsuite.c,v 1.4 2008/12/18 12:08:26 mrsam Exp $"; |
d9898ee8 | 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)=": | |
8d138742 | 54 | "SHA256(%-1.20s...)="), testcases[n]); |
d9898ee8 | 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 | ||
8d138742 CE |
65 | static void sha512() |
66 | { | |
67 | SHA512_DIGEST digest; | |
68 | unsigned i, n; | |
69 | ||
70 | static char *testcases[]={"abc", | |
71 | "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", | |
72 | foo}; | |
73 | ||
74 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) | |
75 | { | |
76 | i=strlen(testcases[n]); | |
77 | sha512_digest(testcases[n], i, digest); | |
78 | printf( (i < 200 ? "SHA512(%s)=": | |
79 | "SHA512(%-1.20s...)="), testcases[n]); | |
80 | ||
81 | for (i=0; i<sizeof(digest); i++) | |
82 | { | |
83 | if (i && (i & 7) == 0) putchar(' '); | |
84 | printf("%02X", digest[i]); | |
85 | } | |
86 | printf("\n"); | |
87 | } | |
88 | } | |
d9898ee8 | 89 | int main() |
90 | { | |
91 | memset(foo, 'a', 1000000); | |
92 | sha1(); | |
93 | sha256(); | |
8d138742 | 94 | sha512(); |
d9898ee8 | 95 | exit (0); |
96 | return (0); | |
97 | } |