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