blob: 6b21b2d20bacd25030cd2118985362503b040d1c [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;
Paul Bakkere896fea2009-07-06 06:40:23 +000097
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +010098 memset( src_str, 0x00, sizeof src_str );
99 memset( key_str, 0x00, sizeof key_str );
100 memset( hash_str, 0x00, sizeof hash_str );
101 memset( output, 0x00, sizeof output );
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
106 md2_hmac( key_str, key_len, src_str, src_len, output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100107 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000108
Paul Bakker33b43f12013-08-20 11:48:36 +0200109 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000110}
Paul Bakker33b43f12013-08-20 11:48:36 +0200111/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000112
Paul Bakker33b43f12013-08-20 11:48:36 +0200113/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
114void md4_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
115 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000116{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100117 unsigned char src_str[200];
118 unsigned char key_str[200];
119 unsigned char hash_str[33];
120 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000121 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000122
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100123 memset( src_str, 0x00, sizeof src_str );
124 memset( key_str, 0x00, sizeof key_str );
125 memset( hash_str, 0x00, sizeof hash_str );
126 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000127
Paul Bakker33b43f12013-08-20 11:48:36 +0200128 key_len = unhexify( key_str, hex_key_string );
129 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000130
131 md4_hmac( key_str, key_len, src_str, src_len, output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100132 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000133
Paul Bakker33b43f12013-08-20 11:48:36 +0200134 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000135}
Paul Bakker33b43f12013-08-20 11:48:36 +0200136/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000137
Paul Bakker33b43f12013-08-20 11:48:36 +0200138/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
139void md5_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
140 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000141{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100142 unsigned char src_str[200];
143 unsigned char key_str[200];
144 unsigned char hash_str[33];
145 unsigned char output[16];
Paul Bakker69998dd2009-07-11 19:15:20 +0000146 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000147
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100148 memset( src_str, 0x00, sizeof src_str );
149 memset( key_str, 0x00, sizeof key_str );
150 memset( hash_str, 0x00, sizeof hash_str );
151 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000152
Paul Bakker33b43f12013-08-20 11:48:36 +0200153 key_len = unhexify( key_str, hex_key_string );
154 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000155
156 md5_hmac( key_str, key_len, src_str, src_len, output );
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100157 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000158
Paul Bakker33b43f12013-08-20 11:48:36 +0200159 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000160}
Paul Bakker33b43f12013-08-20 11:48:36 +0200161/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000162
Paul Bakker61b699e2014-01-22 13:35:29 +0100163/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C */
164void ripemd160_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
165 char *hex_hash_string )
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100166{
167 unsigned char src_str[200];
168 unsigned char key_str[200];
169 unsigned char hash_str[41];
170 unsigned char output[20];
171 int key_len, src_len;
172
173 memset( src_str, 0x00, sizeof src_str );
174 memset( key_str, 0x00, sizeof key_str );
175 memset( hash_str, 0x00, sizeof hash_str );
176 memset( output, 0x00, sizeof output );
177
178 key_len = unhexify( key_str, hex_key_string );
179 src_len = unhexify( src_str, hex_src_string );
180
Paul Bakker61b699e2014-01-22 13:35:29 +0100181 ripemd160_hmac( key_str, key_len, src_str, src_len, output );
Manuel Pégourié-Gonnardff40c3a2014-01-17 19:49:15 +0100182 hexify( hash_str, output, sizeof output );
183
184 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
185}
186/* END_CASE */
187
Paul Bakker428b9ba2013-09-15 15:20:37 +0200188/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200189void md2_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000190{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100191 unsigned char hash_str[33];
192 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000193
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100194 memset( hash_str, 0x00, sizeof hash_str );
195 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000196
Paul Bakker33b43f12013-08-20 11:48:36 +0200197 md2_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100198 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000199
Paul Bakker33b43f12013-08-20 11:48:36 +0200200 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
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 Bakker428b9ba2013-09-15 15:20:37 +0200204/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200205void md4_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000206{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100207 unsigned char hash_str[33];
208 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000209
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100210 memset( hash_str, 0x00, sizeof hash_str );
211 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000212
Paul Bakker33b43f12013-08-20 11:48:36 +0200213 md4_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100214 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000215
Paul Bakker33b43f12013-08-20 11:48:36 +0200216 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000217}
Paul Bakker33b43f12013-08-20 11:48:36 +0200218/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000219
Paul Bakker428b9ba2013-09-15 15:20:37 +0200220/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200221void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000222{
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100223 unsigned char hash_str[33];
224 unsigned char output[16];
Paul Bakkere896fea2009-07-06 06:40:23 +0000225
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100226 memset( hash_str, 0x00, sizeof hash_str );
227 memset( output, 0x00, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000228
Paul Bakker33b43f12013-08-20 11:48:36 +0200229 md5_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100230 hexify( hash_str, output, sizeof output );
Paul Bakkere896fea2009-07-06 06:40:23 +0000231
Paul Bakker33b43f12013-08-20 11:48:36 +0200232 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000233}
Paul Bakker33b43f12013-08-20 11:48:36 +0200234/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000235
Paul Bakker61b699e2014-01-22 13:35:29 +0100236/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_FS_IO */
237void ripemd160_file( char *filename, char *hex_hash_string )
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100238{
239 unsigned char hash_str[41];
240 unsigned char output[20];
241
242 memset(hash_str, 0x00, sizeof hash_str );
243 memset(output, 0x00, sizeof output );
244
Paul Bakker61b699e2014-01-22 13:35:29 +0100245 ripemd160_file( filename, output);
Manuel Pégourié-Gonnard130fe972014-01-17 14:23:48 +0100246 hexify( hash_str, output, sizeof output );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100247
248 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
249}
250/* END_CASE */
251
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200252/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200253void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000254{
255 TEST_ASSERT( md2_self_test( 0 ) == 0 );
256}
Paul Bakker33b43f12013-08-20 11:48:36 +0200257/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000258
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200259/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200260void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000261{
262 TEST_ASSERT( md4_self_test( 0 ) == 0 );
263}
Paul Bakker33b43f12013-08-20 11:48:36 +0200264/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000265
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200266/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200267void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000268{
269 TEST_ASSERT( md5_self_test( 0 ) == 0 );
270}
Paul Bakker33b43f12013-08-20 11:48:36 +0200271/* END_CASE */
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100272
Paul Bakker61b699e2014-01-22 13:35:29 +0100273/* BEGIN_CASE depends_on:POLARSSL_RIPEMD160_C:POLARSSL_SELF_TEST */
274void ripemd160_selftest()
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100275{
Paul Bakker61b699e2014-01-22 13:35:29 +0100276 TEST_ASSERT( ripemd160_self_test( 0 ) == 0 );
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100277}
278/* END_CASE */