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