blob: b9db696f25bc5fbf2f99a07c0d7dfa285fa7bfc6 [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>
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +01005#include <polarssl/rmd160.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{
11 unsigned char src_str[1000];
12 unsigned char hash_str[1000];
13 unsigned char output[33];
14
15 memset(src_str, 0x00, 1000);
16 memset(hash_str, 0x00, 1000);
17 memset(output, 0x00, 33);
18
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 );
22 hexify( hash_str, output, 16 );
23
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{
31 unsigned char src_str[1000];
32 unsigned char hash_str[1000];
33 unsigned char output[33];
34
35 memset(src_str, 0x00, 1000);
36 memset(hash_str, 0x00, 1000);
37 memset(output, 0x00, 33);
38
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 );
42 hexify( hash_str, output, 16 );
43
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{
51 unsigned char src_str[1000];
52 unsigned char hash_str[1000];
53 unsigned char output[33];
54
55 memset(src_str, 0x00, 1000);
56 memset(hash_str, 0x00, 1000);
57 memset(output, 0x00, 33);
58
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 );
62 hexify( hash_str, output, 16 );
63
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
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +010068/* BEGIN_CASE depends_on:POLARSSL_RMD160_C */
69void rmd160_text( char *text_src_string, char *hex_hash_string )
70{
71 unsigned char src_str[1000];
72 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
81 rmd160( src_str, strlen( (char *) src_str ), output );
82 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{
92 unsigned char src_str[10000];
93 unsigned char key_str[10000];
94 unsigned char hash_str[10000];
95 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +000096 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +000097
98 memset(src_str, 0x00, 10000);
99 memset(key_str, 0x00, 10000);
100 memset(hash_str, 0x00, 10000);
101 memset(output, 0x00, 33);
102
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 );
107 hexify( hash_str, output, 16 );
108
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{
117 unsigned char src_str[10000];
118 unsigned char key_str[10000];
119 unsigned char hash_str[10000];
120 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +0000121 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000122
123 memset(src_str, 0x00, 10000);
124 memset(key_str, 0x00, 10000);
125 memset(hash_str, 0x00, 10000);
126 memset(output, 0x00, 33);
127
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 );
132 hexify( hash_str, output, 16 );
133
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{
142 unsigned char src_str[10000];
143 unsigned char key_str[10000];
144 unsigned char hash_str[10000];
145 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +0000146 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000147
148 memset(src_str, 0x00, 10000);
149 memset(key_str, 0x00, 10000);
150 memset(hash_str, 0x00, 10000);
151 memset(output, 0x00, 33);
152
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 );
157 hexify( hash_str, output, 16 );
158
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 Bakker428b9ba2013-09-15 15:20:37 +0200163/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200164void md2_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000165{
166 unsigned char hash_str[65];
167 unsigned char output[33];
168
169 memset(hash_str, 0x00, 65);
170 memset(output, 0x00, 33);
171
Paul Bakker33b43f12013-08-20 11:48:36 +0200172 md2_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000173 hexify( hash_str, output, 16 );
174
Paul Bakker33b43f12013-08-20 11:48:36 +0200175 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000176}
Paul Bakker33b43f12013-08-20 11:48:36 +0200177/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000178
Paul Bakker428b9ba2013-09-15 15:20:37 +0200179/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200180void md4_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000181{
182 unsigned char hash_str[65];
183 unsigned char output[33];
184
185 memset(hash_str, 0x00, 65);
186 memset(output, 0x00, 33);
187
Paul Bakker33b43f12013-08-20 11:48:36 +0200188 md4_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000189 hexify( hash_str, output, 16 );
190
Paul Bakker33b43f12013-08-20 11:48:36 +0200191 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000192}
Paul Bakker33b43f12013-08-20 11:48:36 +0200193/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000194
Paul Bakker428b9ba2013-09-15 15:20:37 +0200195/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200196void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000197{
198 unsigned char hash_str[65];
199 unsigned char output[33];
200
201 memset(hash_str, 0x00, 65);
202 memset(output, 0x00, 33);
203
Paul Bakker33b43f12013-08-20 11:48:36 +0200204 md5_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000205 hexify( hash_str, output, 16 );
206
Paul Bakker33b43f12013-08-20 11:48:36 +0200207 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000208}
Paul Bakker33b43f12013-08-20 11:48:36 +0200209/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000210
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100211/* BEGIN_CASE depends_on:POLARSSL_RMD160_C:POLARSSL_FS_IO */
212void rmd160_file( char *filename, char *hex_hash_string )
213{
214 unsigned char hash_str[41];
215 unsigned char output[20];
216
217 memset(hash_str, 0x00, sizeof hash_str );
218 memset(output, 0x00, sizeof output );
219
220 rmd160_file( filename, output);
221 hexify( hash_str, output, 20 );
222
223 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
224}
225/* END_CASE */
226
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200227/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200228void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000229{
230 TEST_ASSERT( md2_self_test( 0 ) == 0 );
231}
Paul Bakker33b43f12013-08-20 11:48:36 +0200232/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000233
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200234/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200235void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000236{
237 TEST_ASSERT( md4_self_test( 0 ) == 0 );
238}
Paul Bakker33b43f12013-08-20 11:48:36 +0200239/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000240
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200241/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200242void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000243{
244 TEST_ASSERT( md5_self_test( 0 ) == 0 );
245}
Paul Bakker33b43f12013-08-20 11:48:36 +0200246/* END_CASE */
Manuel Pégourié-Gonnardcab4a882014-01-17 12:42:35 +0100247
248/* BEGIN_CASE depends_on:POLARSSL_RMD160_C:POLARSSL_SELF_TEST */
249void rmd160_selftest()
250{
251 TEST_ASSERT( rmd160_self_test( 0 ) == 0 );
252}
253/* END_CASE */