Skip to content

Commit

Permalink
crypto: tcrypt - Fix AEAD chunk testing
Browse files Browse the repository at this point in the history
My changeset 4b22f0d

	crypto: tcrpyt - Remove unnecessary kmap/kunmap calls

introduced a typo that broke AEAD chunk testing.  In particular,
axbuf should really be xbuf.

There is also an issue with testing the last segment when encrypting.
The additional part produced by AEAD wasn't tested.  Similarly, on
decryption the additional part of the AEAD input is mistaken for
corruption.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Herbert Xu committed Aug 13, 2008
1 parent f3c85bc commit f176e63
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions crypto/tcrypt.c
Original file line number Diff line number Diff line change
Expand Up @@ -481,21 +481,31 @@ static void test_aead(char *algo, int enc, struct aead_testvec *template,

for (k = 0, temp = 0; k < template[i].np; k++) {
printk(KERN_INFO "page %u\n", k);
q = &axbuf[IDX[k]];
hexdump(q, template[i].tap[k]);
q = &xbuf[IDX[k]];

n = template[i].tap[k];
if (k == template[i].np - 1)
n += enc ? authsize : -authsize;
hexdump(q, n);
printk(KERN_INFO "%s\n",
memcmp(q, template[i].result + temp,
template[i].tap[k] -
(k < template[i].np - 1 || enc ?
0 : authsize)) ?
memcmp(q, template[i].result + temp, n) ?
"fail" : "pass");

for (n = 0; q[template[i].tap[k] + n]; n++)
;
q += n;
if (k == template[i].np - 1 && !enc) {
if (memcmp(q, template[i].input +
temp + n, authsize))
n = authsize;
else
n = 0;
} else {
for (n = 0; q[n]; n++)
;
}
if (n) {
printk("Result buffer corruption %u "
"bytes:\n", n);
hexdump(&q[template[i].tap[k]], n);
hexdump(q, n);
}

temp += template[i].tap[k];
Expand Down

0 comments on commit f176e63

Please sign in to comment.