blob: ecc1b92186b0aa488ffa7141f2b6223c05e96683 [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
Paul Bakkerbd51b262014-07-10 15:26:12 +0200142exit:
Paul Bakker14e8be42014-06-26 12:25:06 +0200143 md2_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000144}
Paul Bakker33b43f12013-08-20 11:48:36 +0200145/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000146
Paul Bakker33b43f12013-08-20 11:48:36 +0200147/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
148void md4_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
149 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000150{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100151 unsigned char src_str[200];
152 unsigned char key_str[200];
153 unsigned char hash_str[33];
154 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000155 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100156 md4_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000157
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100158 memset( src_str, 0x00, sizeof src_str );
159 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200160 md4_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000161
Paul Bakker33b43f12013-08-20 11:48:36 +0200162 key_len = unhexify( key_str, hex_key_string );
163 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000164
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100165 /* Test the all-in-one interface */
166 memset( hash_str, 0x00, sizeof hash_str );
167 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000168
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100169 md4_hmac( key_str, key_len, src_str, src_len, output );
170
171 hexify( hash_str, output, sizeof output );
172 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
173
174 /* Also test the "streaming" interface */
175 memset( hash_str, 0x00, sizeof hash_str );
176 memset( output, 0x00, sizeof output );
177 memset( &ctx, 0x00, sizeof ctx );
178
179 md4_hmac_starts( &ctx, key_str, key_len );
180 md4_hmac_update( &ctx, src_str, 0 );
181 md4_hmac_update( &ctx, src_str, src_len / 2 );
182 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
183 md4_hmac_update( &ctx, src_str + src_len, 0 );
184 md4_hmac_finish( &ctx, output );
185
186 hexify( hash_str, output, sizeof output );
187 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
188
189 /* Again, to test hmac_reset() */
190 memset( hash_str, 0x00, sizeof hash_str );
191 memset( output, 0x00, sizeof output );
192
193 md4_hmac_reset( &ctx );
194 md4_hmac_update( &ctx, src_str, src_len / 2 );
195 md4_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
196 md4_hmac_finish( &ctx, output );
197
198 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200199 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200200
Paul Bakkerbd51b262014-07-10 15:26:12 +0200201exit:
Paul Bakker14e8be42014-06-26 12:25:06 +0200202 md4_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000203}
Paul Bakker33b43f12013-08-20 11:48:36 +0200204/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000205
Paul Bakker33b43f12013-08-20 11:48:36 +0200206/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
207void md5_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
208 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000209{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100210 unsigned char src_str[200];
211 unsigned char key_str[200];
212 unsigned char hash_str[33];
213 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000214 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100215 md5_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000216
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100217 memset( src_str, 0x00, sizeof src_str );
218 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200219 md5_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000220
Paul Bakker33b43f12013-08-20 11:48:36 +0200221 key_len = unhexify( key_str, hex_key_string );
222 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000223
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100224 /* Test the all-in-one interface */
225 memset( hash_str, 0x00, sizeof hash_str );
226 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000227
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100228 md5_hmac( key_str, key_len, src_str, src_len, output );
229
230 hexify( hash_str, output, sizeof output );
231 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
232
233 /* Also test the "streaming" interface */
234 memset( hash_str, 0x00, sizeof hash_str );
235 memset( output, 0x00, sizeof output );
236 memset( &ctx, 0x00, sizeof ctx );
237
238 md5_hmac_starts( &ctx, key_str, key_len );
239 md5_hmac_update( &ctx, src_str, 0 );
240 md5_hmac_update( &ctx, src_str, src_len / 2 );
241 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
242 md5_hmac_update( &ctx, src_str + src_len, 0 );
243 md5_hmac_finish( &ctx, output );
244
245 hexify( hash_str, output, sizeof output );
246 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
247
248 /* Again, to test hmac_reset() */
249 memset( hash_str, 0x00, sizeof hash_str );
250 memset( output, 0x00, sizeof output );
251
252 md5_hmac_reset( &ctx );
253 md5_hmac_update( &ctx, src_str, src_len / 2 );
254 md5_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
255 md5_hmac_finish( &ctx, output );
256
257 hexify( hash_str, output, sizeof output );
Paul Bakker33b43f12013-08-20 11:48:36 +0200258 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200259
Paul Bakkerbd51b262014-07-10 15:26:12 +0200260exit:
Paul Bakker14e8be42014-06-26 12:25:06 +0200261 md5_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000262}
Paul Bakker33b43f12013-08-20 11:48:36 +0200263/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000264
Paul Bakker61b699e2014-01-22 13:35:29 +0100265/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C */
266void ripemd160_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
267 char *hex_hash_string )
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100268{
269 unsigned char src_str[200];
270 unsigned char key_str[200];
271 unsigned char hash_str[41];
272 unsigned char output[20];
273 int key_len, src_len;
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100274 ripemd160_context ctx;
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100275
276 memset( src_str, 0x00, sizeof src_str );
277 memset( key_str, 0x00, sizeof key_str );
Paul Bakker14e8be42014-06-26 12:25:06 +0200278 ripemd160_init( &ctx );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100279
280 key_len = unhexify( key_str, hex_key_string );
281 src_len = unhexify( src_str, hex_src_string );
282
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100283 /* Test the all-in-one interface */
284 memset( hash_str, 0x00, sizeof hash_str );
285 memset( output, 0x00, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100286
Manuel Pégourié-Gonnard58319e72014-03-29 14:05:06 +0100287 ripemd160_hmac( key_str, key_len, src_str, src_len, output );
288
289 hexify( hash_str, output, sizeof output );
290 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
291
292 /* Also test the "streaming" interface */
293 memset( hash_str, 0x00, sizeof hash_str );
294 memset( output, 0x00, sizeof output );
295 memset( &ctx, 0x00, sizeof ctx );
296
297 ripemd160_hmac_starts( &ctx, key_str, key_len );
298 ripemd160_hmac_update( &ctx, src_str, 0 );
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_update( &ctx, src_str + src_len, 0 );
302 ripemd160_hmac_finish( &ctx, output );
303
304 hexify( hash_str, output, sizeof output );
305 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
306
307 /* Again, to test hmac_reset() */
308 memset( hash_str, 0x00, sizeof hash_str );
309 memset( output, 0x00, sizeof output );
310
311 ripemd160_hmac_reset( &ctx );
312 ripemd160_hmac_update( &ctx, src_str, src_len / 2 );
313 ripemd160_hmac_update( &ctx, src_str + src_len / 2, src_len - src_len / 2 );
314 ripemd160_hmac_finish( &ctx, output );
315
316 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100317 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakker14e8be42014-06-26 12:25:06 +0200318
Paul Bakkerbd51b262014-07-10 15:26:12 +0200319exit:
Paul Bakker14e8be42014-06-26 12:25:06 +0200320 ripemd160_free( &ctx );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100321}
322/* END_CASE */
323
Paul Bakker428b9ba2013-09-15 15:20:37 +0200324/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200325void md2_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 md2_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_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200341void md4_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 md4_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 Bakker428b9ba2013-09-15 15:20:37 +0200356/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200357void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000358{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100359 unsigned char hash_str[33];
360 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000361
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100362 memset( hash_str, 0x00, sizeof hash_str );
363 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000364
Paul Bakker33b43f12013-08-20 11:48:36 +0200365 md5_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100366 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000367
Paul Bakker33b43f12013-08-20 11:48:36 +0200368 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000369}
Paul Bakker33b43f12013-08-20 11:48:36 +0200370/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000371
Paul Bakker61b699e2014-01-22 13:35:29 +0100372/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_FS_IO */
373void ripemd160_file( char *filename, char *hex_hash_string )
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100374{
375 unsigned char hash_str[41];
376 unsigned char output[20];
377
378 memset(hash_str, 0x00, sizeof hash_str );
379 memset(output, 0x00, sizeof output );
380
Paul Bakker61b699e2014-01-22 13:35:29 +0100381 ripemd160_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100382 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100383
384 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
385}
386/* END_CASE */
387
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200388/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200389void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000390{
391 TEST_ASSERT( md2_self_test( 0 ) == 0 );
392}
Paul Bakker33b43f12013-08-20 11:48:36 +0200393/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000394
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200395/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200396void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000397{
398 TEST_ASSERT( md4_self_test( 0 ) == 0 );
399}
Paul Bakker33b43f12013-08-20 11:48:36 +0200400/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000401
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200402/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200403void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000404{
405 TEST_ASSERT( md5_self_test( 0 ) == 0 );
406}
Paul Bakker33b43f12013-08-20 11:48:36 +0200407/* END_CASE */
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100408
Paul Bakker61b699e2014-01-22 13:35:29 +0100409/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_SELF_TEST */
410void ripemd160_selftest()
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100411{
Paul Bakker61b699e2014-01-22 13:35:29 +0100412 TEST_ASSERT( ripemd160_self_test( 0 ) == 0 );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100413}
414/* END_CASE */