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