1*f447f37aSriastradh
2*f447f37aSriastradh #define TEST_NAME "secretbox7"
3*f447f37aSriastradh #include "cmptest.h"
4*f447f37aSriastradh
5*f447f37aSriastradh static unsigned char k[crypto_secretbox_KEYBYTES];
6*f447f37aSriastradh static unsigned char n[crypto_secretbox_NONCEBYTES];
7*f447f37aSriastradh static unsigned char m[10000];
8*f447f37aSriastradh static unsigned char c[10000];
9*f447f37aSriastradh static unsigned char m2[10000];
10*f447f37aSriastradh
11*f447f37aSriastradh int
main(void)12*f447f37aSriastradh main(void)
13*f447f37aSriastradh {
14*f447f37aSriastradh size_t mlen;
15*f447f37aSriastradh size_t i;
16*f447f37aSriastradh
17*f447f37aSriastradh for (mlen = 0; mlen < 1000 && mlen + crypto_secretbox_ZEROBYTES < sizeof m;
18*f447f37aSriastradh ++mlen) {
19*f447f37aSriastradh crypto_secretbox_keygen(k);
20*f447f37aSriastradh randombytes_buf(n, crypto_secretbox_NONCEBYTES);
21*f447f37aSriastradh randombytes_buf(m + crypto_secretbox_ZEROBYTES, mlen);
22*f447f37aSriastradh crypto_secretbox(c, m, mlen + crypto_secretbox_ZEROBYTES, n, k);
23*f447f37aSriastradh if (crypto_secretbox_open(m2, c, mlen + crypto_secretbox_ZEROBYTES, n,
24*f447f37aSriastradh k) == 0) {
25*f447f37aSriastradh for (i = 0; i < mlen + crypto_secretbox_ZEROBYTES; ++i) {
26*f447f37aSriastradh if (m2[i] != m[i]) {
27*f447f37aSriastradh printf("bad decryption\n");
28*f447f37aSriastradh break;
29*f447f37aSriastradh }
30*f447f37aSriastradh }
31*f447f37aSriastradh } else {
32*f447f37aSriastradh printf("ciphertext fails verification\n");
33*f447f37aSriastradh }
34*f447f37aSriastradh }
35*f447f37aSriastradh return 0;
36*f447f37aSriastradh }
37