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 | ||
d9898ee8 | 12 | |
13 | static char foo[1000001]; | |
14 | ||
15 | static void sha1() | |
16 | { | |
17 | SHA1_DIGEST digest; | |
18 | unsigned i, n; | |
19 | ||
20 | static char *testcases[]={"abc", | |
21 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", foo}; | |
22 | ||
23 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) | |
24 | { | |
25 | i=strlen(testcases[n]); | |
26 | sha1_digest(testcases[n], i, digest); | |
27 | printf( (i < 200 ? "SHA1(%s)=": | |
28 | "SHA1(%-1.20s...)="), testcases[n]); | |
29 | ||
30 | for (i=0; i<20; i++) | |
31 | { | |
32 | if (i && (i & 3) == 0) putchar(' '); | |
33 | printf("%02X", digest[i]); | |
34 | } | |
35 | printf("\n"); | |
36 | } | |
37 | } | |
38 | ||
39 | static void sha256() | |
40 | { | |
41 | SHA256_DIGEST digest; | |
42 | unsigned i, n; | |
43 | ||
44 | static char *testcases[]={"abc", | |
45 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", | |
46 | foo}; | |
47 | ||
48 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) | |
49 | { | |
50 | i=strlen(testcases[n]); | |
51 | sha256_digest(testcases[n], i, digest); | |
52 | printf( (i < 200 ? "SHA256(%s)=": | |
8d138742 | 53 | "SHA256(%-1.20s...)="), testcases[n]); |
d9898ee8 | 54 | |
55 | for (i=0; i<sizeof(digest); i++) | |
56 | { | |
57 | if (i && (i & 3) == 0) putchar(' '); | |
58 | printf("%02X", digest[i]); | |
59 | } | |
60 | printf("\n"); | |
61 | } | |
62 | } | |
63 | ||
8d138742 CE |
64 | static void sha512() |
65 | { | |
66 | SHA512_DIGEST digest; | |
67 | unsigned i, n; | |
68 | ||
69 | static char *testcases[]={"abc", | |
70 | "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", | |
71 | foo}; | |
72 | ||
73 | for (n=0; n<sizeof(testcases)/sizeof(testcases[0]); n++) | |
74 | { | |
75 | i=strlen(testcases[n]); | |
76 | sha512_digest(testcases[n], i, digest); | |
77 | printf( (i < 200 ? "SHA512(%s)=": | |
78 | "SHA512(%-1.20s...)="), testcases[n]); | |
79 | ||
80 | for (i=0; i<sizeof(digest); i++) | |
81 | { | |
82 | if (i && (i & 7) == 0) putchar(' '); | |
83 | printf("%02X", digest[i]); | |
84 | } | |
85 | printf("\n"); | |
86 | } | |
87 | } | |
d9898ee8 | 88 | int main() |
89 | { | |
90 | memset(foo, 'a', 1000000); | |
91 | sha1(); | |
92 | sha256(); | |
8d138742 | 93 | sha512(); |
d9898ee8 | 94 | exit (0); |
95 | return (0); | |
96 | } |