Imported Upstream version 0.63.0
[hcoop/debian/courier-authlib.git] / 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 static const char rcsid[]="$Id: testsuite.c,v 1.4 2008/12/18 12:08:26 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 "SHA256(%-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 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 }
89 int main()
90 {
91 memset(foo, 'a', 1000000);
92 sha1();
93 sha256();
94 sha512();
95 exit (0);
96 return (0);
97 }