Imported Upstream version 0.63.0
[hcoop/debian/courier-authlib.git] / 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
8d138742 12static const char rcsid[]="$Id: testsuite.c,v 1.4 2008/12/18 12:08:26 mrsam Exp $";
d9898ee8 13
14static char foo[1000001];
15
16static void sha1()
17{
18SHA1_DIGEST digest;
19unsigned i, n;
20
21static 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
40static 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
65static 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 89int main()
90{
91 memset(foo, 'a', 1000000);
92 sha1();
93 sha256();
8d138742 94 sha512();
d9898ee8 95 exit (0);
96 return (0);
97}