blob: 0676d820012bfd01942b69d440c803e1c8215413 [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Paul Bakker367dae42009-06-28 21:50:27 +00002#include <polarssl/md2.h>
3#include <polarssl/md4.h>
4#include <polarssl/md5.h>
Paul Bakker61b699e2014-01-22 13:35:29 +01005#include <polarssl/ripemd160.h>
Paul Bakker33b43f12013-08-20 11:48:36 +02006/* END_HEADER */
Paul Bakker367dae42009-06-28 21:50:27 +00007
Paul Bakker33b43f12013-08-20 11:48:36 +02008/* BEGIN_CASE depends_on:POLARSSL_MD2_C */
9void md2_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000010{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010011 unsigned char src_str[100];
12 unsigned char hash_str[33];
13 unsigned char output[16];
Paul Bakker367dae42009-06-28 21:50:27 +000014
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010015 memset( src_str, 0x00, sizeof src_str );
16 memset( hash_str, 0x00, sizeof hash_str );
17 memset( output, 0x00, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000018
Paul Bakker33b43f12013-08-20 11:48:36 +020019 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000020
21 md2( src_str, strlen( (char *) src_str ), output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010022 hexify( hash_str, output, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000023
Paul Bakker33b43f12013-08-20 11:48:36 +020024 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000025}
Paul Bakker33b43f12013-08-20 11:48:36 +020026/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000027
Paul Bakker33b43f12013-08-20 11:48:36 +020028/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
29void md4_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000030{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010031 unsigned char src_str[100];
32 unsigned char hash_str[33];
33 unsigned char output[16];
Paul Bakker367dae42009-06-28 21:50:27 +000034
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010035 memset( src_str, 0x00, sizeof src_str );
36 memset( hash_str, 0x00, sizeof hash_str );
37 memset( output, 0x00, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000038
Paul Bakker33b43f12013-08-20 11:48:36 +020039 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000040
41 md4( src_str, strlen( (char *) src_str ), output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010042 hexify( hash_str, output, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000043
Paul Bakker33b43f12013-08-20 11:48:36 +020044 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000045}
Paul Bakker33b43f12013-08-20 11:48:36 +020046/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000047
Paul Bakker33b43f12013-08-20 11:48:36 +020048/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
49void md5_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000050{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010051 unsigned char src_str[100];
52 unsigned char hash_str[33];
53 unsigned char output[16];
Paul Bakker367dae42009-06-28 21:50:27 +000054
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010055 memset( src_str, 0x00, sizeof src_str );
56 memset( hash_str, 0x00, sizeof hash_str );
57 memset( output, 0x00, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000058
Paul Bakker33b43f12013-08-20 11:48:36 +020059 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000060
61 md5( src_str, strlen( (char *) src_str ), output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010062 hexify( hash_str, output, sizeof output );
Paul Bakker367dae42009-06-28 21:50:27 +000063
Paul Bakker33b43f12013-08-20 11:48:36 +020064 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000065}
Paul Bakker33b43f12013-08-20 11:48:36 +020066/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000067
Paul Bakker61b699e2014-01-22 13:35:29 +010068/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C */
69void ripemd160_text( char *text_src_string, char *hex_hash_string )
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +010070{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010071 unsigned char src_str[100];
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +010072 unsigned char hash_str[41];
73 unsigned char output[20];
74
75 memset(src_str, 0x00, sizeof src_str);
76 memset(hash_str, 0x00, sizeof hash_str);
77 memset(output, 0x00, sizeof output);
78
79 strcpy( (char *) src_str, text_src_string );
80
Paul Bakker61b699e2014-01-22 13:35:29 +010081 ripemd160( src_str, strlen( (char *) src_str ), output );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +010082 hexify( hash_str, output, sizeof output );
83
84 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
85}
86/* END_CASE */
87
Paul Bakker33b43f12013-08-20 11:48:36 +020088/* BEGIN_CASE depends_on:POLARSSL_MD2_C */
89void md2_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
90 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +000091{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010092 unsigned char src_str[200];
93 unsigned char key_str[200];
94 unsigned char hash_str[33];
95 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +000096 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +010097 md2_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +000098
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010099 memset( src_str, 0x00, sizeof src_str );
100 memset( key_str, 0x00, sizeof key_str );
Paul Bakkere896fea2009-07-06 06:40:23 +0000101
Paul Bakker33b43f12013-08-20 11:48:36 +0200102 key_len = unhexify( key_str, hex_key_string );
103 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000104
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100105 /* Test the all-in-one interface */
106 memset( hash_str, 0x00, sizeof hash_str );
107 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000108
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100109 md2_hmac( key_str, key_len, src_str, src_len, output );
110
111 hexify( hash_str, output, sizeof output );
112 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
113
114 /* Also test the "streaming" interface */
115 memset( hash_str, 0x00, sizeof hash_str );
116 memset( output, 0x00, sizeof output );
117 memset( &ctx, 0x00, sizeof ctx );
118
119 md2_hmac_starts( &ctx, key_str, key_len );
120 md2_hmac_update( &ctx, src_str, 0 );
121 md2_hmac_update( &ctx, src_str, src_len / 2 );
122 md2_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
123 md2_hmac_update( &ctx, src_str + src_len, 0 );
124 md2_hmac_finish( &ctx, output );
125
126 hexify( hash_str, output, sizeof output );
127 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
128
129 /* Again, to test hmac_reset() */
130 memset( hash_str, 0x00, sizeof hash_str );
131 memset( output, 0x00, sizeof output );
132
133 md2_hmac_reset( &ctx );
134 md2_hmac_update( &ctx, src_str, src_len / 2 );
135 md2_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
136 md2_hmac_finish( &ctx, output );
137
138 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200139 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000140}
Paul Bakker33b43f12013-08-20 11:48:36 +0200141/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000142
Paul Bakker33b43f12013-08-20 11:48:36 +0200143/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
144void md4_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
145 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000146{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100147 unsigned char src_str[200];
148 unsigned char key_str[200];
149 unsigned char hash_str[33];
150 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000151 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100152 md4_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000153
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100154 memset( src_str, 0x00, sizeof src_str );
155 memset( key_str, 0x00, sizeof key_str );
Paul Bakkere896fea2009-07-06 06:40:23 +0000156
Paul Bakker33b43f12013-08-20 11:48:36 +0200157 key_len = unhexify( key_str, hex_key_string );
158 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000159
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100160 /* Test the all-in-one interface */
161 memset( hash_str, 0x00, sizeof hash_str );
162 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000163
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100164 md4_hmac( key_str, key_len, src_str, src_len, output );
165
166 hexify( hash_str, output, sizeof output );
167 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
168
169 /* Also test the "streaming" interface */
170 memset( hash_str, 0x00, sizeof hash_str );
171 memset( output, 0x00, sizeof output );
172 memset( &ctx, 0x00, sizeof ctx );
173
174 md4_hmac_starts( &ctx, key_str, key_len );
175 md4_hmac_update( &ctx, src_str, 0 );
176 md4_hmac_update( &ctx, src_str, src_len / 2 );
177 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
178 md4_hmac_update( &ctx, src_str + src_len, 0 );
179 md4_hmac_finish( &ctx, output );
180
181 hexify( hash_str, output, sizeof output );
182 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
183
184 /* Again, to test hmac_reset() */
185 memset( hash_str, 0x00, sizeof hash_str );
186 memset( output, 0x00, sizeof output );
187
188 md4_hmac_reset( &ctx );
189 md4_hmac_update( &ctx, src_str, src_len / 2 );
190 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
191 md4_hmac_finish( &ctx, output );
192
193 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200194 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000195}
Paul Bakker33b43f12013-08-20 11:48:36 +0200196/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000197
Paul Bakker33b43f12013-08-20 11:48:36 +0200198/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
199void md5_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
200 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000201{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100202 unsigned char src_str[200];
203 unsigned char key_str[200];
204 unsigned char hash_str[33];
205 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000206 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100207 md5_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000208
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100209 memset( src_str, 0x00, sizeof src_str );
210 memset( key_str, 0x00, sizeof key_str );
Paul Bakkere896fea2009-07-06 06:40:23 +0000211
Paul Bakker33b43f12013-08-20 11:48:36 +0200212 key_len = unhexify( key_str, hex_key_string );
213 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000214
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100215 /* Test the all-in-one interface */
216 memset( hash_str, 0x00, sizeof hash_str );
217 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000218
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100219 md5_hmac( key_str, key_len, src_str, src_len, output );
220
221 hexify( hash_str, output, sizeof output );
222 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
223
224 /* Also test the "streaming" interface */
225 memset( hash_str, 0x00, sizeof hash_str );
226 memset( output, 0x00, sizeof output );
227 memset( &ctx, 0x00, sizeof ctx );
228
229 md5_hmac_starts( &ctx, key_str, key_len );
230 md5_hmac_update( &ctx, src_str, 0 );
231 md5_hmac_update( &ctx, src_str, src_len / 2 );
232 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
233 md5_hmac_update( &ctx, src_str + src_len, 0 );
234 md5_hmac_finish( &ctx, output );
235
236 hexify( hash_str, output, sizeof output );
237 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
238
239 /* Again, to test hmac_reset() */
240 memset( hash_str, 0x00, sizeof hash_str );
241 memset( output, 0x00, sizeof output );
242
243 md5_hmac_reset( &ctx );
244 md5_hmac_update( &ctx, src_str, src_len / 2 );
245 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
246 md5_hmac_finish( &ctx, output );
247
248 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200249 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000250}
Paul Bakker33b43f12013-08-20 11:48:36 +0200251/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000252
Paul Bakker61b699e2014-01-22 13:35:29 +0100253/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C */
254void ripemd160_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
255 char *hex_hash_string )
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100256{
257 unsigned char src_str[200];
258 unsigned char key_str[200];
259 unsigned char hash_str[41];
260 unsigned char output[20];
261 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100262 ripemd160_context ctx;
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100263
264 memset( src_str, 0x00, sizeof src_str );
265 memset( key_str, 0x00, sizeof key_str );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100266
267 key_len = unhexify( key_str, hex_key_string );
268 src_len = unhexify( src_str, hex_src_string );
269
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100270 /* Test the all-in-one interface */
271 memset( hash_str, 0x00, sizeof hash_str );
272 memset( output, 0x00, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100273
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100274 ripemd160_hmac( key_str, key_len, src_str, src_len, output );
275
276 hexify( hash_str, output, sizeof output );
277 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
278
279 /* Also test the "streaming" interface */
280 memset( hash_str, 0x00, sizeof hash_str );
281 memset( output, 0x00, sizeof output );
282 memset( &ctx, 0x00, sizeof ctx );
283
284 ripemd160_hmac_starts( &ctx, key_str, key_len );
285 ripemd160_hmac_update( &ctx, src_str, 0 );
286 ripemd160_hmac_update( &ctx, src_str, src_len / 2 );
287 ripemd160_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
288 ripemd160_hmac_update( &ctx, src_str + src_len, 0 );
289 ripemd160_hmac_finish( &ctx, output );
290
291 hexify( hash_str, output, sizeof output );
292 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
293
294 /* Again, to test hmac_reset() */
295 memset( hash_str, 0x00, sizeof hash_str );
296 memset( output, 0x00, sizeof output );
297
298 ripemd160_hmac_reset( &ctx );
299 ripemd160_hmac_update( &ctx, src_str, src_len / 2 );
300 ripemd160_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
301 ripemd160_hmac_finish( &ctx, output );
302
303 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100304 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
305}
306/* END_CASE */
307
Paul Bakker428b9ba2013-09-15 15:20:37 +0200308/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200309void md2_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000310{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100311 unsigned char hash_str[33];
312 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000313
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100314 memset( hash_str, 0x00, sizeof hash_str );
315 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000316
Paul Bakker33b43f12013-08-20 11:48:36 +0200317 md2_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100318 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000319
Paul Bakker33b43f12013-08-20 11:48:36 +0200320 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000321}
Paul Bakker33b43f12013-08-20 11:48:36 +0200322/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000323
Paul Bakker428b9ba2013-09-15 15:20:37 +0200324/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200325void md4_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000326{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100327 unsigned char hash_str[33];
328 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000329
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100330 memset( hash_str, 0x00, sizeof hash_str );
331 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000332
Paul Bakker33b43f12013-08-20 11:48:36 +0200333 md4_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100334 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000335
Paul Bakker33b43f12013-08-20 11:48:36 +0200336 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000337}
Paul Bakker33b43f12013-08-20 11:48:36 +0200338/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000339
Paul Bakker428b9ba2013-09-15 15:20:37 +0200340/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200341void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000342{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100343 unsigned char hash_str[33];
344 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000345
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100346 memset( hash_str, 0x00, sizeof hash_str );
347 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000348
Paul Bakker33b43f12013-08-20 11:48:36 +0200349 md5_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100350 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000351
Paul Bakker33b43f12013-08-20 11:48:36 +0200352 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000353}
Paul Bakker33b43f12013-08-20 11:48:36 +0200354/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000355
Paul Bakker61b699e2014-01-22 13:35:29 +0100356/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_FS_IO */
357void ripemd160_file( char *filename, char *hex_hash_string )
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100358{
359 unsigned char hash_str[41];
360 unsigned char output[20];
361
362 memset(hash_str, 0x00, sizeof hash_str );
363 memset(output, 0x00, sizeof output );
364
Paul Bakker61b699e2014-01-22 13:35:29 +0100365 ripemd160_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100366 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100367
368 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
369}
370/* END_CASE */
371
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200372/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200373void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000374{
375 TEST_ASSERT( md2_self_test( 0 ) == 0 );
376}
Paul Bakker33b43f12013-08-20 11:48:36 +0200377/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000378
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200379/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200380void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000381{
382 TEST_ASSERT( md4_self_test( 0 ) == 0 );
383}
Paul Bakker33b43f12013-08-20 11:48:36 +0200384/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000385
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200386/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200387void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000388{
389 TEST_ASSERT( md5_self_test( 0 ) == 0 );
390}
Paul Bakker33b43f12013-08-20 11:48:36 +0200391/* END_CASE */
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100392
Paul Bakker61b699e2014-01-22 13:35:29 +0100393/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_SELF_TEST */
394void ripemd160_selftest()
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100395{
Paul Bakker61b699e2014-01-22 13:35:29 +0100396 TEST_ASSERT( ripemd160_self_test( 0 ) == 0 );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100397}
398/* END_CASE */