xref: /plan9/sys/src/libsec/port/sha2test.c (revision 7bc319fb0923feebf3ecec8ba4171959fa2265e2)
1*7bc319fbSDavid du Colombier #include <u.h>
2*7bc319fbSDavid du Colombier #include <libc.h>
3*7bc319fbSDavid du Colombier #include "libsec.h"
4*7bc319fbSDavid du Colombier 
5*7bc319fbSDavid du Colombier char *tests[] = {
6*7bc319fbSDavid du Colombier 	"",
7*7bc319fbSDavid du Colombier 	"a",
8*7bc319fbSDavid du Colombier 	"abc",
9*7bc319fbSDavid du Colombier 	"message digest",
10*7bc319fbSDavid du Colombier 	"abcdefghijklmnopqrstuvwxyz",
11*7bc319fbSDavid du Colombier 	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
12*7bc319fbSDavid du Colombier 	"123456789012345678901234567890123456789012345678901234567890"
13*7bc319fbSDavid du Colombier 		"12345678901234567890",
14*7bc319fbSDavid du Colombier 	"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
15*7bc319fbSDavid du Colombier 	"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
16*7bc319fbSDavid du Colombier 		"jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
17*7bc319fbSDavid du Colombier 	0
18*7bc319fbSDavid du Colombier };
19*7bc319fbSDavid du Colombier 
20*7bc319fbSDavid du Colombier void
main(void)21*7bc319fbSDavid du Colombier main(void)
22*7bc319fbSDavid du Colombier {
23*7bc319fbSDavid du Colombier 	int i;
24*7bc319fbSDavid du Colombier 	char **pp;
25*7bc319fbSDavid du Colombier 	uchar *p;
26*7bc319fbSDavid du Colombier 	uchar digest[SHA2_512dlen];
27*7bc319fbSDavid du Colombier 
28*7bc319fbSDavid du Colombier 	print("SHA2_224 tests:\n");
29*7bc319fbSDavid du Colombier 	for(pp = tests; *pp; pp++){
30*7bc319fbSDavid du Colombier 		p = (uchar*)*pp;
31*7bc319fbSDavid du Colombier 		sha2_224(p, strlen(*pp), digest, 0);
32*7bc319fbSDavid du Colombier 		for(i = 0; i < SHA2_224dlen; i++)
33*7bc319fbSDavid du Colombier 			print("%2.2ux", digest[i]);
34*7bc319fbSDavid du Colombier 		print("\n");
35*7bc319fbSDavid du Colombier 	}
36*7bc319fbSDavid du Colombier 
37*7bc319fbSDavid du Colombier 	print("\nSHA256 tests:\n");
38*7bc319fbSDavid du Colombier 	for(pp = tests; *pp; pp++){
39*7bc319fbSDavid du Colombier 		p = (uchar*)*pp;
40*7bc319fbSDavid du Colombier 		sha2_256(p, strlen(*pp), digest, 0);
41*7bc319fbSDavid du Colombier 		for(i = 0; i < SHA2_256dlen; i++)
42*7bc319fbSDavid du Colombier 			print("%2.2ux", digest[i]);
43*7bc319fbSDavid du Colombier 		print("\n");
44*7bc319fbSDavid du Colombier 	}
45*7bc319fbSDavid du Colombier 
46*7bc319fbSDavid du Colombier 	print("\nSHA384 tests:\n");
47*7bc319fbSDavid du Colombier 	for(pp = tests; *pp; pp++){
48*7bc319fbSDavid du Colombier 		p = (uchar*)*pp;
49*7bc319fbSDavid du Colombier 		sha2_384(p, strlen(*pp), digest, 0);
50*7bc319fbSDavid du Colombier 		for(i = 0; i < SHA2_384dlen; i++)
51*7bc319fbSDavid du Colombier 			print("%2.2ux", digest[i]);
52*7bc319fbSDavid du Colombier 		print("\n");
53*7bc319fbSDavid du Colombier 	}
54*7bc319fbSDavid du Colombier 
55*7bc319fbSDavid du Colombier 	print("\nSHA512 tests:\n");
56*7bc319fbSDavid du Colombier 	for(pp = tests; *pp; pp++){
57*7bc319fbSDavid du Colombier 		p = (uchar*)*pp;
58*7bc319fbSDavid du Colombier 		sha2_512(p, strlen(*pp), digest, 0);
59*7bc319fbSDavid du Colombier 		for(i = 0; i < SHA2_512dlen; i++)
60*7bc319fbSDavid du Colombier 			print("%2.2ux", digest[i]);
61*7bc319fbSDavid du Colombier 		print("\n");
62*7bc319fbSDavid du Colombier 	}
63*7bc319fbSDavid du Colombier }
64