blob: 51c3301148ac94502f8483bc88398e737a96176b [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Rich Evansce2f2372015-02-06 13:57:42 +00002#include "polarssl/sha1.h"
3#include "polarssl/sha256.h"
4#include "polarssl/sha512.h"
Paul Bakker33b43f12013-08-20 11:48:36 +02005/* END_HEADER */
Paul Bakker367dae42009-06-28 21:50:27 +00006
Paul Bakker68a4fce2013-08-20 12:42:31 +02007/* BEGIN_CASE depends_on:POLARSSL_SHA1_C */
Paul Bakker33b43f12013-08-20 11:48:36 +02008void sha1( char *hex_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +00009{
10 unsigned char src_str[10000];
11 unsigned char hash_str[10000];
12 unsigned char output[41];
Paul Bakker69998dd2009-07-11 19:15:20 +000013 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000014
15 memset(src_str, 0x00, 10000);
16 memset(hash_str, 0x00, 10000);
17 memset(output, 0x00, 41);
18
Paul Bakker33b43f12013-08-20 11:48:36 +020019 src_len = unhexify( src_str, hex_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000020
21 sha1( src_str, src_len, output );
22 hexify( hash_str, output, 20 );
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 Bakker68a4fce2013-08-20 12:42:31 +020028/* BEGIN_CASE depends_on:POLARSSL_SHA256_C */
Paul Bakker33b43f12013-08-20 11:48:36 +020029void sha224(char *hex_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000030{
31 unsigned char src_str[10000];
32 unsigned char hash_str[10000];
33 unsigned char output[57];
Paul Bakker69998dd2009-07-11 19:15:20 +000034 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000035
36 memset(src_str, 0x00, 10000);
37 memset(hash_str, 0x00, 10000);
38 memset(output, 0x00, 57);
39
Paul Bakker33b43f12013-08-20 11:48:36 +020040 src_len = unhexify( src_str, hex_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000041
Paul Bakker9e36f042013-06-30 14:34:05 +020042 sha256( src_str, src_len, output, 1 );
Paul Bakker367dae42009-06-28 21:50:27 +000043 hexify( hash_str, output, 28 );
44
Paul Bakker33b43f12013-08-20 11:48:36 +020045 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000046}
Paul Bakker33b43f12013-08-20 11:48:36 +020047/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000048
Paul Bakker68a4fce2013-08-20 12:42:31 +020049/* BEGIN_CASE depends_on:POLARSSL_SHA256_C */
Paul Bakker33b43f12013-08-20 11:48:36 +020050void sha256(char *hex_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000051{
52 unsigned char src_str[10000];
53 unsigned char hash_str[10000];
54 unsigned char output[65];
Paul Bakker69998dd2009-07-11 19:15:20 +000055 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000056
57 memset(src_str, 0x00, 10000);
58 memset(hash_str, 0x00, 10000);
59 memset(output, 0x00, 65);
60
Paul Bakker33b43f12013-08-20 11:48:36 +020061 src_len = unhexify( src_str, hex_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000062
Paul Bakker9e36f042013-06-30 14:34:05 +020063 sha256( src_str, src_len, output, 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000064 hexify( hash_str, output, 32 );
65
Paul Bakker33b43f12013-08-20 11:48:36 +020066 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000067}
Paul Bakker33b43f12013-08-20 11:48:36 +020068/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000069
Paul Bakker68a4fce2013-08-20 12:42:31 +020070/* BEGIN_CASE depends_on:POLARSSL_SHA512_C */
Paul Bakker33b43f12013-08-20 11:48:36 +020071void sha384(char *hex_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000072{
73 unsigned char src_str[10000];
74 unsigned char hash_str[10000];
75 unsigned char output[97];
Paul Bakker69998dd2009-07-11 19:15:20 +000076 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000077
78 memset(src_str, 0x00, 10000);
79 memset(hash_str, 0x00, 10000);
80 memset(output, 0x00, 97);
81
Paul Bakker33b43f12013-08-20 11:48:36 +020082 src_len = unhexify( src_str, hex_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +000083
Paul Bakker9e36f042013-06-30 14:34:05 +020084 sha512( src_str, src_len, output, 1 );
Paul Bakker367dae42009-06-28 21:50:27 +000085 hexify( hash_str, output, 48 );
86
Paul Bakker33b43f12013-08-20 11:48:36 +020087 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +000088}
Paul Bakker33b43f12013-08-20 11:48:36 +020089/* END_CASE */
Paul Bakker367dae42009-06-28 21:50:27 +000090
Paul Bakker68a4fce2013-08-20 12:42:31 +020091/* BEGIN_CASE depends_on:POLARSSL_SHA512_C */
Paul Bakker33b43f12013-08-20 11:48:36 +020092void sha512(char *hex_src_string, char *hex_hash_string )
Paul Bakker367dae42009-06-28 21:50:27 +000093{
94 unsigned char src_str[10000];
95 unsigned char hash_str[10000];
96 unsigned char output[129];
Paul Bakker69998dd2009-07-11 19:15:20 +000097 int src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000098
99 memset(src_str, 0x00, 10000);
100 memset(hash_str, 0x00, 10000);
101 memset(output, 0x00, 129);
102
Paul Bakker33b43f12013-08-20 11:48:36 +0200103 src_len = unhexify( src_str, hex_src_string );
Paul Bakker367dae42009-06-28 21:50:27 +0000104
Paul Bakker9e36f042013-06-30 14:34:05 +0200105 sha512( src_str, src_len, output, 0);
Paul Bakker367dae42009-06-28 21:50:27 +0000106 hexify( hash_str, output, 64 );
107
Paul Bakker33b43f12013-08-20 11:48:36 +0200108 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakker367dae42009-06-28 21:50:27 +0000109}
Paul Bakker33b43f12013-08-20 11:48:36 +0200110/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000111
Paul Bakker428b9ba2013-09-15 15:20:37 +0200112/* BEGIN_CASE depends_on:POLARSSL_SHA1_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200113void sha1_file( char *filename, char *hex_hash_string )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000114{
115 unsigned char hash_str[41];
116 unsigned char output[21];
117
118 memset(hash_str, 0x00, 41);
119 memset(output, 0x00, 21);
120
Paul Bakker33b43f12013-08-20 11:48:36 +0200121 sha1_file( filename, output);
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000122 hexify( hash_str, output, 20 );
123
Paul Bakker33b43f12013-08-20 11:48:36 +0200124 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000125}
Paul Bakker33b43f12013-08-20 11:48:36 +0200126/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000127
Paul Bakker428b9ba2013-09-15 15:20:37 +0200128/* BEGIN_CASE depends_on:POLARSSL_SHA256_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200129void sha224_file( char *filename, char *hex_hash_string )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000130{
131 unsigned char hash_str[57];
132 unsigned char output[29];
133
134 memset(hash_str, 0x00, 57);
135 memset(output, 0x00, 29);
136
Paul Bakker33b43f12013-08-20 11:48:36 +0200137 sha256_file( filename, output, 1);
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000138 hexify( hash_str, output, 28 );
139
Paul Bakker33b43f12013-08-20 11:48:36 +0200140 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000141}
Paul Bakker33b43f12013-08-20 11:48:36 +0200142/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000143
Paul Bakker428b9ba2013-09-15 15:20:37 +0200144/* BEGIN_CASE depends_on:POLARSSL_SHA256_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200145void sha256_file( char *filename, char *hex_hash_string )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000146{
147 unsigned char hash_str[65];
148 unsigned char output[33];
149
150 memset(hash_str, 0x00, 65);
151 memset(output, 0x00, 33);
152
Paul Bakker33b43f12013-08-20 11:48:36 +0200153 sha256_file( filename, output, 0);
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000154 hexify( hash_str, output, 32 );
155
Paul Bakker33b43f12013-08-20 11:48:36 +0200156 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000157}
Paul Bakker33b43f12013-08-20 11:48:36 +0200158/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000159
Paul Bakker428b9ba2013-09-15 15:20:37 +0200160/* BEGIN_CASE depends_on:POLARSSL_SHA512_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200161void sha384_file( char *filename, char *hex_hash_string )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000162{
163 unsigned char hash_str[97];
164 unsigned char output[49];
165
166 memset(hash_str, 0x00, 97);
167 memset(output, 0x00, 49);
168
Paul Bakker33b43f12013-08-20 11:48:36 +0200169 sha512_file( filename, output, 1);
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000170 hexify( hash_str, output, 48 );
171
Paul Bakker33b43f12013-08-20 11:48:36 +0200172 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000173}
Paul Bakker33b43f12013-08-20 11:48:36 +0200174/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000175
Paul Bakker428b9ba2013-09-15 15:20:37 +0200176/* BEGIN_CASE depends_on:POLARSSL_SHA512_C:POLARSSL_FS_IO */
Paul Bakker33b43f12013-08-20 11:48:36 +0200177void sha512_file( char *filename, char *hex_hash_string )
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000178{
179 unsigned char hash_str[129];
180 unsigned char output[65];
181
182 memset(hash_str, 0x00, 129);
183 memset(output, 0x00, 65);
184
Paul Bakker33b43f12013-08-20 11:48:36 +0200185 sha512_file( filename, output, 0);
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000186 hexify( hash_str, output, 64 );
187
Paul Bakker33b43f12013-08-20 11:48:36 +0200188 TEST_ASSERT( strcmp( (char *) hash_str, hex_hash_string ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000189}
Paul Bakker33b43f12013-08-20 11:48:36 +0200190/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000191
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200192/* BEGIN_CASE depends_on:POLARSSL_SHA1_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200193void sha1_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000194{
195 TEST_ASSERT( sha1_self_test( 0 ) == 0 );
196}
Paul Bakker33b43f12013-08-20 11:48:36 +0200197/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000198
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200199/* BEGIN_CASE depends_on:POLARSSL_SHA256_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200200void sha256_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000201{
Paul Bakker9e36f042013-06-30 14:34:05 +0200202 TEST_ASSERT( sha256_self_test( 0 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000203}
Paul Bakker33b43f12013-08-20 11:48:36 +0200204/* END_CASE */
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000205
Manuel Pégourié-Gonnard20140162013-10-10 12:48:03 +0200206/* BEGIN_CASE depends_on:POLARSSL_SHA512_C:POLARSSL_SELF_TEST */
Paul Bakker33b43f12013-08-20 11:48:36 +0200207void sha512_selftest()
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000208{
Paul Bakker9e36f042013-06-30 14:34:05 +0200209 TEST_ASSERT( sha512_self_test( 0 ) == 0 );
Paul Bakkerf3eedce2009-07-05 11:30:16 +0000210}
Paul Bakker33b43f12013-08-20 11:48:36 +0200211/* END_CASE */