]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - crypto/testmgr.h
crypto: testmgr - expand camellia test vectors
[linux-imx.git] / crypto / testmgr.h
index 76d7f6cc82f554f8be2846b393846218f5c9a587..e36cb6d57e7a0bb798f64bded03651b4954ac64a 100644 (file)
@@ -1707,7 +1707,7 @@ static struct hash_testvec aes_xcbc128_tv_template[] = {
        }
 };
 
-#define VMAC_AES_TEST_VECTORS  8
+#define VMAC_AES_TEST_VECTORS  11
 static char vmac_string1[128] = {'\x01', '\x01', '\x01', '\x01',
                                '\x02', '\x03', '\x02', '\x02',
                                '\x02', '\x04', '\x01', '\x07',
@@ -1723,6 +1723,19 @@ static char vmac_string3[128] = {'a', 'b', 'c', 'a', 'b', 'c',
                                'a', 'b', 'c', 'a', 'b', 'c',
                                };
 
+static char vmac_string4[17] = {'b', 'c', 'e', 'f',
+                               'i', 'j', 'l', 'm',
+                               'o', 'p', 'r', 's',
+                               't', 'u', 'w', 'x', 'z'};
+
+static char vmac_string5[127] = {'r', 'm', 'b', 't', 'c',
+                                'o', 'l', 'k', ']', '%',
+                                '9', '2', '7', '!', 'A'};
+
+static char vmac_string6[129] = {'p', 't', '*', '7', 'l',
+                                'i', '!', '#', 'w', '0',
+                                'z', '/', '4', 'A', 'n'};
+
 static struct hash_testvec aes_vmac128_tv_template[] = {
        {
                .key    = "\x00\x01\x02\x03\x04\x05\x06\x07"
@@ -1776,6 +1789,24 @@ static struct hash_testvec aes_vmac128_tv_template[] = {
                .digest = "\x8b\x32\x8f\xe1\xed\x8f\xfa\xd4",
                .psize  = 128,
                .ksize  = 16,
+       }, {
+               .key = "a09b5cd!f#07K\x00\x00\x00",
+               .plaintext = vmac_string4,
+               .digest = "\xab\xa5\x0f\xea\x42\x4e\xa1\x5f",
+               .psize = sizeof(vmac_string4),
+               .ksize = 16,
+       }, {
+               .key = "a09b5cd!f#07K\x00\x00\x00",
+               .plaintext = vmac_string5,
+               .digest = "\x25\x31\x98\xbc\x1d\xe8\x67\x60",
+               .psize = sizeof(vmac_string5),
+               .ksize = 16,
+       }, {
+               .key = "a09b5cd!f#07K\x00\x00\x00",
+               .plaintext = vmac_string6,
+               .digest = "\xc4\xae\x9b\x47\x95\x65\xeb\x41",
+               .psize = sizeof(vmac_string6),
+               .ksize = 16,
        },
 };
 
@@ -16291,8 +16322,7 @@ static struct cipher_testvec camellia_enc_tv_template[] = {
                .result = "\x9a\xcc\x23\x7d\xff\x16\xd7\x6c"
                          "\x20\xef\x7c\x91\x9e\x3a\x75\x09",
                .rlen   = 16,
-       },
-       { /* Generated with Crypto++ */
+       }, { /* Generated with Crypto++ */
                .key    = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C"
                          "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D"
                          "\x4A\x27\x04\xE1\x27\x04\xE1\xBE"
@@ -16303,18 +16333,130 @@ static struct cipher_testvec camellia_enc_tv_template[] = {
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .ilen   = 48,
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .ilen   = 496,
                .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA"
                          "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7"
                          "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04"
                          "\xB3\xC2\xB9\x03\xAA\x91\x56\x29"
                          "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9"
-                         "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A",
-               .rlen   = 48,
+                         "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A"
+                         "\x8D\x7D\x1B\x9B\xC7\x68\x72\xF8"
+                         "\x01\x9B\x17\x0A\x29\xE7\x61\x28"
+                         "\x7F\xA7\x50\xCA\x20\x2C\x96\x3B"
+                         "\x6E\x5C\x5D\x3F\xB5\x7F\xF3\x2B"
+                         "\x04\xEF\x9D\xD4\xCE\x41\x28\x8E"
+                         "\x83\x54\xAE\x7C\x82\x46\x10\xC9"
+                         "\xC4\x8A\x1E\x1F\x4C\xA9\xFC\xEC"
+                         "\x3C\x8C\x30\xFC\x59\xD2\x54\xC4"
+                         "\x6F\x50\xC6\xCA\x8C\x14\x5B\x9C"
+                         "\x18\x56\x5B\xF8\x33\x0E\x4A\xDB"
+                         "\xEC\xB5\x6E\x5B\x31\xC4\x0E\x98"
+                         "\x9F\x32\xBA\xA2\x18\xCF\x55\x43"
+                         "\xFE\x80\x8F\x60\xCF\x05\x30\x9B"
+                         "\x70\x50\x1E\x9C\x08\x87\xE6\x20"
+                         "\xD2\xF3\x27\xF8\x2A\x8D\x12\xB2"
+                         "\xBC\x5F\xFE\x52\x52\xF6\x7F\xB6"
+                         "\xB8\x30\x86\x3B\x0F\x94\x1E\x79"
+                         "\x13\x94\x35\xA2\xB1\x35\x5B\x05"
+                         "\x2A\x98\x6B\x96\x4C\xB1\x20\xBE"
+                         "\xB6\x14\xC2\x06\xBF\xFD\x5F\x2A"
+                         "\xF5\x33\xC8\x19\x45\x14\x44\x5D"
+                         "\xFE\x94\x7B\xBB\x63\x13\x57\xC3"
+                         "\x2A\x8F\x6C\x11\x2A\x07\xA7\x6A"
+                         "\xBF\x20\xD3\x99\xC6\x00\x0B\xBF"
+                         "\x83\x46\x25\x3A\xB0\xF6\xC5\xC8"
+                         "\x00\xCA\xE5\x28\x4A\x7C\x95\x9C"
+                         "\x7B\x43\xAB\xF9\xE4\xF8\x74\xAB"
+                         "\xA7\xB8\x9C\x0F\x53\x7B\xB6\x74"
+                         "\x60\x64\x0D\x1C\x80\xD1\x20\x9E"
+                         "\xDC\x14\x27\x9B\xFC\xBD\x5C\x96"
+                         "\xD2\x51\xDC\x96\xEE\xE5\xEA\x2B"
+                         "\x02\x7C\xAA\x3C\xDC\x9D\x7B\x01"
+                         "\x20\xC3\xE1\x0B\xDD\xAB\xF3\x1E"
+                         "\x19\xA8\x84\x29\x5F\xCC\xC3\x5B"
+                         "\xE4\x33\x59\xDC\x12\xEB\x2B\x4D"
+                         "\x5B\x55\x23\xB7\x40\x31\xDE\xEE"
+                         "\x18\xC9\x3C\x4D\xBC\xED\xE0\x42"
+                         "\xAD\xDE\xA0\xA3\xC3\xFE\x44\xD3"
+                         "\xE1\x9A\xDA\xAB\x32\xFC\x1A\xBF"
+                         "\x63\xA9\xF0\x6A\x08\x46\xBD\x48"
+                         "\x83\x06\xAB\x82\x99\x01\x16\x1A"
+                         "\x03\x36\xC5\x59\x6B\xB8\x8C\x9F"
+                         "\xC6\x51\x3D\xE5\x7F\xBF\xAB\xBC"
+                         "\xC9\xA1\x88\x34\x5F\xA9\x7C\x3B"
+                         "\x9F\x1B\x98\x2B\x4F\xFB\x9B\xF0"
+                         "\xCD\xB6\x45\xB2\x29\x2E\x34\x23"
+                         "\xA9\x97\xC0\x22\x8C\x42\x9B\x5F"
+                         "\x40\xC8\xD7\x3D\x82\x9A\x6F\xAA"
+                         "\x74\x83\x29\x05\xE8\xC4\x4D\x01"
+                         "\xB5\xE5\x84\x3F\x7F\xD3\xE0\x99"
+                         "\xDA\xE7\x6F\x30\xFD\xAA\x92\x30"
+                         "\xA5\x46\x8B\xA2\xE6\x58\x62\x7C"
+                         "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3"
+                         "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44"
+                         "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4"
+                         "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 48 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -16352,8 +16494,7 @@ static struct cipher_testvec camellia_dec_tv_template[] = {
                .result = "\x01\x23\x45\x67\x89\xab\xcd\xef"
                          "\xfe\xdc\xba\x98\x76\x54\x32\x10",
                .rlen   = 16,
-       },
-       { /* Generated with Crypto++ */
+       }, { /* Generated with Crypto++ */
                .key    = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C"
                          "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D"
                          "\x4A\x27\x04\xE1\x27\x04\xE1\xBE"
@@ -16364,18 +16505,130 @@ static struct cipher_testvec camellia_dec_tv_template[] = {
                          "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04"
                          "\xB3\xC2\xB9\x03\xAA\x91\x56\x29"
                          "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9"
-                         "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A",
-               .ilen   = 48,
+                         "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A"
+                         "\x8D\x7D\x1B\x9B\xC7\x68\x72\xF8"
+                         "\x01\x9B\x17\x0A\x29\xE7\x61\x28"
+                         "\x7F\xA7\x50\xCA\x20\x2C\x96\x3B"
+                         "\x6E\x5C\x5D\x3F\xB5\x7F\xF3\x2B"
+                         "\x04\xEF\x9D\xD4\xCE\x41\x28\x8E"
+                         "\x83\x54\xAE\x7C\x82\x46\x10\xC9"
+                         "\xC4\x8A\x1E\x1F\x4C\xA9\xFC\xEC"
+                         "\x3C\x8C\x30\xFC\x59\xD2\x54\xC4"
+                         "\x6F\x50\xC6\xCA\x8C\x14\x5B\x9C"
+                         "\x18\x56\x5B\xF8\x33\x0E\x4A\xDB"
+                         "\xEC\xB5\x6E\x5B\x31\xC4\x0E\x98"
+                         "\x9F\x32\xBA\xA2\x18\xCF\x55\x43"
+                         "\xFE\x80\x8F\x60\xCF\x05\x30\x9B"
+                         "\x70\x50\x1E\x9C\x08\x87\xE6\x20"
+                         "\xD2\xF3\x27\xF8\x2A\x8D\x12\xB2"
+                         "\xBC\x5F\xFE\x52\x52\xF6\x7F\xB6"
+                         "\xB8\x30\x86\x3B\x0F\x94\x1E\x79"
+                         "\x13\x94\x35\xA2\xB1\x35\x5B\x05"
+                         "\x2A\x98\x6B\x96\x4C\xB1\x20\xBE"
+                         "\xB6\x14\xC2\x06\xBF\xFD\x5F\x2A"
+                         "\xF5\x33\xC8\x19\x45\x14\x44\x5D"
+                         "\xFE\x94\x7B\xBB\x63\x13\x57\xC3"
+                         "\x2A\x8F\x6C\x11\x2A\x07\xA7\x6A"
+                         "\xBF\x20\xD3\x99\xC6\x00\x0B\xBF"
+                         "\x83\x46\x25\x3A\xB0\xF6\xC5\xC8"
+                         "\x00\xCA\xE5\x28\x4A\x7C\x95\x9C"
+                         "\x7B\x43\xAB\xF9\xE4\xF8\x74\xAB"
+                         "\xA7\xB8\x9C\x0F\x53\x7B\xB6\x74"
+                         "\x60\x64\x0D\x1C\x80\xD1\x20\x9E"
+                         "\xDC\x14\x27\x9B\xFC\xBD\x5C\x96"
+                         "\xD2\x51\xDC\x96\xEE\xE5\xEA\x2B"
+                         "\x02\x7C\xAA\x3C\xDC\x9D\x7B\x01"
+                         "\x20\xC3\xE1\x0B\xDD\xAB\xF3\x1E"
+                         "\x19\xA8\x84\x29\x5F\xCC\xC3\x5B"
+                         "\xE4\x33\x59\xDC\x12\xEB\x2B\x4D"
+                         "\x5B\x55\x23\xB7\x40\x31\xDE\xEE"
+                         "\x18\xC9\x3C\x4D\xBC\xED\xE0\x42"
+                         "\xAD\xDE\xA0\xA3\xC3\xFE\x44\xD3"
+                         "\xE1\x9A\xDA\xAB\x32\xFC\x1A\xBF"
+                         "\x63\xA9\xF0\x6A\x08\x46\xBD\x48"
+                         "\x83\x06\xAB\x82\x99\x01\x16\x1A"
+                         "\x03\x36\xC5\x59\x6B\xB8\x8C\x9F"
+                         "\xC6\x51\x3D\xE5\x7F\xBF\xAB\xBC"
+                         "\xC9\xA1\x88\x34\x5F\xA9\x7C\x3B"
+                         "\x9F\x1B\x98\x2B\x4F\xFB\x9B\xF0"
+                         "\xCD\xB6\x45\xB2\x29\x2E\x34\x23"
+                         "\xA9\x97\xC0\x22\x8C\x42\x9B\x5F"
+                         "\x40\xC8\xD7\x3D\x82\x9A\x6F\xAA"
+                         "\x74\x83\x29\x05\xE8\xC4\x4D\x01"
+                         "\xB5\xE5\x84\x3F\x7F\xD3\xE0\x99"
+                         "\xDA\xE7\x6F\x30\xFD\xAA\x92\x30"
+                         "\xA5\x46\x8B\xA2\xE6\x58\x62\x7C"
+                         "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3"
+                         "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44"
+                         "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4"
+                         "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB",
+               .ilen   = 496,
                .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
                          "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .rlen   = 48,
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 48 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -16407,8 +16660,7 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = {
                          "\x19\xb4\x3e\x57\x1c\x02\x5e\xa0"
                          "\x15\x78\xe0\x5e\xf2\xcb\x87\x16",
                .rlen   = 32,
-       },
-       { /* Generated with Crypto++ */
+       }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
@@ -16421,18 +16673,130 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = {
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .ilen   = 48,
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .ilen   = 496,
                .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77"
                          "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40"
                          "\x88\x39\xE3\xFD\x94\x4B\x25\x58"
                          "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B"
                          "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27"
-                         "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01",
-               .rlen   = 48,
+                         "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01"
+                         "\x56\x2E\x10\xC2\x2C\xFF\xC6\x83"
+                         "\xB5\xDC\x4F\x63\xAD\x0E\x63\x5E"
+                         "\x56\xC8\x18\x3D\x79\x86\x97\xEF"
+                         "\x57\x0E\x63\xA1\xC1\x41\x48\xB8"
+                         "\x98\xB7\x51\x6D\x18\xF6\x19\x82"
+                         "\x37\x49\x88\xA4\xEF\x91\x21\x47"
+                         "\x03\x28\xEA\x42\xF4\xFB\x7A\x58"
+                         "\x28\x90\x77\x46\xD8\xD2\x35\x16"
+                         "\x44\xA9\x9E\x49\x52\x2A\xE4\x16"
+                         "\x5D\xF7\x65\xEB\x0F\xC9\x29\xE6"
+                         "\xCF\x76\x91\x89\x8A\x94\x39\xFA"
+                         "\x6B\x5F\x63\x53\x74\x43\x91\xF5"
+                         "\x3F\xBC\x88\x53\xB2\x1A\x02\x3F"
+                         "\x9D\x32\x84\xEB\x56\x28\xD6\x06"
+                         "\xD5\xB2\x20\xA9\xFC\xC3\x76\x62"
+                         "\x32\xCC\x86\xC8\x36\x67\x5E\x7E"
+                         "\xA4\xAA\x15\x63\x6B\xA9\x86\xAF"
+                         "\x1A\x52\x82\x36\x5F\xF4\x3F\x7A"
+                         "\x9B\x78\x62\x3B\x02\x28\x60\xB3"
+                         "\xBA\x82\xB1\xDD\xC9\x60\x8F\x47"
+                         "\xF1\x6B\xFE\xE5\x39\x34\xA0\x28"
+                         "\xA4\xB3\xC9\x7E\xED\x28\x8D\x70"
+                         "\xB2\x1D\xFD\xC6\x00\xCF\x1A\x94"
+                         "\x28\xF8\xC1\x34\xB7\x58\xA5\x6C"
+                         "\x1A\x9D\xE4\xE4\xF6\xB9\xB4\xB0"
+                         "\x5D\x51\x54\x9A\x53\xA0\xF9\x32"
+                         "\xBD\x31\x54\x14\x7B\x33\xEE\x17"
+                         "\xD3\xC7\x1F\x48\xBF\x0B\x22\xA2"
+                         "\x7D\x0C\xDF\xD0\x2E\x98\xFA\xD2"
+                         "\xFA\xCF\x24\x1D\x99\x9B\xD0\x7E"
+                         "\xF4\x4F\x88\xFF\x45\x99\x4A\xF4"
+                         "\xF2\x0A\x5B\x3B\x21\xAB\x92\xAE"
+                         "\x40\x78\x91\x95\xC4\x2F\xA3\xE8"
+                         "\x18\xC7\x07\xA6\xC8\xC0\x66\x33"
+                         "\x35\xC0\xB4\xA0\xF8\xEE\x1E\xF3"
+                         "\x40\xF5\x40\x54\xF1\x84\x8C\xEA"
+                         "\x27\x38\x1F\xF8\x77\xC7\xDF\xD8"
+                         "\x1D\xE2\xD9\x59\x40\x4F\x59\xD4"
+                         "\xF8\x17\x99\x8D\x58\x2D\x72\x44"
+                         "\x9D\x1D\x91\x64\xD6\x3F\x0A\x82"
+                         "\xC7\x57\x3D\xEF\xD3\x41\xFA\xA7"
+                         "\x68\xA3\xB8\xA5\x93\x74\x2E\x85"
+                         "\x4C\x9D\x69\x59\xCE\x15\xAE\xBF"
+                         "\x9C\x8F\x14\x64\x5D\x7F\xCF\x0B"
+                         "\xCE\x43\x5D\x28\xC0\x2F\xFB\x18"
+                         "\x79\x9A\xFC\x43\x16\x7C\x6B\x7B"
+                         "\x38\xB8\x48\x36\x66\x4E\x20\x43"
+                         "\xBA\x76\x13\x9A\xC3\xF2\xEB\x52"
+                         "\xD7\xDC\xB2\x67\x63\x14\x25\xCD"
+                         "\xB1\x13\x4B\xDE\x8C\x59\x21\x84"
+                         "\x81\x8D\x97\x23\x45\x33\x7C\xF3"
+                         "\xC5\xBC\x79\x95\xAA\x84\x68\x31"
+                         "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA"
+                         "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97"
+                         "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36"
+                         "\x5F\x74\x8C\x86\x5B\x71\xD0\x20",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 48 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -16464,8 +16828,7 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = {
                          "\x10\x11\x12\x13\x14\x15\x16\x17"
                          "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
                .rlen   = 32,
-       },
-       { /* Generated with Crypto++ */
+       }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
@@ -16478,75 +16841,410 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = {
                          "\x88\x39\xE3\xFD\x94\x4B\x25\x58"
                          "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B"
                          "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27"
-                         "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01",
-               .ilen   = 48,
+                         "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01"
+                         "\x56\x2E\x10\xC2\x2C\xFF\xC6\x83"
+                         "\xB5\xDC\x4F\x63\xAD\x0E\x63\x5E"
+                         "\x56\xC8\x18\x3D\x79\x86\x97\xEF"
+                         "\x57\x0E\x63\xA1\xC1\x41\x48\xB8"
+                         "\x98\xB7\x51\x6D\x18\xF6\x19\x82"
+                         "\x37\x49\x88\xA4\xEF\x91\x21\x47"
+                         "\x03\x28\xEA\x42\xF4\xFB\x7A\x58"
+                         "\x28\x90\x77\x46\xD8\xD2\x35\x16"
+                         "\x44\xA9\x9E\x49\x52\x2A\xE4\x16"
+                         "\x5D\xF7\x65\xEB\x0F\xC9\x29\xE6"
+                         "\xCF\x76\x91\x89\x8A\x94\x39\xFA"
+                         "\x6B\x5F\x63\x53\x74\x43\x91\xF5"
+                         "\x3F\xBC\x88\x53\xB2\x1A\x02\x3F"
+                         "\x9D\x32\x84\xEB\x56\x28\xD6\x06"
+                         "\xD5\xB2\x20\xA9\xFC\xC3\x76\x62"
+                         "\x32\xCC\x86\xC8\x36\x67\x5E\x7E"
+                         "\xA4\xAA\x15\x63\x6B\xA9\x86\xAF"
+                         "\x1A\x52\x82\x36\x5F\xF4\x3F\x7A"
+                         "\x9B\x78\x62\x3B\x02\x28\x60\xB3"
+                         "\xBA\x82\xB1\xDD\xC9\x60\x8F\x47"
+                         "\xF1\x6B\xFE\xE5\x39\x34\xA0\x28"
+                         "\xA4\xB3\xC9\x7E\xED\x28\x8D\x70"
+                         "\xB2\x1D\xFD\xC6\x00\xCF\x1A\x94"
+                         "\x28\xF8\xC1\x34\xB7\x58\xA5\x6C"
+                         "\x1A\x9D\xE4\xE4\xF6\xB9\xB4\xB0"
+                         "\x5D\x51\x54\x9A\x53\xA0\xF9\x32"
+                         "\xBD\x31\x54\x14\x7B\x33\xEE\x17"
+                         "\xD3\xC7\x1F\x48\xBF\x0B\x22\xA2"
+                         "\x7D\x0C\xDF\xD0\x2E\x98\xFA\xD2"
+                         "\xFA\xCF\x24\x1D\x99\x9B\xD0\x7E"
+                         "\xF4\x4F\x88\xFF\x45\x99\x4A\xF4"
+                         "\xF2\x0A\x5B\x3B\x21\xAB\x92\xAE"
+                         "\x40\x78\x91\x95\xC4\x2F\xA3\xE8"
+                         "\x18\xC7\x07\xA6\xC8\xC0\x66\x33"
+                         "\x35\xC0\xB4\xA0\xF8\xEE\x1E\xF3"
+                         "\x40\xF5\x40\x54\xF1\x84\x8C\xEA"
+                         "\x27\x38\x1F\xF8\x77\xC7\xDF\xD8"
+                         "\x1D\xE2\xD9\x59\x40\x4F\x59\xD4"
+                         "\xF8\x17\x99\x8D\x58\x2D\x72\x44"
+                         "\x9D\x1D\x91\x64\xD6\x3F\x0A\x82"
+                         "\xC7\x57\x3D\xEF\xD3\x41\xFA\xA7"
+                         "\x68\xA3\xB8\xA5\x93\x74\x2E\x85"
+                         "\x4C\x9D\x69\x59\xCE\x15\xAE\xBF"
+                         "\x9C\x8F\x14\x64\x5D\x7F\xCF\x0B"
+                         "\xCE\x43\x5D\x28\xC0\x2F\xFB\x18"
+                         "\x79\x9A\xFC\x43\x16\x7C\x6B\x7B"
+                         "\x38\xB8\x48\x36\x66\x4E\x20\x43"
+                         "\xBA\x76\x13\x9A\xC3\xF2\xEB\x52"
+                         "\xD7\xDC\xB2\x67\x63\x14\x25\xCD"
+                         "\xB1\x13\x4B\xDE\x8C\x59\x21\x84"
+                         "\x81\x8D\x97\x23\x45\x33\x7C\xF3"
+                         "\xC5\xBC\x79\x95\xAA\x84\x68\x31"
+                         "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA"
+                         "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97"
+                         "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36"
+                         "\x5F\x74\x8C\x86\x5B\x71\xD0\x20",
+               .ilen   = 496,
                .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
-                         "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
-                         "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
-                         "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
-                         "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .rlen   = 48,
-               .also_non_np = 1,
-               .np     = 2,
-               .tap    = { 48 - 16, 16 },
-       },
-};
-
-static struct cipher_testvec camellia_ctr_enc_tv_template[] = {
-       { /* Generated with Crypto++ */
-               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
-                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
-                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
-                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
-               .klen   = 32,
-               .iv     = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F"
-                         "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64",
-               .input  = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
-                         "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
-                         "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
-                         "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
-                         "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .ilen   = 48,
-               .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11"
-                         "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE"
-                         "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4"
-                         "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
-                         "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
-                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C",
-               .rlen   = 48,
-       },
-       { /* Generated with Crypto++ */
-               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
-                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
-                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
-                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
-               .klen   = 32,
-               .iv     = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F"
-                         "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64",
-               .input  = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
                          "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
                          "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
-                         "\xDF\x76\x0D",
-               .ilen   = 51,
-               .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11"
-                         "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE"
-                         "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4"
-                         "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
-                         "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
-                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C"
-                         "\x1E\x43\xEF",
-               .rlen   = 51,
-               .also_non_np = 1,
-               .np     = 2,
-               .tap    = { 51 - 16, 16 },
-       }, { /* Generated with Crypto++ */
-               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
-                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .rlen   = 496,
+               .also_non_np = 1,
+               .np     = 2,
+               .tap    = { 496 - 16, 16 },
+       },
+};
+
+static struct cipher_testvec camellia_ctr_enc_tv_template[] = {
+       { /* Generated with Crypto++ */
+               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
+                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
+                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
+                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
+               .klen   = 32,
+               .iv     = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F"
+                         "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64",
+               .input  = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
+                         "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
+                         "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
+                         "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
+                         "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .ilen   = 496,
+               .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11"
+                         "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE"
+                         "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4"
+                         "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
+                         "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
+                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C"
+                         "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0"
+                         "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C"
+                         "\xE6\x7B\x08\xC3\x32\x66\x55\x4E"
+                         "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F"
+                         "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2"
+                         "\x82\x2F\x66\x83\x91\x51\xAE\xD7"
+                         "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9"
+                         "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9"
+                         "\x0F\xEA\x26\x32\xD1\x15\x19\x2D"
+                         "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60"
+                         "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B"
+                         "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1"
+                         "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3"
+                         "\x29\xE9\x59\x32\x1F\x30\x1C\x43"
+                         "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11"
+                         "\xAD\x38\x20\xC9\xB9\x8A\x64\x66"
+                         "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76"
+                         "\x36\x65\xB6\x81\x8F\x76\x09\xE5"
+                         "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD"
+                         "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A"
+                         "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80"
+                         "\xBF\x3C\x25\x06\x13\x84\xFA\x35"
+                         "\xF7\x40\xFA\xA1\x44\x13\x70\xD8"
+                         "\x01\xF9\x85\x15\x63\xEC\x7D\xB9"
+                         "\x02\xD8\xBA\x41\x6C\x92\x68\x66"
+                         "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD"
+                         "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47"
+                         "\x58\x8D\xFF\x19\x30\x75\x0D\x48"
+                         "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD"
+                         "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB"
+                         "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9"
+                         "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B"
+                         "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A"
+                         "\x79\xA2\x99\x28\x93\x1B\x00\x57"
+                         "\x35\x1E\x1A\x93\x90\xA4\x68\x95"
+                         "\x5E\x57\x40\xD5\xA9\xAA\x19\x48"
+                         "\xEC\xFF\x76\x77\xDC\x78\x89\x76"
+                         "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3"
+                         "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E"
+                         "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5"
+                         "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8"
+                         "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0"
+                         "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB"
+                         "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0"
+                         "\x76\x44\x45\xF3\x24\x11\x57\x98"
+                         "\x9A\x86\xB4\x12\x80\x28\x86\x20"
+                         "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1"
+                         "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D"
+                         "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79"
+                         "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01"
+                         "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38"
+                         "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F"
+                         "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF"
+                         "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48"
+                         "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0"
+                         "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D",
+               .rlen   = 496,
+       }, { /* Generated with Crypto++ */
+               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
+                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
+                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
+                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
+               .klen   = 32,
+               .iv     = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F"
+                         "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64",
+               .input  = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
+                         "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
+                         "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
+                         "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
+                         "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
+                         "\x2B\xC2\x59",
+               .ilen   = 499,
+               .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11"
+                         "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE"
+                         "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4"
+                         "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
+                         "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
+                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C"
+                         "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0"
+                         "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C"
+                         "\xE6\x7B\x08\xC3\x32\x66\x55\x4E"
+                         "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F"
+                         "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2"
+                         "\x82\x2F\x66\x83\x91\x51\xAE\xD7"
+                         "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9"
+                         "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9"
+                         "\x0F\xEA\x26\x32\xD1\x15\x19\x2D"
+                         "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60"
+                         "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B"
+                         "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1"
+                         "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3"
+                         "\x29\xE9\x59\x32\x1F\x30\x1C\x43"
+                         "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11"
+                         "\xAD\x38\x20\xC9\xB9\x8A\x64\x66"
+                         "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76"
+                         "\x36\x65\xB6\x81\x8F\x76\x09\xE5"
+                         "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD"
+                         "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A"
+                         "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80"
+                         "\xBF\x3C\x25\x06\x13\x84\xFA\x35"
+                         "\xF7\x40\xFA\xA1\x44\x13\x70\xD8"
+                         "\x01\xF9\x85\x15\x63\xEC\x7D\xB9"
+                         "\x02\xD8\xBA\x41\x6C\x92\x68\x66"
+                         "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD"
+                         "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47"
+                         "\x58\x8D\xFF\x19\x30\x75\x0D\x48"
+                         "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD"
+                         "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB"
+                         "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9"
+                         "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B"
+                         "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A"
+                         "\x79\xA2\x99\x28\x93\x1B\x00\x57"
+                         "\x35\x1E\x1A\x93\x90\xA4\x68\x95"
+                         "\x5E\x57\x40\xD5\xA9\xAA\x19\x48"
+                         "\xEC\xFF\x76\x77\xDC\x78\x89\x76"
+                         "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3"
+                         "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E"
+                         "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5"
+                         "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8"
+                         "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0"
+                         "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB"
+                         "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0"
+                         "\x76\x44\x45\xF3\x24\x11\x57\x98"
+                         "\x9A\x86\xB4\x12\x80\x28\x86\x20"
+                         "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1"
+                         "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D"
+                         "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79"
+                         "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01"
+                         "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38"
+                         "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F"
+                         "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF"
+                         "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48"
+                         "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0"
+                         "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D"
+                         "\x93\x11\x1C",
+               .rlen   = 499,
+               .also_non_np = 1,
+               .np     = 2,
+               .tap    = { 499 - 16, 16 },
+       }, { /* Generated with Crypto++ */
+               .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
+                         "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
                          "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
                .klen   = 32,
@@ -16695,17 +17393,128 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = {
                          "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4"
                          "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
                          "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
-                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C",
-               .ilen   = 48,
+                         "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C"
+                         "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0"
+                         "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C"
+                         "\xE6\x7B\x08\xC3\x32\x66\x55\x4E"
+                         "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F"
+                         "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2"
+                         "\x82\x2F\x66\x83\x91\x51\xAE\xD7"
+                         "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9"
+                         "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9"
+                         "\x0F\xEA\x26\x32\xD1\x15\x19\x2D"
+                         "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60"
+                         "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B"
+                         "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1"
+                         "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3"
+                         "\x29\xE9\x59\x32\x1F\x30\x1C\x43"
+                         "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11"
+                         "\xAD\x38\x20\xC9\xB9\x8A\x64\x66"
+                         "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76"
+                         "\x36\x65\xB6\x81\x8F\x76\x09\xE5"
+                         "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD"
+                         "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A"
+                         "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80"
+                         "\xBF\x3C\x25\x06\x13\x84\xFA\x35"
+                         "\xF7\x40\xFA\xA1\x44\x13\x70\xD8"
+                         "\x01\xF9\x85\x15\x63\xEC\x7D\xB9"
+                         "\x02\xD8\xBA\x41\x6C\x92\x68\x66"
+                         "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD"
+                         "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47"
+                         "\x58\x8D\xFF\x19\x30\x75\x0D\x48"
+                         "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD"
+                         "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB"
+                         "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9"
+                         "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B"
+                         "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A"
+                         "\x79\xA2\x99\x28\x93\x1B\x00\x57"
+                         "\x35\x1E\x1A\x93\x90\xA4\x68\x95"
+                         "\x5E\x57\x40\xD5\xA9\xAA\x19\x48"
+                         "\xEC\xFF\x76\x77\xDC\x78\x89\x76"
+                         "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3"
+                         "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E"
+                         "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5"
+                         "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8"
+                         "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0"
+                         "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB"
+                         "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0"
+                         "\x76\x44\x45\xF3\x24\x11\x57\x98"
+                         "\x9A\x86\xB4\x12\x80\x28\x86\x20"
+                         "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1"
+                         "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D"
+                         "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79"
+                         "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01"
+                         "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38"
+                         "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F"
+                         "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF"
+                         "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48"
+                         "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0"
+                         "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D",
+               .ilen   = 496,
                .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
                          "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
-                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48",
-               .rlen   = 48,
-       },
-       { /* Generated with Crypto++ */
+                         "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .rlen   = 496,
+       }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
@@ -16719,19 +17528,131 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = {
                          "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6"
                          "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85"
                          "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C"
-                         "\x1E\x43\xEF",
-               .ilen   = 51,
+                         "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0"
+                         "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C"
+                         "\xE6\x7B\x08\xC3\x32\x66\x55\x4E"
+                         "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F"
+                         "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2"
+                         "\x82\x2F\x66\x83\x91\x51\xAE\xD7"
+                         "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9"
+                         "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9"
+                         "\x0F\xEA\x26\x32\xD1\x15\x19\x2D"
+                         "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60"
+                         "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B"
+                         "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1"
+                         "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3"
+                         "\x29\xE9\x59\x32\x1F\x30\x1C\x43"
+                         "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11"
+                         "\xAD\x38\x20\xC9\xB9\x8A\x64\x66"
+                         "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76"
+                         "\x36\x65\xB6\x81\x8F\x76\x09\xE5"
+                         "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD"
+                         "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A"
+                         "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80"
+                         "\xBF\x3C\x25\x06\x13\x84\xFA\x35"
+                         "\xF7\x40\xFA\xA1\x44\x13\x70\xD8"
+                         "\x01\xF9\x85\x15\x63\xEC\x7D\xB9"
+                         "\x02\xD8\xBA\x41\x6C\x92\x68\x66"
+                         "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD"
+                         "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47"
+                         "\x58\x8D\xFF\x19\x30\x75\x0D\x48"
+                         "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD"
+                         "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB"
+                         "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9"
+                         "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B"
+                         "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A"
+                         "\x79\xA2\x99\x28\x93\x1B\x00\x57"
+                         "\x35\x1E\x1A\x93\x90\xA4\x68\x95"
+                         "\x5E\x57\x40\xD5\xA9\xAA\x19\x48"
+                         "\xEC\xFF\x76\x77\xDC\x78\x89\x76"
+                         "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3"
+                         "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E"
+                         "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5"
+                         "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8"
+                         "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0"
+                         "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB"
+                         "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0"
+                         "\x76\x44\x45\xF3\x24\x11\x57\x98"
+                         "\x9A\x86\xB4\x12\x80\x28\x86\x20"
+                         "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1"
+                         "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D"
+                         "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79"
+                         "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01"
+                         "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38"
+                         "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F"
+                         "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF"
+                         "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48"
+                         "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0"
+                         "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D"
+                         "\x93\x11\x1C",
+               .ilen   = 499,
                .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
                          "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
                          "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87"
                          "\x1E\x92\x29\xC0\x34\xCB\x62\xF9"
                          "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48"
-                         "\xDF\x76\x0D",
-               .rlen   = 51,
+                         "\xDF\x76\x0D\x81\x18\xAF\x23\xBA"
+                         "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C"
+                         "\xC3\x37\xCE\x65\xFC\x70\x07\x9E"
+                         "\x12\xA9\x40\xD7\x4B\xE2\x79\x10"
+                         "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F"
+                         "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1"
+                         "\x68\xFF\x73\x0A\xA1\x15\xAC\x43"
+                         "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5"
+                         "\x29\xC0\x57\xEE\x62\xF9\x90\x04"
+                         "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76"
+                         "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8"
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
+                         "\x2B\xC2\x59",
+               .rlen   = 499,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 51 - 16, 16 },
+               .tap    = { 499 - 16, 16 },
        }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"