auth5.c 954 B

123456789101112131415161718192021222324252627282930313233343536
  1. #define TEST_NAME "auth5"
  2. #include "cmptest.h"
  3. static unsigned char key[32];
  4. static unsigned char c[1000];
  5. static unsigned char a[32];
  6. int
  7. main(void)
  8. {
  9. size_t clen;
  10. for (clen = 0; clen < 1000; ++clen) {
  11. crypto_auth_keygen(key);
  12. randombytes_buf(c, clen);
  13. crypto_auth(a, c, clen, key);
  14. if (crypto_auth_verify(a, c, clen, key) != 0) {
  15. printf("fail %u\n", (unsigned int) clen);
  16. return 100;
  17. }
  18. if (clen > 0) {
  19. c[rand() % clen] += 1 + (rand() % 255);
  20. if (crypto_auth_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_verify(a, c, clen, key) == 0) {
  26. printf("forgery %u\n", (unsigned int) clen);
  27. return 100;
  28. }
  29. }
  30. }
  31. return 0;
  32. }