From c2b7b20aedfa10de3634877c3e4b7bc9a7d6461e Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 16 Jun 2015 11:34:16 +0200 Subject: crypto: poly1305 - Pass key as first two message blocks to each desc_ctx The Poly1305 authenticator requires a unique key for each generated tag. This implies that we can't set the key per tfm, as multiple users set individual keys. Instead we pass a desc specific key as the first two blocks of the message to authenticate in update(). Signed-off-by: Martin Willi Signed-off-by: Herbert Xu --- crypto/testmgr.h | 99 +++++++++++++++++++++++++------------------------------- 1 file changed, 44 insertions(+), 55 deletions(-) (limited to 'crypto/testmgr.h') diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 56f8a8ef4862..35f37bcbc0d9 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -3051,12 +3051,11 @@ static struct hash_testvec hmac_sha512_tv_template[] = { static struct hash_testvec poly1305_tv_template[] = { { /* Test Vector #1 */ - .key = "\x00\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" @@ -3064,16 +3063,15 @@ static struct hash_testvec poly1305_tv_template[] = { "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", - .psize = 64, + .psize = 96, .digest = "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #2 */ - .key = "\x00\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x36\xe5\xf6\xb5\xc5\xe0\x60\x70" - "\xf0\xef\xca\x96\x22\x7a\x86\x3e", - .ksize = 32, - .plaintext = "\x41\x6e\x79\x20\x73\x75\x62\x6d" + "\xf0\xef\xca\x96\x22\x7a\x86\x3e" + "\x41\x6e\x79\x20\x73\x75\x62\x6d" "\x69\x73\x73\x69\x6f\x6e\x20\x74" "\x6f\x20\x74\x68\x65\x20\x49\x45" "\x54\x46\x20\x69\x6e\x74\x65\x6e" @@ -3120,16 +3118,15 @@ static struct hash_testvec poly1305_tv_template[] = { "\x20\x77\x68\x69\x63\x68\x20\x61" "\x72\x65\x20\x61\x64\x64\x72\x65" "\x73\x73\x65\x64\x20\x74\x6f", - .psize = 375, + .psize = 407, .digest = "\x36\xe5\xf6\xb5\xc5\xe0\x60\x70" "\xf0\xef\xca\x96\x22\x7a\x86\x3e", }, { /* Test Vector #3 */ - .key = "\x36\xe5\xf6\xb5\xc5\xe0\x60\x70" + .plaintext = "\x36\xe5\xf6\xb5\xc5\xe0\x60\x70" "\xf0\xef\xca\x96\x22\x7a\x86\x3e" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\x41\x6e\x79\x20\x73\x75\x62\x6d" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x41\x6e\x79\x20\x73\x75\x62\x6d" "\x69\x73\x73\x69\x6f\x6e\x20\x74" "\x6f\x20\x74\x68\x65\x20\x49\x45" "\x54\x46\x20\x69\x6e\x74\x65\x6e" @@ -3176,16 +3173,15 @@ static struct hash_testvec poly1305_tv_template[] = { "\x20\x77\x68\x69\x63\x68\x20\x61" "\x72\x65\x20\x61\x64\x64\x72\x65" "\x73\x73\x65\x64\x20\x74\x6f", - .psize = 375, + .psize = 407, .digest = "\xf3\x47\x7e\x7c\xd9\x54\x17\xaf" "\x89\xa6\xb8\x79\x4c\x31\x0c\xf0", }, { /* Test Vector #4 */ - .key = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a" + .plaintext = "\x1c\x92\x40\xa5\xeb\x55\xd3\x8a" "\xf3\x33\x88\x86\x04\xf6\xb5\xf0" "\x47\x39\x17\xc1\x40\x2b\x80\x09" - "\x9d\xca\x5c\xbc\x20\x70\x75\xc0", - .ksize = 32, - .plaintext = "\x27\x54\x77\x61\x73\x20\x62\x72" + "\x9d\xca\x5c\xbc\x20\x70\x75\xc0" + "\x27\x54\x77\x61\x73\x20\x62\x72" "\x69\x6c\x6c\x69\x67\x2c\x20\x61" "\x6e\x64\x20\x74\x68\x65\x20\x73" "\x6c\x69\x74\x68\x79\x20\x74\x6f" @@ -3201,79 +3197,73 @@ static struct hash_testvec poly1305_tv_template[] = { "\x68\x65\x20\x6d\x6f\x6d\x65\x20" "\x72\x61\x74\x68\x73\x20\x6f\x75" "\x74\x67\x72\x61\x62\x65\x2e", - .psize = 127, + .psize = 159, .digest = "\x45\x41\x66\x9a\x7e\xaa\xee\x61" "\xe7\x08\xdc\x7c\xbc\xc5\xeb\x62", }, { /* Test Vector #5 */ - .key = "\x02\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x02\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xff\xff\xff\xff\xff\xff\xff\xff" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\xff\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff", - .psize = 16, + .psize = 48, .digest = "\x03\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #6 */ - .key = "\x02\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x02\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\xff\xff\xff\xff\xff\xff\xff\xff" - "\xff\xff\xff\xff\xff\xff\xff\xff", - .ksize = 32, - .plaintext = "\x02\x00\x00\x00\x00\x00\x00\x00" + "\xff\xff\xff\xff\xff\xff\xff\xff" + "\x02\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", - .psize = 16, + .psize = 48, .digest = "\x03\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #7 */ - .key = "\x01\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xff\xff\xff\xff\xff\xff\xff\xff" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\xff\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff" "\xf0\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff" "\x11\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", - .psize = 48, + .psize = 80, .digest = "\x05\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #8 */ - .key = "\x01\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff" "\xfb\xfe\xfe\xfe\xfe\xfe\xfe\xfe" "\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe" "\x01\x01\x01\x01\x01\x01\x01\x01" "\x01\x01\x01\x01\x01\x01\x01\x01", - .psize = 48, + .psize = 80, .digest = "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #9 */ - .key = "\x02\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x02\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xfd\xff\xff\xff\xff\xff\xff\xff" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\xfd\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff", - .psize = 16, + .psize = 48, .digest = "\xfa\xff\xff\xff\xff\xff\xff\xff" "\xff\xff\xff\xff\xff\xff\xff\xff", }, { /* Test Vector #10 */ - .key = "\x01\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00" "\x04\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xe3\x35\x94\xd7\x50\x5e\x43\xb9" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\xe3\x35\x94\xd7\x50\x5e\x43\xb9" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x33\x94\xd7\x50\x5e\x43\x79\xcd" "\x01\x00\x00\x00\x00\x00\x00\x00" @@ -3281,22 +3271,21 @@ static struct hash_testvec poly1305_tv_template[] = { "\x00\x00\x00\x00\x00\x00\x00\x00" "\x01\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", - .psize = 64, + .psize = 96, .digest = "\x14\x00\x00\x00\x00\x00\x00\x00" "\x55\x00\x00\x00\x00\x00\x00\x00", }, { /* Test Vector #11 */ - .key = "\x01\x00\x00\x00\x00\x00\x00\x00" + .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00" "\x04\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", - .ksize = 32, - .plaintext = "\xe3\x35\x94\xd7\x50\x5e\x43\xb9" + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\xe3\x35\x94\xd7\x50\x5e\x43\xb9" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x33\x94\xd7\x50\x5e\x43\x79\xcd" "\x01\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", - .psize = 48, + .psize = 80, .digest = "\x13\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00", }, -- cgit v1.2.3-55-g7522