diff options
Diffstat (limited to 'test/default/secretbox7.c')
-rw-r--r-- | test/default/secretbox7.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/default/secretbox7.c b/test/default/secretbox7.c new file mode 100644 index 0000000..337f081 --- /dev/null +++ b/test/default/secretbox7.c @@ -0,0 +1,33 @@ +#include <stdio.h> + +#define TEST_NAME "secretbox7" +#include "cmptest.h" + +unsigned char k[crypto_secretbox_KEYBYTES]; +unsigned char n[crypto_secretbox_NONCEBYTES]; +unsigned char m[10000]; +unsigned char c[10000]; +unsigned char m2[10000]; + +int main(void) +{ + size_t mlen; + size_t i; + + for (mlen = 0;mlen < 1000 && mlen + crypto_secretbox_ZEROBYTES < sizeof m;++mlen) { + randombytes(k,crypto_secretbox_KEYBYTES); + randombytes(n,crypto_secretbox_NONCEBYTES); + randombytes(m + crypto_secretbox_ZEROBYTES,mlen); + crypto_secretbox(c,m,mlen + crypto_secretbox_ZEROBYTES,n,k); + if (crypto_secretbox_open(m2,c,mlen + crypto_secretbox_ZEROBYTES,n,k) == 0) { + for (i = 0;i < mlen + crypto_secretbox_ZEROBYTES;++i) + if (m2[i] != m[i]) { + printf("bad decryption\n"); + break; + } + } else { + printf("ciphertext fails verification\n"); + } + } + return 0; +} |