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
));