blob: d3e6f6ad07f39a13f0d85553a7f85f735cc5cb19 [file] [log] [blame]
Paul Bakker367dae42009-06-28 21:50:27 +00001BEGIN_HEADER
2#include <polarssl/sha1.h>
3#include <polarssl/sha2.h>
4#include <polarssl/sha4.h>
5END_HEADER
6
7BEGIN_CASE
8sha1_hmac:trunc_size:hex_key_string:hex_src_string:hex_hash_string
9{
10 unsigned char src_str[10000];
11 unsigned char key_str[10000];
12 unsigned char hash_str[10000];
13 unsigned char output[41];
Paul Bakker69998dd2009-07-11 19:15:20 +000014 int key_len, src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000015
16 memset(src_str, 0x00, 10000);
17 memset(key_str, 0x00, 10000);
18 memset(hash_str, 0x00, 10000);
19 memset(output, 0x00, 41);
20
Paul Bakker69998dd2009-07-11 19:15:20 +000021 key_len = unhexify( key_str, {hex_key_string} );
22 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000023
24 sha1_hmac( key_str, key_len, src_str, src_len, output );
25 hexify( hash_str, output, 20 );
26
27 TEST_ASSERT( strncmp( (char *) hash_str, {hex_hash_string}, {trunc_size} * 2 ) == 0 );
28}
29END_CASE
30
31BEGIN_CASE
32sha224_hmac:trunc_size:hex_key_string:hex_src_string:hex_hash_string
33{
34 unsigned char src_str[10000];
35 unsigned char key_str[10000];
36 unsigned char hash_str[10000];
37 unsigned char output[57];
Paul Bakker69998dd2009-07-11 19:15:20 +000038 int key_len, src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000039
40 memset(src_str, 0x00, 10000);
41 memset(key_str, 0x00, 10000);
42 memset(hash_str, 0x00, 10000);
43 memset(output, 0x00, 57);
44
Paul Bakker69998dd2009-07-11 19:15:20 +000045 key_len = unhexify( key_str, {hex_key_string} );
46 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000047
48 sha2_hmac( key_str, key_len, src_str, src_len, output, 1 );
49 hexify( hash_str, output, 28 );
50
51 TEST_ASSERT( strncmp( (char *) hash_str, {hex_hash_string}, {trunc_size} * 2 ) == 0 );
52}
53END_CASE
54
55BEGIN_CASE
56sha256_hmac:trunc_size:hex_key_string:hex_src_string:hex_hash_string
57{
58 unsigned char src_str[10000];
59 unsigned char key_str[10000];
60 unsigned char hash_str[10000];
61 unsigned char output[65];
Paul Bakker69998dd2009-07-11 19:15:20 +000062 int key_len, src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000063
64 memset(src_str, 0x00, 10000);
65 memset(key_str, 0x00, 10000);
66 memset(hash_str, 0x00, 10000);
67 memset(output, 0x00, 65);
68
Paul Bakker69998dd2009-07-11 19:15:20 +000069 key_len = unhexify( key_str, {hex_key_string} );
70 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000071
72 sha2_hmac( key_str, key_len, src_str, src_len, output, 0 );
73 hexify( hash_str, output, 32 );
74
75 TEST_ASSERT( strncmp( (char *) hash_str, {hex_hash_string}, {trunc_size} * 2 ) == 0 );
76}
77END_CASE
78
79BEGIN_CASE
80sha384_hmac:trunc_size:hex_key_string:hex_src_string:hex_hash_string
81{
82 unsigned char src_str[10000];
83 unsigned char key_str[10000];
84 unsigned char hash_str[10000];
85 unsigned char output[97];
Paul Bakker69998dd2009-07-11 19:15:20 +000086 int key_len, src_len;
Paul Bakker367dae42009-06-28 21:50:27 +000087
88 memset(src_str, 0x00, 10000);
89 memset(key_str, 0x00, 10000);
90 memset(hash_str, 0x00, 10000);
91 memset(output, 0x00, 97);
92
Paul Bakker69998dd2009-07-11 19:15:20 +000093 key_len = unhexify( key_str, {hex_key_string} );
94 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +000095
96 sha4_hmac( key_str, key_len, src_str, src_len, output, 1 );
97 hexify( hash_str, output, 48 );
98
99 TEST_ASSERT( strncmp( (char *) hash_str, {hex_hash_string}, {trunc_size} * 2 ) == 0 );
100}
101END_CASE
102
103BEGIN_CASE
104sha512_hmac:trunc_size:hex_key_string:hex_src_string:hex_hash_string
105{
106 unsigned char src_str[10000];
107 unsigned char key_str[10000];
108 unsigned char hash_str[10000];
109 unsigned char output[129];
Paul Bakker69998dd2009-07-11 19:15:20 +0000110 int key_len, src_len;
Paul Bakker367dae42009-06-28 21:50:27 +0000111
112 memset(src_str, 0x00, 10000);
113 memset(key_str, 0x00, 10000);
114 memset(hash_str, 0x00, 10000);
115 memset(output, 0x00, 129);
116
Paul Bakker69998dd2009-07-11 19:15:20 +0000117 key_len = unhexify( key_str, {hex_key_string} );
118 src_len = unhexify( src_str, {hex_src_string} );
Paul Bakker367dae42009-06-28 21:50:27 +0000119
120 sha4_hmac( key_str, key_len, src_str, src_len, output, 0 );
121 hexify( hash_str, output, 64 );
122
123 TEST_ASSERT( strncmp( (char *) hash_str, {hex_hash_string}, {trunc_size} * 2 ) == 0 );
124}
125END_CASE