crypto: testmgr - add test vectors for CTR mode IV increasement
Jussi Kivilinna [Wed, 19 Sep 2012 06:42:59 +0000 (09:42 +0300)]
More precisely, test 'long word' and 'long long word' overflow and carry
handling.

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

crypto/testmgr.h

index 2257157..76d7f6c 100644 (file)
@@ -2677,6 +2677,141 @@ static struct cipher_testvec bf_ctr_enc_tv_template[] = {
                .also_non_np = 1,
                .np     = 2,
                .tap    = { 43 - 8, 8 },
+       }, { /* 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     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .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\xF0\x64\xFB\x92\x06",
+               .ilen   = 504,
+               .result = "\x5F\x58\x6E\x60\x51\x6E\xDC\x3D"
+                         "\xD1\xBB\xF7\xB7\xFD\x04\x44\x82"
+                         "\xDC\x9F\x4B\x02\xF1\xD2\x5A\x6F"
+                         "\x25\xF9\x27\x21\xF2\xD2\x9A\x01"
+                         "\xBD\xAD\x3D\x93\x87\xCA\x0D\xFE"
+                         "\xB7\x2C\x17\x1F\x42\x8C\x13\xB2"
+                         "\x62\x44\x72\xB9\x5D\xC0\xF8\x37"
+                         "\xDF\xEA\x78\x81\x8F\xA6\x34\xB2"
+                         "\x07\x09\x7C\xB9\x3A\xA0\x2B\x18"
+                         "\x34\x6A\x9D\x3D\xA5\xEB\xF4\x60"
+                         "\xF8\x98\xA2\x39\x81\x23\x6C\xA9"
+                         "\x70\xCA\xCC\x45\xD8\x1F\xDF\x44"
+                         "\x2A\x67\x7A\x88\x28\xDC\x36\x83"
+                         "\x18\xD7\x48\x43\x17\x2B\x1B\xE6"
+                         "\x0B\x82\x59\x14\x26\x67\x08\x09"
+                         "\x5B\x5D\x38\xD0\x81\xCE\x54\x2A"
+                         "\xCD\x22\x94\x42\xF5\xBA\x74\x7E"
+                         "\xD9\x00\x40\xA9\x0D\x0B\xBD\x8E"
+                         "\xC4\x8E\x5E\x17\x8F\x48\xE2\xB8"
+                         "\xF4\xCC\x19\x76\xAB\x48\x29\xAA"
+                         "\x81\xD5\xCE\xD5\x8A\x3B\xC9\x21"
+                         "\xEF\x50\x4F\x04\x02\xBF\xE1\x1F"
+                         "\x59\x28\x1A\xE4\x18\x16\xA0\x29"
+                         "\xBF\x34\xA9\x2D\x28\x83\xC0\x5E"
+                         "\xEA\x44\xC4\x6E\xAB\x24\x79\x9D"
+                         "\x2D\xA1\xE8\x55\xCA\x74\xFC\xBD"
+                         "\xFE\xDD\xDA\xA5\xFB\x34\x90\x31"
+                         "\x0E\x62\x28\x9B\xDC\xD7\xA1\xBB"
+                         "\xF0\x1A\xB3\xE2\xD0\xFA\xBD\xE8"
+                         "\x5C\x5A\x10\x67\xF6\x6A\x17\x3F"
+                         "\xC5\xE9\x09\x08\xDD\x22\x77\x42"
+                         "\x26\x6A\x6A\x7A\x3F\x87\x80\x0C"
+                         "\xF0\xFF\x15\x8E\x84\x86\xC0\x10"
+                         "\x0F\x8D\x33\x06\xB8\x72\xA4\x47"
+                         "\x6B\xED\x2E\x05\x94\x6C\x5C\x5B"
+                         "\x13\xF6\x77\xEE\x3B\x16\xDF\xC2"
+                         "\x63\x66\x07\x6D\x3F\x6C\x51\x7C"
+                         "\x1C\xAC\x80\xB6\x58\x48\xB7\x9D"
+                         "\xB4\x19\xD8\x19\x45\x66\x27\x02"
+                         "\xA1\xA9\x99\xF3\x1F\xE5\xA7\x1D"
+                         "\x31\xE7\x1B\x0D\xFF\xBB\xB5\xA1"
+                         "\xF5\x9C\x45\x1E\x18\x19\xA1\xE7"
+                         "\xC2\xF1\xBF\x68\xC3\xEC\xCF\x53"
+                         "\x67\xA6\x2B\x7D\x3C\x6D\x24\xC3"
+                         "\xE8\xE6\x07\x5A\x09\xE0\x32\xA8"
+                         "\x52\xF6\xE9\xED\x0E\xC6\x0A\x6A"
+                         "\xFC\x60\x2A\xE0\x93\xCE\xB8\x2E"
+                         "\xA2\xA8\x0E\x79\x9E\x34\x5D\x37"
+                         "\x6F\x12\xFE\x48\x7B\xE7\xB9\x22"
+                         "\x29\xE8\xD7\xBE\x5D\xD1\x8B\xD9"
+                         "\x91\x51\x4E\x71\xF2\x98\x85\x16"
+                         "\x25\x7A\x76\x8A\x51\x0E\x65\x14"
+                         "\x81\xB5\x3A\x37\xFD\xEC\xB5\x8A"
+                         "\xE1\xCF\x41\x72\x14\x29\x4C\xF0"
+                         "\x20\xD9\x9A\xC5\x66\xA4\x03\x76"
+                         "\x5B\xA4\x15\x4F\x0E\x64\x39\x40"
+                         "\x25\xF9\x20\x22\xF5\x88\xF5\xBA"
+                         "\xE4\xDF\x45\x61\xBF\x8D\x7A\x24"
+                         "\x4B\x92\x71\xD9\x2F\x77\xA7\x95"
+                         "\xA8\x7F\x61\xD5\xA4\x57\xB0\xFB"
+                         "\xB5\x77\xBA\x1C\xEE\x71\xFA\xB0"
+                         "\x16\x4C\x18\x6B\xF2\x69\xA0\x07"
+                         "\xEF\xBE\xEC\x69\xAC\xA8\x63\x9E",
+               .rlen   = 504,
        },
 };
 
@@ -2724,6 +2859,141 @@ static struct cipher_testvec bf_ctr_dec_tv_template[] = {
                .also_non_np = 1,
                .np     = 2,
                .tap    = { 43 - 8, 8 },
+       }, { /* 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     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .input  = "\x5F\x58\x6E\x60\x51\x6E\xDC\x3D"
+                         "\xD1\xBB\xF7\xB7\xFD\x04\x44\x82"
+                         "\xDC\x9F\x4B\x02\xF1\xD2\x5A\x6F"
+                         "\x25\xF9\x27\x21\xF2\xD2\x9A\x01"
+                         "\xBD\xAD\x3D\x93\x87\xCA\x0D\xFE"
+                         "\xB7\x2C\x17\x1F\x42\x8C\x13\xB2"
+                         "\x62\x44\x72\xB9\x5D\xC0\xF8\x37"
+                         "\xDF\xEA\x78\x81\x8F\xA6\x34\xB2"
+                         "\x07\x09\x7C\xB9\x3A\xA0\x2B\x18"
+                         "\x34\x6A\x9D\x3D\xA5\xEB\xF4\x60"
+                         "\xF8\x98\xA2\x39\x81\x23\x6C\xA9"
+                         "\x70\xCA\xCC\x45\xD8\x1F\xDF\x44"
+                         "\x2A\x67\x7A\x88\x28\xDC\x36\x83"
+                         "\x18\xD7\x48\x43\x17\x2B\x1B\xE6"
+                         "\x0B\x82\x59\x14\x26\x67\x08\x09"
+                         "\x5B\x5D\x38\xD0\x81\xCE\x54\x2A"
+                         "\xCD\x22\x94\x42\xF5\xBA\x74\x7E"
+                         "\xD9\x00\x40\xA9\x0D\x0B\xBD\x8E"
+                         "\xC4\x8E\x5E\x17\x8F\x48\xE2\xB8"
+                         "\xF4\xCC\x19\x76\xAB\x48\x29\xAA"
+                         "\x81\xD5\xCE\xD5\x8A\x3B\xC9\x21"
+                         "\xEF\x50\x4F\x04\x02\xBF\xE1\x1F"
+                         "\x59\x28\x1A\xE4\x18\x16\xA0\x29"
+                         "\xBF\x34\xA9\x2D\x28\x83\xC0\x5E"
+                         "\xEA\x44\xC4\x6E\xAB\x24\x79\x9D"
+                         "\x2D\xA1\xE8\x55\xCA\x74\xFC\xBD"
+                         "\xFE\xDD\xDA\xA5\xFB\x34\x90\x31"
+                         "\x0E\x62\x28\x9B\xDC\xD7\xA1\xBB"
+                         "\xF0\x1A\xB3\xE2\xD0\xFA\xBD\xE8"
+                         "\x5C\x5A\x10\x67\xF6\x6A\x17\x3F"
+                         "\xC5\xE9\x09\x08\xDD\x22\x77\x42"
+                         "\x26\x6A\x6A\x7A\x3F\x87\x80\x0C"
+                         "\xF0\xFF\x15\x8E\x84\x86\xC0\x10"
+                         "\x0F\x8D\x33\x06\xB8\x72\xA4\x47"
+                         "\x6B\xED\x2E\x05\x94\x6C\x5C\x5B"
+                         "\x13\xF6\x77\xEE\x3B\x16\xDF\xC2"
+                         "\x63\x66\x07\x6D\x3F\x6C\x51\x7C"
+                         "\x1C\xAC\x80\xB6\x58\x48\xB7\x9D"
+                         "\xB4\x19\xD8\x19\x45\x66\x27\x02"
+                         "\xA1\xA9\x99\xF3\x1F\xE5\xA7\x1D"
+                         "\x31\xE7\x1B\x0D\xFF\xBB\xB5\xA1"
+                         "\xF5\x9C\x45\x1E\x18\x19\xA1\xE7"
+                         "\xC2\xF1\xBF\x68\xC3\xEC\xCF\x53"
+                         "\x67\xA6\x2B\x7D\x3C\x6D\x24\xC3"
+                         "\xE8\xE6\x07\x5A\x09\xE0\x32\xA8"
+                         "\x52\xF6\xE9\xED\x0E\xC6\x0A\x6A"
+                         "\xFC\x60\x2A\xE0\x93\xCE\xB8\x2E"
+                         "\xA2\xA8\x0E\x79\x9E\x34\x5D\x37"
+                         "\x6F\x12\xFE\x48\x7B\xE7\xB9\x22"
+                         "\x29\xE8\xD7\xBE\x5D\xD1\x8B\xD9"
+                         "\x91\x51\x4E\x71\xF2\x98\x85\x16"
+                         "\x25\x7A\x76\x8A\x51\x0E\x65\x14"
+                         "\x81\xB5\x3A\x37\xFD\xEC\xB5\x8A"
+                         "\xE1\xCF\x41\x72\x14\x29\x4C\xF0"
+                         "\x20\xD9\x9A\xC5\x66\xA4\x03\x76"
+                         "\x5B\xA4\x15\x4F\x0E\x64\x39\x40"
+                         "\x25\xF9\x20\x22\xF5\x88\xF5\xBA"
+                         "\xE4\xDF\x45\x61\xBF\x8D\x7A\x24"
+                         "\x4B\x92\x71\xD9\x2F\x77\xA7\x95"
+                         "\xA8\x7F\x61\xD5\xA4\x57\xB0\xFB"
+                         "\xB5\x77\xBA\x1C\xEE\x71\xFA\xB0"
+                         "\x16\x4C\x18\x6B\xF2\x69\xA0\x07"
+                         "\xEF\xBE\xEC\x69\xAC\xA8\x63\x9E",
+               .ilen   = 504,
+               .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\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\xF0\x64\xFB\x92\x06",
+               .rlen   = 504,
        },
 };
 
@@ -3584,6 +3854,140 @@ static struct cipher_testvec tf_ctr_enc_tv_template[] = {
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
                          "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
                .klen   = 32,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .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 = "\xEB\x44\xAF\x49\x27\xB8\xFB\x44"
+                         "\x4C\xA6\xC3\x0C\x8B\xD0\x01\x0C"
+                         "\x53\xC8\x16\x38\xDE\x40\x4F\x91"
+                         "\x25\x6D\x4C\xA0\x9A\x87\x1E\xDA"
+                         "\x88\x7E\x89\xE9\x67\x2B\x83\xA2"
+                         "\x5F\x2E\x23\x3E\x45\xB9\x77\x7B"
+                         "\xA6\x7E\x47\x36\x81\x9F\x9B\xF3"
+                         "\xE0\xF0\xD7\x47\xA9\xC8\xEF\x33"
+                         "\x0C\x43\xFE\x67\x50\x0A\x2C\x3E"
+                         "\xA0\xE1\x25\x8E\x80\x07\x4A\xC0"
+                         "\x64\x89\x9F\x6A\x27\x96\x07\xA6"
+                         "\x9B\xC8\x1B\x21\x60\xAE\x5D\x01"
+                         "\xE2\xCD\xC8\xAA\x6C\x9D\x1C\x34"
+                         "\x39\x18\x09\xA4\x82\x59\x78\xE7"
+                         "\xFC\x59\x65\xF2\x94\xFF\xFB\xE2"
+                         "\x3C\xDA\xB1\x90\x95\xBF\x91\xE3"
+                         "\xE6\x87\x31\x9E\x16\x85\xAD\xB1"
+                         "\x4C\xAE\x43\x4D\x19\x58\xB5\x5E"
+                         "\x2E\xF5\x09\xAA\x39\xF4\xC0\xB3"
+                         "\xD4\x4D\xDB\x73\x7A\xD4\xF1\xBF"
+                         "\x89\x16\x4D\x2D\xA2\x26\x33\x72"
+                         "\x18\x33\x7E\xD6\xD2\x16\xA4\x54"
+                         "\xF4\x8C\xB3\x52\xDF\x21\x9C\xEB"
+                         "\xBF\x49\xD3\xF9\x05\x06\xCB\xD2"
+                         "\xA9\xD2\x3B\x6E\x19\x8C\xBC\x19"
+                         "\xAB\x89\xD6\xD8\xCD\x56\x89\x5E"
+                         "\xAC\x00\xE3\x50\x63\x4A\x80\x9A"
+                         "\x05\xBC\x50\x39\xD3\x32\xD9\x0D"
+                         "\xE3\x20\x0D\x75\x54\xEC\xE6\x31"
+                         "\x14\xB9\x3A\x59\x00\x43\x37\x8E"
+                         "\x8C\x5A\x79\x62\x14\x76\x8A\xAE"
+                         "\x8F\xCC\xA1\x6C\x38\x78\xDD\x2D"
+                         "\x8B\x6D\xEA\xBD\x7B\x25\xFF\x60"
+                         "\xC9\x87\xB1\x79\x1E\xA5\x86\x68"
+                         "\x81\xB4\xE2\xC1\x05\x7D\x3A\x73"
+                         "\xD0\xDA\x75\x77\x9E\x05\x27\xF1"
+                         "\x08\xA9\x66\x64\x6C\xBC\x82\x17"
+                         "\x2C\x23\x5F\x62\x4D\x02\x1A\x58"
+                         "\xE7\xB7\x23\x6D\xE2\x20\xDA\xEF"
+                         "\xB4\xB3\x3F\xB2\x2B\x69\x98\x83"
+                         "\x95\x87\x13\x57\x60\xD7\xB5\xB1"
+                         "\xEE\x0A\x2F\x95\x36\x4C\x76\x5D"
+                         "\x5F\xD9\x19\xED\xB9\xA5\x48\xBF"
+                         "\xC8\xAB\x0F\x71\xCC\x61\x8E\x0A"
+                         "\xD0\x29\x44\xA8\xB9\xC1\xE8\xC8"
+                         "\xC9\xA8\x28\x81\xFB\x50\xF2\xF0"
+                         "\x26\xAE\x39\xB8\x91\xCD\xA8\xAC"
+                         "\xDE\x55\x1B\x50\x14\x53\x44\x17"
+                         "\x54\x46\xFC\xB1\xE4\x07\x6B\x9A"
+                         "\x01\x14\xF0\x2E\x2E\xDB\x46\x1B"
+                         "\x1A\x09\x97\xA9\xB6\x97\x79\x06"
+                         "\xFB\xCB\x85\xCF\xDD\xA1\x41\xB1"
+                         "\x00\xAA\xF7\xE0\x89\x73\xFB\xE5"
+                         "\xBF\x84\xDB\xC9\xCD\xC4\xA2\x0D"
+                         "\x3B\xAC\xF9\xDF\x96\xBF\x88\x23"
+                         "\x41\x67\xA1\x24\x99\x7E\xCC\x9B"
+                         "\x02\x8F\x6A\x49\xF6\x25\xBA\x7A"
+                         "\xF4\x78\xFD\x79\x62\x63\x4F\x14"
+                         "\xD6\x11\x11\x04\x05\x5F\x7E\xEA"
+                         "\x4C\xB6\xF8\xF4\x5F\x48\x52\x54"
+                         "\x94\x63\xA8\x4E\xCF\xD2\x1B\x1B"
+                         "\x22\x18\x6A\xAF\x6E\x3E\xE1\x0D",
+               .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"
@@ -3861,6 +4265,140 @@ static struct cipher_testvec tf_ctr_dec_tv_template[] = {
                          "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
                          "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
                .klen   = 32,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .input  = "\xEB\x44\xAF\x49\x27\xB8\xFB\x44"
+                         "\x4C\xA6\xC3\x0C\x8B\xD0\x01\x0C"
+                         "\x53\xC8\x16\x38\xDE\x40\x4F\x91"
+                         "\x25\x6D\x4C\xA0\x9A\x87\x1E\xDA"
+                         "\x88\x7E\x89\xE9\x67\x2B\x83\xA2"
+                         "\x5F\x2E\x23\x3E\x45\xB9\x77\x7B"
+                         "\xA6\x7E\x47\x36\x81\x9F\x9B\xF3"
+                         "\xE0\xF0\xD7\x47\xA9\xC8\xEF\x33"
+                         "\x0C\x43\xFE\x67\x50\x0A\x2C\x3E"
+                         "\xA0\xE1\x25\x8E\x80\x07\x4A\xC0"
+                         "\x64\x89\x9F\x6A\x27\x96\x07\xA6"
+                         "\x9B\xC8\x1B\x21\x60\xAE\x5D\x01"
+                         "\xE2\xCD\xC8\xAA\x6C\x9D\x1C\x34"
+                         "\x39\x18\x09\xA4\x82\x59\x78\xE7"
+                         "\xFC\x59\x65\xF2\x94\xFF\xFB\xE2"
+                         "\x3C\xDA\xB1\x90\x95\xBF\x91\xE3"
+                         "\xE6\x87\x31\x9E\x16\x85\xAD\xB1"
+                         "\x4C\xAE\x43\x4D\x19\x58\xB5\x5E"
+                         "\x2E\xF5\x09\xAA\x39\xF4\xC0\xB3"
+                         "\xD4\x4D\xDB\x73\x7A\xD4\xF1\xBF"
+                         "\x89\x16\x4D\x2D\xA2\x26\x33\x72"
+                         "\x18\x33\x7E\xD6\xD2\x16\xA4\x54"
+                         "\xF4\x8C\xB3\x52\xDF\x21\x9C\xEB"
+                         "\xBF\x49\xD3\xF9\x05\x06\xCB\xD2"
+                         "\xA9\xD2\x3B\x6E\x19\x8C\xBC\x19"
+                         "\xAB\x89\xD6\xD8\xCD\x56\x89\x5E"
+                         "\xAC\x00\xE3\x50\x63\x4A\x80\x9A"
+                         "\x05\xBC\x50\x39\xD3\x32\xD9\x0D"
+                         "\xE3\x20\x0D\x75\x54\xEC\xE6\x31"
+                         "\x14\xB9\x3A\x59\x00\x43\x37\x8E"
+                         "\x8C\x5A\x79\x62\x14\x76\x8A\xAE"
+                         "\x8F\xCC\xA1\x6C\x38\x78\xDD\x2D"
+                         "\x8B\x6D\xEA\xBD\x7B\x25\xFF\x60"
+                         "\xC9\x87\xB1\x79\x1E\xA5\x86\x68"
+                         "\x81\xB4\xE2\xC1\x05\x7D\x3A\x73"
+                         "\xD0\xDA\x75\x77\x9E\x05\x27\xF1"
+                         "\x08\xA9\x66\x64\x6C\xBC\x82\x17"
+                         "\x2C\x23\x5F\x62\x4D\x02\x1A\x58"
+                         "\xE7\xB7\x23\x6D\xE2\x20\xDA\xEF"
+                         "\xB4\xB3\x3F\xB2\x2B\x69\x98\x83"
+                         "\x95\x87\x13\x57\x60\xD7\xB5\xB1"
+                         "\xEE\x0A\x2F\x95\x36\x4C\x76\x5D"
+                         "\x5F\xD9\x19\xED\xB9\xA5\x48\xBF"
+                         "\xC8\xAB\x0F\x71\xCC\x61\x8E\x0A"
+                         "\xD0\x29\x44\xA8\xB9\xC1\xE8\xC8"
+                         "\xC9\xA8\x28\x81\xFB\x50\xF2\xF0"
+                         "\x26\xAE\x39\xB8\x91\xCD\xA8\xAC"
+                         "\xDE\x55\x1B\x50\x14\x53\x44\x17"
+                         "\x54\x46\xFC\xB1\xE4\x07\x6B\x9A"
+                         "\x01\x14\xF0\x2E\x2E\xDB\x46\x1B"
+                         "\x1A\x09\x97\xA9\xB6\x97\x79\x06"
+                         "\xFB\xCB\x85\xCF\xDD\xA1\x41\xB1"
+                         "\x00\xAA\xF7\xE0\x89\x73\xFB\xE5"
+                         "\xBF\x84\xDB\xC9\xCD\xC4\xA2\x0D"
+                         "\x3B\xAC\xF9\xDF\x96\xBF\x88\x23"
+                         "\x41\x67\xA1\x24\x99\x7E\xCC\x9B"
+                         "\x02\x8F\x6A\x49\xF6\x25\xBA\x7A"
+                         "\xF4\x78\xFD\x79\x62\x63\x4F\x14"
+                         "\xD6\x11\x11\x04\x05\x5F\x7E\xEA"
+                         "\x4C\xB6\xF8\xF4\x5F\x48\x52\x54"
+                         "\x94\x63\xA8\x4E\xCF\xD2\x1B\x1B"
+                         "\x22\x18\x6A\xAF\x6E\x3E\xE1\x0D",
+               .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"
+                         "\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"
+                         "\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  = "\xDF\xDD\x69\xFA\xB0\x2E\xFD\xFE"
@@ -5680,6 +6218,140 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = {
                .also_non_np = 1,
                .np     = 2,
                .tap    = { 147 - 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,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .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 = "\x06\x9A\xF8\xB4\x53\x88\x62\xFC"
+                         "\x68\xB8\x2E\xDF\xC1\x05\x0F\x3D"
+                         "\xAF\x4D\x95\xAE\xC4\xE9\x1C\xDC"
+                         "\xF6\x2B\x8F\x90\x89\xF6\x7E\x1A"
+                         "\xA6\xB9\xE4\xF4\xFA\xCA\xE5\x7E"
+                         "\x71\x28\x06\x4F\xE8\x08\x39\xDA"
+                         "\xA5\x0E\xC8\xC0\xB8\x16\xE5\x69"
+                         "\xE5\xCA\xEC\x4F\x63\x2C\xC0\x9B"
+                         "\x9F\x3E\x39\x79\xF0\xCD\x64\x35"
+                         "\x4A\xD3\xC8\xA9\x31\xCD\x48\x5B"
+                         "\x92\x3D\x8F\x3F\x96\xBD\xB3\x18"
+                         "\x74\x2A\x5D\x29\x3F\x57\x8F\xE2"
+                         "\x67\x9A\xE0\xE5\xD4\x4A\xE2\x47"
+                         "\xBC\xF6\xEB\x14\xF3\x8C\x20\xC2"
+                         "\x7D\xE2\x43\x81\x86\x72\x2E\xB1"
+                         "\x39\xF6\x95\xE1\x1F\xCB\x76\x33"
+                         "\x5B\x7D\x23\x0F\x3A\x67\x2A\x2F"
+                         "\xB9\x37\x9D\xDD\x1F\x16\xA1\x3C"
+                         "\x70\xFE\x52\xAA\x93\x3C\xC4\x46"
+                         "\xB1\xE5\xFF\xDA\xAF\xE2\x84\xFE"
+                         "\x25\x92\xB2\x63\xBD\x49\x77\xB4"
+                         "\x22\xA4\x6A\xD5\x04\xE0\x45\x58"
+                         "\x1C\x34\x96\x7C\x03\x0C\x13\xA2"
+                         "\x05\x22\xE2\xCB\x5A\x35\x03\x09"
+                         "\x40\xD2\x82\x05\xCA\x58\x73\xF2"
+                         "\x29\x5E\x01\x47\x13\x32\x78\xBE"
+                         "\x06\xB0\x51\xDB\x6C\x31\xA0\x1C"
+                         "\x74\xBC\x8D\x25\xDF\xF8\x65\xD1"
+                         "\x38\x35\x11\x26\x4A\xB4\x06\x32"
+                         "\xFA\xD2\x07\x77\xB3\x74\x98\x80"
+                         "\x61\x59\xA8\x9F\xF3\x6F\x2A\xBF"
+                         "\xE6\xA5\x9A\xC4\x6B\xA6\x49\x6F"
+                         "\xBC\x47\xD9\xFB\xC6\xEF\x25\x65"
+                         "\x96\xAC\x9F\xE4\x81\x4B\xD8\xBA"
+                         "\xD6\x9B\xC9\x6D\x58\x40\x81\x02"
+                         "\x73\x44\x4E\x43\x6E\x37\xBB\x11"
+                         "\xE3\xF9\xB8\x2F\xEC\x76\x34\xEA"
+                         "\x90\xCD\xB7\x2E\x0E\x32\x71\xE8"
+                         "\xBB\x4E\x0B\x98\xA4\x17\x17\x5B"
+                         "\x07\xB5\x82\x3A\xC4\xE8\x42\x51"
+                         "\x5A\x4C\x4E\x7D\xBF\xC4\xC0\x4F"
+                         "\x68\xB8\xC6\x4A\x32\x6F\x0B\xD7"
+                         "\x85\xED\x6B\xFB\x72\xD2\xA5\x8F"
+                         "\xBF\xF9\xAC\x59\x50\xA8\x08\x70"
+                         "\xEC\xBD\x0A\xBF\xE5\x87\xA1\xC2"
+                         "\x92\x14\x78\xAF\xE8\xEA\x2E\xDD"
+                         "\xC1\x03\x9A\xAA\x89\x8B\x32\x46"
+                         "\x5B\x18\x27\xBA\x46\xAA\x64\xDE"
+                         "\xE3\xD5\xA3\xFC\x7B\x5B\x61\xDB"
+                         "\x7E\xDA\xEC\x30\x17\x19\xF8\x80"
+                         "\xB5\x5E\x27\xB5\x37\x3A\x1F\x28"
+                         "\x07\x73\xC3\x63\xCE\xFF\x8C\xFE"
+                         "\x81\x4E\xF8\x24\xF3\xB8\xC7\xE8"
+                         "\x16\x9A\xCC\x58\x2F\x88\x1C\x4B"
+                         "\xBB\x33\xA2\x73\xF0\x1C\x89\x0E"
+                         "\xDC\x34\x27\x89\x98\xCE\x1C\xA2"
+                         "\xD8\xB8\x90\xBE\xEC\x72\x28\x13"
+                         "\xAC\x7B\xF1\xD0\x7F\x7A\x28\x50"
+                         "\xB7\x99\x65\x8A\xC9\xC6\x21\x34"
+                         "\x7F\x67\x9D\xB7\x2C\xCC\xF5\x17"
+                         "\x2B\x89\xAC\xB0\xD7\x1E\x47\xB0"
+                         "\x61\xAF\xD4\x63\x6D\xB8\x2D\x20",
+               .rlen   = 496,
        },
 };
 
@@ -5781,6 +6453,140 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = {
                .also_non_np = 1,
                .np     = 2,
                .tap    = { 147 - 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,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .input  = "\x06\x9A\xF8\xB4\x53\x88\x62\xFC"
+                         "\x68\xB8\x2E\xDF\xC1\x05\x0F\x3D"
+                         "\xAF\x4D\x95\xAE\xC4\xE9\x1C\xDC"
+                         "\xF6\x2B\x8F\x90\x89\xF6\x7E\x1A"
+                         "\xA6\xB9\xE4\xF4\xFA\xCA\xE5\x7E"
+                         "\x71\x28\x06\x4F\xE8\x08\x39\xDA"
+                         "\xA5\x0E\xC8\xC0\xB8\x16\xE5\x69"
+                         "\xE5\xCA\xEC\x4F\x63\x2C\xC0\x9B"
+                         "\x9F\x3E\x39\x79\xF0\xCD\x64\x35"
+                         "\x4A\xD3\xC8\xA9\x31\xCD\x48\x5B"
+                         "\x92\x3D\x8F\x3F\x96\xBD\xB3\x18"
+                         "\x74\x2A\x5D\x29\x3F\x57\x8F\xE2"
+                         "\x67\x9A\xE0\xE5\xD4\x4A\xE2\x47"
+                         "\xBC\xF6\xEB\x14\xF3\x8C\x20\xC2"
+                         "\x7D\xE2\x43\x81\x86\x72\x2E\xB1"
+                         "\x39\xF6\x95\xE1\x1F\xCB\x76\x33"
+                         "\x5B\x7D\x23\x0F\x3A\x67\x2A\x2F"
+                         "\xB9\x37\x9D\xDD\x1F\x16\xA1\x3C"
+                         "\x70\xFE\x52\xAA\x93\x3C\xC4\x46"
+                         "\xB1\xE5\xFF\xDA\xAF\xE2\x84\xFE"
+                         "\x25\x92\xB2\x63\xBD\x49\x77\xB4"
+                         "\x22\xA4\x6A\xD5\x04\xE0\x45\x58"
+                         "\x1C\x34\x96\x7C\x03\x0C\x13\xA2"
+                         "\x05\x22\xE2\xCB\x5A\x35\x03\x09"
+                         "\x40\xD2\x82\x05\xCA\x58\x73\xF2"
+                         "\x29\x5E\x01\x47\x13\x32\x78\xBE"
+                         "\x06\xB0\x51\xDB\x6C\x31\xA0\x1C"
+                         "\x74\xBC\x8D\x25\xDF\xF8\x65\xD1"
+                         "\x38\x35\x11\x26\x4A\xB4\x06\x32"
+                         "\xFA\xD2\x07\x77\xB3\x74\x98\x80"
+                         "\x61\x59\xA8\x9F\xF3\x6F\x2A\xBF"
+                         "\xE6\xA5\x9A\xC4\x6B\xA6\x49\x6F"
+                         "\xBC\x47\xD9\xFB\xC6\xEF\x25\x65"
+                         "\x96\xAC\x9F\xE4\x81\x4B\xD8\xBA"
+                         "\xD6\x9B\xC9\x6D\x58\x40\x81\x02"
+                         "\x73\x44\x4E\x43\x6E\x37\xBB\x11"
+                         "\xE3\xF9\xB8\x2F\xEC\x76\x34\xEA"
+                         "\x90\xCD\xB7\x2E\x0E\x32\x71\xE8"
+                         "\xBB\x4E\x0B\x98\xA4\x17\x17\x5B"
+                         "\x07\xB5\x82\x3A\xC4\xE8\x42\x51"
+                         "\x5A\x4C\x4E\x7D\xBF\xC4\xC0\x4F"
+                         "\x68\xB8\xC6\x4A\x32\x6F\x0B\xD7"
+                         "\x85\xED\x6B\xFB\x72\xD2\xA5\x8F"
+                         "\xBF\xF9\xAC\x59\x50\xA8\x08\x70"
+                         "\xEC\xBD\x0A\xBF\xE5\x87\xA1\xC2"
+                         "\x92\x14\x78\xAF\xE8\xEA\x2E\xDD"
+                         "\xC1\x03\x9A\xAA\x89\x8B\x32\x46"
+                         "\x5B\x18\x27\xBA\x46\xAA\x64\xDE"
+                         "\xE3\xD5\xA3\xFC\x7B\x5B\x61\xDB"
+                         "\x7E\xDA\xEC\x30\x17\x19\xF8\x80"
+                         "\xB5\x5E\x27\xB5\x37\x3A\x1F\x28"
+                         "\x07\x73\xC3\x63\xCE\xFF\x8C\xFE"
+                         "\x81\x4E\xF8\x24\xF3\xB8\xC7\xE8"
+                         "\x16\x9A\xCC\x58\x2F\x88\x1C\x4B"
+                         "\xBB\x33\xA2\x73\xF0\x1C\x89\x0E"
+                         "\xDC\x34\x27\x89\x98\xCE\x1C\xA2"
+                         "\xD8\xB8\x90\xBE\xEC\x72\x28\x13"
+                         "\xAC\x7B\xF1\xD0\x7F\x7A\x28\x50"
+                         "\xB7\x99\x65\x8A\xC9\xC6\x21\x34"
+                         "\x7F\x67\x9D\xB7\x2C\xCC\xF5\x17"
+                         "\x2B\x89\xAC\xB0\xD7\x1E\x47\xB0"
+                         "\x61\xAF\xD4\x63\x6D\xB8\x2D\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"
+                         "\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,
        },
 };
 
@@ -15738,6 +16544,140 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = {
                .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"
+                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
+                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
+               .klen   = 32,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .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 = "\x85\x79\x6C\x8B\x2B\x6D\x14\xF9"
+                         "\xA6\x83\xB6\x80\x5B\x3A\xF3\x7E"
+                         "\x30\x29\xEB\x1F\xDC\x19\x5F\xEB"
+                         "\xF7\xC4\x27\x04\x51\x87\xD7\x6F"
+                         "\xB8\x4E\x07\xFB\xAC\x3B\x08\xB4"
+                         "\x4D\xCB\xE8\xE1\x71\x7D\x4F\x48"
+                         "\xCD\x81\x64\xA5\xC4\x07\x1A\x9A"
+                         "\x4B\x62\x90\x0E\xC8\xB3\x2B\x6B"
+                         "\x8F\x9C\x6E\x72\x4B\xBA\xEF\x07"
+                         "\x2C\x56\x07\x5E\x37\x30\x60\xA9"
+                         "\xE3\xEF\xD6\x69\xE1\xA1\x77\x64"
+                         "\x93\x75\x7A\xB7\x7A\x3B\xE9\x43"
+                         "\x23\x35\x95\x91\x80\x8A\xC7\xCF"
+                         "\xC3\xD5\xBF\xE7\xFE\x4C\x06\x6B"
+                         "\x05\x19\x48\xE2\x62\xBA\x4F\xF2"
+                         "\xFB\xEE\xE4\xCB\x79\x9D\xA3\x10"
+                         "\x1D\x29\x8C\x1D\x7A\x88\x5A\xDD"
+                         "\x4E\xB6\x18\xAA\xCD\xE6\x33\x96"
+                         "\xD9\x0F\x90\x5A\x78\x76\x4D\x77"
+                         "\x3C\x20\x89\x3B\xA3\xF9\x07\xFD"
+                         "\xE4\xE8\x20\x2D\x15\x0A\x63\x49"
+                         "\xF5\x4F\x89\xD8\xDE\xA1\x28\x78"
+                         "\x28\x07\x09\x1B\x03\x94\x1D\x4B"
+                         "\x82\x28\x1E\x1D\x95\xBA\xAC\x85"
+                         "\x71\x6E\x3C\x18\x4B\x77\x74\x79"
+                         "\xBF\x67\x0A\x53\x3C\x94\xD9\x60"
+                         "\xE9\x6D\x40\x34\xA0\x2A\x53\x5D"
+                         "\x27\xD5\x47\xF9\xC3\x4B\x27\x29"
+                         "\xE4\x76\x9C\x3F\xA7\x1C\x87\xFC"
+                         "\x6E\x0F\xCF\x9B\x60\xF0\xF0\x8B"
+                         "\x70\x1C\x84\x81\x72\x4D\xB4\x98"
+                         "\x23\x62\xE7\x6A\x2B\xFC\xA5\xB2"
+                         "\xFF\xF5\x71\x07\xCD\x90\x23\x13"
+                         "\x19\xD7\x79\x36\x6C\x9D\x55\x8B"
+                         "\x93\x78\x86\x05\x69\x46\xD0\xC5"
+                         "\x39\x09\xEB\x79\xEF\xFA\x9F\xAE"
+                         "\xF3\xD5\x44\xC3\xFD\x86\xD2\x7C"
+                         "\x83\x4B\xD8\x75\x9C\x18\x04\x7B"
+                         "\x73\xAD\x72\xA4\xF6\xAB\xCF\x4B"
+                         "\xCC\x01\x45\x90\xA6\x43\x05\x0C"
+                         "\x6C\x4F\x62\x77\x57\x97\x9F\xEE"
+                         "\x75\xA7\x3C\x38\xD1\x0F\x3D\x0E"
+                         "\x2C\x43\x98\xFB\x13\x65\x73\xE4"
+                         "\x3C\x1E\xD6\x90\x08\xF7\xE0\x99"
+                         "\x3B\xF1\x9D\x6C\x48\xA9\x0E\x32"
+                         "\x17\xC2\xCC\x20\xA1\x19\x26\xAA"
+                         "\xE0\x75\x2F\xFB\x54\x66\x0A\xDF"
+                         "\xB5\xF2\x1F\xC1\x34\x3C\x30\x56"
+                         "\xE8\xDC\xF7\x92\x6B\xBF\x17\x24"
+                         "\xEC\x94\xB5\x3B\xD6\xCE\xA2\x54"
+                         "\x10\x7F\x50\xDE\x69\x77\xD5\x37"
+                         "\xFE\x9C\x10\x83\xC5\xEB\xC9\x53"
+                         "\xB7\xF3\xC4\x20\xAF\x0A\x7E\x57"
+                         "\x3A\xE6\x75\xFE\x89\x00\x6E\x48"
+                         "\xFB\x99\x17\x2C\xF6\x64\x40\x95"
+                         "\x5E\xDC\x7A\xA6\x70\xC7\xF4\xDD"
+                         "\x52\x05\x24\x34\xF9\x0E\xC8\x64"
+                         "\x6D\xE2\xD8\x80\x53\x31\x4C\xFE"
+                         "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22"
+                         "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E"
+                         "\x12\xA8\x01\x64\x16\x0B\x26\x5A"
+                         "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C",
+               .rlen   = 496,
        },
 };
 
@@ -15792,8 +16732,141 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = {
                .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"
+                         "\x27\x04\xE1\x27\x04\xE1\xBE\x9B"
+                         "\x78\xBE\x9B\x78\x55\x32\x0F\x55",
+               .klen   = 32,
+               .iv     = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+                         "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
+               .input  = "\x85\x79\x6C\x8B\x2B\x6D\x14\xF9"
+                         "\xA6\x83\xB6\x80\x5B\x3A\xF3\x7E"
+                         "\x30\x29\xEB\x1F\xDC\x19\x5F\xEB"
+                         "\xF7\xC4\x27\x04\x51\x87\xD7\x6F"
+                         "\xB8\x4E\x07\xFB\xAC\x3B\x08\xB4"
+                         "\x4D\xCB\xE8\xE1\x71\x7D\x4F\x48"
+                         "\xCD\x81\x64\xA5\xC4\x07\x1A\x9A"
+                         "\x4B\x62\x90\x0E\xC8\xB3\x2B\x6B"
+                         "\x8F\x9C\x6E\x72\x4B\xBA\xEF\x07"
+                         "\x2C\x56\x07\x5E\x37\x30\x60\xA9"
+                         "\xE3\xEF\xD6\x69\xE1\xA1\x77\x64"
+                         "\x93\x75\x7A\xB7\x7A\x3B\xE9\x43"
+                         "\x23\x35\x95\x91\x80\x8A\xC7\xCF"
+                         "\xC3\xD5\xBF\xE7\xFE\x4C\x06\x6B"
+                         "\x05\x19\x48\xE2\x62\xBA\x4F\xF2"
+                         "\xFB\xEE\xE4\xCB\x79\x9D\xA3\x10"
+                         "\x1D\x29\x8C\x1D\x7A\x88\x5A\xDD"
+                         "\x4E\xB6\x18\xAA\xCD\xE6\x33\x96"
+                         "\xD9\x0F\x90\x5A\x78\x76\x4D\x77"
+                         "\x3C\x20\x89\x3B\xA3\xF9\x07\xFD"
+                         "\xE4\xE8\x20\x2D\x15\x0A\x63\x49"
+                         "\xF5\x4F\x89\xD8\xDE\xA1\x28\x78"
+                         "\x28\x07\x09\x1B\x03\x94\x1D\x4B"
+                         "\x82\x28\x1E\x1D\x95\xBA\xAC\x85"
+                         "\x71\x6E\x3C\x18\x4B\x77\x74\x79"
+                         "\xBF\x67\x0A\x53\x3C\x94\xD9\x60"
+                         "\xE9\x6D\x40\x34\xA0\x2A\x53\x5D"
+                         "\x27\xD5\x47\xF9\xC3\x4B\x27\x29"
+                         "\xE4\x76\x9C\x3F\xA7\x1C\x87\xFC"
+                         "\x6E\x0F\xCF\x9B\x60\xF0\xF0\x8B"
+                         "\x70\x1C\x84\x81\x72\x4D\xB4\x98"
+                         "\x23\x62\xE7\x6A\x2B\xFC\xA5\xB2"
+                         "\xFF\xF5\x71\x07\xCD\x90\x23\x13"
+                         "\x19\xD7\x79\x36\x6C\x9D\x55\x8B"
+                         "\x93\x78\x86\x05\x69\x46\xD0\xC5"
+                         "\x39\x09\xEB\x79\xEF\xFA\x9F\xAE"
+                         "\xF3\xD5\x44\xC3\xFD\x86\xD2\x7C"
+                         "\x83\x4B\xD8\x75\x9C\x18\x04\x7B"
+                         "\x73\xAD\x72\xA4\xF6\xAB\xCF\x4B"
+                         "\xCC\x01\x45\x90\xA6\x43\x05\x0C"
+                         "\x6C\x4F\x62\x77\x57\x97\x9F\xEE"
+                         "\x75\xA7\x3C\x38\xD1\x0F\x3D\x0E"
+                         "\x2C\x43\x98\xFB\x13\x65\x73\xE4"
+                         "\x3C\x1E\xD6\x90\x08\xF7\xE0\x99"
+                         "\x3B\xF1\x9D\x6C\x48\xA9\x0E\x32"
+                         "\x17\xC2\xCC\x20\xA1\x19\x26\xAA"
+                         "\xE0\x75\x2F\xFB\x54\x66\x0A\xDF"
+                         "\xB5\xF2\x1F\xC1\x34\x3C\x30\x56"
+                         "\xE8\xDC\xF7\x92\x6B\xBF\x17\x24"
+                         "\xEC\x94\xB5\x3B\xD6\xCE\xA2\x54"
+                         "\x10\x7F\x50\xDE\x69\x77\xD5\x37"
+                         "\xFE\x9C\x10\x83\xC5\xEB\xC9\x53"
+                         "\xB7\xF3\xC4\x20\xAF\x0A\x7E\x57"
+                         "\x3A\xE6\x75\xFE\x89\x00\x6E\x48"
+                         "\xFB\x99\x17\x2C\xF6\x64\x40\x95"
+                         "\x5E\xDC\x7A\xA6\x70\xC7\xF4\xDD"
+                         "\x52\x05\x24\x34\xF9\x0E\xC8\x64"
+                         "\x6D\xE2\xD8\x80\x53\x31\x4C\xFE"
+                         "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22"
+                         "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E"
+                         "\x12\xA8\x01\x64\x16\x0B\x26\x5A"
+                         "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C",
+               .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"
+                         "\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,
        },
-
 };
 
 static struct cipher_testvec camellia_lrw_enc_tv_template[] = {