summaryrefslogtreecommitdiff
path: root/nacl/tests/auth5.c
diff options
context:
space:
mode:
Diffstat (limited to 'nacl/tests/auth5.c')
-rw-r--r--nacl/tests/auth5.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/nacl/tests/auth5.c b/nacl/tests/auth5.c
new file mode 100644
index 00000000..d304a073
--- /dev/null
+++ b/nacl/tests/auth5.c
@@ -0,0 +1,36 @@
1#include <stdio.h>
2#include <stdlib.h>
3#include "crypto_auth_hmacsha512256.h"
4#include "randombytes.h"
5
6unsigned char key[32];
7unsigned char c[10000];
8unsigned char a[32];
9
10main()
11{
12 int clen;
13 int i;
14 for (clen = 0;clen < 10000;++clen) {
15 randombytes(key,sizeof key);
16 randombytes(c,clen);
17 crypto_auth_hmacsha512256(a,c,clen,key);
18 if (crypto_auth_hmacsha512256_verify(a,c,clen,key) != 0) {
19 printf("fail %d\n",clen);
20 return 100;
21 }
22 if (clen > 0) {
23 c[random() % clen] += 1 + (random() % 255);
24 if (crypto_auth_hmacsha512256_verify(a,c,clen,key) == 0) {
25 printf("forgery %d\n",clen);
26 return 100;
27 }
28 a[random() % sizeof a] += 1 + (random() % 255);
29 if (crypto_auth_hmacsha512256_verify(a,c,clen,key) == 0) {
30 printf("forgery %d\n",clen);
31 return 100;
32 }
33 }
34 }
35 return 0;
36}