crypto: testmgr - add xts(twofish) test vectors
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Tue, 18 Oct 2011 10:33:33 +0000 (13:33 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 9 Nov 2011 03:57:56 +0000 (11:57 +0800)
Add test vectors for xts(twofish). These are generated from xts(twofish) test vectors.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/testmgr.c
crypto/testmgr.h

index 5e349a6bc98ac4d076612f11a33d410d17cf60ee..01553a6754b752dc4ca6abada6ca4aca33cb238c 100644 (file)
@@ -2588,6 +2588,21 @@ static const struct alg_test_desc alg_test_descs[] = {
                                }
                        }
                }
+       }, {
+               .alg = "xts(twofish)",
+               .test = alg_test_skcipher,
+               .suite = {
+                       .cipher = {
+                               .enc = {
+                                       .vecs = tf_xts_enc_tv_template,
+                                       .count = TF_XTS_ENC_TEST_VECTORS
+                               },
+                               .dec = {
+                                       .vecs = tf_xts_dec_tv_template,
+                                       .count = TF_XTS_DEC_TEST_VECTORS
+                               }
+                       }
+               }
        }, {
                .alg = "zlib",
                .test = alg_test_pcomp,
index 9158a92aa18bad3aa43fc7b3a8988f6d1c1258dc..43e84d32b341ff58b12d3f80a3924a2296b56f5a 100644 (file)
@@ -2719,6 +2719,8 @@ static struct cipher_testvec bf_ctr_dec_tv_template[] = {
 #define TF_CTR_DEC_TEST_VECTORS                2
 #define TF_LRW_ENC_TEST_VECTORS                8
 #define TF_LRW_DEC_TEST_VECTORS                8
+#define TF_XTS_ENC_TEST_VECTORS                5
+#define TF_XTS_DEC_TEST_VECTORS                5
 
 static struct cipher_testvec tf_enc_tv_template[] = {
        {
@@ -3593,6 +3595,685 @@ static struct cipher_testvec tf_lrw_dec_tv_template[] = {
        },
 };
 
+static struct cipher_testvec tf_xts_enc_tv_template[] = {
+       /* Generated from AES-XTS test vectors */
+{
+               .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 = "\x4b\xc9\x44\x4a\x11\xa3\xef\xac"
+                         "\x30\x74\xe4\x44\x52\x77\x97\x43"
+                         "\xa7\x60\xb2\x45\x2e\xf9\x00\x90"
+                         "\x9f\xaa\xfd\x89\x6e\x9d\x4a\xe0",
+               .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 = "\x57\x0e\x8f\xe5\x2a\x35\x61\x4f"
+                         "\x32\xd3\xbd\x36\x05\x15\x44\x2c"
+                         "\x58\x06\xf7\xf8\x00\xa8\xb6\xd5"
+                         "\xc6\x28\x92\xdb\xd8\x34\xa2\xe9",
+               .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\x45\x8f\x8d\x7a\x75\xb1\xde"
+                         "\x40\x0c\x89\x56\xf6\x4d\xa7\x07"
+                         "\x38\xbb\x5b\xe9\xcd\x84\xae\xb2"
+                         "\x7b\x6a\x62\xf4\x8c\xb5\x37\xea",
+               .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 = "\xa9\x78\xae\x1e\xea\xa2\x44\x4c"
+                         "\xa2\x7a\x64\x1f\xaf\x46\xc1\xe0"
+                         "\x6c\xb2\xf3\x92\x9a\xd6\x7d\x58"
+                         "\xb8\x2d\xb9\x5d\x58\x07\x66\x50"
+                         "\xea\x35\x35\x8c\xb2\x46\x61\x06"
+                         "\x5d\x65\xfc\x57\x8f\x69\x74\xab"
+                         "\x8a\x06\x69\xb5\x6c\xda\x66\xc7"
+                         "\x52\x90\xbb\x8e\x6d\x8b\xb5\xa2"
+                         "\x78\x1d\xc2\xa9\xc2\x73\x00\xc3"
+                         "\x32\x36\x7c\x97\x6b\x4e\x8a\x50"
+                         "\xe4\x91\x83\x96\x8f\xf4\x94\x1a"
+                         "\xa6\x27\xe1\x33\xcb\x91\xc6\x5f"
+                         "\x94\x75\xbc\xd7\x3e\x3e\x6f\x9e"
+                         "\xa9\x31\x80\x5e\xe5\xdb\xc8\x53"
+                         "\x01\x73\x68\x32\x25\x19\xfa\xfb"
+                         "\xe4\xcf\xb9\x3e\xa2\xa0\x8f\x31"
+                         "\xbf\x54\x06\x93\xa8\xb1\x0f\xb6"
+                         "\x7c\x3c\xde\x6f\x0f\xfb\x0c\x11"
+                         "\x39\x80\x39\x09\x97\x65\xf2\x83"
+                         "\xae\xe6\xa1\x6f\x47\xb8\x49\xde"
+                         "\x99\x36\x20\x7d\x97\x3b\xec\xfa"
+                         "\xb4\x33\x6e\x7a\xc7\x46\x84\x49"
+                         "\x91\xcd\xe1\x57\x0d\xed\x40\x08"
+                         "\x13\xf1\x4e\x3e\xa4\xa4\x5c\xe6"
+                         "\xd2\x0c\x20\x8f\x3e\xdf\x3f\x47"
+                         "\x9a\x2f\xde\x6d\x66\xc9\x99\x4a"
+                         "\x2d\x9e\x9d\x4b\x1a\x27\xa2\x12"
+                         "\x99\xf0\xf8\xb1\xb6\xf6\x57\xc3"
+                         "\xca\x1c\xa3\x8e\xed\x39\x28\xb5"
+                         "\x10\x1b\x4b\x08\x42\x00\x4a\xd3"
+                         "\xad\x5a\xc6\x8e\xc8\xbb\x95\xc4"
+                         "\x4b\xaa\xfe\xd5\x42\xa8\xa3\x6d"
+                         "\x3c\xf3\x34\x91\x2d\xb4\xdd\x20"
+                         "\x0c\x90\x6d\xa3\x9b\x66\x9d\x24"
+                         "\x02\xa6\xa9\x3f\x3f\x58\x5d\x47"
+                         "\x24\x65\x63\x7e\xbd\x8c\xe6\x52"
+                         "\x7d\xef\x33\x53\x63\xec\xaa\x0b"
+                         "\x64\x15\xa9\xa6\x1f\x10\x00\x38"
+                         "\x35\xa8\xe7\xbe\x23\x70\x22\xe0"
+                         "\xd3\xb9\xe6\xfd\xe6\xaa\x03\x50"
+                         "\xf3\x3c\x27\x36\x8b\xcc\xfe\x9c"
+                         "\x9c\xa3\xb3\xe7\x68\x9b\xa2\x71"
+                         "\xe0\x07\xd9\x1f\x68\x1f\xac\x5e"
+                         "\x7a\x74\x85\xa9\x6a\x90\xab\x2c"
+                         "\x38\x51\xbc\x1f\x43\x4a\x56\x1c"
+                         "\xf8\x47\x03\x4e\x67\xa8\x1f\x99"
+                         "\x04\x39\x73\x32\xb2\x86\x79\xe7"
+                         "\x14\x28\x70\xb8\xe2\x7d\x69\x85"
+                         "\xb6\x0f\xc5\xd0\xd0\x01\x5c\xe6"
+                         "\x09\x0f\x75\xf7\xb6\x81\xd2\x11"
+                         "\x20\x9c\xa1\xee\x11\x44\x79\xd0"
+                         "\xb2\x34\x77\xda\x10\x9a\x6f\x6f"
+                         "\xef\x7c\xd9\xdc\x35\xb7\x61\xdd"
+                         "\xf1\xa4\xc6\x1c\xbf\x05\x22\xac"
+                         "\xfe\x2f\x85\x00\x44\xdf\x33\x16"
+                         "\x35\xb6\xa3\xd3\x70\xdf\x69\x35"
+                         "\x6a\xc7\xb4\x99\x45\x27\xc8\x8e"
+                         "\x5a\x14\x30\xd0\x55\x3e\x4f\x64"
+                         "\x0d\x38\xe3\xdf\x8b\xa8\x93\x26"
+                         "\x75\xae\xf6\xb5\x23\x0b\x17\x31"
+                         "\xbf\x27\xb8\xb5\x94\x31\xa7\x8f"
+                         "\x43\xc4\x46\x24\x22\x4f\x8f\x7e"
+                         "\xe5\xf4\x6d\x1e\x0e\x18\x7a\xbb"
+                         "\xa6\x8f\xfb\x49\x49\xd8\x7e\x5a",
+               .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 = "\xd7\x4b\x93\x7d\x13\xa2\xa2\xe1"
+                         "\x35\x39\x71\x88\x76\x1e\xc9\xea"
+                         "\x86\xad\xf3\x14\x48\x3d\x5e\xe9"
+                         "\xe9\x2d\xb2\x56\x59\x35\x9d\xec"
+                         "\x84\xfa\x7e\x9d\x6d\x33\x36\x8f"
+                         "\xce\xf4\xa9\x21\x0b\x5f\x96\xec"
+                         "\xcb\xf9\x57\x68\x33\x88\x39\xbf"
+                         "\x2f\xbb\x59\x03\xbd\x66\x8b\x11"
+                         "\x11\x65\x51\x2e\xb8\x67\x05\xd1"
+                         "\x27\x11\x5c\xd4\xcc\x97\xc2\xb3"
+                         "\xa9\x55\xaf\x07\x56\xd1\xdc\xf5"
+                         "\x85\xdc\x46\xe6\xf0\x24\xeb\x93"
+                         "\x4d\xf0\x9b\xf5\x73\x1c\xda\x03"
+                         "\x22\xc8\x3a\x4f\xb4\x19\x91\x09"
+                         "\x54\x0b\xf6\xfe\x17\x3d\x1a\x53"
+                         "\x72\x60\x79\xcb\x0e\x32\x8a\x77"
+                         "\xd5\xed\xdb\x33\xd7\x62\x16\x69"
+                         "\x63\xe0\xab\xb5\xf6\x9c\x5f\x3d"
+                         "\x69\x35\x61\x86\xf8\x86\xb9\x89"
+                         "\x6e\x59\x35\xac\xf6\x6b\x33\xa0"
+                         "\xea\xef\x96\x62\xd8\xa9\xcf\x56"
+                         "\xbf\xdb\x8a\xfd\xa1\x82\x77\x73"
+                         "\x3d\x94\x4a\x49\x42\x6d\x08\x60"
+                         "\xa1\xea\xab\xb6\x88\x13\x94\xb8"
+                         "\x51\x98\xdb\x35\x85\xdf\xf6\xb9"
+                         "\x8f\xcd\xdf\x80\xd3\x40\x2d\x72"
+                         "\xb8\xb2\x6c\x02\x43\x35\x22\x2a"
+                         "\x31\xed\xcd\x16\x19\xdf\x62\x0f"
+                         "\x29\xcf\x87\x04\xec\x02\x4f\xe4"
+                         "\xa2\xed\x73\xc6\x69\xd3\x7e\x89"
+                         "\x0b\x76\x10\x7c\xd6\xf9\x6a\x25"
+                         "\xed\xcc\x60\x5d\x61\x20\xc1\x97"
+                         "\x56\x91\x57\x28\xbe\x71\x0d\xcd"
+                         "\xde\xc4\x9e\x55\x91\xbe\xd1\x28"
+                         "\x9b\x90\xeb\x73\xf3\x68\x51\xc6"
+                         "\xdf\x82\xcc\xd8\x1f\xce\x5b\x27"
+                         "\xc0\x60\x5e\x33\xd6\xa7\x20\xea"
+                         "\xb2\x54\xc7\x5d\x6a\x3b\x67\x47"
+                         "\xcf\xa0\xe3\xab\x86\xaf\xc1\x42"
+                         "\xe6\xb0\x23\x4a\xaf\x53\xdf\xa0"
+                         "\xad\x12\x32\x31\x03\xf7\x21\xbe"
+                         "\x2d\xd5\x82\x42\xb6\x4a\x3d\xcd"
+                         "\xd8\x81\x77\xa9\x49\x98\x6c\x09"
+                         "\xc5\xa3\x61\x12\x62\x85\x6b\xcd"
+                         "\xb3\xf4\x20\x0c\x41\xc4\x05\x37"
+                         "\x46\x5f\xeb\x71\x8b\xf1\xaf\x6e"
+                         "\xba\xf3\x50\x2e\xfe\xa8\x37\xeb"
+                         "\xe8\x8c\x4f\xa4\x0c\xf1\x31\xc8"
+                         "\x6e\x71\x4f\xa5\xd7\x97\x73\xe0"
+                         "\x93\x4a\x2f\xda\x7b\xe0\x20\x54"
+                         "\x1f\x8d\x85\x79\x0b\x7b\x5e\x75"
+                         "\xb9\x07\x67\xcc\xc8\xe7\x21\x15"
+                         "\xa7\xc8\x98\xff\x4b\x80\x1c\x12"
+                         "\xa8\x54\xe1\x38\x52\xe6\x74\x81"
+                         "\x97\x47\xa1\x41\x0e\xc0\x50\xe3"
+                         "\x55\x0e\xc3\xa7\x70\x77\xce\x07"
+                         "\xed\x8c\x88\xe6\xa1\x5b\x14\xec"
+                         "\xe6\xde\x06\x6d\x74\xc5\xd9\xfa"
+                         "\xe5\x2f\x5a\xff\xc8\x05\xee\x27"
+                         "\x35\x61\xbf\x0b\x19\x78\x9b\xd2"
+                         "\x04\xc7\x05\xb1\x79\xb4\xff\x5f"
+                         "\xf3\xea\x67\x52\x78\xc2\xce\x70"
+                         "\xa4\x05\x0b\xb2\xb3\xa8\x30\x97"
+                         "\x37\x30\xe1\x91\x8d\xb3\x2a\xff",
+               .rlen   = 512,
+       },
+};
+
+static struct cipher_testvec tf_xts_dec_tv_template[] = {
+       /* Generated from AES-XTS test vectors */
+       /* same as enc vectors with input and result reversed */
+       {
+               .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  = "\x4b\xc9\x44\x4a\x11\xa3\xef\xac"
+                         "\x30\x74\xe4\x44\x52\x77\x97\x43"
+                         "\xa7\x60\xb2\x45\x2e\xf9\x00\x90"
+                         "\x9f\xaa\xfd\x89\x6e\x9d\x4a\xe0",
+               .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  = "\x57\x0e\x8f\xe5\x2a\x35\x61\x4f"
+                         "\x32\xd3\xbd\x36\x05\x15\x44\x2c"
+                         "\x58\x06\xf7\xf8\x00\xa8\xb6\xd5"
+                         "\xc6\x28\x92\xdb\xd8\x34\xa2\xe9",
+               .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\x45\x8f\x8d\x7a\x75\xb1\xde"
+                         "\x40\x0c\x89\x56\xf6\x4d\xa7\x07"
+                         "\x38\xbb\x5b\xe9\xcd\x84\xae\xb2"
+                         "\x7b\x6a\x62\xf4\x8c\xb5\x37\xea",
+               .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  = "\xa9\x78\xae\x1e\xea\xa2\x44\x4c"
+                         "\xa2\x7a\x64\x1f\xaf\x46\xc1\xe0"
+                         "\x6c\xb2\xf3\x92\x9a\xd6\x7d\x58"
+                         "\xb8\x2d\xb9\x5d\x58\x07\x66\x50"
+                         "\xea\x35\x35\x8c\xb2\x46\x61\x06"
+                         "\x5d\x65\xfc\x57\x8f\x69\x74\xab"
+                         "\x8a\x06\x69\xb5\x6c\xda\x66\xc7"
+                         "\x52\x90\xbb\x8e\x6d\x8b\xb5\xa2"
+                         "\x78\x1d\xc2\xa9\xc2\x73\x00\xc3"
+                         "\x32\x36\x7c\x97\x6b\x4e\x8a\x50"
+                         "\xe4\x91\x83\x96\x8f\xf4\x94\x1a"
+                         "\xa6\x27\xe1\x33\xcb\x91\xc6\x5f"
+                         "\x94\x75\xbc\xd7\x3e\x3e\x6f\x9e"
+                         "\xa9\x31\x80\x5e\xe5\xdb\xc8\x53"
+                         "\x01\x73\x68\x32\x25\x19\xfa\xfb"
+                         "\xe4\xcf\xb9\x3e\xa2\xa0\x8f\x31"
+                         "\xbf\x54\x06\x93\xa8\xb1\x0f\xb6"
+                         "\x7c\x3c\xde\x6f\x0f\xfb\x0c\x11"
+                         "\x39\x80\x39\x09\x97\x65\xf2\x83"
+                         "\xae\xe6\xa1\x6f\x47\xb8\x49\xde"
+                         "\x99\x36\x20\x7d\x97\x3b\xec\xfa"
+                         "\xb4\x33\x6e\x7a\xc7\x46\x84\x49"
+                         "\x91\xcd\xe1\x57\x0d\xed\x40\x08"
+                         "\x13\xf1\x4e\x3e\xa4\xa4\x5c\xe6"
+                         "\xd2\x0c\x20\x8f\x3e\xdf\x3f\x47"
+                         "\x9a\x2f\xde\x6d\x66\xc9\x99\x4a"
+                         "\x2d\x9e\x9d\x4b\x1a\x27\xa2\x12"
+                         "\x99\xf0\xf8\xb1\xb6\xf6\x57\xc3"
+                         "\xca\x1c\xa3\x8e\xed\x39\x28\xb5"
+                         "\x10\x1b\x4b\x08\x42\x00\x4a\xd3"
+                         "\xad\x5a\xc6\x8e\xc8\xbb\x95\xc4"
+                         "\x4b\xaa\xfe\xd5\x42\xa8\xa3\x6d"
+                         "\x3c\xf3\x34\x91\x2d\xb4\xdd\x20"
+                         "\x0c\x90\x6d\xa3\x9b\x66\x9d\x24"
+                         "\x02\xa6\xa9\x3f\x3f\x58\x5d\x47"
+                         "\x24\x65\x63\x7e\xbd\x8c\xe6\x52"
+                         "\x7d\xef\x33\x53\x63\xec\xaa\x0b"
+                         "\x64\x15\xa9\xa6\x1f\x10\x00\x38"
+                         "\x35\xa8\xe7\xbe\x23\x70\x22\xe0"
+                         "\xd3\xb9\xe6\xfd\xe6\xaa\x03\x50"
+                         "\xf3\x3c\x27\x36\x8b\xcc\xfe\x9c"
+                         "\x9c\xa3\xb3\xe7\x68\x9b\xa2\x71"
+                         "\xe0\x07\xd9\x1f\x68\x1f\xac\x5e"
+                         "\x7a\x74\x85\xa9\x6a\x90\xab\x2c"
+                         "\x38\x51\xbc\x1f\x43\x4a\x56\x1c"
+                         "\xf8\x47\x03\x4e\x67\xa8\x1f\x99"
+                         "\x04\x39\x73\x32\xb2\x86\x79\xe7"
+                         "\x14\x28\x70\xb8\xe2\x7d\x69\x85"
+                         "\xb6\x0f\xc5\xd0\xd0\x01\x5c\xe6"
+                         "\x09\x0f\x75\xf7\xb6\x81\xd2\x11"
+                         "\x20\x9c\xa1\xee\x11\x44\x79\xd0"
+                         "\xb2\x34\x77\xda\x10\x9a\x6f\x6f"
+                         "\xef\x7c\xd9\xdc\x35\xb7\x61\xdd"
+                         "\xf1\xa4\xc6\x1c\xbf\x05\x22\xac"
+                         "\xfe\x2f\x85\x00\x44\xdf\x33\x16"
+                         "\x35\xb6\xa3\xd3\x70\xdf\x69\x35"
+                         "\x6a\xc7\xb4\x99\x45\x27\xc8\x8e"
+                         "\x5a\x14\x30\xd0\x55\x3e\x4f\x64"
+                         "\x0d\x38\xe3\xdf\x8b\xa8\x93\x26"
+                         "\x75\xae\xf6\xb5\x23\x0b\x17\x31"
+                         "\xbf\x27\xb8\xb5\x94\x31\xa7\x8f"
+                         "\x43\xc4\x46\x24\x22\x4f\x8f\x7e"
+                         "\xe5\xf4\x6d\x1e\x0e\x18\x7a\xbb"
+                         "\xa6\x8f\xfb\x49\x49\xd8\x7e\x5a",
+               .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  = "\xd7\x4b\x93\x7d\x13\xa2\xa2\xe1"
+                         "\x35\x39\x71\x88\x76\x1e\xc9\xea"
+                         "\x86\xad\xf3\x14\x48\x3d\x5e\xe9"
+                         "\xe9\x2d\xb2\x56\x59\x35\x9d\xec"
+                         "\x84\xfa\x7e\x9d\x6d\x33\x36\x8f"
+                         "\xce\xf4\xa9\x21\x0b\x5f\x96\xec"
+                         "\xcb\xf9\x57\x68\x33\x88\x39\xbf"
+                         "\x2f\xbb\x59\x03\xbd\x66\x8b\x11"
+                         "\x11\x65\x51\x2e\xb8\x67\x05\xd1"
+                         "\x27\x11\x5c\xd4\xcc\x97\xc2\xb3"
+                         "\xa9\x55\xaf\x07\x56\xd1\xdc\xf5"
+                         "\x85\xdc\x46\xe6\xf0\x24\xeb\x93"
+                         "\x4d\xf0\x9b\xf5\x73\x1c\xda\x03"
+                         "\x22\xc8\x3a\x4f\xb4\x19\x91\x09"
+                         "\x54\x0b\xf6\xfe\x17\x3d\x1a\x53"
+                         "\x72\x60\x79\xcb\x0e\x32\x8a\x77"
+                         "\xd5\xed\xdb\x33\xd7\x62\x16\x69"
+                         "\x63\xe0\xab\xb5\xf6\x9c\x5f\x3d"
+                         "\x69\x35\x61\x86\xf8\x86\xb9\x89"
+                         "\x6e\x59\x35\xac\xf6\x6b\x33\xa0"
+                         "\xea\xef\x96\x62\xd8\xa9\xcf\x56"
+                         "\xbf\xdb\x8a\xfd\xa1\x82\x77\x73"
+                         "\x3d\x94\x4a\x49\x42\x6d\x08\x60"
+                         "\xa1\xea\xab\xb6\x88\x13\x94\xb8"
+                         "\x51\x98\xdb\x35\x85\xdf\xf6\xb9"
+                         "\x8f\xcd\xdf\x80\xd3\x40\x2d\x72"
+                         "\xb8\xb2\x6c\x02\x43\x35\x22\x2a"
+                         "\x31\xed\xcd\x16\x19\xdf\x62\x0f"
+                         "\x29\xcf\x87\x04\xec\x02\x4f\xe4"
+                         "\xa2\xed\x73\xc6\x69\xd3\x7e\x89"
+                         "\x0b\x76\x10\x7c\xd6\xf9\x6a\x25"
+                         "\xed\xcc\x60\x5d\x61\x20\xc1\x97"
+                         "\x56\x91\x57\x28\xbe\x71\x0d\xcd"
+                         "\xde\xc4\x9e\x55\x91\xbe\xd1\x28"
+                         "\x9b\x90\xeb\x73\xf3\x68\x51\xc6"
+                         "\xdf\x82\xcc\xd8\x1f\xce\x5b\x27"
+                         "\xc0\x60\x5e\x33\xd6\xa7\x20\xea"
+                         "\xb2\x54\xc7\x5d\x6a\x3b\x67\x47"
+                         "\xcf\xa0\xe3\xab\x86\xaf\xc1\x42"
+                         "\xe6\xb0\x23\x4a\xaf\x53\xdf\xa0"
+                         "\xad\x12\x32\x31\x03\xf7\x21\xbe"
+                         "\x2d\xd5\x82\x42\xb6\x4a\x3d\xcd"
+                         "\xd8\x81\x77\xa9\x49\x98\x6c\x09"
+                         "\xc5\xa3\x61\x12\x62\x85\x6b\xcd"
+                         "\xb3\xf4\x20\x0c\x41\xc4\x05\x37"
+                         "\x46\x5f\xeb\x71\x8b\xf1\xaf\x6e"
+                         "\xba\xf3\x50\x2e\xfe\xa8\x37\xeb"
+                         "\xe8\x8c\x4f\xa4\x0c\xf1\x31\xc8"
+                         "\x6e\x71\x4f\xa5\xd7\x97\x73\xe0"
+                         "\x93\x4a\x2f\xda\x7b\xe0\x20\x54"
+                         "\x1f\x8d\x85\x79\x0b\x7b\x5e\x75"
+                         "\xb9\x07\x67\xcc\xc8\xe7\x21\x15"
+                         "\xa7\xc8\x98\xff\x4b\x80\x1c\x12"
+                         "\xa8\x54\xe1\x38\x52\xe6\x74\x81"
+                         "\x97\x47\xa1\x41\x0e\xc0\x50\xe3"
+                         "\x55\x0e\xc3\xa7\x70\x77\xce\x07"
+                         "\xed\x8c\x88\xe6\xa1\x5b\x14\xec"
+                         "\xe6\xde\x06\x6d\x74\xc5\xd9\xfa"
+                         "\xe5\x2f\x5a\xff\xc8\x05\xee\x27"
+                         "\x35\x61\xbf\x0b\x19\x78\x9b\xd2"
+                         "\x04\xc7\x05\xb1\x79\xb4\xff\x5f"
+                         "\xf3\xea\x67\x52\x78\xc2\xce\x70"
+                         "\xa4\x05\x0b\xb2\xb3\xa8\x30\x97"
+                         "\x37\x30\xe1\x91\x8d\xb3\x2a\xff",
+               .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,
+       },
+};
+
 /*
  * Serpent test vectors.  These are backwards because Serpent writes
  * octet sequences in right-to-left mode.