blob: e9a8347403584f75585bf94819386a0f2a9af34f [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 Bakker33b43f12013-08-20 11:48:36 +02005/* END_HEADER */
Paul Bakker367dae42009-06-28 21:50:27 +00006
Paul Bakker33b43f12013-08-20 11:48:36 +02007/* BEGIN_CASE depends_on:POLARSSL_MD2_C */
8void md2_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +00009{
10 unsigned char src_str[1000];
11 unsigned char hash_str[1000];
12 unsigned char output[33];
13
14 memset(src_str, 0x00, 1000);
15 memset(hash_str, 0x00, 1000);
16 memset(output, 0x00, 33);
17
Paul Bakker33b43f12013-08-20 11:48:36 +020018 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000019
20 md2( src_str, strlen( (char *) src_str ), output );
21 hexify( hash_str, output, 16 );
22
Paul Bakker33b43f12013-08-20 11:48:36 +020023 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000024}
Paul Bakker33b43f12013-08-20 11:48:36 +020025/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000026
Paul Bakker33b43f12013-08-20 11:48:36 +020027/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
28void md4_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000029{
30 unsigned char src_str[1000];
31 unsigned char hash_str[1000];
32 unsigned char output[33];
33
34 memset(src_str, 0x00, 1000);
35 memset(hash_str, 0x00, 1000);
36 memset(output, 0x00, 33);
37
Paul Bakker33b43f12013-08-20 11:48:36 +020038 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000039
40 md4( src_str, strlen( (char *) src_str ), output );
41 hexify( hash_str, output, 16 );
42
Paul Bakker33b43f12013-08-20 11:48:36 +020043 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000044}
Paul Bakker33b43f12013-08-20 11:48:36 +020045/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000046
Paul Bakker33b43f12013-08-20 11:48:36 +020047/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
48void md5_text( char *text_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000049{
50 unsigned char src_str[1000];
51 unsigned char hash_str[1000];
52 unsigned char output[33];
53
54 memset(src_str, 0x00, 1000);
55 memset(hash_str, 0x00, 1000);
56 memset(output, 0x00, 33);
57
Paul Bakker33b43f12013-08-20 11:48:36 +020058 strcpy( (char *) src_str, text_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000059
60 md5( src_str, strlen( (char *) src_str ), output );
61 hexify( hash_str, output, 16 );
62
Paul Bakker33b43f12013-08-20 11:48:36 +020063 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000064}
Paul Bakker33b43f12013-08-20 11:48:36 +020065/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000066
Paul Bakker33b43f12013-08-20 11:48:36 +020067/* BEGIN_CASE depends_on:POLARSSL_MD2_C */
68void md2_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
69 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +000070{
71 unsigned char src_str[10000];
72 unsigned char key_str[10000];
73 unsigned char hash_str[10000];
74 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +000075 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +000076
77 memset(src_str, 0x00, 10000);
78 memset(key_str, 0x00, 10000);
79 memset(hash_str, 0x00, 10000);
80 memset(output, 0x00, 33);
81
Paul Bakker33b43f12013-08-20 11:48:36 +020082 key_len = unhexify( key_str, hex_key_string );
83 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +000084
85 md2_hmac( key_str, key_len, src_str, src_len, output );
86 hexify( hash_str, output, 16 );
87
Paul Bakker33b43f12013-08-20 11:48:36 +020088 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +000089}
Paul Bakker33b43f12013-08-20 11:48:36 +020090/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000091
Paul Bakker33b43f12013-08-20 11:48:36 +020092/* BEGIN_CASE depends_on:POLARSSL_MD4_C */
93void md4_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
94 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +000095{
96 unsigned char src_str[10000];
97 unsigned char key_str[10000];
98 unsigned char hash_str[10000];
99 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +0000100 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000101
102 memset(src_str, 0x00, 10000);
103 memset(key_str, 0x00, 10000);
104 memset(hash_str, 0x00, 10000);
105 memset(output, 0x00, 33);
106
Paul Bakker33b43f12013-08-20 11:48:36 +0200107 key_len = unhexify( key_str, hex_key_string );
108 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000109
110 md4_hmac( key_str, key_len, src_str, src_len, output );
111 hexify( hash_str, output, 16 );
112
Paul Bakker33b43f12013-08-20 11:48:36 +0200113 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000114}
Paul Bakker33b43f12013-08-20 11:48:36 +0200115/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000116
Paul Bakker33b43f12013-08-20 11:48:36 +0200117/* BEGIN_CASE depends_on:POLARSSL_MD5_C */
118void md5_hmac( int trunc_size, char *hex_key_string, char *hex_src_string,
119 char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000120{
121 unsigned char src_str[10000];
122 unsigned char key_str[10000];
123 unsigned char hash_str[10000];
124 unsigned char output[33];
Paul Bakker69998dd2009-07-11 19:15:20 +0000125 int key_len, src_len;
Paul Bakkere896fea2009-07-06 06:40:23 +0000126
127 memset(src_str, 0x00, 10000);
128 memset(key_str, 0x00, 10000);
129 memset(hash_str, 0x00, 10000);
130 memset(output, 0x00, 33);
131
Paul Bakker33b43f12013-08-20 11:48:36 +0200132 key_len = unhexify( key_str, hex_key_string );
133 src_len = unhexify( src_str, hex_src_string );
Paul Bakkere896fea2009-07-06 06:40:23 +0000134
135 md5_hmac( key_str, key_len, src_str, src_len, output );
136 hexify( hash_str, output, 16 );
137
Paul Bakker33b43f12013-08-20 11:48:36 +0200138 TEST_ASSERT( strncmp( (char *) hash_str, hex_hash_string, trunc_size * 2 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000139}
Paul Bakker33b43f12013-08-20 11:48:36 +0200140/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000141
Paul Bakker428b9ba2013-09-15 15:20:37 +0200142/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200143void md2_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000144{
145 unsigned char hash_str[65];
146 unsigned char output[33];
147
148 memset(hash_str, 0x00, 65);
149 memset(output, 0x00, 33);
150
Paul Bakker33b43f12013-08-20 11:48:36 +0200151 md2_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000152 hexify( hash_str, output, 16 );
153
Paul Bakker33b43f12013-08-20 11:48:36 +0200154 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000155}
Paul Bakker33b43f12013-08-20 11:48:36 +0200156/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000157
Paul Bakker428b9ba2013-09-15 15:20:37 +0200158/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200159void md4_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000160{
161 unsigned char hash_str[65];
162 unsigned char output[33];
163
164 memset(hash_str, 0x00, 65);
165 memset(output, 0x00, 33);
166
Paul Bakker33b43f12013-08-20 11:48:36 +0200167 md4_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000168 hexify( hash_str, output, 16 );
169
Paul Bakker33b43f12013-08-20 11:48:36 +0200170 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000171}
Paul Bakker33b43f12013-08-20 11:48:36 +0200172/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000173
Paul Bakker428b9ba2013-09-15 15:20:37 +0200174/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200175void md5_file( char *filename, char *hex_hash_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000176{
177 unsigned char hash_str[65];
178 unsigned char output[33];
179
180 memset(hash_str, 0x00, 65);
181 memset(output, 0x00, 33);
182
Paul Bakker33b43f12013-08-20 11:48:36 +0200183 md5_file( filename, output);
Paul Bakkere896fea2009-07-06 06:40:23 +0000184 hexify( hash_str, output, 16 );
185
Paul Bakker33b43f12013-08-20 11:48:36 +0200186 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000187}
Paul Bakker33b43f12013-08-20 11:48:36 +0200188/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000189
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200190/* BEGIN_CASE depends_on:POLARSSL_MD2_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200191void md2_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000192{
193 TEST_ASSERT( md2_self_test( 0 ) == 0 );
194}
Paul Bakker33b43f12013-08-20 11:48:36 +0200195/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000196
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200197/* BEGIN_CASE depends_on:POLARSSL_MD4_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200198void md4_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000199{
200 TEST_ASSERT( md4_self_test( 0 ) == 0 );
201}
Paul Bakker33b43f12013-08-20 11:48:36 +0200202/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000203
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200204/* BEGIN_CASE depends_on:POLARSSL_MD5_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200205void md5_selftest()
Paul Bakkere896fea2009-07-06 06:40:23 +0000206{
207 TEST_ASSERT( md5_self_test( 0 ) == 0 );
208}
Paul Bakker33b43f12013-08-20 11:48:36 +0200209/* END_CASE */