summaryrefslogtreecommitdiffstats
path: root/sha1/testsuite.c
blob: 4de568e0cf64fe7dc1a52e9375c44be0e7222ebd (plain)
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);
}