crypto: speck - add test vectors for Speck128-XTS

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>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Eric Biggers 2018-02-14 10:42:22 -08:00 committed by Herbert Xu
parent ede9622162
commit c3bb521bb6
2 changed files with 696 additions and 0 deletions

View File

@ -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,

View File

@ -14411,6 +14411,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 = "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62"
"\x3b\x99\x4a\x64\x74\x77\xac\xed"
"\xd8\xf4\xa6\xcf\xae\xb9\x07\x42"
"\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54",
.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 = "\xfb\x53\x81\x75\x6f\x9f\x34\xad"
"\x7e\x01\xed\x7b\xcc\xda\x4e\x4a"
"\xd4\x84\xa4\x53\xd5\x88\x73\x1b"
"\xfd\xcb\xae\x0d\xf3\x04\xee\xe6",
.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 = "\x21\x52\x84\x15\xd1\xf7\x21\x55"
"\xd9\x75\x4a\xd3\xc5\xdb\x9f\x7d"
"\xda\x63\xb2\xf1\x82\xb0\x89\x59"
"\x86\xd4\xaa\xaa\xdd\xff\x4f\x92",
.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 = "\x57\xb5\xf8\x71\x6e\x6d\xdd\x82"
"\x53\xd0\xed\x2d\x30\xc1\x20\xef"
"\x70\x67\x5e\xff\x09\x70\xbb\xc1"
"\x3a\x7b\x48\x26\xd9\x0b\xf4\x48"
"\xbe\xce\xb1\xc7\xb2\x67\xc4\xa7"
"\x76\xf8\x36\x30\xb7\xb4\x9a\xd9"
"\xf5\x9d\xd0\x7b\xc1\x06\x96\x44"
"\x19\xc5\x58\x84\x63\xb9\x12\x68"
"\x68\xc7\xaa\x18\x98\xf2\x1f\x5c"
"\x39\xa6\xd8\x32\x2b\xc3\x51\xfd"
"\x74\x79\x2e\xb4\x44\xd7\x69\xc4"
"\xfc\x29\xe6\xed\x26\x1e\xa6\x9d"
"\x1c\xbe\x00\x0e\x7f\x3a\xca\xfb"
"\x6d\x13\x65\xa0\xf9\x31\x12\xe2"
"\x26\xd1\xec\x2b\x0a\x8b\x59\x99"
"\xa7\x49\xa0\x0e\x09\x33\x85\x50"
"\xc3\x23\xca\x7a\xdd\x13\x45\x5f"
"\xde\x4c\xa7\xcb\x00\x8a\x66\x6f"
"\xa2\xb6\xb1\x2e\xe1\xa0\x18\xf6"
"\xad\xf3\xbd\xeb\xc7\xef\x55\x4f"
"\x79\x91\x8d\x36\x13\x7b\xd0\x4a"
"\x6c\x39\xfb\x53\xb8\x6f\x02\x51"
"\xa5\x20\xac\x24\x1c\x73\x59\x73"
"\x58\x61\x3a\x87\x58\xb3\x20\x56"
"\x39\x06\x2b\x4d\xd3\x20\x2b\x89"
"\x3f\xa2\xf0\x96\xeb\x7f\xa4\xcd"
"\x11\xae\xbd\xcb\x3a\xb4\xd9\x91"
"\x09\x35\x71\x50\x65\xac\x92\xe3"
"\x7b\x32\xc0\x7a\xdd\xd4\xc3\x92"
"\x6f\xeb\x79\xde\x6f\xd3\x25\xc9"
"\xcd\x63\xf5\x1e\x7a\x3b\x26\x9d"
"\x77\x04\x80\xa9\xbf\x38\xb5\xbd"
"\xb8\x05\x07\xbd\xfd\xab\x7b\xf8"
"\x2a\x26\xcc\x49\x14\x6d\x55\x01"
"\x06\x94\xd8\xb2\x2d\x53\x83\x1b"
"\x8f\xd4\xdd\x57\x12\x7e\x18\xba"
"\x8e\xe2\x4d\x80\xef\x7e\x6b\x9d"
"\x24\xa9\x60\xa4\x97\x85\x86\x2a"
"\x01\x00\x09\xf1\xcb\x4a\x24\x1c"
"\xd8\xf6\xe6\x5b\xe7\x5d\xf2\xc4"
"\x97\x1c\x10\xc6\x4d\x66\x4f\x98"
"\x87\x30\xac\xd5\xea\x73\x49\x10"
"\x80\xea\xe5\x5f\x4d\x5f\x03\x33"
"\x66\x02\x35\x3d\x60\x06\x36\x4f"
"\x14\x1c\xd8\x07\x1f\x78\xd0\xf8"
"\x4f\x6c\x62\x7c\x15\xa5\x7c\x28"
"\x7c\xcc\xeb\x1f\xd1\x07\x90\x93"
"\x7e\xc2\xa8\x3a\x80\xc0\xf5\x30"
"\xcc\x75\xcf\x16\x26\xa9\x26\x3b"
"\xe7\x68\x2f\x15\x21\x5b\xe4\x00"
"\xbd\x48\x50\xcd\x75\x70\xc4\x62"
"\xbb\x41\xfb\x89\x4a\x88\x3b\x3b"
"\x51\x66\x02\x69\x04\x97\x36\xd4"
"\x75\xae\x0b\xa3\x42\xf8\xca\x79"
"\x8f\x93\xe9\xcc\x38\xbd\xd6\xd2"
"\xf9\x70\x4e\xc3\x6a\x8e\x25\xbd"
"\xea\x15\x5a\xa0\x85\x7e\x81\x0d"
"\x03\xe7\x05\x39\xf5\x05\x26\xee"
"\xec\xaa\x1f\x3d\xc9\x98\x76\x01"
"\x2c\xf4\xfc\xa3\x88\x77\x38\xc4"
"\x50\x65\x50\x6d\x04\x1f\xdf\x5a"
"\xaa\xf2\x01\xa9\xc1\x8d\xee\xca"
"\x47\x26\xef\x39\xb8\xb4\xf2\xd1"
"\xd6\xbb\x1b\x2a\xc1\x34\x14\xcf",
.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 = "\xc5\x85\x2a\x4b\x73\xe4\xf6\xf1"
"\x7e\xf9\xf6\xe9\xa3\x73\x36\xcb"
"\xaa\xb6\x22\xb0\x24\x6e\x3d\x73"
"\x92\x99\xde\xd3\x76\xed\xcd\x63"
"\x64\x3a\x22\x57\xc1\x43\x49\xd4"
"\x79\x36\x31\x19\x62\xae\x10\x7e"
"\x7d\xcf\x7a\xe2\x6b\xce\x27\xfa"
"\xdc\x3d\xd9\x83\xd3\x42\x4c\xe0"
"\x1b\xd6\x1d\x1a\x6f\xd2\x03\x00"
"\xfc\x81\x99\x8a\x14\x62\xf5\x7e"
"\x0d\xe7\x12\xe8\x17\x9d\x0b\xec"
"\xe2\xf7\xc9\xa7\x63\xd1\x79\xb6"
"\x62\x62\x37\xfe\x0a\x4c\x4a\x37"
"\x70\xc7\x5e\x96\x5f\xbc\x8e\x9e"
"\x85\x3c\x4f\x26\x64\x85\xbc\x68"
"\xb0\xe0\x86\x5e\x26\x41\xce\x11"
"\x50\xda\x97\x14\xe9\x9e\xc7\x6d"
"\x3b\xdc\x43\xde\x2b\x27\x69\x7d"
"\xfc\xb0\x28\xbd\x8f\xb1\xc6\x31"
"\x14\x4d\xf0\x74\x37\xfd\x07\x25"
"\x96\x55\xe5\xfc\x9e\x27\x2a\x74"
"\x1b\x83\x4d\x15\x83\xac\x57\xa0"
"\xac\xa5\xd0\x38\xef\x19\x56\x53"
"\x25\x4b\xfc\xce\x04\x23\xe5\x6b"
"\xf6\xc6\x6c\x32\x0b\xb3\x12\xc5"
"\xed\x22\x34\x1c\x5d\xed\x17\x06"
"\x36\xa3\xe6\x77\xb9\x97\x46\xb8"
"\xe9\x3f\x7e\xc7\xbc\x13\x5c\xdc"
"\x6e\x3f\x04\x5e\xd1\x59\xa5\x82"
"\x35\x91\x3d\x1b\xe4\x97\x9f\x92"
"\x1c\x5e\x5f\x6f\x41\xd4\x62\xa1"
"\x8d\x39\xfc\x42\xfb\x38\x80\xb9"
"\x0a\xe3\xcc\x6a\x93\xd9\x7a\xb1"
"\xe9\x69\xaf\x0a\x6b\x75\x38\xa7"
"\xa1\xbf\xf7\xda\x95\x93\x4b\x78"
"\x19\xf5\x94\xf9\xd2\x00\x33\x37"
"\xcf\xf5\x9e\x9c\xf3\xcc\xa6\xee"
"\x42\xb2\x9e\x2c\x5f\x48\x23\x26"
"\x15\x25\x17\x03\x3d\xfe\x2c\xfc"
"\xeb\xba\xda\xe0\x00\x05\xb6\xa6"
"\x07\xb3\xe8\x36\x5b\xec\x5b\xbf"
"\xd6\x5b\x00\x74\xc6\x97\xf1\x6a"
"\x49\xa1\xc3\xfa\x10\x52\xb9\x14"
"\xad\xb7\x73\xf8\x78\x12\xc8\x59"
"\x17\x80\x4c\x57\x39\xf1\x6d\x80"
"\x25\x77\x0f\x5e\x7d\xf0\xaf\x21"
"\xec\xce\xb7\xc8\x02\x8a\xed\x53"
"\x2c\x25\x68\x2e\x1f\x85\x5e\x67"
"\xd1\x07\x7a\x3a\x89\x08\xe0\x34"
"\xdc\xdb\x26\xb4\x6b\x77\xfc\x40"
"\x31\x15\x72\xa0\xf0\x73\xd9\x3b"
"\xd5\xdb\xfe\xfc\x8f\xa9\x44\xa2"
"\x09\x9f\xc6\x33\xe5\xe2\x88\xe8"
"\xf3\xf0\x1a\xf4\xce\x12\x0f\xd6"
"\xf7\x36\xe6\xa4\xf4\x7a\x10\x58"
"\xcc\x1f\x48\x49\x65\x47\x75\xe9"
"\x28\xe1\x65\x7b\xf2\xc4\xb5\x07"
"\xf2\xec\x76\xd8\x8f\x09\xf3\x16"
"\xa1\x51\x89\x3b\xeb\x96\x42\xac"
"\x65\xe0\x67\x63\x29\xdc\xb4\x7d"
"\xf2\x41\x51\x6a\xcb\xde\x3c\xfb"
"\x66\x8d\x13\xca\xe0\x59\x2a\x00"
"\xc9\x53\x4c\xe6\x9e\xe2\x73\xd5"
"\x67\x19\xb2\xbd\x9a\x63\xd7\x5c",
.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 = "\xbe\xa0\xe7\x03\xd7\xfe\xab\x62"
"\x3b\x99\x4a\x64\x74\x77\xac\xed"
"\xd8\xf4\xa6\xcf\xae\xb9\x07\x42"
"\x51\xd9\xb6\x1d\xe0\x5e\xbc\x54",
.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 = "\xfb\x53\x81\x75\x6f\x9f\x34\xad"
"\x7e\x01\xed\x7b\xcc\xda\x4e\x4a"
"\xd4\x84\xa4\x53\xd5\x88\x73\x1b"
"\xfd\xcb\xae\x0d\xf3\x04\xee\xe6",
.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 = "\x21\x52\x84\x15\xd1\xf7\x21\x55"
"\xd9\x75\x4a\xd3\xc5\xdb\x9f\x7d"
"\xda\x63\xb2\xf1\x82\xb0\x89\x59"
"\x86\xd4\xaa\xaa\xdd\xff\x4f\x92",
.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 = "\x57\xb5\xf8\x71\x6e\x6d\xdd\x82"
"\x53\xd0\xed\x2d\x30\xc1\x20\xef"
"\x70\x67\x5e\xff\x09\x70\xbb\xc1"
"\x3a\x7b\x48\x26\xd9\x0b\xf4\x48"
"\xbe\xce\xb1\xc7\xb2\x67\xc4\xa7"
"\x76\xf8\x36\x30\xb7\xb4\x9a\xd9"
"\xf5\x9d\xd0\x7b\xc1\x06\x96\x44"
"\x19\xc5\x58\x84\x63\xb9\x12\x68"
"\x68\xc7\xaa\x18\x98\xf2\x1f\x5c"
"\x39\xa6\xd8\x32\x2b\xc3\x51\xfd"
"\x74\x79\x2e\xb4\x44\xd7\x69\xc4"
"\xfc\x29\xe6\xed\x26\x1e\xa6\x9d"
"\x1c\xbe\x00\x0e\x7f\x3a\xca\xfb"
"\x6d\x13\x65\xa0\xf9\x31\x12\xe2"
"\x26\xd1\xec\x2b\x0a\x8b\x59\x99"
"\xa7\x49\xa0\x0e\x09\x33\x85\x50"
"\xc3\x23\xca\x7a\xdd\x13\x45\x5f"
"\xde\x4c\xa7\xcb\x00\x8a\x66\x6f"
"\xa2\xb6\xb1\x2e\xe1\xa0\x18\xf6"
"\xad\xf3\xbd\xeb\xc7\xef\x55\x4f"
"\x79\x91\x8d\x36\x13\x7b\xd0\x4a"
"\x6c\x39\xfb\x53\xb8\x6f\x02\x51"
"\xa5\x20\xac\x24\x1c\x73\x59\x73"
"\x58\x61\x3a\x87\x58\xb3\x20\x56"
"\x39\x06\x2b\x4d\xd3\x20\x2b\x89"
"\x3f\xa2\xf0\x96\xeb\x7f\xa4\xcd"
"\x11\xae\xbd\xcb\x3a\xb4\xd9\x91"
"\x09\x35\x71\x50\x65\xac\x92\xe3"
"\x7b\x32\xc0\x7a\xdd\xd4\xc3\x92"
"\x6f\xeb\x79\xde\x6f\xd3\x25\xc9"
"\xcd\x63\xf5\x1e\x7a\x3b\x26\x9d"
"\x77\x04\x80\xa9\xbf\x38\xb5\xbd"
"\xb8\x05\x07\xbd\xfd\xab\x7b\xf8"
"\x2a\x26\xcc\x49\x14\x6d\x55\x01"
"\x06\x94\xd8\xb2\x2d\x53\x83\x1b"
"\x8f\xd4\xdd\x57\x12\x7e\x18\xba"
"\x8e\xe2\x4d\x80\xef\x7e\x6b\x9d"
"\x24\xa9\x60\xa4\x97\x85\x86\x2a"
"\x01\x00\x09\xf1\xcb\x4a\x24\x1c"
"\xd8\xf6\xe6\x5b\xe7\x5d\xf2\xc4"
"\x97\x1c\x10\xc6\x4d\x66\x4f\x98"
"\x87\x30\xac\xd5\xea\x73\x49\x10"
"\x80\xea\xe5\x5f\x4d\x5f\x03\x33"
"\x66\x02\x35\x3d\x60\x06\x36\x4f"
"\x14\x1c\xd8\x07\x1f\x78\xd0\xf8"
"\x4f\x6c\x62\x7c\x15\xa5\x7c\x28"
"\x7c\xcc\xeb\x1f\xd1\x07\x90\x93"
"\x7e\xc2\xa8\x3a\x80\xc0\xf5\x30"
"\xcc\x75\xcf\x16\x26\xa9\x26\x3b"
"\xe7\x68\x2f\x15\x21\x5b\xe4\x00"
"\xbd\x48\x50\xcd\x75\x70\xc4\x62"
"\xbb\x41\xfb\x89\x4a\x88\x3b\x3b"
"\x51\x66\x02\x69\x04\x97\x36\xd4"
"\x75\xae\x0b\xa3\x42\xf8\xca\x79"
"\x8f\x93\xe9\xcc\x38\xbd\xd6\xd2"
"\xf9\x70\x4e\xc3\x6a\x8e\x25\xbd"
"\xea\x15\x5a\xa0\x85\x7e\x81\x0d"
"\x03\xe7\x05\x39\xf5\x05\x26\xee"
"\xec\xaa\x1f\x3d\xc9\x98\x76\x01"
"\x2c\xf4\xfc\xa3\x88\x77\x38\xc4"
"\x50\x65\x50\x6d\x04\x1f\xdf\x5a"
"\xaa\xf2\x01\xa9\xc1\x8d\xee\xca"
"\x47\x26\xef\x39\xb8\xb4\xf2\xd1"
"\xd6\xbb\x1b\x2a\xc1\x34\x14\xcf",
.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 = "\xc5\x85\x2a\x4b\x73\xe4\xf6\xf1"
"\x7e\xf9\xf6\xe9\xa3\x73\x36\xcb"
"\xaa\xb6\x22\xb0\x24\x6e\x3d\x73"
"\x92\x99\xde\xd3\x76\xed\xcd\x63"
"\x64\x3a\x22\x57\xc1\x43\x49\xd4"
"\x79\x36\x31\x19\x62\xae\x10\x7e"
"\x7d\xcf\x7a\xe2\x6b\xce\x27\xfa"
"\xdc\x3d\xd9\x83\xd3\x42\x4c\xe0"
"\x1b\xd6\x1d\x1a\x6f\xd2\x03\x00"
"\xfc\x81\x99\x8a\x14\x62\xf5\x7e"
"\x0d\xe7\x12\xe8\x17\x9d\x0b\xec"
"\xe2\xf7\xc9\xa7\x63\xd1\x79\xb6"
"\x62\x62\x37\xfe\x0a\x4c\x4a\x37"
"\x70\xc7\x5e\x96\x5f\xbc\x8e\x9e"
"\x85\x3c\x4f\x26\x64\x85\xbc\x68"
"\xb0\xe0\x86\x5e\x26\x41\xce\x11"
"\x50\xda\x97\x14\xe9\x9e\xc7\x6d"
"\x3b\xdc\x43\xde\x2b\x27\x69\x7d"
"\xfc\xb0\x28\xbd\x8f\xb1\xc6\x31"
"\x14\x4d\xf0\x74\x37\xfd\x07\x25"
"\x96\x55\xe5\xfc\x9e\x27\x2a\x74"
"\x1b\x83\x4d\x15\x83\xac\x57\xa0"
"\xac\xa5\xd0\x38\xef\x19\x56\x53"
"\x25\x4b\xfc\xce\x04\x23\xe5\x6b"
"\xf6\xc6\x6c\x32\x0b\xb3\x12\xc5"
"\xed\x22\x34\x1c\x5d\xed\x17\x06"
"\x36\xa3\xe6\x77\xb9\x97\x46\xb8"
"\xe9\x3f\x7e\xc7\xbc\x13\x5c\xdc"
"\x6e\x3f\x04\x5e\xd1\x59\xa5\x82"
"\x35\x91\x3d\x1b\xe4\x97\x9f\x92"
"\x1c\x5e\x5f\x6f\x41\xd4\x62\xa1"
"\x8d\x39\xfc\x42\xfb\x38\x80\xb9"
"\x0a\xe3\xcc\x6a\x93\xd9\x7a\xb1"
"\xe9\x69\xaf\x0a\x6b\x75\x38\xa7"
"\xa1\xbf\xf7\xda\x95\x93\x4b\x78"
"\x19\xf5\x94\xf9\xd2\x00\x33\x37"
"\xcf\xf5\x9e\x9c\xf3\xcc\xa6\xee"
"\x42\xb2\x9e\x2c\x5f\x48\x23\x26"
"\x15\x25\x17\x03\x3d\xfe\x2c\xfc"
"\xeb\xba\xda\xe0\x00\x05\xb6\xa6"
"\x07\xb3\xe8\x36\x5b\xec\x5b\xbf"
"\xd6\x5b\x00\x74\xc6\x97\xf1\x6a"
"\x49\xa1\xc3\xfa\x10\x52\xb9\x14"
"\xad\xb7\x73\xf8\x78\x12\xc8\x59"
"\x17\x80\x4c\x57\x39\xf1\x6d\x80"
"\x25\x77\x0f\x5e\x7d\xf0\xaf\x21"
"\xec\xce\xb7\xc8\x02\x8a\xed\x53"
"\x2c\x25\x68\x2e\x1f\x85\x5e\x67"
"\xd1\x07\x7a\x3a\x89\x08\xe0\x34"
"\xdc\xdb\x26\xb4\x6b\x77\xfc\x40"
"\x31\x15\x72\xa0\xf0\x73\xd9\x3b"
"\xd5\xdb\xfe\xfc\x8f\xa9\x44\xa2"
"\x09\x9f\xc6\x33\xe5\xe2\x88\xe8"
"\xf3\xf0\x1a\xf4\xce\x12\x0f\xd6"
"\xf7\x36\xe6\xa4\xf4\x7a\x10\x58"
"\xcc\x1f\x48\x49\x65\x47\x75\xe9"
"\x28\xe1\x65\x7b\xf2\xc4\xb5\x07"
"\xf2\xec\x76\xd8\x8f\x09\xf3\x16"
"\xa1\x51\x89\x3b\xeb\x96\x42\xac"
"\x65\xe0\x67\x63\x29\xdc\xb4\x7d"
"\xf2\x41\x51\x6a\xcb\xde\x3c\xfb"
"\x66\x8d\x13\xca\xe0\x59\x2a\x00"
"\xc9\x53\x4c\xe6\x9e\xe2\x73\xd5"
"\x67\x19\xb2\xbd\x9a\x63\xd7\x5c",
.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 = "\x00\x01\x02\x03\x08\x09\x0a\x0b"