octet k[16], r[16], n[16], s[16], *t, m[MSZMAX] = { 0 };
int ok = 1;
- if (v[0].len != sizeof(k)) { fprintf(stderr, "AES key len\n"); exit(2); }
- if (v[1].len != sizeof(r)) { fprintf(stderr, "poly key len\n"); exit(2); }
- if (v[2].len != sizeof(n)) { fprintf(stderr, "nonce len\n"); exit(2); }
- if (v[4].len != sizeof(n)) { fprintf(stderr, "result len\n"); exit(2); }
- memcpy(k, v[0].buf, sizeof(k));
- memcpy(r, v[1].buf, sizeof(k));
- memcpy(n, v[2].buf, sizeof(k));
+ if (v[0].len != 16) { fprintf(stderr, "AES key len\n"); exit(2); }
+ if (v[1].len != 16) { fprintf(stderr, "poly key len\n"); exit(2); }
+ if (v[2].len != 16) { fprintf(stderr, "nonce len\n"); exit(2); }
+ if (v[4].len != 16) { fprintf(stderr, "result len\n"); exit(2); }
+ memcpy(k, v[0].buf, 16);
+ memcpy(r, v[1].buf, 16);
+ memcpy(n, v[2].buf, 16);
niter = *(unsigned long *)v[3].buf;
dstr_ensure(&d, 16); d.len = 16; t = (octet *)d.buf;
- rijndael_ecbinit(&rij, k, sizeof(k), 0);
- poly1305_keyinit(&key, r, sizeof(r));
+ rijndael_ecbinit(&rij, k, 16, 0);
+ poly1305_keyinit(&key, r, 16);
for (i = 0; i < niter; i++) {
msz = 0;
for (;;) {
for (j = 0; j < 16; j++) n[j] ^= t[j];
if (msz%2) {
for (j = 0; j < 16; j++) k[j] ^= t[j];
- rijndael_ecbinit(&rij, k, sizeof(k), 0);
+ rijndael_ecbinit(&rij, k, 16, 0);
}
if (msz%3) {
for (j = 0; j < 16; j++) r[j] ^= t[j];
- poly1305_keyinit(&key, r, sizeof(r));
+ poly1305_keyinit(&key, r, 16);
}
m[msz++] ^= t[0];
}