auth7.c revision 1.1 1 1.1 riastrad
2 1.1 riastrad #define TEST_NAME "auth7"
3 1.1 riastrad #include "cmptest.h"
4 1.1 riastrad
5 1.1 riastrad static unsigned char key[32];
6 1.1 riastrad static unsigned char c[600];
7 1.1 riastrad static unsigned char a[64];
8 1.1 riastrad
9 1.1 riastrad int
10 1.1 riastrad main(void)
11 1.1 riastrad {
12 1.1 riastrad size_t clen;
13 1.1 riastrad
14 1.1 riastrad for (clen = 0; clen < sizeof c; ++clen) {
15 1.1 riastrad crypto_auth_keygen(key);
16 1.1 riastrad randombytes_buf(c, clen);
17 1.1 riastrad crypto_auth_hmacsha512(a, c, clen, key);
18 1.1 riastrad if (crypto_auth_hmacsha512_verify(a, c, clen, key) != 0) {
19 1.1 riastrad printf("fail %u\n", (unsigned int) clen);
20 1.1 riastrad return 100;
21 1.1 riastrad }
22 1.1 riastrad if (clen > 0) {
23 1.1 riastrad c[(size_t) rand() % clen] += 1 + (rand() % 255);
24 1.1 riastrad if (crypto_auth_hmacsha512_verify(a, c, clen, key) == 0) {
25 1.1 riastrad printf("forgery %u\n", (unsigned int) clen);
26 1.1 riastrad return 100;
27 1.1 riastrad }
28 1.1 riastrad a[rand() % sizeof a] += 1 + (rand() % 255);
29 1.1 riastrad if (crypto_auth_hmacsha512_verify(a, c, clen, key) == 0) {
30 1.1 riastrad printf("forgery %u\n", (unsigned int) clen);
31 1.1 riastrad return 100;
32 1.1 riastrad }
33 1.1 riastrad }
34 1.1 riastrad }
35 1.1 riastrad return 0;
36 1.1 riastrad }
37