blob: 12a5e1b49eadde4722ae7b144c455e6c6d08c3ba [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 Bakkerdd0aae92014-04-17 16:06:37 +020019 strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
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 Bakkerdd0aae92014-04-17 16:06:37 +020039 strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
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 Bakkerdd0aae92014-04-17 16:06:37 +020059 strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
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
Paul Bakkerdd0aae92014-04-17 16:06:37 +020079 strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +010080
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 Bakker14e8be42014-06-26 12:25:06 +0200101 md2_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000102
Paul Bakker33b43f12013-08-20 11:48:36 +0200103 key_len = unhexify( key_str, hex_key_string );
104 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000105
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100106 /* Test the all-in-one interface */
107 memset( hash_str, 0x00, sizeof hash_str );
108 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000109
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100110 md2_hmac( key_str, key_len, src_str, src_len, output );
111
112 hexify( hash_str, output, sizeof output );
113 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
114
115 /* Also test the "streaming" interface */
116 memset( hash_str, 0x00, sizeof hash_str );
117 memset( output, 0x00, sizeof output );
118 memset( &ctx, 0x00, sizeof ctx );
119
120 md2_hmac_starts( &ctx, key_str, key_len );
121 md2_hmac_update( &ctx, src_str, 0 );
122 md2_hmac_update( &ctx, src_str, src_len / 2 );
123 md2_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
124 md2_hmac_update( &ctx, src_str + src_len, 0 );
125 md2_hmac_finish( &ctx, output );
126
127 hexify( hash_str, output, sizeof output );
128 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
129
130 /* Again, to test hmac_reset() */
131 memset( hash_str, 0x00, sizeof hash_str );
132 memset( output, 0x00, sizeof output );
133
134 md2_hmac_reset( &ctx );
135 md2_hmac_update( &ctx, src_str, src_len / 2 );
136 md2_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
137 md2_hmac_finish( &ctx, output );
138
139 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200140 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200141
142 md2_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000143}
Paul Bakker33b43f12013-08-20 11:48:36 +0200144/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000145
Paul Bakker33b43f12013-08-20 11:48:36 +0200146/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
147void md4_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
148 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000149{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100150 unsigned char src_str[200];
151 unsigned char key_str[200];
152 unsigned char hash_str[33];
153 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000154 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100155 md4_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000156
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100157 memset( src_str, 0x00, sizeof src_str );
158 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200159 md4_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000160
Paul Bakker33b43f12013-08-20 11:48:36 +0200161 key_len = unhexify( key_str, hex_key_string );
162 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000163
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100164 /* Test the all-in-one interface */
165 memset( hash_str, 0x00, sizeof hash_str );
166 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000167
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100168 md4_hmac( key_str, key_len, src_str, src_len, output );
169
170 hexify( hash_str, output, sizeof output );
171 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
172
173 /* Also test the "streaming" interface */
174 memset( hash_str, 0x00, sizeof hash_str );
175 memset( output, 0x00, sizeof output );
176 memset( &ctx, 0x00, sizeof ctx );
177
178 md4_hmac_starts( &ctx, key_str, key_len );
179 md4_hmac_update( &ctx, src_str, 0 );
180 md4_hmac_update( &ctx, src_str, src_len / 2 );
181 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
182 md4_hmac_update( &ctx, src_str + src_len, 0 );
183 md4_hmac_finish( &ctx, output );
184
185 hexify( hash_str, output, sizeof output );
186 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
187
188 /* Again, to test hmac_reset() */
189 memset( hash_str, 0x00, sizeof hash_str );
190 memset( output, 0x00, sizeof output );
191
192 md4_hmac_reset( &ctx );
193 md4_hmac_update( &ctx, src_str, src_len / 2 );
194 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
195 md4_hmac_finish( &ctx, output );
196
197 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200198 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200199
200 md4_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000201}
Paul Bakker33b43f12013-08-20 11:48:36 +0200202/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000203
Paul Bakker33b43f12013-08-20 11:48:36 +0200204/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
205void md5_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
206 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000207{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100208 unsigned char src_str[200];
209 unsigned char key_str[200];
210 unsigned char hash_str[33];
211 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000212 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100213 md5_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000214
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100215 memset( src_str, 0x00, sizeof src_str );
216 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200217 md5_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000218
Paul Bakker33b43f12013-08-20 11:48:36 +0200219 key_len = unhexify( key_str, hex_key_string );
220 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000221
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100222 /* Test the all-in-one interface */
223 memset( hash_str, 0x00, sizeof hash_str );
224 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000225
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100226 md5_hmac( key_str, key_len, src_str, src_len, output );
227
228 hexify( hash_str, output, sizeof output );
229 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
230
231 /* Also test the "streaming" interface */
232 memset( hash_str, 0x00, sizeof hash_str );
233 memset( output, 0x00, sizeof output );
234 memset( &ctx, 0x00, sizeof ctx );
235
236 md5_hmac_starts( &ctx, key_str, key_len );
237 md5_hmac_update( &ctx, src_str, 0 );
238 md5_hmac_update( &ctx, src_str, src_len / 2 );
239 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
240 md5_hmac_update( &ctx, src_str + src_len, 0 );
241 md5_hmac_finish( &ctx, output );
242
243 hexify( hash_str, output, sizeof output );
244 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
245
246 /* Again, to test hmac_reset() */
247 memset( hash_str, 0x00, sizeof hash_str );
248 memset( output, 0x00, sizeof output );
249
250 md5_hmac_reset( &ctx );
251 md5_hmac_update( &ctx, src_str, src_len / 2 );
252 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
253 md5_hmac_finish( &ctx, output );
254
255 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200256 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200257
258 md5_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000259}
Paul Bakker33b43f12013-08-20 11:48:36 +0200260/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000261
Paul Bakker61b699e2014-01-22 13:35:29 +0100262/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C */
263void ripemd160_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
264 char *hex_hash_string )
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100265{
266 unsigned char src_str[200];
267 unsigned char key_str[200];
268 unsigned char hash_str[41];
269 unsigned char output[20];
270 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100271 ripemd160_context ctx;
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100272
273 memset( src_str, 0x00, sizeof src_str );
274 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200275 ripemd160_init( &ctx );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100276
277 key_len = unhexify( key_str, hex_key_string );
278 src_len = unhexify( src_str, hex_src_string );
279
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100280 /* Test the all-in-one interface */
281 memset( hash_str, 0x00, sizeof hash_str );
282 memset( output, 0x00, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100283
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100284 ripemd160_hmac( key_str, key_len, src_str, src_len, output );
285
286 hexify( hash_str, output, sizeof output );
287 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
288
289 /* Also test the "streaming" interface */
290 memset( hash_str, 0x00, sizeof hash_str );
291 memset( output, 0x00, sizeof output );
292 memset( &ctx, 0x00, sizeof ctx );
293
294 ripemd160_hmac_starts( &ctx, key_str, key_len );
295 ripemd160_hmac_update( &ctx, src_str, 0 );
296 ripemd160_hmac_update( &ctx, src_str, src_len / 2 );
297 ripemd160_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
298 ripemd160_hmac_update( &ctx, src_str + src_len, 0 );
299 ripemd160_hmac_finish( &ctx, output );
300
301 hexify( hash_str, output, sizeof output );
302 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
303
304 /* Again, to test hmac_reset() */
305 memset( hash_str, 0x00, sizeof hash_str );
306 memset( output, 0x00, sizeof output );
307
308 ripemd160_hmac_reset( &ctx );
309 ripemd160_hmac_update( &ctx, src_str, src_len / 2 );
310 ripemd160_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
311 ripemd160_hmac_finish( &ctx, output );
312
313 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100314 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200315
316 ripemd160_free( &ctx );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100317}
318/* END_CASE */
319
Paul Bakker428b9ba2013-09-15 15:20:37 +0200320/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200321void md2_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000322{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100323 unsigned char hash_str[33];
324 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000325
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100326 memset( hash_str, 0x00, sizeof hash_str );
327 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000328
Paul Bakker33b43f12013-08-20 11:48:36 +0200329 md2_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100330 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000331
Paul Bakker33b43f12013-08-20 11:48:36 +0200332 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000333}
Paul Bakker33b43f12013-08-20 11:48:36 +0200334/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000335
Paul Bakker428b9ba2013-09-15 15:20:37 +0200336/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200337void md4_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000338{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100339 unsigned char hash_str[33];
340 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000341
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100342 memset( hash_str, 0x00, sizeof hash_str );
343 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000344
Paul Bakker33b43f12013-08-20 11:48:36 +0200345 md4_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100346 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000347
Paul Bakker33b43f12013-08-20 11:48:36 +0200348 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000349}
Paul Bakker33b43f12013-08-20 11:48:36 +0200350/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000351
Paul Bakker428b9ba2013-09-15 15:20:37 +0200352/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200353void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000354{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100355 unsigned char hash_str[33];
356 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000357
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100358 memset( hash_str, 0x00, sizeof hash_str );
359 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000360
Paul Bakker33b43f12013-08-20 11:48:36 +0200361 md5_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100362 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000363
Paul Bakker33b43f12013-08-20 11:48:36 +0200364 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000365}
Paul Bakker33b43f12013-08-20 11:48:36 +0200366/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000367
Paul Bakker61b699e2014-01-22 13:35:29 +0100368/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_FS_IO */
369void ripemd160_file( char *filename, char *hex_hash_string )
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100370{
371 unsigned char hash_str[41];
372 unsigned char output[20];
373
374 memset(hash_str, 0x00, sizeof hash_str );
375 memset(output, 0x00, sizeof output );
376
Paul Bakker61b699e2014-01-22 13:35:29 +0100377 ripemd160_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100378 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100379
380 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
381}
382/* END_CASE */
383
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200384/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200385void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000386{
387 TEST_ASSERT( md2_self_test( 0 ) == 0 );
388}
Paul Bakker33b43f12013-08-20 11:48:36 +0200389/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000390
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200391/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200392void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000393{
394 TEST_ASSERT( md4_self_test( 0 ) == 0 );
395}
Paul Bakker33b43f12013-08-20 11:48:36 +0200396/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000397
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200398/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200399void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000400{
401 TEST_ASSERT( md5_self_test( 0 ) == 0 );
402}
Paul Bakker33b43f12013-08-20 11:48:36 +0200403/* END_CASE */
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100404
Paul Bakker61b699e2014-01-22 13:35:29 +0100405/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_SELF_TEST */
406void ripemd160_selftest()
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100407{
Paul Bakker61b699e2014-01-22 13:35:29 +0100408 TEST_ASSERT( ripemd160_self_test( 0 ) == 0 );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100409}
410/* END_CASE */