blob: 13aff7ac87c8494415b6c9e033ec3bbde91d22ef [file] [log] [blame]
Paul Bakker367dae42009-06-28 21:50:27 +00001BEGIN_HEADER
2#include <polarssl/sha1.h>
3#include <polarssl/sha2.h>
4#include <polarssl/sha4.h>
5END_HEADER
6
7BEGIN_CASE
8sha1:hex_src_string:hex_hash_string
9{
10 unsigned char src_str[10000];
11 unsigned char hash_str[10000];
12 unsigned char output[41];
Paul Bakker69998dd2009-07-11 19:15:20 +000013 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000014
15 memset(src_str, 0x00, 10000);
16 memset(hash_str, 0x00, 10000);
17 memset(output, 0x00, 41);
18
Paul Bakker69998dd2009-07-11 19:15:20 +000019 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000020
21 sha1( src_str, src_len, output );
22 hexify( hash_str, output, 20 );
23
24 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
25}
26END_CASE
27
28BEGIN_CASE
29sha224:hex_src_string:hex_hash_string
30{
31 unsigned char src_str[10000];
32 unsigned char hash_str[10000];
33 unsigned char output[57];
Paul Bakker69998dd2009-07-11 19:15:20 +000034 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000035
36 memset(src_str, 0x00, 10000);
37 memset(hash_str, 0x00, 10000);
38 memset(output, 0x00, 57);
39
Paul Bakker69998dd2009-07-11 19:15:20 +000040 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000041
42 sha2( src_str, src_len, output, 1 );
43 hexify( hash_str, output, 28 );
44
45 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
46}
47END_CASE
48
49BEGIN_CASE
50sha256:hex_src_string:hex_hash_string
51{
52 unsigned char src_str[10000];
53 unsigned char hash_str[10000];
54 unsigned char output[65];
Paul Bakker69998dd2009-07-11 19:15:20 +000055 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000056
57 memset(src_str, 0x00, 10000);
58 memset(hash_str, 0x00, 10000);
59 memset(output, 0x00, 65);
60
Paul Bakker69998dd2009-07-11 19:15:20 +000061 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000062
63 sha2( src_str, src_len, output, 0 );
64 hexify( hash_str, output, 32 );
65
66 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
67}
68END_CASE
69
70BEGIN_CASE
71sha384:hex_src_string:hex_hash_string
72{
73 unsigned char src_str[10000];
74 unsigned char hash_str[10000];
75 unsigned char output[97];
Paul Bakker69998dd2009-07-11 19:15:20 +000076 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000077
78 memset(src_str, 0x00, 10000);
79 memset(hash_str, 0x00, 10000);
80 memset(output, 0x00, 97);
81
Paul Bakker69998dd2009-07-11 19:15:20 +000082 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000083
84 sha4( src_str, src_len, output, 1 );
85 hexify( hash_str, output, 48 );
86
87 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
88}
89END_CASE
90
91BEGIN_CASE
92sha512:hex_src_string:hex_hash_string
93{
94 unsigned char src_str[10000];
95 unsigned char hash_str[10000];
96 unsigned char output[129];
Paul Bakker69998dd2009-07-11 19:15:20 +000097 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000098
99 memset(src_str, 0x00, 10000);
100 memset(hash_str, 0x00, 10000);
101 memset(output, 0x00, 129);
102
Paul Bakker69998dd2009-07-11 19:15:20 +0000103 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +0000104
105 sha4( src_str, src_len, output, 0);
106 hexify( hash_str, output, 64 );
107
108 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
109}
110END_CASE
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000111
112BEGIN_CASE
113sha1_file:filename:hex_hash_string
114{
115 unsigned char hash_str[41];
116 unsigned char output[21];
117
118 memset(hash_str, 0x00, 41);
119 memset(output, 0x00, 21);
120
121 sha1_file( {filename}, output);
122 hexify( hash_str, output, 20 );
123
124 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
125}
126END_CASE
127
128BEGIN_CASE
129sha224_file:filename:hex_hash_string
130{
131 unsigned char hash_str[57];
132 unsigned char output[29];
133
134 memset(hash_str, 0x00, 57);
135 memset(output, 0x00, 29);
136
137 sha2_file( {filename}, output, 1);
138 hexify( hash_str, output, 28 );
139
140 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
141}
142END_CASE
143
144BEGIN_CASE
145sha256_file:filename:hex_hash_string
146{
147 unsigned char hash_str[65];
148 unsigned char output[33];
149
150 memset(hash_str, 0x00, 65);
151 memset(output, 0x00, 33);
152
153 sha2_file( {filename}, output, 0);
154 hexify( hash_str, output, 32 );
155
156 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
157}
158END_CASE
159
160BEGIN_CASE
161sha384_file:filename:hex_hash_string
162{
163 unsigned char hash_str[97];
164 unsigned char output[49];
165
166 memset(hash_str, 0x00, 97);
167 memset(output, 0x00, 49);
168
169 sha4_file( {filename}, output, 1);
170 hexify( hash_str, output, 48 );
171
172 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
173}
174END_CASE
175
176BEGIN_CASE
177sha512_file:filename:hex_hash_string
178{
179 unsigned char hash_str[129];
180 unsigned char output[65];
181
182 memset(hash_str, 0x00, 129);
183 memset(output, 0x00, 65);
184
185 sha4_file( {filename}, output, 0);
186 hexify( hash_str, output, 64 );
187
188 TEST_ASSERT( strcmp( (char *) hash_str, {hex_hash_string} ) == 0 );
189}
190END_CASE
191
192BEGIN_CASE
193sha1_selftest:
194{
195 TEST_ASSERT( sha1_self_test( 0 ) == 0 );
196}
197END_CASE
198
199BEGIN_CASE
200sha2_selftest:
201{
202 TEST_ASSERT( sha2_self_test( 0 ) == 0 );
203}
204END_CASE
205
206BEGIN_CASE
207sha4_selftest:
208{
209 TEST_ASSERT( sha4_self_test( 0 ) == 0 );
210}
211END_CASE