summaryrefslogtreecommitdiff
path: root/auto_tests/crypto_test.c
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2016-12-19 02:47:42 +0000
committeriphydf <iphydf@users.noreply.github.com>2016-12-22 10:26:59 +0000
commitce29c8e7ec91d95167b2dea3aee9fd1ae1aac254 (patch)
treea288df55c44e8edf816e6abbde19a70faef73394 /auto_tests/crypto_test.c
parent7122d2e862e028a730478d88cd61557fbed16ebf (diff)
Wrap all sodium/nacl functions in crypto_core.c.
Diffstat (limited to 'auto_tests/crypto_test.c')
-rw-r--r--auto_tests/crypto_test.c88
1 files changed, 44 insertions, 44 deletions
diff --git a/auto_tests/crypto_test.c b/auto_tests/crypto_test.c
index ce2101cc..c1003f80 100644
--- a/auto_tests/crypto_test.c
+++ b/auto_tests/crypto_test.c
@@ -91,8 +91,8 @@ START_TEST(test_known)
91 unsigned char m[131]; 91 unsigned char m[131];
92 int clen, mlen; 92 int clen, mlen;
93 93
94 ck_assert_msg(sizeof(c) == sizeof(m) + crypto_box_MACBYTES * sizeof(unsigned char), 94 ck_assert_msg(sizeof(c) == sizeof(m) + CRYPTO_MAC_SIZE * sizeof(unsigned char),
95 "cyphertext should be crypto_box_MACBYTES bytes longer than plaintext"); 95 "cyphertext should be CRYPTO_MAC_SIZE bytes longer than plaintext");
96 ck_assert_msg(sizeof(test_c) == sizeof(c), "sanity check failed"); 96 ck_assert_msg(sizeof(test_c) == sizeof(c), "sanity check failed");
97 ck_assert_msg(sizeof(test_m) == sizeof(m), "sanity check failed"); 97 ck_assert_msg(sizeof(test_m) == sizeof(m), "sanity check failed");
98 98
@@ -110,15 +110,15 @@ END_TEST
110 110
111START_TEST(test_fast_known) 111START_TEST(test_fast_known)
112{ 112{
113 unsigned char k[crypto_box_BEFORENMBYTES]; 113 unsigned char k[CRYPTO_SHARED_KEY_SIZE];
114 unsigned char c[147]; 114 unsigned char c[147];
115 unsigned char m[131]; 115 unsigned char m[131];
116 int clen, mlen; 116 int clen, mlen;
117 117
118 encrypt_precompute(bobpk, alicesk, k); 118 encrypt_precompute(bobpk, alicesk, k);
119 119
120 ck_assert_msg(sizeof(c) == sizeof(m) + crypto_box_MACBYTES * sizeof(unsigned char), 120 ck_assert_msg(sizeof(c) == sizeof(m) + CRYPTO_MAC_SIZE * sizeof(unsigned char),
121 "cyphertext should be crypto_box_MACBYTES bytes longer than plaintext"); 121 "cyphertext should be CRYPTO_MAC_SIZE bytes longer than plaintext");
122 ck_assert_msg(sizeof(test_c) == sizeof(c), "sanity check failed"); 122 ck_assert_msg(sizeof(test_c) == sizeof(c), "sanity check failed");
123 ck_assert_msg(sizeof(test_m) == sizeof(m), "sanity check failed"); 123 ck_assert_msg(sizeof(test_m) == sizeof(m), "sanity check failed");
124 124
@@ -136,20 +136,20 @@ END_TEST
136 136
137START_TEST(test_endtoend) 137START_TEST(test_endtoend)
138{ 138{
139 unsigned char pk1[crypto_box_PUBLICKEYBYTES]; 139 unsigned char pk1[CRYPTO_PUBLIC_KEY_SIZE];
140 unsigned char sk1[crypto_box_SECRETKEYBYTES]; 140 unsigned char sk1[CRYPTO_SECRET_KEY_SIZE];
141 unsigned char pk2[crypto_box_PUBLICKEYBYTES]; 141 unsigned char pk2[CRYPTO_PUBLIC_KEY_SIZE];
142 unsigned char sk2[crypto_box_SECRETKEYBYTES]; 142 unsigned char sk2[CRYPTO_SECRET_KEY_SIZE];
143 unsigned char k1[crypto_box_BEFORENMBYTES]; 143 unsigned char k1[CRYPTO_SHARED_KEY_SIZE];
144 unsigned char k2[crypto_box_BEFORENMBYTES]; 144 unsigned char k2[CRYPTO_SHARED_KEY_SIZE];
145 145
146 unsigned char n[crypto_box_NONCEBYTES]; 146 unsigned char n[CRYPTO_NONCE_SIZE];
147 147
148 unsigned char m[500]; 148 unsigned char m[500];
149 unsigned char c1[sizeof(m) + crypto_box_MACBYTES]; 149 unsigned char c1[sizeof(m) + CRYPTO_MAC_SIZE];
150 unsigned char c2[sizeof(m) + crypto_box_MACBYTES]; 150 unsigned char c2[sizeof(m) + CRYPTO_MAC_SIZE];
151 unsigned char c3[sizeof(m) + crypto_box_MACBYTES]; 151 unsigned char c3[sizeof(m) + CRYPTO_MAC_SIZE];
152 unsigned char c4[sizeof(m) + crypto_box_MACBYTES]; 152 unsigned char c4[sizeof(m) + CRYPTO_MAC_SIZE];
153 unsigned char m1[sizeof(m)]; 153 unsigned char m1[sizeof(m)];
154 unsigned char m2[sizeof(m)]; 154 unsigned char m2[sizeof(m)];
155 unsigned char m3[sizeof(m)]; 155 unsigned char m3[sizeof(m)];
@@ -166,17 +166,17 @@ START_TEST(test_endtoend)
166 //Generate random message (random length from 100 to 500) 166 //Generate random message (random length from 100 to 500)
167 mlen = (rand() % 400) + 100; 167 mlen = (rand() % 400) + 100;
168 rand_bytes(m, mlen); 168 rand_bytes(m, mlen);
169 rand_bytes(n, crypto_box_NONCEBYTES); 169 rand_bytes(n, CRYPTO_NONCE_SIZE);
170 170
171 //Generate keypairs 171 //Generate keypairs
172 crypto_box_keypair(pk1, sk1); 172 crypto_new_keypair(pk1, sk1);
173 crypto_box_keypair(pk2, sk2); 173 crypto_new_keypair(pk2, sk2);
174 174
175 //Precompute shared keys 175 //Precompute shared keys
176 encrypt_precompute(pk2, sk1, k1); 176 encrypt_precompute(pk2, sk1, k1);
177 encrypt_precompute(pk1, sk2, k2); 177 encrypt_precompute(pk1, sk2, k2);
178 178
179 ck_assert_msg(memcmp(k1, k2, crypto_box_BEFORENMBYTES) == 0, "encrypt_precompute: bad"); 179 ck_assert_msg(memcmp(k1, k2, CRYPTO_SHARED_KEY_SIZE) == 0, "encrypt_precompute: bad");
180 180
181 //Encrypt all four ways 181 //Encrypt all four ways
182 c1len = encrypt_data(pk2, sk1, n, m, mlen, c1); 182 c1len = encrypt_data(pk2, sk1, n, m, mlen, c1);
@@ -185,7 +185,7 @@ START_TEST(test_endtoend)
185 c4len = encrypt_data_symmetric(k2, n, m, mlen, c4); 185 c4len = encrypt_data_symmetric(k2, n, m, mlen, c4);
186 186
187 ck_assert_msg(c1len == c2len && c1len == c3len && c1len == c4len, "cyphertext lengths differ"); 187 ck_assert_msg(c1len == c2len && c1len == c3len && c1len == c4len, "cyphertext lengths differ");
188 ck_assert_msg(c1len == mlen + (int)crypto_box_MACBYTES, "wrong cyphertext length"); 188 ck_assert_msg(c1len == mlen + (int)CRYPTO_MAC_SIZE, "wrong cyphertext length");
189 ck_assert_msg(memcmp(c1, c2, c1len) == 0 && memcmp(c1, c3, c1len) == 0 189 ck_assert_msg(memcmp(c1, c2, c1len) == 0 && memcmp(c1, c3, c1len) == 0
190 && memcmp(c1, c4, c1len) == 0, "crypertexts differ"); 190 && memcmp(c1, c4, c1len) == 0, "crypertexts differ");
191 191
@@ -206,16 +206,16 @@ END_TEST
206 206
207START_TEST(test_large_data) 207START_TEST(test_large_data)
208{ 208{
209 unsigned char k[crypto_box_BEFORENMBYTES]; 209 unsigned char k[CRYPTO_SHARED_KEY_SIZE];
210 210
211 unsigned char n[crypto_box_NONCEBYTES]; 211 unsigned char n[CRYPTO_NONCE_SIZE];
212 212
213 unsigned char m1[MAX_CRYPTO_PACKET_SIZE - crypto_box_MACBYTES]; 213 unsigned char m1[MAX_CRYPTO_PACKET_SIZE - CRYPTO_MAC_SIZE];
214 unsigned char c1[sizeof(m1) + crypto_box_MACBYTES]; 214 unsigned char c1[sizeof(m1) + CRYPTO_MAC_SIZE];
215 unsigned char m1prime[sizeof(m1)]; 215 unsigned char m1prime[sizeof(m1)];
216 216
217 unsigned char m2[MAX_CRYPTO_PACKET_SIZE]; 217 unsigned char m2[MAX_CRYPTO_PACKET_SIZE];
218 unsigned char c2[sizeof(m2) + crypto_box_MACBYTES]; 218 unsigned char c2[sizeof(m2) + CRYPTO_MAC_SIZE];
219 219
220 int c1len, c2len; 220 int c1len, c2len;
221 int m1plen; 221 int m1plen;
@@ -223,16 +223,16 @@ START_TEST(test_large_data)
223 //Generate random messages 223 //Generate random messages
224 rand_bytes(m1, sizeof(m1)); 224 rand_bytes(m1, sizeof(m1));
225 rand_bytes(m2, sizeof(m2)); 225 rand_bytes(m2, sizeof(m2));
226 rand_bytes(n, crypto_box_NONCEBYTES); 226 rand_bytes(n, CRYPTO_NONCE_SIZE);
227 227
228 //Generate key 228 //Generate key
229 rand_bytes(k, crypto_box_BEFORENMBYTES); 229 rand_bytes(k, CRYPTO_SHARED_KEY_SIZE);
230 230
231 c1len = encrypt_data_symmetric(k, n, m1, sizeof(m1), c1); 231 c1len = encrypt_data_symmetric(k, n, m1, sizeof(m1), c1);
232 c2len = encrypt_data_symmetric(k, n, m2, sizeof(m2), c2); 232 c2len = encrypt_data_symmetric(k, n, m2, sizeof(m2), c2);
233 233
234 ck_assert_msg(c1len == sizeof(m1) + crypto_box_MACBYTES, "could not encrypt"); 234 ck_assert_msg(c1len == sizeof(m1) + CRYPTO_MAC_SIZE, "could not encrypt");
235 ck_assert_msg(c2len == sizeof(m2) + crypto_box_MACBYTES, "could not encrypt"); 235 ck_assert_msg(c2len == sizeof(m2) + CRYPTO_MAC_SIZE, "could not encrypt");
236 236
237 m1plen = decrypt_data_symmetric(k, n, c1, c1len, m1prime); 237 m1plen = decrypt_data_symmetric(k, n, c1, c1len, m1prime);
238 238
@@ -243,12 +243,12 @@ END_TEST
243 243
244START_TEST(test_large_data_symmetric) 244START_TEST(test_large_data_symmetric)
245{ 245{
246 unsigned char k[crypto_box_KEYBYTES]; 246 unsigned char k[CRYPTO_SYMMETRIC_KEY_SIZE];
247 247
248 unsigned char n[crypto_box_NONCEBYTES]; 248 unsigned char n[CRYPTO_NONCE_SIZE];
249 249
250 unsigned char m1[16 * 16 * 16]; 250 unsigned char m1[16 * 16 * 16];
251 unsigned char c1[sizeof(m1) + crypto_box_MACBYTES]; 251 unsigned char c1[sizeof(m1) + CRYPTO_MAC_SIZE];
252 unsigned char m1prime[sizeof(m1)]; 252 unsigned char m1prime[sizeof(m1)];
253 253
254 int c1len; 254 int c1len;
@@ -256,13 +256,13 @@ START_TEST(test_large_data_symmetric)
256 256
257 //Generate random messages 257 //Generate random messages
258 rand_bytes(m1, sizeof(m1)); 258 rand_bytes(m1, sizeof(m1));
259 rand_bytes(n, crypto_box_NONCEBYTES); 259 rand_bytes(n, CRYPTO_NONCE_SIZE);
260 260
261 //Generate key 261 //Generate key
262 new_symmetric_key(k); 262 new_symmetric_key(k);
263 263
264 c1len = encrypt_data_symmetric(k, n, m1, sizeof(m1), c1); 264 c1len = encrypt_data_symmetric(k, n, m1, sizeof(m1), c1);
265 ck_assert_msg(c1len == sizeof(m1) + crypto_box_MACBYTES, "could not encrypt data"); 265 ck_assert_msg(c1len == sizeof(m1) + CRYPTO_MAC_SIZE, "could not encrypt data");
266 266
267 m1plen = decrypt_data_symmetric(k, n, c1, c1len, m1prime); 267 m1plen = decrypt_data_symmetric(k, n, c1, c1len, m1prime);
268 268
@@ -274,14 +274,14 @@ END_TEST
274static void increment_nonce_number_cmp(uint8_t *nonce, uint32_t num) 274static void increment_nonce_number_cmp(uint8_t *nonce, uint32_t num)
275{ 275{
276 uint32_t num1, num2; 276 uint32_t num1, num2;
277 memcpy(&num1, nonce + (crypto_box_NONCEBYTES - sizeof(num1)), sizeof(num1)); 277 memcpy(&num1, nonce + (CRYPTO_NONCE_SIZE - sizeof(num1)), sizeof(num1));
278 num1 = ntohl(num1); 278 num1 = ntohl(num1);
279 num2 = num + num1; 279 num2 = num + num1;
280 280
281 if (num2 < num1) { 281 if (num2 < num1) {
282 uint32_t i; 282 uint32_t i;
283 283
284 for (i = crypto_box_NONCEBYTES - sizeof(num1); i != 0; --i) { 284 for (i = CRYPTO_NONCE_SIZE - sizeof(num1); i != 0; --i) {
285 ++nonce[i - 1]; 285 ++nonce[i - 1];
286 286
287 if (nonce[i - 1] != 0) { 287 if (nonce[i - 1] != 0) {
@@ -291,34 +291,34 @@ static void increment_nonce_number_cmp(uint8_t *nonce, uint32_t num)
291 } 291 }
292 292
293 num2 = htonl(num2); 293 num2 = htonl(num2);
294 memcpy(nonce + (crypto_box_NONCEBYTES - sizeof(num2)), &num2, sizeof(num2)); 294 memcpy(nonce + (CRYPTO_NONCE_SIZE - sizeof(num2)), &num2, sizeof(num2));
295} 295}
296 296
297START_TEST(test_increment_nonce) 297START_TEST(test_increment_nonce)
298{ 298{
299 long long unsigned int i; 299 long long unsigned int i;
300 300
301 uint8_t n[crypto_box_NONCEBYTES]; 301 uint8_t n[CRYPTO_NONCE_SIZE];
302 302
303 for (i = 0; i < crypto_box_NONCEBYTES; ++i) { 303 for (i = 0; i < CRYPTO_NONCE_SIZE; ++i) {
304 n[i] = rand(); 304 n[i] = rand();
305 } 305 }
306 306
307 uint8_t n1[crypto_box_NONCEBYTES]; 307 uint8_t n1[CRYPTO_NONCE_SIZE];
308 308
309 memcpy(n1, n, crypto_box_NONCEBYTES); 309 memcpy(n1, n, CRYPTO_NONCE_SIZE);
310 310
311 for (i = 0; i < (1 << 18); ++i) { 311 for (i = 0; i < (1 << 18); ++i) {
312 increment_nonce_number_cmp(n, 1); 312 increment_nonce_number_cmp(n, 1);
313 increment_nonce(n1); 313 increment_nonce(n1);
314 ck_assert_msg(memcmp(n, n1, crypto_box_NONCEBYTES) == 0, "Bad increment_nonce function"); 314 ck_assert_msg(memcmp(n, n1, CRYPTO_NONCE_SIZE) == 0, "Bad increment_nonce function");
315 } 315 }
316 316
317 for (i = 0; i < (1 << 18); ++i) { 317 for (i = 0; i < (1 << 18); ++i) {
318 uint32_t r = rand(); 318 uint32_t r = rand();
319 increment_nonce_number_cmp(n, r); 319 increment_nonce_number_cmp(n, r);
320 increment_nonce_number(n1, r); 320 increment_nonce_number(n1, r);
321 ck_assert_msg(memcmp(n, n1, crypto_box_NONCEBYTES) == 0, "Bad increment_nonce_number function"); 321 ck_assert_msg(memcmp(n, n1, CRYPTO_NONCE_SIZE) == 0, "Bad increment_nonce_number function");
322 } 322 }
323} 323}
324END_TEST 324END_TEST