diff options
Diffstat (limited to 'src/util/test_crypto_hkdf.c')
-rw-r--r-- | src/util/test_crypto_hkdf.c | 155 |
1 files changed, 80 insertions, 75 deletions
diff --git a/src/util/test_crypto_hkdf.c b/src/util/test_crypto_hkdf.c index d4829791d..c41c3362b 100644 --- a/src/util/test_crypto_hkdf.c +++ b/src/util/test_crypto_hkdf.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include "gnunet_crypto_lib.h" | 33 | #include "gnunet_crypto_lib.h" |
34 | 34 | ||
35 | void | 35 | void |
36 | tc1() | 36 | tc1 () |
37 | { | 37 | { |
38 | unsigned char ikm[22] = | 38 | unsigned char ikm[22] = |
39 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, | 39 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, |
@@ -51,17 +51,17 @@ tc1() | |||
51 | unsigned char result[44]; | 51 | unsigned char result[44]; |
52 | int l = 42; | 52 | int l = 42; |
53 | 53 | ||
54 | memset(result, 0, sizeof(result)); | 54 | memset (result, 0, sizeof(result)); |
55 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 55 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
56 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, salt, | 56 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, salt, |
57 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), | 57 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), |
58 | NULL) == GNUNET_YES); | 58 | NULL) == GNUNET_YES); |
59 | GNUNET_assert(memcmp(result, okm, l) == 0); | 59 | GNUNET_assert (memcmp (result, okm, l) == 0); |
60 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 60 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
61 | } | 61 | } |
62 | 62 | ||
63 | void | 63 | void |
64 | tc2() | 64 | tc2 () |
65 | { | 65 | { |
66 | unsigned char ikm[80] = | 66 | unsigned char ikm[80] = |
67 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, | 67 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, |
@@ -98,17 +98,17 @@ tc2() | |||
98 | char result[84]; | 98 | char result[84]; |
99 | int l = 82; | 99 | int l = 82; |
100 | 100 | ||
101 | memset(result, 0, sizeof(result)); | 101 | memset (result, 0, sizeof(result)); |
102 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 102 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
103 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, salt, | 103 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, salt, |
104 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), | 104 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), |
105 | NULL) == GNUNET_YES); | 105 | NULL) == GNUNET_YES); |
106 | GNUNET_assert(memcmp(result, okm, l) == 0); | 106 | GNUNET_assert (memcmp (result, okm, l) == 0); |
107 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 107 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
108 | } | 108 | } |
109 | 109 | ||
110 | void | 110 | void |
111 | tc3() | 111 | tc3 () |
112 | { | 112 | { |
113 | unsigned char ikm[22] = | 113 | unsigned char ikm[22] = |
114 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, | 114 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, |
@@ -121,16 +121,16 @@ tc3() | |||
121 | unsigned char result[44]; | 121 | unsigned char result[44]; |
122 | int l = 42; | 122 | int l = 42; |
123 | 123 | ||
124 | memset(result, 0, sizeof(result)); | 124 | memset (result, 0, sizeof(result)); |
125 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 125 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
126 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, NULL, 0, ikm, | 126 | (result, l, GCRY_MD_SHA256, GCRY_MD_SHA256, NULL, 0, ikm, |
127 | sizeof(ikm), NULL, 0, NULL) == GNUNET_YES); | 127 | sizeof(ikm), NULL, 0, NULL) == GNUNET_YES); |
128 | GNUNET_assert(memcmp(result, okm, l) == 0); | 128 | GNUNET_assert (memcmp (result, okm, l) == 0); |
129 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 129 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
130 | } | 130 | } |
131 | 131 | ||
132 | void | 132 | void |
133 | tc4() | 133 | tc4 () |
134 | { | 134 | { |
135 | unsigned char ikm[11] = | 135 | unsigned char ikm[11] = |
136 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, | 136 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, |
@@ -148,16 +148,16 @@ tc4() | |||
148 | char result[84]; | 148 | char result[84]; |
149 | int l = 42; | 149 | int l = 42; |
150 | 150 | ||
151 | memset(result, 0, sizeof(result)); | 151 | memset (result, 0, sizeof(result)); |
152 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 152 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
153 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), | 153 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), |
154 | ikm, sizeof(ikm), info, sizeof(info), NULL) == GNUNET_YES); | 154 | ikm, sizeof(ikm), info, sizeof(info), NULL) == GNUNET_YES); |
155 | GNUNET_assert(memcmp(result, okm, l) == 0); | 155 | GNUNET_assert (memcmp (result, okm, l) == 0); |
156 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 156 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
157 | } | 157 | } |
158 | 158 | ||
159 | void | 159 | void |
160 | tc5() | 160 | tc5 () |
161 | { | 161 | { |
162 | unsigned char ikm[80] = | 162 | unsigned char ikm[80] = |
163 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, | 163 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, |
@@ -194,16 +194,16 @@ tc5() | |||
194 | char result[84]; | 194 | char result[84]; |
195 | int l = 82; | 195 | int l = 82; |
196 | 196 | ||
197 | memset(result, 0, sizeof(result)); | 197 | memset (result, 0, sizeof(result)); |
198 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 198 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
199 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), | 199 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), |
200 | ikm, sizeof(ikm), info, sizeof(info), NULL) == GNUNET_YES); | 200 | ikm, sizeof(ikm), info, sizeof(info), NULL) == GNUNET_YES); |
201 | GNUNET_assert(memcmp(result, okm, l) == 0); | 201 | GNUNET_assert (memcmp (result, okm, l) == 0); |
202 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 202 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
203 | } | 203 | } |
204 | 204 | ||
205 | void | 205 | void |
206 | tc6() | 206 | tc6 () |
207 | { | 207 | { |
208 | unsigned char ikm[22] = | 208 | unsigned char ikm[22] = |
209 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, | 209 | { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, |
@@ -216,16 +216,16 @@ tc6() | |||
216 | char result[44]; | 216 | char result[44]; |
217 | int l = 42; | 217 | int l = 42; |
218 | 218 | ||
219 | memset(result, 0, sizeof(result)); | 219 | memset (result, 0, sizeof(result)); |
220 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 220 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
221 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, NULL, 0, ikm, | 221 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, NULL, 0, ikm, |
222 | sizeof(ikm), NULL, 0, NULL) == GNUNET_YES); | 222 | sizeof(ikm), NULL, 0, NULL) == GNUNET_YES); |
223 | GNUNET_assert(memcmp(result, okm, l) == 0); | 223 | GNUNET_assert (memcmp (result, okm, l) == 0); |
224 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 224 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
225 | } | 225 | } |
226 | 226 | ||
227 | void | 227 | void |
228 | tc7() | 228 | tc7 () |
229 | { | 229 | { |
230 | unsigned char ikm[80] = | 230 | unsigned char ikm[80] = |
231 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, | 231 | { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, |
@@ -244,13 +244,18 @@ tc7() | |||
244 | 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, | 244 | 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, |
245 | 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf }; | 245 | 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf }; |
246 | unsigned char info1[34] = { 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | 246 | unsigned char info1[34] = { 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, |
247 | 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, | 247 | 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, |
248 | 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | 248 | 0xc0, 0xc1, 0xc2, 0xc3, |
249 | 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, | ||
250 | 0xcc, 0xcd, 0xce, 0xcf, | ||
249 | 0xd0, 0xd1 }; | 251 | 0xd0, 0xd1 }; |
250 | unsigned char info2[46] = { 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, | 252 | unsigned char info2[46] = { 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, |
251 | 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, | 253 | 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, |
252 | 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, | 254 | 0xe2, 0xe3, 0xe4, 0xe5, |
253 | 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, | 255 | 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, |
256 | 0xee, 0xef, 0xf0, 0xf1, | ||
257 | 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, | ||
258 | 0xfa, 0xfb, 0xfc, 0xfd, | ||
254 | 0xfe, 0xff }; | 259 | 0xfe, 0xff }; |
255 | unsigned char okm[82] = | 260 | unsigned char okm[82] = |
256 | { 0x0b, 0xd7, 0x70, 0xa7, 0x4d, 0x11, 0x60, 0xf7, 0xc9, 0xf1, | 261 | { 0x0b, 0xd7, 0x70, 0xa7, 0x4d, 0x11, 0x60, 0xf7, 0xc9, 0xf1, |
@@ -263,17 +268,17 @@ tc7() | |||
263 | char result[84]; | 268 | char result[84]; |
264 | int l = 82; | 269 | int l = 82; |
265 | 270 | ||
266 | memset(result, 0, sizeof(result)); | 271 | memset (result, 0, sizeof(result)); |
267 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 272 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
268 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), | 273 | (result, l, GCRY_MD_SHA1, GCRY_MD_SHA1, salt, sizeof(salt), |
269 | ikm, sizeof(ikm), info1, sizeof(info1), info2, | 274 | ikm, sizeof(ikm), info1, sizeof(info1), info2, |
270 | sizeof(info2), NULL) == GNUNET_YES); | 275 | sizeof(info2), NULL) == GNUNET_YES); |
271 | GNUNET_assert(memcmp(result, okm, l) == 0); | 276 | GNUNET_assert (memcmp (result, okm, l) == 0); |
272 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 277 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
273 | } | 278 | } |
274 | 279 | ||
275 | void | 280 | void |
276 | tc8() | 281 | tc8 () |
277 | { | 282 | { |
278 | unsigned char ikm[32] = | 283 | unsigned char ikm[32] = |
279 | { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72, | 284 | { 0xbf, 0x16, 0x6e, 0x46, 0x3a, 0x6c, 0xf3, 0x93, 0xa7, 0x72, |
@@ -295,31 +300,31 @@ tc8() | |||
295 | char result[18]; | 300 | char result[18]; |
296 | int l = 16; | 301 | int l = 16; |
297 | 302 | ||
298 | memset(result, 0, sizeof(result)); | 303 | memset (result, 0, sizeof(result)); |
299 | GNUNET_assert(GNUNET_CRYPTO_hkdf | 304 | GNUNET_assert (GNUNET_CRYPTO_hkdf |
300 | (result, l, GCRY_MD_SHA512, GCRY_MD_SHA256, salt, | 305 | (result, l, GCRY_MD_SHA512, GCRY_MD_SHA256, salt, |
301 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), | 306 | sizeof(salt), ikm, sizeof(ikm), info, sizeof(info), |
302 | NULL) == GNUNET_YES); | 307 | NULL) == GNUNET_YES); |
303 | GNUNET_assert(memcmp(result, okm, l) == 0); | 308 | GNUNET_assert (memcmp (result, okm, l) == 0); |
304 | GNUNET_assert(memcmp(result + l, "\0", 2) == 0); | 309 | GNUNET_assert (memcmp (result + l, "\0", 2) == 0); |
305 | } | 310 | } |
306 | 311 | ||
307 | int | 312 | int |
308 | main() | 313 | main () |
309 | { | 314 | { |
310 | GNUNET_log_setup("test-crypto-hkdf", "WARNING", NULL); | 315 | GNUNET_log_setup ("test-crypto-hkdf", "WARNING", NULL); |
311 | 316 | ||
312 | /* Official test vectors */ | 317 | /* Official test vectors */ |
313 | tc1(); | 318 | tc1 (); |
314 | tc2(); | 319 | tc2 (); |
315 | tc3(); | 320 | tc3 (); |
316 | tc4(); | 321 | tc4 (); |
317 | tc5(); | 322 | tc5 (); |
318 | tc6(); | 323 | tc6 (); |
319 | 324 | ||
320 | /* Additional tests */ | 325 | /* Additional tests */ |
321 | tc7(); | 326 | tc7 (); |
322 | tc8(); | 327 | tc8 (); |
323 | 328 | ||
324 | return 0; | 329 | return 0; |
325 | } | 330 | } |