5 #include "crypto_onetimeauth_poly1305.h"
6 #include "randombytes.h"
12 for (clen
= 0;clen
< 10000;++clen
) {
13 unsigned char key_bytes
[32];
14 randombytes(key_bytes
,sizeof key_bytes
);
15 string
key((char *) key_bytes
,sizeof key_bytes
);
16 unsigned char c_bytes
[clen
];
17 randombytes(c_bytes
,sizeof c_bytes
);
18 string
c((char *) c_bytes
,sizeof c_bytes
);
19 string a
= crypto_onetimeauth_poly1305(c
,key
);
21 crypto_onetimeauth_poly1305_verify(a
,c
,key
);
22 } catch(const char *s
) {
23 printf("fail %d %s\n",clen
,s
);
27 size_t pos
= random() % clen
;
28 c
.replace(pos
,1,1,c
[pos
] + 1 + (random() % 255));
30 crypto_onetimeauth_poly1305_verify(a
,c
,key
);
31 printf("forgery %d\n",clen
);
32 } catch(const char *s
) {
35 pos
= random() % a
.size();
36 a
.replace(pos
,1,1,a
[pos
] + 1 + (random() % 255));
38 crypto_onetimeauth_poly1305_verify(a
,c
,key
);
39 printf("forgery %d\n",clen
);
40 } catch(const char *s
) {