Home | History | Annotate | Line # | Download | only in default
      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