auth7.c 1010 B

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