Imported Upstream version 0.66.1
[hcoop/debian/courier-authlib.git] / libs / sha1 / testsuite.c
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
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)=":
53 "SHA256(%-1.20s...)="), testcases[n]);
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
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 }
88 int main()
89 {
90 memset(foo, 'a', 1000000);
91 sha1();
92 sha256();
93 sha512();
94 exit (0);
95 return (0);
96 }