crypto: testmgr - expand serpent test vectors
Jussi Kivilinna [Sat, 20 Oct 2012 11:52:57 +0000 (14:52 +0300)]
AVX2 implementation of serpent cipher processes 16 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 09f9131..fd593d2 100644 (file)
@@ -6763,8 +6763,52 @@ static struct cipher_testvec serpent_enc_tv_template[] = {
                          "\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",
-               .ilen   = 144,
+                         "\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 = "\xFB\xB0\x5D\xDE\xC0\xFE\xFC\xEB"
                          "\xB1\x80\x10\x43\xDE\x62\x70\xBD"
                          "\xFA\x8A\x93\xEA\x6B\xF7\xC5\xD7"
@@ -6782,11 +6826,55 @@ static struct cipher_testvec serpent_enc_tv_template[] = {
                          "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD"
                          "\x69\xDA\x7A\x01\xF5\x6A\x70\x39"
                          "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39"
-                         "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6",
-               .rlen   = 144,
+                         "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6"
+                         "\xB6\x31\x36\x34\x38\x3C\x1D\x69"
+                         "\x9F\x47\x28\x9A\x1D\x96\x70\x54"
+                         "\x8E\x88\xCB\xE0\xF5\x6A\xAE\x0A"
+                         "\x3C\xD5\x93\x1C\x21\xC9\x14\x3A"
+                         "\x23\x9C\x9B\x79\xC7\x75\xC8\x39"
+                         "\xA6\xAC\x65\x9A\x99\x37\xAF\x6D"
+                         "\xBD\xB5\x32\xFD\xD8\x9C\x95\x7B"
+                         "\xC6\x6A\x80\x64\xEA\xEF\x6D\x3F"
+                         "\xA9\xFE\x5B\x16\xA3\xCF\x32\xC8"
+                         "\xEF\x50\x22\x20\x93\x30\xBE\xE2"
+                         "\x38\x05\x65\xAF\xBA\xB6\xE4\x72"
+                         "\xA9\xEE\x05\x42\x88\xBD\x9D\x49"
+                         "\xAD\x93\xCA\x4D\x45\x11\x43\x4D"
+                         "\xB8\xF5\x74\x2B\x48\xE7\x21\xE4"
+                         "\x4E\x3A\x4C\xDE\x65\x7A\x5A\xAD"
+                         "\x86\xE6\x23\xEC\x6B\xA7\x17\xE6"
+                         "\xF6\xA1\xAC\x29\xAE\xF9\x9B\x69"
+                         "\x73\x65\x65\x51\xD6\x0B\x4E\x8C"
+                         "\x17\x15\x9D\xB0\xCF\xB2\x42\x2B"
+                         "\x51\xC3\x03\xE8\xB7\x7D\x2D\x39"
+                         "\xE8\x10\x93\x16\xC8\x68\x4C\x60"
+                         "\x87\x70\x14\xD0\x01\x57\xCB\x42"
+                         "\x13\x59\xB1\x7F\x12\x4F\xBB\xC7"
+                         "\xBD\x2B\xD4\xA9\x12\x26\x4F\xDE"
+                         "\xFD\x72\xEC\xD7\x6F\x97\x14\x90"
+                         "\x0E\x37\x13\xE6\x67\x1D\xE5\xFE"
+                         "\x9E\x18\x3C\x8F\x3A\x3F\x59\x9B"
+                         "\x71\x80\x05\x35\x3F\x40\x0B\x21"
+                         "\x76\xE5\xEF\x42\x6C\xDB\x31\x05"
+                         "\x5F\x05\xCF\x14\xE3\xF0\x61\xA2"
+                         "\x49\x03\x5E\x77\x2E\x20\xBA\xA1"
+                         "\xAF\x46\x51\xC0\x2B\xC4\x64\x1E"
+                         "\x65\xCC\x51\x58\x0A\xDF\xF0\x5F"
+                         "\x75\x9F\x48\xCD\x81\xEC\xC3\xF6"
+                         "\xED\xC9\x4B\x7B\x4E\x26\x23\xE1"
+                         "\xBB\xE9\x83\x0B\xCF\xE4\xDE\x00"
+                         "\x48\xFF\xBF\x6C\xB4\x72\x16\xEF"
+                         "\xC7\x46\xEE\x48\x8C\xB8\xAF\x45"
+                         "\x91\x76\xE7\x6E\x65\x3D\x15\x86"
+                         "\x10\xF8\xDB\x66\x97\x7C\x43\x4D"
+                         "\x79\x12\x4E\xCE\x06\xD1\xD1\x6A"
+                         "\x34\xC1\xC9\xF2\x28\x4A\xCD\x02"
+                         "\x75\x55\x9B\xFF\x36\x73\xAB\x7C"
+                         "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 144 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -6901,8 +6989,52 @@ static struct cipher_testvec serpent_dec_tv_template[] = {
                          "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD"
                          "\x69\xDA\x7A\x01\xF5\x6A\x70\x39"
                          "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39"
-                         "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6",
-               .ilen   = 144,
+                         "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6"
+                         "\xB6\x31\x36\x34\x38\x3C\x1D\x69"
+                         "\x9F\x47\x28\x9A\x1D\x96\x70\x54"
+                         "\x8E\x88\xCB\xE0\xF5\x6A\xAE\x0A"
+                         "\x3C\xD5\x93\x1C\x21\xC9\x14\x3A"
+                         "\x23\x9C\x9B\x79\xC7\x75\xC8\x39"
+                         "\xA6\xAC\x65\x9A\x99\x37\xAF\x6D"
+                         "\xBD\xB5\x32\xFD\xD8\x9C\x95\x7B"
+                         "\xC6\x6A\x80\x64\xEA\xEF\x6D\x3F"
+                         "\xA9\xFE\x5B\x16\xA3\xCF\x32\xC8"
+                         "\xEF\x50\x22\x20\x93\x30\xBE\xE2"
+                         "\x38\x05\x65\xAF\xBA\xB6\xE4\x72"
+                         "\xA9\xEE\x05\x42\x88\xBD\x9D\x49"
+                         "\xAD\x93\xCA\x4D\x45\x11\x43\x4D"
+                         "\xB8\xF5\x74\x2B\x48\xE7\x21\xE4"
+                         "\x4E\x3A\x4C\xDE\x65\x7A\x5A\xAD"
+                         "\x86\xE6\x23\xEC\x6B\xA7\x17\xE6"
+                         "\xF6\xA1\xAC\x29\xAE\xF9\x9B\x69"
+                         "\x73\x65\x65\x51\xD6\x0B\x4E\x8C"
+                         "\x17\x15\x9D\xB0\xCF\xB2\x42\x2B"
+                         "\x51\xC3\x03\xE8\xB7\x7D\x2D\x39"
+                         "\xE8\x10\x93\x16\xC8\x68\x4C\x60"
+                         "\x87\x70\x14\xD0\x01\x57\xCB\x42"
+                         "\x13\x59\xB1\x7F\x12\x4F\xBB\xC7"
+                         "\xBD\x2B\xD4\xA9\x12\x26\x4F\xDE"
+                         "\xFD\x72\xEC\xD7\x6F\x97\x14\x90"
+                         "\x0E\x37\x13\xE6\x67\x1D\xE5\xFE"
+                         "\x9E\x18\x3C\x8F\x3A\x3F\x59\x9B"
+                         "\x71\x80\x05\x35\x3F\x40\x0B\x21"
+                         "\x76\xE5\xEF\x42\x6C\xDB\x31\x05"
+                         "\x5F\x05\xCF\x14\xE3\xF0\x61\xA2"
+                         "\x49\x03\x5E\x77\x2E\x20\xBA\xA1"
+                         "\xAF\x46\x51\xC0\x2B\xC4\x64\x1E"
+                         "\x65\xCC\x51\x58\x0A\xDF\xF0\x5F"
+                         "\x75\x9F\x48\xCD\x81\xEC\xC3\xF6"
+                         "\xED\xC9\x4B\x7B\x4E\x26\x23\xE1"
+                         "\xBB\xE9\x83\x0B\xCF\xE4\xDE\x00"
+                         "\x48\xFF\xBF\x6C\xB4\x72\x16\xEF"
+                         "\xC7\x46\xEE\x48\x8C\xB8\xAF\x45"
+                         "\x91\x76\xE7\x6E\x65\x3D\x15\x86"
+                         "\x10\xF8\xDB\x66\x97\x7C\x43\x4D"
+                         "\x79\x12\x4E\xCE\x06\xD1\xD1\x6A"
+                         "\x34\xC1\xC9\xF2\x28\x4A\xCD\x02"
+                         "\x75\x55\x9B\xFF\x36\x73\xAB\x7C"
+                         "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7",
+               .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"
@@ -6920,11 +7052,55 @@ static struct cipher_testvec serpent_dec_tv_template[] = {
                          "\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",
-               .rlen   = 144,
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 144 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -6995,8 +7171,52 @@ static struct cipher_testvec serpent_cbc_enc_tv_template[] = {
                          "\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",
-               .ilen   = 144,
+                         "\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 = "\x80\xCF\x11\x41\x1A\xB9\x4B\x9C"
                          "\xFF\xB7\x6C\xEA\xF0\xAF\x77\x6E"
                          "\x71\x75\x95\x9D\x4E\x1C\xCF\xAD"
@@ -7014,11 +7234,55 @@ static struct cipher_testvec serpent_cbc_enc_tv_template[] = {
                          "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2"
                          "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB"
                          "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A"
-                         "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C",
-               .rlen   = 144,
+                         "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C"
+                         "\x2D\x12\xA5\x05\x92\xCB\xD7\x4A"
+                         "\x4D\x1E\x88\x21\xE1\x63\xB4\xFC"
+                         "\x4A\xF2\xCD\x35\xB9\xD7\x70\x97"
+                         "\x5A\x5E\x7E\x96\x52\x20\xDC\x25"
+                         "\xE9\x6B\x36\xB4\xE0\x98\x85\x2C"
+                         "\x3C\xD2\xF7\x78\x8A\x73\x26\x9B"
+                         "\xAF\x0B\x11\xE8\x4D\x67\x23\xE9"
+                         "\x77\xDF\x58\xF6\x6F\x9E\xA4\xC5"
+                         "\x10\xA1\x82\x0E\x80\xA0\x8F\x4B"
+                         "\xA1\xC0\x12\x54\x4E\xC9\x20\x92"
+                         "\x11\x00\x10\x4E\xB3\x7C\xCA\x63"
+                         "\xE5\x3F\xD3\x41\x37\xCD\x74\xB7"
+                         "\xA5\x7C\x61\xB8\x0B\x7A\x7F\x4D"
+                         "\xFE\x96\x7D\x1B\xBE\x60\x37\xB7"
+                         "\x81\x92\x66\x67\x15\x1E\x39\x98"
+                         "\x52\xC0\xF4\x69\xC0\x99\x4F\x5A"
+                         "\x2E\x32\xAD\x7C\x8B\xE9\xAD\x05"
+                         "\x55\xF9\x0A\x1F\x97\x5C\xFA\x2B"
+                         "\xF4\x99\x76\x3A\x6E\x4D\xE1\x4C"
+                         "\x14\x4E\x6F\x87\xEE\x1A\x85\xA3"
+                         "\x96\xC6\x66\x49\xDA\x0D\x71\xAC"
+                         "\x04\x05\x46\xD3\x90\x0F\x64\x64"
+                         "\x01\x66\x2C\x62\x5D\x34\xD1\xCB"
+                         "\x3A\x24\xCE\x95\xEF\xAE\x2C\x97"
+                         "\x0E\x0C\x1D\x36\x49\xEB\xE9\x3D"
+                         "\x62\xA6\x19\x28\x9E\x26\xB4\x3F"
+                         "\xD7\x55\x42\x3C\xCD\x72\x0A\xF0"
+                         "\x7D\xE9\x95\x45\x86\xED\xB1\xE0"
+                         "\x8D\xE9\xC5\x86\x13\x24\x28\x7D"
+                         "\x74\xEF\xCA\x50\x12\x7E\x64\x8F"
+                         "\x1B\xF5\x5B\xFE\xE2\xAC\xFA\xE7"
+                         "\xBD\x38\x8C\x11\x20\xEF\xB1\xAA"
+                         "\x7B\xE5\xE5\x78\xAD\x9D\x2D\xA2"
+                         "\x8E\xDD\x48\xB3\xEF\x18\x92\x7E"
+                         "\xE6\x75\x0D\x54\x64\x11\xA3\x3A"
+                         "\xDB\x97\x0F\xD3\xDF\x07\xD3\x7E"
+                         "\x1E\xD1\x87\xE4\x74\xBB\x46\xF4"
+                         "\xBA\x23\x2D\x8D\x29\x07\x12\xCF"
+                         "\x34\xCD\x72\x7F\x01\x30\xE7\xA0"
+                         "\xF8\xDD\xA8\x08\xF0\xBC\xB1\xA2"
+                         "\xCC\xE1\x6B\x5F\xBE\xEA\xF1\xE4"
+                         "\x02\xC4\xAF\xFA\xAD\x31\xF4\xBF"
+                         "\xFC\x66\xAA\x37\xF2\x37\x39\x6B"
+                         "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 144 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -7048,8 +7312,52 @@ static struct cipher_testvec serpent_cbc_dec_tv_template[] = {
                          "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2"
                          "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB"
                          "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A"
-                         "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C",
-               .ilen   = 144,
+                         "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C"
+                         "\x2D\x12\xA5\x05\x92\xCB\xD7\x4A"
+                         "\x4D\x1E\x88\x21\xE1\x63\xB4\xFC"
+                         "\x4A\xF2\xCD\x35\xB9\xD7\x70\x97"
+                         "\x5A\x5E\x7E\x96\x52\x20\xDC\x25"
+                         "\xE9\x6B\x36\xB4\xE0\x98\x85\x2C"
+                         "\x3C\xD2\xF7\x78\x8A\x73\x26\x9B"
+                         "\xAF\x0B\x11\xE8\x4D\x67\x23\xE9"
+                         "\x77\xDF\x58\xF6\x6F\x9E\xA4\xC5"
+                         "\x10\xA1\x82\x0E\x80\xA0\x8F\x4B"
+                         "\xA1\xC0\x12\x54\x4E\xC9\x20\x92"
+                         "\x11\x00\x10\x4E\xB3\x7C\xCA\x63"
+                         "\xE5\x3F\xD3\x41\x37\xCD\x74\xB7"
+                         "\xA5\x7C\x61\xB8\x0B\x7A\x7F\x4D"
+                         "\xFE\x96\x7D\x1B\xBE\x60\x37\xB7"
+                         "\x81\x92\x66\x67\x15\x1E\x39\x98"
+                         "\x52\xC0\xF4\x69\xC0\x99\x4F\x5A"
+                         "\x2E\x32\xAD\x7C\x8B\xE9\xAD\x05"
+                         "\x55\xF9\x0A\x1F\x97\x5C\xFA\x2B"
+                         "\xF4\x99\x76\x3A\x6E\x4D\xE1\x4C"
+                         "\x14\x4E\x6F\x87\xEE\x1A\x85\xA3"
+                         "\x96\xC6\x66\x49\xDA\x0D\x71\xAC"
+                         "\x04\x05\x46\xD3\x90\x0F\x64\x64"
+                         "\x01\x66\x2C\x62\x5D\x34\xD1\xCB"
+                         "\x3A\x24\xCE\x95\xEF\xAE\x2C\x97"
+                         "\x0E\x0C\x1D\x36\x49\xEB\xE9\x3D"
+                         "\x62\xA6\x19\x28\x9E\x26\xB4\x3F"
+                         "\xD7\x55\x42\x3C\xCD\x72\x0A\xF0"
+                         "\x7D\xE9\x95\x45\x86\xED\xB1\xE0"
+                         "\x8D\xE9\xC5\x86\x13\x24\x28\x7D"
+                         "\x74\xEF\xCA\x50\x12\x7E\x64\x8F"
+                         "\x1B\xF5\x5B\xFE\xE2\xAC\xFA\xE7"
+                         "\xBD\x38\x8C\x11\x20\xEF\xB1\xAA"
+                         "\x7B\xE5\xE5\x78\xAD\x9D\x2D\xA2"
+                         "\x8E\xDD\x48\xB3\xEF\x18\x92\x7E"
+                         "\xE6\x75\x0D\x54\x64\x11\xA3\x3A"
+                         "\xDB\x97\x0F\xD3\xDF\x07\xD3\x7E"
+                         "\x1E\xD1\x87\xE4\x74\xBB\x46\xF4"
+                         "\xBA\x23\x2D\x8D\x29\x07\x12\xCF"
+                         "\x34\xCD\x72\x7F\x01\x30\xE7\xA0"
+                         "\xF8\xDD\xA8\x08\xF0\xBC\xB1\xA2"
+                         "\xCC\xE1\x6B\x5F\xBE\xEA\xF1\xE4"
+                         "\x02\xC4\xAF\xFA\xAD\x31\xF4\xBF"
+                         "\xFC\x66\xAA\x37\xF2\x37\x39\x6B"
+                         "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1",
+               .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"
@@ -7067,11 +7375,55 @@ static struct cipher_testvec serpent_cbc_dec_tv_template[] = {
                          "\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",
-               .rlen   = 144,
+                         "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A"
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7",
+               .rlen   = 496,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 144 - 16, 16 },
+               .tap    = { 496 - 16, 16 },
        },
 };
 
@@ -7101,8 +7453,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = {
                          "\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",
-               .ilen   = 144,
+                         "\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 = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA"
                          "\x37\x69\xE3\x3A\x22\x85\x48\x46"
                          "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E"
@@ -7120,8 +7516,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = {
                          "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5"
                          "\x7C\xB5\x12\x89\xED\xBF\xB6\x09"
                          "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC"
-                         "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9",
-               .rlen   = 144,
+                         "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9"
+                         "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A"
+                         "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86"
+                         "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C"
+                         "\xAE\x82\xD3\x73\x31\x09\xCB\xB3"
+                         "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55"
+                         "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2"
+                         "\x8A\xF2\x26\xCD\x63\x38\x35\xF7"
+                         "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C"
+                         "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF"
+                         "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C"
+                         "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA"
+                         "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2"
+                         "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61"
+                         "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC"
+                         "\x2E\xE0\x48\x67\x09\x42\xCC\x91"
+                         "\xBE\x20\x38\xC0\x5E\x3B\x95\x00"
+                         "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7"
+                         "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71"
+                         "\x07\x97\x38\x4B\x5C\x56\x98\x67"
+                         "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90"
+                         "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D"
+                         "\x18\x06\x15\x9D\x5A\x10\x13\x37"
+                         "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12"
+                         "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF"
+                         "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C"
+                         "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1"
+                         "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27"
+                         "\x37\xDC\x35\xF3\x79\x01\x53\xA4"
+                         "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB"
+                         "\x9B\x1E\x8C\x07\xA7\x52\x49\x50"
+                         "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD"
+                         "\x7A\xC9\x36\xAE\xDE\x21\x48\x64"
+                         "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C"
+                         "\x98\x52\xCC\x04\xBD\x5E\x61\x26"
+                         "\x10\xD3\x21\xD9\x6E\x25\x98\x77"
+                         "\x8E\x98\x63\xF6\xF6\x52\xFB\x13"
+                         "\xAA\x30\xF2\xB9\xA4\x43\x53\x39"
+                         "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43"
+                         "\xA6\x71\x6B\x66\x8F\x58\x3F\x71"
+                         "\x90\x47\x40\x92\xE6\x69\xD1\x96"
+                         "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56"
+                         "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B"
+                         "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50"
+                         "\x40\x53\x77\x8C\x15\xF8\x8D\x13",
+               .rlen   = 496,
        }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -7148,8 +7588,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = {
                          "\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",
-               .ilen   = 147,
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
+                         "\x2B\xC2\x59",
+               .ilen   = 499,
                .result = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA"
                          "\x37\x69\xE3\x3A\x22\x85\x48\x46"
                          "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E"
@@ -7168,11 +7652,55 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = {
                          "\x7C\xB5\x12\x89\xED\xBF\xB6\x09"
                          "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC"
                          "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9"
-                         "\xE6\xD0\x97",
-               .rlen   = 147,
+                         "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A"
+                         "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86"
+                         "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C"
+                         "\xAE\x82\xD3\x73\x31\x09\xCB\xB3"
+                         "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55"
+                         "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2"
+                         "\x8A\xF2\x26\xCD\x63\x38\x35\xF7"
+                         "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C"
+                         "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF"
+                         "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C"
+                         "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA"
+                         "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2"
+                         "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61"
+                         "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC"
+                         "\x2E\xE0\x48\x67\x09\x42\xCC\x91"
+                         "\xBE\x20\x38\xC0\x5E\x3B\x95\x00"
+                         "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7"
+                         "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71"
+                         "\x07\x97\x38\x4B\x5C\x56\x98\x67"
+                         "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90"
+                         "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D"
+                         "\x18\x06\x15\x9D\x5A\x10\x13\x37"
+                         "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12"
+                         "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF"
+                         "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C"
+                         "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1"
+                         "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27"
+                         "\x37\xDC\x35\xF3\x79\x01\x53\xA4"
+                         "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB"
+                         "\x9B\x1E\x8C\x07\xA7\x52\x49\x50"
+                         "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD"
+                         "\x7A\xC9\x36\xAE\xDE\x21\x48\x64"
+                         "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C"
+                         "\x98\x52\xCC\x04\xBD\x5E\x61\x26"
+                         "\x10\xD3\x21\xD9\x6E\x25\x98\x77"
+                         "\x8E\x98\x63\xF6\xF6\x52\xFB\x13"
+                         "\xAA\x30\xF2\xB9\xA4\x43\x53\x39"
+                         "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43"
+                         "\xA6\x71\x6B\x66\x8F\x58\x3F\x71"
+                         "\x90\x47\x40\x92\xE6\x69\xD1\x96"
+                         "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56"
+                         "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B"
+                         "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50"
+                         "\x40\x53\x77\x8C\x15\xF8\x8D\x13"
+                         "\x38\xE2\xE5",
+               .rlen   = 499,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 147 - 16, 16 },
+               .tap    = { 499 - 16, 16 },
        }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"
@@ -7336,8 +7864,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = {
                          "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5"
                          "\x7C\xB5\x12\x89\xED\xBF\xB6\x09"
                          "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC"
-                         "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9",
-               .ilen   = 144,
+                         "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9"
+                         "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A"
+                         "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86"
+                         "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C"
+                         "\xAE\x82\xD3\x73\x31\x09\xCB\xB3"
+                         "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55"
+                         "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2"
+                         "\x8A\xF2\x26\xCD\x63\x38\x35\xF7"
+                         "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C"
+                         "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF"
+                         "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C"
+                         "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA"
+                         "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2"
+                         "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61"
+                         "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC"
+                         "\x2E\xE0\x48\x67\x09\x42\xCC\x91"
+                         "\xBE\x20\x38\xC0\x5E\x3B\x95\x00"
+                         "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7"
+                         "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71"
+                         "\x07\x97\x38\x4B\x5C\x56\x98\x67"
+                         "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90"
+                         "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D"
+                         "\x18\x06\x15\x9D\x5A\x10\x13\x37"
+                         "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12"
+                         "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF"
+                         "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C"
+                         "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1"
+                         "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27"
+                         "\x37\xDC\x35\xF3\x79\x01\x53\xA4"
+                         "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB"
+                         "\x9B\x1E\x8C\x07\xA7\x52\x49\x50"
+                         "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD"
+                         "\x7A\xC9\x36\xAE\xDE\x21\x48\x64"
+                         "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C"
+                         "\x98\x52\xCC\x04\xBD\x5E\x61\x26"
+                         "\x10\xD3\x21\xD9\x6E\x25\x98\x77"
+                         "\x8E\x98\x63\xF6\xF6\x52\xFB\x13"
+                         "\xAA\x30\xF2\xB9\xA4\x43\x53\x39"
+                         "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43"
+                         "\xA6\x71\x6B\x66\x8F\x58\x3F\x71"
+                         "\x90\x47\x40\x92\xE6\x69\xD1\x96"
+                         "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56"
+                         "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B"
+                         "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50"
+                         "\x40\x53\x77\x8C\x15\xF8\x8D\x13",
+               .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"
@@ -7355,8 +7927,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = {
                          "\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",
-               .rlen   = 144,
+                         "\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"
@@ -7383,8 +7999,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = {
                          "\x7C\xB5\x12\x89\xED\xBF\xB6\x09"
                          "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC"
                          "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9"
-                         "\xE6\xD0\x97",
-               .ilen   = 147,
+                         "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A"
+                         "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86"
+                         "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C"
+                         "\xAE\x82\xD3\x73\x31\x09\xCB\xB3"
+                         "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55"
+                         "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2"
+                         "\x8A\xF2\x26\xCD\x63\x38\x35\xF7"
+                         "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C"
+                         "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF"
+                         "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C"
+                         "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA"
+                         "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2"
+                         "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61"
+                         "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC"
+                         "\x2E\xE0\x48\x67\x09\x42\xCC\x91"
+                         "\xBE\x20\x38\xC0\x5E\x3B\x95\x00"
+                         "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7"
+                         "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71"
+                         "\x07\x97\x38\x4B\x5C\x56\x98\x67"
+                         "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90"
+                         "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D"
+                         "\x18\x06\x15\x9D\x5A\x10\x13\x37"
+                         "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12"
+                         "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF"
+                         "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C"
+                         "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1"
+                         "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27"
+                         "\x37\xDC\x35\xF3\x79\x01\x53\xA4"
+                         "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB"
+                         "\x9B\x1E\x8C\x07\xA7\x52\x49\x50"
+                         "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD"
+                         "\x7A\xC9\x36\xAE\xDE\x21\x48\x64"
+                         "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C"
+                         "\x98\x52\xCC\x04\xBD\x5E\x61\x26"
+                         "\x10\xD3\x21\xD9\x6E\x25\x98\x77"
+                         "\x8E\x98\x63\xF6\xF6\x52\xFB\x13"
+                         "\xAA\x30\xF2\xB9\xA4\x43\x53\x39"
+                         "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43"
+                         "\xA6\x71\x6B\x66\x8F\x58\x3F\x71"
+                         "\x90\x47\x40\x92\xE6\x69\xD1\x96"
+                         "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56"
+                         "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B"
+                         "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50"
+                         "\x40\x53\x77\x8C\x15\xF8\x8D\x13"
+                         "\x38\xE2\xE5",
+               .ilen   = 499,
                .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31"
                          "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3"
                          "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15"
@@ -7403,11 +8063,55 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = {
                          "\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",
-               .rlen   = 147,
+                         "\xF1\x65\xFC\x93\x07\x9E\x35\xCC"
+                         "\x40\xD7\x6E\x05\x79\x10\xA7\x1B"
+                         "\xB2\x49\xE0\x54\xEB\x82\x19\x8D"
+                         "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF"
+                         "\x96\x0A\xA1\x38\xCF\x43\xDA\x71"
+                         "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3"
+                         "\x57\xEE\x85\x1C\x90\x27\xBE\x32"
+                         "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4"
+                         "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16"
+                         "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88"
+                         "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA"
+                         "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49"
+                         "\xE0\x77\x0E\x82\x19\xB0\x24\xBB"
+                         "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D"
+                         "\xC4\x38\xCF\x66\xFD\x71\x08\x9F"
+                         "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11"
+                         "\x85\x1C\xB3\x27\xBE\x55\xEC\x60"
+                         "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2"
+                         "\x69\x00\x74\x0B\xA2\x16\xAD\x44"
+                         "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6"
+                         "\x2A\xC1\x58\xEF\x63\xFA\x91\x05"
+                         "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77"
+                         "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9"
+                         "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B"
+                         "\xF2\x66\xFD\x94\x08\x9F\x36\xCD"
+                         "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C"
+                         "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E"
+                         "\x25\xBC\x30\xC7\x5E\xF5\x69\x00"
+                         "\x97\x0B\xA2\x39\xD0\x44\xDB\x72"
+                         "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4"
+                         "\x58\xEF\x86\x1D\x91\x28\xBF\x33"
+                         "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5"
+                         "\x3C\xD3\x47\xDE\x75\x0C\x80\x17"
+                         "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89"
+                         "\x20\x94\x2B\xC2\x36\xCD\x64\xFB"
+                         "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A"
+                         "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC"
+                         "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E"
+                         "\xC5\x39\xD0\x67\xFE\x72\x09\xA0"
+                         "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12"
+                         "\x86\x1D\xB4\x28\xBF\x56\xED\x61"
+                         "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3"
+                         "\x6A\x01\x75\x0C\xA3\x17\xAE\x45"
+                         "\xDC\x50\xE7\x7E\x15\x89\x20\xB7"
+                         "\x2B\xC2\x59",
+               .rlen   = 499,
                .also_non_np = 1,
                .np     = 2,
-               .tap    = { 147 - 16, 16 },
+               .tap    = { 499 - 16, 16 },
        }, { /* Generated with Crypto++ */
                .key    = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9"
                          "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A"