Patchwork [5/5] crypto: speck - add test vectors for Speck64-XTS

login
register
mail settings
Submitter Eric Biggers
Date Feb. 8, 2018, 12:10 a.m.
Message ID <20180208001001.19180-6-ebiggers@google.com>
Download mbox | patch
Permalink /patch/10206375/
State Superseded
Delegated to: Herbert Xu
Headers show

Comments

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

xts-speck64-neon passes these tests.  However, they aren't currently
applicable for the generic XTS template, as that only supports a 128-bit
block size.

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

Patch

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