diff options
Diffstat (limited to 'test/default/auth7.c')
-rw-r--r-- | test/default/auth7.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/default/auth7.c b/test/default/auth7.c new file mode 100644 index 0000000..be67312 --- /dev/null +++ b/test/default/auth7.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> +#include "windows/windows-quirks.h" + +#define TEST_NAME "auth7" +#include "cmptest.h" + +unsigned char key[32]; +unsigned char c[10000]; +unsigned char a[64]; + +int main(void) +{ + int clen; + for (clen = 0;clen < 10000;++clen) { + randombytes(key,sizeof key); + randombytes(c,clen); + crypto_auth_hmacsha512(a,c,clen,key); + if (crypto_auth_hmacsha512_verify(a,c,clen,key) != 0) { + printf("fail %d\n",clen); + return 100; + } + if (clen > 0) { + c[rand() % clen] += 1 + (rand() % 255); + if (crypto_auth_hmacsha512_verify(a,c,clen,key) == 0) { + printf("forgery %d\n",clen); + return 100; + } + a[rand() % sizeof a] += 1 + (rand() % 255); + if (crypto_auth_hmacsha512_verify(a,c,clen,key) == 0) { + printf("forgery %d\n",clen); + return 100; + } + } + } + return 0; +} |