diff mbox

[4/5] crypto: speck - add test vectors for Speck128-XTS

Message ID 20180208001001.19180-5-ebiggers@google.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Eric Biggers Feb. 8, 2018, 12:10 a.m. UTC
Add test vectors for Speck128-XTS, generated in userspace using C code.
The inputs were borrowed from the AES-XTS test vectors.

Both xts(speck128-generic) and xts-speck128-neon pass these tests.

Signed-off-by: Eric Biggers <ebiggers@google.com>
---
 crypto/testmgr.c |   9 +
 crypto/testmgr.h | 687 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 696 insertions(+)
diff mbox

Patch

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index d5be42149e29..6583c11f0f0b 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -3575,6 +3575,15 @@  static const struct alg_test_desc alg_test_descs[] = {
 				.dec = __VECS(serpent_xts_dec_tv_template)
 			}
 		}
+	}, {
+		.alg = "xts(speck128)",
+		.test = alg_test_skcipher,
+		.suite = {
+			.cipher = {
+				.enc = __VECS(speck128_xts_enc_tv_template),
+				.dec = __VECS(speck128_xts_dec_tv_template),
+			}
+		}
 	}, {
 		.alg = "xts(twofish)",
 		.test = alg_test_skcipher,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 255de47f1d20..4c0fbf5cec75 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -14403,6 +14403,693 @@  static const struct cipher_testvec speck128_dec_tv_template[] = {
 	},
 };
 
+/*
+ * Speck128-XTS test vectors, taken from the AES-XTS test vectors with the
+ * result recomputed with Speck128 as the cipher
+ */
+
+static const struct cipher_testvec speck128_xts_enc_tv_template[] = {
+	{
+		.key    = "\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",
+		.klen   = 32,
+		.iv     = "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input  = "\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",
+		.ilen   = 32,
+		.result = "\x3b\x99\x4a\x64\x74\x77\xac\xed"
+			  "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62"
+			  "\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54"
+			  "\xd8\xf4\xa6\xcf\xae\xb9\x07\x42",
+		.rlen   = 32,
+	}, {
+		.key    = "\x11\x11\x11\x11\x11\x11\x11\x11"
+			  "\x11\x11\x11\x11\x11\x11\x11\x11"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22",
+		.klen   = 32,
+		.iv     = "\x33\x33\x33\x33\x33\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input  = "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44",
+		.ilen   = 32,
+		.result = "\x31\x9c\x54\x41\x95\xdd\x0b\x6d"
+			  "\xa4\x68\xf7\x31\x49\x83\xd3\x9b"
+			  "\x68\x83\x4e\x5f\x80\x78\x7f\x6f"
+			  "\xd6\x93\xce\x6e\x0a\x9e\xfc\x85",
+		.rlen   = 32,
+	}, {
+		.key    = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8"
+			  "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22",
+		.klen   = 32,
+		.iv     = "\x33\x33\x33\x33\x33\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input  = "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44",
+		.ilen   = 32,
+		.result = "\x96\xbc\x98\xee\x4b\x3d\xb7\x55"
+			  "\xfb\xe2\x0f\x52\x9e\x35\x5e\x3c"
+			  "\xab\xd2\xaf\xe2\x0c\xc6\x46\x77"
+			  "\x4f\x32\x6a\xa5\x10\x75\xc9\x12",
+		.rlen   = 32,
+	}, {
+		.key    = "\x27\x18\x28\x18\x28\x45\x90\x45"
+			  "\x23\x53\x60\x28\x74\x71\x35\x26"
+			  "\x31\x41\x59\x26\x53\x58\x97\x93"
+			  "\x23\x84\x62\x64\x33\x83\x27\x95",
+		.klen   = 32,
+		.iv     = "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input  = "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
+			  "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+		.ilen   = 512,
+		.result = "\x53\x43\x2f\x73\x46\x14\xe8\xa0"
+			  "\xd4\xf2\x41\x65\x6d\x95\xb9\x1d"
+			  "\x12\xb5\x92\xd0\x5e\x8b\x85\x6d"
+			  "\x88\xba\xb8\x89\x0d\x2d\x81\x2b"
+			  "\x1a\x21\x28\x58\x3d\xcc\xb1\x5e"
+			  "\x53\x1c\xa1\x12\xe1\x03\xb7\x34"
+			  "\x37\xb8\x60\x28\x90\xcb\x16\x43"
+			  "\x9d\x47\x8a\xc4\x4f\x47\x74\xa4"
+			  "\x84\x9e\xb3\x3e\x5d\x4d\x95\x9b"
+			  "\x43\xcb\xf7\x03\xa9\xe9\x9b\xf4"
+			  "\xc5\x13\x3a\xa9\x2b\x18\xd8\xb6"
+			  "\x58\xbd\x2a\xb9\x79\x4a\x8e\x99"
+			  "\x9b\x57\x1a\x2e\xf8\x3e\xd2\x8b"
+			  "\x52\x31\x1c\x45\x73\xb6\x12\x8f"
+			  "\xda\xf0\xa1\x8d\x9f\xf4\xaa\x7b"
+			  "\xc1\x6b\xbc\xe3\x4b\xda\xd8\x91"
+			  "\xe3\x48\x73\x06\x08\xf6\x01\xf1"
+			  "\x41\xba\x46\x08\xbf\x22\x3d\x74"
+			  "\x44\x12\xbc\x43\x34\x66\x94\x68"
+			  "\xb2\xb7\x56\x26\xdc\x7f\x1e\xd2"
+			  "\xb2\xfc\x52\x50\xbf\x4c\x02\xf8"
+			  "\xb5\xca\x2f\xe9\x00\xab\x28\x6c"
+			  "\xbe\x9e\x27\x10\x2f\xea\x76\x70"
+			  "\xfa\x18\x6d\x56\x35\x37\xc5\xc1"
+			  "\x20\xef\xf4\xcb\x85\x05\x0f\xe2"
+			  "\xe9\x0a\xff\x1e\xad\x0f\xb2\x99"
+			  "\xc6\x4c\x8d\xd9\x97\xc6\x9e\x7c"
+			  "\xa0\x19\x29\x1e\xe7\x23\xda\x41"
+			  "\xe7\x18\x00\x24\xec\x02\xef\x96"
+			  "\xec\x51\xcc\xe9\x7c\xbc\x00\xa9"
+			  "\x99\x53\x78\x1d\xe4\xac\x9e\x42"
+			  "\xf2\x2f\xc4\x75\x17\x42\xa2\x7b"
+			  "\x0e\xc9\xf0\xd7\x79\xd9\x89\x33"
+			  "\x50\x4c\xaa\x5c\xc3\x65\xd0\x0b"
+			  "\xba\xb9\x5f\x94\x91\x07\xa3\xd2"
+			  "\x8c\xe3\xfc\xea\x9a\xad\xa4\xc2"
+			  "\x5a\xd9\x34\x99\x67\xb4\xbe\x75"
+			  "\x30\x55\x9f\x6a\x32\x1d\xb9\x00"
+			  "\xd3\x31\xac\xe9\x64\x62\x4c\x53"
+			  "\xd0\xcc\x4a\x06\xe5\x14\x76\x9e"
+			  "\xa4\x6c\x27\x2f\x93\x74\xca\x33"
+			  "\x5e\xf2\xfa\x1b\x6e\xc5\x06\x85"
+			  "\x1b\x39\xac\x53\xb2\xdd\x2e\xe7"
+			  "\x76\x3a\x92\xcf\x17\x0a\x22\xb6"
+			  "\x2f\x99\x28\xff\x93\xca\xd0\x66"
+			  "\x9b\xe9\x0c\xe2\x93\xd3\x59\x1e"
+			  "\x62\x9e\x54\x4d\xeb\x67\x70\x2c"
+			  "\x78\x44\x5c\x0a\xcc\x9b\xf9\xb5"
+			  "\x33\xe6\x84\x99\xcd\x32\xa6\x0c"
+			  "\x54\x38\x11\x55\xda\x05\x0b\xc2"
+			  "\xdc\x0a\x9b\x1e\xcb\xa1\x4e\x8a"
+			  "\x66\x38\x8f\x68\xc5\x21\x0f\x5e"
+			  "\x9e\x60\x3c\x46\x5e\xbe\x1a\xc1"
+			  "\x61\x45\xc0\x23\x69\x90\xab\xb9"
+			  "\x82\x43\xd6\x36\x8d\x7b\x88\x63"
+			  "\x39\x70\x09\x5b\x12\x63\xc3\x7a"
+			  "\xb1\x3e\xbf\x14\xf9\x8b\x1d\xb0"
+			  "\x39\xb7\x3a\xbb\x93\x59\xf4\x8b"
+			  "\x06\xbe\x89\xfb\x7b\xb8\xba\xf3"
+			  "\x9a\x40\xca\x17\x7c\x5d\x4f\xef"
+			  "\x7d\x8e\x0a\x93\x93\x87\xdf\xec"
+			  "\xdc\xa6\x42\x7b\x92\x7b\xdd\x9c"
+			  "\xed\x6c\x16\xb2\xce\x12\x70\x2d"
+			  "\x41\xee\x69\x24\xc2\x95\xa0\x18",
+		.rlen   = 512,
+	}, {
+		.key	= "\x27\x18\x28\x18\x28\x45\x90\x45"
+			  "\x23\x53\x60\x28\x74\x71\x35\x26"
+			  "\x62\x49\x77\x57\x24\x70\x93\x69"
+			  "\x99\x59\x57\x49\x66\x96\x76\x27"
+			  "\x31\x41\x59\x26\x53\x58\x97\x93"
+			  "\x23\x84\x62\x64\x33\x83\x27\x95"
+			  "\x02\x88\x41\x97\x16\x93\x99\x37"
+			  "\x51\x05\x82\x09\x74\x94\x45\x92",
+		.klen	= 64,
+		.iv	= "\xff\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
+			  "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+		.ilen	= 512,
+		.result = "\x15\xfb\x91\x93\xc1\x29\x04\xaf"
+			  "\x1b\xaf\x23\x4e\x5b\xfd\x81\x86"
+			  "\x76\xef\x3a\xef\xd7\x77\x36\x44"
+			  "\xda\xcb\xbb\x2e\xa9\x59\x56\xba"
+			  "\x31\x0c\x76\x3c\x2a\xe7\x6b\xba"
+			  "\xb4\xbd\x03\xe0\xd9\xe2\x3f\xea"
+			  "\xa0\x10\xf2\xa6\x0f\x1b\xf6\x75"
+			  "\x45\x90\x58\xbb\xce\xd6\xdf\x82"
+			  "\x96\x85\x64\x59\x00\x45\x19\x88"
+			  "\x81\xa1\x83\xa5\x05\x2b\x22\x91"
+			  "\xeb\x25\x24\xca\x9e\x15\x79\xff"
+			  "\x66\xb5\xa2\xef\x22\x4a\xbd\xd5"
+			  "\x80\x0d\x1e\x04\xd3\xb6\xd6\x79"
+			  "\x17\x31\xfb\xe7\x48\xc7\x57\x56"
+			  "\x03\x8f\x32\x5f\x8a\x08\x12\xbd"
+			  "\xd5\xcb\xba\x48\x2c\x49\xa5\xcc"
+			  "\xbb\xb6\x13\x1a\x43\x63\x57\x7c"
+			  "\xa5\xfc\xc1\x4c\x87\xfe\xab\x4a"
+			  "\x5e\x73\x42\x7c\x08\x04\x57\xf5"
+			  "\x56\xe0\x4f\xe6\x1d\xe2\xcc\x51"
+			  "\xdd\xb0\xc0\x3b\x23\xf3\x9e\x67"
+			  "\x27\x7d\x4b\x18\x4f\xdd\x71\xe7"
+			  "\x86\x6b\x71\x4f\xb1\xc4\x24\x44"
+			  "\x3e\x8b\x7e\xac\xdf\x01\x7d\xf7"
+			  "\x35\x01\xaf\x79\xfa\xeb\xd6\xae"
+			  "\x50\x47\xe9\x7f\x3d\xdf\x3f\x46"
+			  "\x99\x0d\xd0\x50\x1d\x5e\x4b\x6b"
+			  "\x2c\xd8\xe1\x59\xb2\xb9\x53\x9c"
+			  "\xa7\xc7\xba\xa9\xcf\xd6\xd5\xbe"
+			  "\xd9\x70\xd5\x88\x4f\x05\x89\x76"
+			  "\x5f\x95\x21\x12\x3f\x34\xe8\x4b"
+			  "\x5a\xba\xcf\xd4\x7d\x61\x1c\x59"
+			  "\xd9\xd2\xe8\x52\xb3\xa1\x64\x14"
+			  "\x0b\x88\xf3\x96\x0d\xc0\x6a\xca"
+			  "\xd0\xe4\x43\xe5\x1b\x1d\x35\xef"
+			  "\xac\x4c\x09\x09\xf4\x2a\x4b\x85"
+			  "\xd6\xf4\xb0\x4e\xbe\x49\x69\xf8"
+			  "\x9b\xc9\xc4\x7f\xac\x9f\x11\x62"
+			  "\xed\x6c\x93\x2c\x17\xc7\x13\xd0"
+			  "\x8c\xfd\xdd\x89\x73\xcf\x27\x4f"
+			  "\x19\x33\xf8\x72\xb7\x45\x91\x60"
+			  "\xbe\x30\x7d\x06\x43\x70\x98\xcb"
+			  "\x62\x12\x1d\x5a\x3d\xf2\x75\xe2"
+			  "\x3f\x3c\x26\xb6\xea\x6d\xf8\xe9"
+			  "\x1e\xad\x69\xae\x50\x50\xf6\x71"
+			  "\xda\x33\xc0\x21\x30\x42\xf9\xcd"
+			  "\x59\xb3\x5f\xde\xd5\xaa\x63\xe4"
+			  "\xee\x53\xc4\xce\xcf\xc3\x23\xcd"
+			  "\xd7\xf4\x40\x64\x35\x7e\x3a\x84"
+			  "\x76\xca\x52\x3c\x27\xdd\xd3\xa4"
+			  "\x1e\x9f\x80\x46\x37\xf6\x31\x29"
+			  "\x6d\xe9\x51\x87\xe6\x7c\xf6\xda"
+			  "\x98\x87\x61\x4c\x26\xc0\xdf\xd8"
+			  "\xe1\xf4\x42\x6e\xbb\x30\xe1\xe8"
+			  "\x48\x9d\x86\x0f\xea\x8f\x35\x74"
+			  "\xaa\x49\x99\x81\xd4\x4b\xe8\x77"
+			  "\x09\x27\xd2\x47\xae\xe7\x8e\x5e"
+			  "\xbe\x57\x53\xf7\x61\x15\x89\xf9"
+			  "\xe9\xcc\x51\xbc\x3e\x1a\x4c\x1b"
+			  "\x4d\xbb\x62\xba\xb3\x1a\xd0\xdf"
+			  "\x1c\xaa\x5c\x9f\x5b\x0f\x7b\xda"
+			  "\x69\x67\x2f\x23\xf0\x91\xd8\x09"
+			  "\x3f\xce\x51\x68\x6a\x20\x7c\x79"
+			  "\x59\x9d\x0d\x9f\xac\xac\x98\xc0",
+		.rlen	= 512,
+		.also_non_np = 1,
+		.np	= 3,
+		.tap	= { 512 - 20, 4, 16 },
+	}
+};
+
+static const struct cipher_testvec speck128_xts_dec_tv_template[] = {
+	{
+		.key    = "\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",
+		.klen   = 32,
+		.iv     = "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x3b\x99\x4a\x64\x74\x77\xac\xed"
+			  "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62"
+			  "\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54"
+			  "\xd8\xf4\xa6\xcf\xae\xb9\x07\x42",
+		.ilen   = 32,
+		.result = "\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",
+		.rlen   = 32,
+	}, {
+		.key    = "\x11\x11\x11\x11\x11\x11\x11\x11"
+			  "\x11\x11\x11\x11\x11\x11\x11\x11"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22",
+		.klen   = 32,
+		.iv     = "\x33\x33\x33\x33\x33\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x31\x9c\x54\x41\x95\xdd\x0b\x6d"
+			  "\xa4\x68\xf7\x31\x49\x83\xd3\x9b"
+			  "\x68\x83\x4e\x5f\x80\x78\x7f\x6f"
+			  "\xd6\x93\xce\x6e\x0a\x9e\xfc\x85",
+		.ilen   = 32,
+		.result	= "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44",
+		.rlen   = 32,
+	}, {
+		.key    = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8"
+			  "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22"
+			  "\x22\x22\x22\x22\x22\x22\x22\x22",
+		.klen   = 32,
+		.iv     = "\x33\x33\x33\x33\x33\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x96\xbc\x98\xee\x4b\x3d\xb7\x55"
+			  "\xfb\xe2\x0f\x52\x9e\x35\x5e\x3c"
+			  "\xab\xd2\xaf\xe2\x0c\xc6\x46\x77"
+			  "\x4f\x32\x6a\xa5\x10\x75\xc9\x12",
+		.ilen   = 32,
+		.result = "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44"
+			  "\x44\x44\x44\x44\x44\x44\x44\x44",
+		.rlen   = 32,
+	}, {
+		.key    = "\x27\x18\x28\x18\x28\x45\x90\x45"
+			  "\x23\x53\x60\x28\x74\x71\x35\x26"
+			  "\x31\x41\x59\x26\x53\x58\x97\x93"
+			  "\x23\x84\x62\x64\x33\x83\x27\x95",
+		.klen   = 32,
+		.iv     = "\x00\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x53\x43\x2f\x73\x46\x14\xe8\xa0"
+			  "\xd4\xf2\x41\x65\x6d\x95\xb9\x1d"
+			  "\x12\xb5\x92\xd0\x5e\x8b\x85\x6d"
+			  "\x88\xba\xb8\x89\x0d\x2d\x81\x2b"
+			  "\x1a\x21\x28\x58\x3d\xcc\xb1\x5e"
+			  "\x53\x1c\xa1\x12\xe1\x03\xb7\x34"
+			  "\x37\xb8\x60\x28\x90\xcb\x16\x43"
+			  "\x9d\x47\x8a\xc4\x4f\x47\x74\xa4"
+			  "\x84\x9e\xb3\x3e\x5d\x4d\x95\x9b"
+			  "\x43\xcb\xf7\x03\xa9\xe9\x9b\xf4"
+			  "\xc5\x13\x3a\xa9\x2b\x18\xd8\xb6"
+			  "\x58\xbd\x2a\xb9\x79\x4a\x8e\x99"
+			  "\x9b\x57\x1a\x2e\xf8\x3e\xd2\x8b"
+			  "\x52\x31\x1c\x45\x73\xb6\x12\x8f"
+			  "\xda\xf0\xa1\x8d\x9f\xf4\xaa\x7b"
+			  "\xc1\x6b\xbc\xe3\x4b\xda\xd8\x91"
+			  "\xe3\x48\x73\x06\x08\xf6\x01\xf1"
+			  "\x41\xba\x46\x08\xbf\x22\x3d\x74"
+			  "\x44\x12\xbc\x43\x34\x66\x94\x68"
+			  "\xb2\xb7\x56\x26\xdc\x7f\x1e\xd2"
+			  "\xb2\xfc\x52\x50\xbf\x4c\x02\xf8"
+			  "\xb5\xca\x2f\xe9\x00\xab\x28\x6c"
+			  "\xbe\x9e\x27\x10\x2f\xea\x76\x70"
+			  "\xfa\x18\x6d\x56\x35\x37\xc5\xc1"
+			  "\x20\xef\xf4\xcb\x85\x05\x0f\xe2"
+			  "\xe9\x0a\xff\x1e\xad\x0f\xb2\x99"
+			  "\xc6\x4c\x8d\xd9\x97\xc6\x9e\x7c"
+			  "\xa0\x19\x29\x1e\xe7\x23\xda\x41"
+			  "\xe7\x18\x00\x24\xec\x02\xef\x96"
+			  "\xec\x51\xcc\xe9\x7c\xbc\x00\xa9"
+			  "\x99\x53\x78\x1d\xe4\xac\x9e\x42"
+			  "\xf2\x2f\xc4\x75\x17\x42\xa2\x7b"
+			  "\x0e\xc9\xf0\xd7\x79\xd9\x89\x33"
+			  "\x50\x4c\xaa\x5c\xc3\x65\xd0\x0b"
+			  "\xba\xb9\x5f\x94\x91\x07\xa3\xd2"
+			  "\x8c\xe3\xfc\xea\x9a\xad\xa4\xc2"
+			  "\x5a\xd9\x34\x99\x67\xb4\xbe\x75"
+			  "\x30\x55\x9f\x6a\x32\x1d\xb9\x00"
+			  "\xd3\x31\xac\xe9\x64\x62\x4c\x53"
+			  "\xd0\xcc\x4a\x06\xe5\x14\x76\x9e"
+			  "\xa4\x6c\x27\x2f\x93\x74\xca\x33"
+			  "\x5e\xf2\xfa\x1b\x6e\xc5\x06\x85"
+			  "\x1b\x39\xac\x53\xb2\xdd\x2e\xe7"
+			  "\x76\x3a\x92\xcf\x17\x0a\x22\xb6"
+			  "\x2f\x99\x28\xff\x93\xca\xd0\x66"
+			  "\x9b\xe9\x0c\xe2\x93\xd3\x59\x1e"
+			  "\x62\x9e\x54\x4d\xeb\x67\x70\x2c"
+			  "\x78\x44\x5c\x0a\xcc\x9b\xf9\xb5"
+			  "\x33\xe6\x84\x99\xcd\x32\xa6\x0c"
+			  "\x54\x38\x11\x55\xda\x05\x0b\xc2"
+			  "\xdc\x0a\x9b\x1e\xcb\xa1\x4e\x8a"
+			  "\x66\x38\x8f\x68\xc5\x21\x0f\x5e"
+			  "\x9e\x60\x3c\x46\x5e\xbe\x1a\xc1"
+			  "\x61\x45\xc0\x23\x69\x90\xab\xb9"
+			  "\x82\x43\xd6\x36\x8d\x7b\x88\x63"
+			  "\x39\x70\x09\x5b\x12\x63\xc3\x7a"
+			  "\xb1\x3e\xbf\x14\xf9\x8b\x1d\xb0"
+			  "\x39\xb7\x3a\xbb\x93\x59\xf4\x8b"
+			  "\x06\xbe\x89\xfb\x7b\xb8\xba\xf3"
+			  "\x9a\x40\xca\x17\x7c\x5d\x4f\xef"
+			  "\x7d\x8e\x0a\x93\x93\x87\xdf\xec"
+			  "\xdc\xa6\x42\x7b\x92\x7b\xdd\x9c"
+			  "\xed\x6c\x16\xb2\xce\x12\x70\x2d"
+			  "\x41\xee\x69\x24\xc2\x95\xa0\x18",
+		.ilen   = 512,
+		.result	= "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
+			  "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+		.rlen   = 512,
+	}, {
+		.key	= "\x27\x18\x28\x18\x28\x45\x90\x45"
+			  "\x23\x53\x60\x28\x74\x71\x35\x26"
+			  "\x62\x49\x77\x57\x24\x70\x93\x69"
+			  "\x99\x59\x57\x49\x66\x96\x76\x27"
+			  "\x31\x41\x59\x26\x53\x58\x97\x93"
+			  "\x23\x84\x62\x64\x33\x83\x27\x95"
+			  "\x02\x88\x41\x97\x16\x93\x99\x37"
+			  "\x51\x05\x82\x09\x74\x94\x45\x92",
+		.klen	= 64,
+		.iv	= "\xff\x00\x00\x00\x00\x00\x00\x00"
+			  "\x00\x00\x00\x00\x00\x00\x00\x00",
+		.input	= "\x15\xfb\x91\x93\xc1\x29\x04\xaf"
+			  "\x1b\xaf\x23\x4e\x5b\xfd\x81\x86"
+			  "\x76\xef\x3a\xef\xd7\x77\x36\x44"
+			  "\xda\xcb\xbb\x2e\xa9\x59\x56\xba"
+			  "\x31\x0c\x76\x3c\x2a\xe7\x6b\xba"
+			  "\xb4\xbd\x03\xe0\xd9\xe2\x3f\xea"
+			  "\xa0\x10\xf2\xa6\x0f\x1b\xf6\x75"
+			  "\x45\x90\x58\xbb\xce\xd6\xdf\x82"
+			  "\x96\x85\x64\x59\x00\x45\x19\x88"
+			  "\x81\xa1\x83\xa5\x05\x2b\x22\x91"
+			  "\xeb\x25\x24\xca\x9e\x15\x79\xff"
+			  "\x66\xb5\xa2\xef\x22\x4a\xbd\xd5"
+			  "\x80\x0d\x1e\x04\xd3\xb6\xd6\x79"
+			  "\x17\x31\xfb\xe7\x48\xc7\x57\x56"
+			  "\x03\x8f\x32\x5f\x8a\x08\x12\xbd"
+			  "\xd5\xcb\xba\x48\x2c\x49\xa5\xcc"
+			  "\xbb\xb6\x13\x1a\x43\x63\x57\x7c"
+			  "\xa5\xfc\xc1\x4c\x87\xfe\xab\x4a"
+			  "\x5e\x73\x42\x7c\x08\x04\x57\xf5"
+			  "\x56\xe0\x4f\xe6\x1d\xe2\xcc\x51"
+			  "\xdd\xb0\xc0\x3b\x23\xf3\x9e\x67"
+			  "\x27\x7d\x4b\x18\x4f\xdd\x71\xe7"
+			  "\x86\x6b\x71\x4f\xb1\xc4\x24\x44"
+			  "\x3e\x8b\x7e\xac\xdf\x01\x7d\xf7"
+			  "\x35\x01\xaf\x79\xfa\xeb\xd6\xae"
+			  "\x50\x47\xe9\x7f\x3d\xdf\x3f\x46"
+			  "\x99\x0d\xd0\x50\x1d\x5e\x4b\x6b"
+			  "\x2c\xd8\xe1\x59\xb2\xb9\x53\x9c"
+			  "\xa7\xc7\xba\xa9\xcf\xd6\xd5\xbe"
+			  "\xd9\x70\xd5\x88\x4f\x05\x89\x76"
+			  "\x5f\x95\x21\x12\x3f\x34\xe8\x4b"
+			  "\x5a\xba\xcf\xd4\x7d\x61\x1c\x59"
+			  "\xd9\xd2\xe8\x52\xb3\xa1\x64\x14"
+			  "\x0b\x88\xf3\x96\x0d\xc0\x6a\xca"
+			  "\xd0\xe4\x43\xe5\x1b\x1d\x35\xef"
+			  "\xac\x4c\x09\x09\xf4\x2a\x4b\x85"
+			  "\xd6\xf4\xb0\x4e\xbe\x49\x69\xf8"
+			  "\x9b\xc9\xc4\x7f\xac\x9f\x11\x62"
+			  "\xed\x6c\x93\x2c\x17\xc7\x13\xd0"
+			  "\x8c\xfd\xdd\x89\x73\xcf\x27\x4f"
+			  "\x19\x33\xf8\x72\xb7\x45\x91\x60"
+			  "\xbe\x30\x7d\x06\x43\x70\x98\xcb"
+			  "\x62\x12\x1d\x5a\x3d\xf2\x75\xe2"
+			  "\x3f\x3c\x26\xb6\xea\x6d\xf8\xe9"
+			  "\x1e\xad\x69\xae\x50\x50\xf6\x71"
+			  "\xda\x33\xc0\x21\x30\x42\xf9\xcd"
+			  "\x59\xb3\x5f\xde\xd5\xaa\x63\xe4"
+			  "\xee\x53\xc4\xce\xcf\xc3\x23\xcd"
+			  "\xd7\xf4\x40\x64\x35\x7e\x3a\x84"
+			  "\x76\xca\x52\x3c\x27\xdd\xd3\xa4"
+			  "\x1e\x9f\x80\x46\x37\xf6\x31\x29"
+			  "\x6d\xe9\x51\x87\xe6\x7c\xf6\xda"
+			  "\x98\x87\x61\x4c\x26\xc0\xdf\xd8"
+			  "\xe1\xf4\x42\x6e\xbb\x30\xe1\xe8"
+			  "\x48\x9d\x86\x0f\xea\x8f\x35\x74"
+			  "\xaa\x49\x99\x81\xd4\x4b\xe8\x77"
+			  "\x09\x27\xd2\x47\xae\xe7\x8e\x5e"
+			  "\xbe\x57\x53\xf7\x61\x15\x89\xf9"
+			  "\xe9\xcc\x51\xbc\x3e\x1a\x4c\x1b"
+			  "\x4d\xbb\x62\xba\xb3\x1a\xd0\xdf"
+			  "\x1c\xaa\x5c\x9f\x5b\x0f\x7b\xda"
+			  "\x69\x67\x2f\x23\xf0\x91\xd8\x09"
+			  "\x3f\xce\x51\x68\x6a\x20\x7c\x79"
+			  "\x59\x9d\x0d\x9f\xac\xac\x98\xc0",
+		.ilen	= 512,
+		.result	= "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
+			  "\x00\x01\x02\x03\x04\x05\x06\x07"
+			  "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
+			  "\x10\x11\x12\x13\x14\x15\x16\x17"
+			  "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
+			  "\x20\x21\x22\x23\x24\x25\x26\x27"
+			  "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
+			  "\x30\x31\x32\x33\x34\x35\x36\x37"
+			  "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
+			  "\x40\x41\x42\x43\x44\x45\x46\x47"
+			  "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
+			  "\x50\x51\x52\x53\x54\x55\x56\x57"
+			  "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
+			  "\x60\x61\x62\x63\x64\x65\x66\x67"
+			  "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f"
+			  "\x70\x71\x72\x73\x74\x75\x76\x77"
+			  "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
+			  "\x80\x81\x82\x83\x84\x85\x86\x87"
+			  "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
+			  "\x90\x91\x92\x93\x94\x95\x96\x97"
+			  "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
+			  "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
+			  "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
+			  "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
+			  "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
+			  "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
+			  "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
+			  "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
+			  "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
+			  "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+			  "\xe8\xe9\xea\xeb\xec\xed\xee\xef"
+			  "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7"
+			  "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
+		.rlen	= 512,
+		.also_non_np = 1,
+		.np	= 3,
+		.tap	= { 512 - 20, 4, 16 },
+	}
+};
+
 static const struct cipher_testvec speck64_enc_tv_template[] = {
 	{ /* Speck64/96 */
 		.key	= "\x10\x11\x12\x13\x08\x09\x0a\x0b"