7 #include "rijndael-ecb.h"
20 r[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
21 n[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
22 k[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
29 rijndael_ecbinit(&rij, k, sizeof(k), 0);
30 poly1305_keyinit(&key, r, sizeof(r));
31 for (ii = 0; ii < NITER; ii++) {
34 rijndael_ecbencrypt(&rij, n, s, 16);
36 poly1305_macinit(&mac, &key, s);
37 poly1305_hash(&mac, m, msz);
38 poly1305_done(&mac, t);
39 for (i = 0; i < sizeof(t); i++) printf("%02x", t[i]);
43 poly1305_macinit(&mac, &key, s);
44 poly1305_hash(&mac, m, msz);
45 poly1305_done(&mac, t0);
46 if (!ct_memeq(t, t0, sizeof(t))) {
47 fprintf(stderr, "verify failed\n");
51 t0[rand()%16] += 1 + rand()%255;
52 poly1305_macinit(&mac, &key, s);
53 poly1305_hash(&mac, m, msz);
54 poly1305_done(&mac, t1);
55 if (ct_memeq(t0, t1, sizeof(t))) {
56 fprintf(stderr, "verify accepted wrong tag\n");
61 if (msz >= MSZMAX) break;
63 for (i = 0; i < 16; i++) n[i] ^= t[i];
65 for (i = 0; i < 16; i++) k[i] ^= t[i];
66 rijndael_ecbinit(&rij, k, sizeof(k), 0);
69 for (i = 0; i < 16; i++) r[i] ^= t[i];
70 poly1305_keyinit(&key, r, sizeof(r));