crypto: testmgr - expand blowfish test vectors
Jussi Kivilinna [Sat, 20 Oct 2012 11:52:52 +0000 (14:52 +0300)]
AVX2 implementation of blowfish cipher processes 32 blocks parallel, so
we need to make test vectors larger to check parallel code paths.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

crypto/testmgr.h

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