summaryrefslogtreecommitdiff
path: root/auto_tests
diff options
context:
space:
mode:
Diffstat (limited to 'auto_tests')
-rw-r--r--auto_tests/crypto_test.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/auto_tests/crypto_test.c b/auto_tests/crypto_test.c
index 9ac81349..8b5397e4 100644
--- a/auto_tests/crypto_test.c
+++ b/auto_tests/crypto_test.c
@@ -197,6 +197,43 @@ START_TEST(test_endtoend)
197} 197}
198END_TEST 198END_TEST
199 199
200START_TEST(test_large_data)
201{
202 unsigned char k[crypto_box_BEFORENMBYTES];
203
204 unsigned char n[crypto_box_NONCEBYTES];
205
206 unsigned char m1[MAX_DATA_SIZE - ENCRYPTION_PADDING];
207 unsigned char c1[sizeof(m1) + ENCRYPTION_PADDING];
208 unsigned char m1prime[sizeof(m1)];
209
210 unsigned char m2[MAX_DATA_SIZE];
211 unsigned char c2[sizeof(m2) + ENCRYPTION_PADDING];
212
213 int c1len, c2len;
214 int m1plen;
215
216 //Generate random messages
217 rand_bytes(m1, sizeof(m1));
218 rand_bytes(m2, sizeof(m2));
219 rand_bytes(n, crypto_box_NONCEBYTES);
220
221 //Generate key
222 rand_bytes(k, crypto_box_BEFORENMBYTES);
223
224 c1len = encrypt_data_fast(k, n, m1, sizeof(m1), c1);
225 c2len = encrypt_data_fast(k, n, m2, sizeof(m2), c2);
226
227 ck_assert_msg(c1len == sizeof(m1) + ENCRYPTION_PADDING, "Could not encrypt max size");
228 ck_assert_msg(c2len == -1, "incorrectly succeeded encrypting massive size");
229
230 m1plen = decrypt_data_fast(k, n, c1, c1len, m1prime);
231
232 ck_assert_msg(m1plen == sizeof(m1), "decrypted text lengths differ");
233 ck_assert_msg(memcmp(m1prime, m1, sizeof(m1)) == 0, "decrypted texts differ");
234}
235END_TEST
236
200#define DEFTESTCASE(NAME) \ 237#define DEFTESTCASE(NAME) \
201 TCase *NAME = tcase_create(#NAME); \ 238 TCase *NAME = tcase_create(#NAME); \
202 tcase_add_test(NAME, test_##NAME); \ 239 tcase_add_test(NAME, test_##NAME); \
@@ -209,6 +246,7 @@ Suite* crypto_suite(void)
209 DEFTESTCASE(known); 246 DEFTESTCASE(known);
210 DEFTESTCASE(fast_known); 247 DEFTESTCASE(fast_known);
211 DEFTESTCASE(endtoend); 248 DEFTESTCASE(endtoend);
249 DEFTESTCASE(large_data);
212 250
213 return s; 251 return s;
214} 252}