Imported Upstream version 0.66.1
[hcoop/debian/courier-authlib.git] / libs / sha1 / testsuite.c
CommitLineData
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
13static char foo[1000001];
14
15static void sha1()
16{
17SHA1_DIGEST digest;
18unsigned i, n;
19
20static 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
39static 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
64static 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 88int main()
89{
90 memset(foo, 'a', 1000000);
91 sha1();
92 sha256();
8d138742 93 sha512();
d9898ee8 94 exit (0);
95 return (0);
96}