crypto: testmgr - add new larger DES testvectors

Most DES testvectors are short and do not test parallelised codepaths
well. Add larger testvectors to test large crypto operations and to test
multi-page crypto with DES.

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>
This commit is contained in:
Jussi Kivilinna 2012-10-20 14:53:07 +03:00 committed by Herbert Xu
parent c3b9e8f6a4
commit 8163fc30d1
3 changed files with 596 additions and 4 deletions

View File

@ -971,6 +971,7 @@ static int do_test(int m)
case 3:
ret += tcrypt_test("ecb(des)");
ret += tcrypt_test("cbc(des)");
ret += tcrypt_test("ctr(des)");
break;
case 4:

View File

@ -2335,6 +2335,21 @@ static const struct alg_test_desc alg_test_descs[] = {
}
}
}
}, {
.alg = "ctr(des)",
.test = alg_test_skcipher,
.suite = {
.cipher = {
.enc = {
.vecs = des_ctr_enc_tv_template,
.count = DES_CTR_ENC_TEST_VECTORS
},
.dec = {
.vecs = des_ctr_dec_tv_template,
.count = DES_CTR_DEC_TEST_VECTORS
}
}
}
}, {
.alg = "ctr(serpent)",
.test = alg_test_skcipher,

View File

@ -2024,10 +2024,12 @@ static struct hash_testvec hmac_sha512_tv_template[] = {
/*
* DES test vectors.
*/
#define DES_ENC_TEST_VECTORS 10
#define DES_DEC_TEST_VECTORS 4
#define DES_CBC_ENC_TEST_VECTORS 5
#define DES_CBC_DEC_TEST_VECTORS 4
#define DES_ENC_TEST_VECTORS 11
#define DES_DEC_TEST_VECTORS 5
#define DES_CBC_ENC_TEST_VECTORS 6
#define DES_CBC_DEC_TEST_VECTORS 5
#define DES_CTR_ENC_TEST_VECTORS 2
#define DES_CTR_DEC_TEST_VECTORS 2
#define DES3_EDE_ENC_TEST_VECTORS 3
#define DES3_EDE_DEC_TEST_VECTORS 3
#define DES3_EDE_CBC_ENC_TEST_VECTORS 1
@ -2134,6 +2136,76 @@ static struct cipher_testvec des_enc_tv_template[] = {
.rlen = 8,
.np = 8,
.tap = { 1, 1, 1, 1, 1, 1, 1, 1 }
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.ilen = 248,
.result = "\x88\xCB\x1F\xAB\x2F\x2A\x49\x57"
"\x92\xB9\x77\xFF\x2F\x47\x58\xDD"
"\xD7\x8A\x91\x95\x26\x33\x78\xB2"
"\x33\xBA\xB2\x3E\x02\xF5\x1F\xEF"
"\x98\xC5\xA6\xD2\x7D\x79\xEC\xB3"
"\x45\xF3\x4C\x61\xAC\x6C\xC2\x55"
"\xE5\xD3\x06\x58\x8A\x42\x3E\xDD"
"\x3D\x20\x45\xE9\x6F\x0D\x25\xA8"
"\xA5\xC7\x69\xCE\xD5\x3B\x7B\xC9"
"\x9E\x65\xE7\xA3\xF2\xE4\x18\x94"
"\xD2\x81\xE9\x33\x2B\x2D\x49\xC4"
"\xFE\xDA\x7F\xE2\xF2\x8C\x9C\xDC"
"\x73\x58\x11\x1F\x81\xD7\x21\x1A"
"\x80\xD0\x0D\xE8\x45\xD6\xD8\xD5"
"\x2E\x51\x16\xCA\x09\x89\x54\x62"
"\xF7\x04\x3D\x75\xB9\xA3\x84\xF4"
"\x62\xF0\x02\x58\x83\xAF\x30\x87"
"\x85\x3F\x01\xCD\x8E\x58\x42\xC4"
"\x41\x73\xE0\x15\x0A\xE6\x2E\x80"
"\x94\xF8\x5B\x3A\x4E\xDF\x51\xB2"
"\x9D\xE4\xC4\x9D\xF7\x3F\xF8\x8E"
"\x37\x22\x4D\x00\x2A\xEF\xC1\x0F"
"\x14\xA0\x66\xAB\x79\x39\xD0\x8E"
"\xE9\x95\x61\x74\x12\xED\x07\xD7"
"\xDD\x95\xDC\x7B\x57\x25\x27\x9C"
"\x51\x96\x16\xF7\x94\x61\xB8\x87"
"\xF0\x21\x1B\x32\xFB\x07\x0F\x29"
"\x56\xBD\x9D\x22\xA2\x9F\xA2\xB9"
"\x46\x31\x4C\x5E\x2E\x95\x61\xEF"
"\xE1\x58\x39\x09\xB4\x8B\x40\xAC"
"\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
},
};
@ -2174,6 +2246,76 @@ static struct cipher_testvec des_dec_tv_template[] = {
.rlen = 16,
.np = 3,
.tap = { 3, 12, 1 }
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.input = "\x88\xCB\x1F\xAB\x2F\x2A\x49\x57"
"\x92\xB9\x77\xFF\x2F\x47\x58\xDD"
"\xD7\x8A\x91\x95\x26\x33\x78\xB2"
"\x33\xBA\xB2\x3E\x02\xF5\x1F\xEF"
"\x98\xC5\xA6\xD2\x7D\x79\xEC\xB3"
"\x45\xF3\x4C\x61\xAC\x6C\xC2\x55"
"\xE5\xD3\x06\x58\x8A\x42\x3E\xDD"
"\x3D\x20\x45\xE9\x6F\x0D\x25\xA8"
"\xA5\xC7\x69\xCE\xD5\x3B\x7B\xC9"
"\x9E\x65\xE7\xA3\xF2\xE4\x18\x94"
"\xD2\x81\xE9\x33\x2B\x2D\x49\xC4"
"\xFE\xDA\x7F\xE2\xF2\x8C\x9C\xDC"
"\x73\x58\x11\x1F\x81\xD7\x21\x1A"
"\x80\xD0\x0D\xE8\x45\xD6\xD8\xD5"
"\x2E\x51\x16\xCA\x09\x89\x54\x62"
"\xF7\x04\x3D\x75\xB9\xA3\x84\xF4"
"\x62\xF0\x02\x58\x83\xAF\x30\x87"
"\x85\x3F\x01\xCD\x8E\x58\x42\xC4"
"\x41\x73\xE0\x15\x0A\xE6\x2E\x80"
"\x94\xF8\x5B\x3A\x4E\xDF\x51\xB2"
"\x9D\xE4\xC4\x9D\xF7\x3F\xF8\x8E"
"\x37\x22\x4D\x00\x2A\xEF\xC1\x0F"
"\x14\xA0\x66\xAB\x79\x39\xD0\x8E"
"\xE9\x95\x61\x74\x12\xED\x07\xD7"
"\xDD\x95\xDC\x7B\x57\x25\x27\x9C"
"\x51\x96\x16\xF7\x94\x61\xB8\x87"
"\xF0\x21\x1B\x32\xFB\x07\x0F\x29"
"\x56\xBD\x9D\x22\xA2\x9F\xA2\xB9"
"\x46\x31\x4C\x5E\x2E\x95\x61\xEF"
"\xE1\x58\x39\x09\xB4\x8B\x40\xAC"
"\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A",
.ilen = 248,
.result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
},
};
@ -2229,6 +2371,77 @@ static struct cipher_testvec des_cbc_enc_tv_template[] = {
.rlen = 24,
.np = 2,
.tap = { 13, 11 }
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47",
.input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.ilen = 248,
.result = "\x71\xCC\x56\x1C\x87\x2C\x43\x20"
"\x1C\x20\x13\x09\xF9\x2B\x40\x47"
"\x99\x10\xD1\x1B\x65\x33\x33\xBA"
"\x88\x0D\xA2\xD1\x86\xFF\x4D\xF4"
"\x5A\x0C\x12\x96\x32\x57\xAA\x26"
"\xA7\xF4\x32\x8D\xBC\x10\x31\x9E"
"\x81\x72\x74\xDE\x30\x19\x69\x49"
"\x54\x9C\xC3\xEB\x0B\x97\xDD\xD1"
"\xE8\x6D\x0D\x05\x83\xA5\x12\x08"
"\x47\xF8\x88\x03\x86\x51\x3C\xEF"
"\xE7\x11\x73\x4D\x44\x2B\xE2\x16"
"\xE8\xA5\x06\x50\x66\x70\x0E\x14"
"\xBA\x21\x3B\xD5\x23\x5B\xA7\x8F"
"\x56\xB6\xA7\x44\xDB\x86\xAB\x69"
"\x33\x3C\xBE\x64\xC4\x22\xD3\xFE"
"\x49\x90\x88\x6A\x09\x8F\x76\x59"
"\xCB\xB7\xA0\x2D\x79\x75\x92\x8A"
"\x82\x1D\xC2\xFE\x09\x1F\x78\x6B"
"\x2F\xD6\xA4\x87\x1E\xC4\x53\x63"
"\x80\x02\x61\x2F\xE3\x46\xB6\xB5"
"\xAA\x95\xF4\xEE\xA7\x64\x2B\x4F"
"\x20\xCF\xD2\x47\x4E\x39\x65\xB3"
"\x11\x87\xA2\x6C\x49\x7E\x36\xC7"
"\x62\x8B\x48\x0D\x6A\x64\x00\xBD"
"\x71\x91\x8C\xE9\x70\x19\x01\x4F"
"\x4E\x68\x23\xBA\xDA\x24\x2E\x45"
"\x02\x14\x33\x21\xAE\x58\x4B\xCF"
"\x3B\x4B\xE8\xF8\xF6\x4F\x34\x93"
"\xD7\x07\x8A\xD7\x18\x92\x36\x8C"
"\x82\xA9\xBD\x6A\x31\x91\x39\x11"
"\xC6\x4A\xF3\x55\xC7\x29\x2E\x63",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
},
};
@ -2267,6 +2480,369 @@ static struct cipher_testvec des_cbc_dec_tv_template[] = {
.rlen = 8,
.np = 2,
.tap = { 4, 4 }
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47",
.input = "\x71\xCC\x56\x1C\x87\x2C\x43\x20"
"\x1C\x20\x13\x09\xF9\x2B\x40\x47"
"\x99\x10\xD1\x1B\x65\x33\x33\xBA"
"\x88\x0D\xA2\xD1\x86\xFF\x4D\xF4"
"\x5A\x0C\x12\x96\x32\x57\xAA\x26"
"\xA7\xF4\x32\x8D\xBC\x10\x31\x9E"
"\x81\x72\x74\xDE\x30\x19\x69\x49"
"\x54\x9C\xC3\xEB\x0B\x97\xDD\xD1"
"\xE8\x6D\x0D\x05\x83\xA5\x12\x08"
"\x47\xF8\x88\x03\x86\x51\x3C\xEF"
"\xE7\x11\x73\x4D\x44\x2B\xE2\x16"
"\xE8\xA5\x06\x50\x66\x70\x0E\x14"
"\xBA\x21\x3B\xD5\x23\x5B\xA7\x8F"
"\x56\xB6\xA7\x44\xDB\x86\xAB\x69"
"\x33\x3C\xBE\x64\xC4\x22\xD3\xFE"
"\x49\x90\x88\x6A\x09\x8F\x76\x59"
"\xCB\xB7\xA0\x2D\x79\x75\x92\x8A"
"\x82\x1D\xC2\xFE\x09\x1F\x78\x6B"
"\x2F\xD6\xA4\x87\x1E\xC4\x53\x63"
"\x80\x02\x61\x2F\xE3\x46\xB6\xB5"
"\xAA\x95\xF4\xEE\xA7\x64\x2B\x4F"
"\x20\xCF\xD2\x47\x4E\x39\x65\xB3"
"\x11\x87\xA2\x6C\x49\x7E\x36\xC7"
"\x62\x8B\x48\x0D\x6A\x64\x00\xBD"
"\x71\x91\x8C\xE9\x70\x19\x01\x4F"
"\x4E\x68\x23\xBA\xDA\x24\x2E\x45"
"\x02\x14\x33\x21\xAE\x58\x4B\xCF"
"\x3B\x4B\xE8\xF8\xF6\x4F\x34\x93"
"\xD7\x07\x8A\xD7\x18\x92\x36\x8C"
"\x82\xA9\xBD\x6A\x31\x91\x39\x11"
"\xC6\x4A\xF3\x55\xC7\x29\x2E\x63",
.ilen = 248,
.result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
},
};
static struct cipher_testvec des_ctr_enc_tv_template[] = {
{ /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
.input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.ilen = 248,
.result = "\x2F\x96\x06\x0F\x50\xC9\x68\x03"
"\x0F\x31\xD4\x64\xA5\x29\x77\x35"
"\xBC\x7A\x9F\x19\xE7\x0D\x33\x3E"
"\x12\x0B\x8C\xAE\x48\xAE\xD9\x02"
"\x0A\xD4\xB0\xD6\x37\xB2\x65\x1C"
"\x4B\x65\xEB\x24\xB5\x8E\xAD\x47"
"\x0D\xDA\x79\x77\xA0\x29\xA0\x2B"
"\xC8\x0F\x85\xDC\x03\x13\xA9\x04"
"\x19\x40\xBE\xBE\x5C\x49\x4A\x69"
"\xED\xE8\xE1\x9E\x14\x43\x74\xDE"
"\xEC\x6E\x11\x3F\x36\xEF\x7B\xFB"
"\xBE\x4C\x91\x43\x22\x65\x72\x48"
"\xE2\x12\xED\x88\xAC\xA7\xC9\x91"
"\x14\xA2\x36\x1C\x29\xFF\xC8\x4F"
"\x72\x5C\x4B\xB0\x1E\x93\xC2\xFA"
"\x9D\x53\x86\xA0\xAE\xC6\xB7\x3C"
"\x59\x0C\xD0\x8F\xA6\xD8\xA4\x31"
"\xB7\x30\x1C\x21\x38\xFB\x68\x8C"
"\x2E\xF5\x6E\x73\xC3\x16\x5F\x12"
"\x0C\x33\xB9\x1E\x7B\x70\xDE\x86"
"\x32\xB3\xC1\x16\xAB\xD9\x49\x0B"
"\x96\x28\x72\x6B\xF3\x30\xA9\xEB"
"\x69\xE2\x1E\x58\x46\xA2\x8E\xC7"
"\xC0\xEF\x07\xB7\x77\x2C\x00\x05"
"\x46\xBD\xFE\x53\x81\x8B\xA4\x03"
"\x20\x0F\xDB\x78\x0B\x1F\x53\x04"
"\x4C\x60\x4C\xC3\x2A\x86\x86\x7E"
"\x13\xD2\x26\xED\x5D\x3E\x9C\xF2"
"\x5C\xC4\x15\xC9\x9A\x21\xC5\xCD"
"\x19\x7F\x99\x19\x53\xCE\x1D\x14"
"\x69\x74\xA1\x06\x46\x0F\x4E\x75",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47",
.input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82",
.ilen = 247,
.result = "\x62\xE5\xF4\xDC\x99\xE7\x89\xE3"
"\xF4\x10\xCC\x21\x99\xEB\xDC\x15"
"\x19\x13\x93\x27\x9D\xB6\x6F\x45"
"\x17\x55\x61\x72\xC8\xD3\x7F\xA5"
"\x32\xD0\xD3\x02\x15\xA4\x05\x23"
"\x9C\x23\x61\x60\x77\x7B\x6C\x95"
"\x26\x49\x42\x2E\xF3\xC1\x8C\x6D"
"\xC8\x47\xD5\x94\xE7\x53\xC8\x23"
"\x1B\xA5\x0B\xCB\x12\xD3\x7A\x12"
"\xA4\x42\x15\x34\xF7\x5F\xDC\x58"
"\x5B\x58\x4C\xAD\xD1\x33\x8E\xE6"
"\xE5\xA0\xDA\x4D\x94\x3D\x63\xA8"
"\x02\x82\xBB\x16\xB8\xDC\xB5\x58"
"\xC3\x2D\x79\xE4\x25\x79\x43\xF9"
"\x6D\xD3\xCA\xC0\xE8\x12\xD4\x7E"
"\x04\x25\x79\xFD\x27\xFB\xC4\xEA"
"\x32\x94\x48\x92\xF3\x68\x1A\x7F"
"\x36\x33\x43\x79\xF7\xCA\xC2\x38"
"\xC0\x68\xD4\x53\xA9\xCC\x43\x0C"
"\x40\x57\x3E\xED\x00\x9F\x22\x6E"
"\x80\x99\x0B\xCC\x40\x63\x46\x8A"
"\xE8\xC4\x9B\x6D\x7A\x08\x6E\xA9"
"\x6F\x84\xBC\xB3\xF4\x95\x0B\x2D"
"\x6A\xBA\x37\x50\xC3\xCF\x9F\x7C"
"\x59\x5E\xDE\x0B\x30\xFA\x34\x8A"
"\xF8\xD1\xA2\xF8\x4E\xBD\x5D\x5E"
"\x7D\x71\x99\xE0\xF6\xE5\x7C\xE0"
"\x6D\xEE\x82\x89\x92\xD4\xF5\xD7"
"\xDF\x85\x2D\xE1\xB2\xD6\xAB\x94"
"\xA5\xA6\xE7\xB0\x51\x36\x52\x37"
"\x91\x45\x05\x3E\x58\xBF\x32",
.rlen = 247,
.also_non_np = 1,
.np = 2,
.tap = { 247 - 8, 8 },
},
};
static struct cipher_testvec des_ctr_dec_tv_template[] = {
{ /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD",
.input = "\x2F\x96\x06\x0F\x50\xC9\x68\x03"
"\x0F\x31\xD4\x64\xA5\x29\x77\x35"
"\xBC\x7A\x9F\x19\xE7\x0D\x33\x3E"
"\x12\x0B\x8C\xAE\x48\xAE\xD9\x02"
"\x0A\xD4\xB0\xD6\x37\xB2\x65\x1C"
"\x4B\x65\xEB\x24\xB5\x8E\xAD\x47"
"\x0D\xDA\x79\x77\xA0\x29\xA0\x2B"
"\xC8\x0F\x85\xDC\x03\x13\xA9\x04"
"\x19\x40\xBE\xBE\x5C\x49\x4A\x69"
"\xED\xE8\xE1\x9E\x14\x43\x74\xDE"
"\xEC\x6E\x11\x3F\x36\xEF\x7B\xFB"
"\xBE\x4C\x91\x43\x22\x65\x72\x48"
"\xE2\x12\xED\x88\xAC\xA7\xC9\x91"
"\x14\xA2\x36\x1C\x29\xFF\xC8\x4F"
"\x72\x5C\x4B\xB0\x1E\x93\xC2\xFA"
"\x9D\x53\x86\xA0\xAE\xC6\xB7\x3C"
"\x59\x0C\xD0\x8F\xA6\xD8\xA4\x31"
"\xB7\x30\x1C\x21\x38\xFB\x68\x8C"
"\x2E\xF5\x6E\x73\xC3\x16\x5F\x12"
"\x0C\x33\xB9\x1E\x7B\x70\xDE\x86"
"\x32\xB3\xC1\x16\xAB\xD9\x49\x0B"
"\x96\x28\x72\x6B\xF3\x30\xA9\xEB"
"\x69\xE2\x1E\x58\x46\xA2\x8E\xC7"
"\xC0\xEF\x07\xB7\x77\x2C\x00\x05"
"\x46\xBD\xFE\x53\x81\x8B\xA4\x03"
"\x20\x0F\xDB\x78\x0B\x1F\x53\x04"
"\x4C\x60\x4C\xC3\x2A\x86\x86\x7E"
"\x13\xD2\x26\xED\x5D\x3E\x9C\xF2"
"\x5C\xC4\x15\xC9\x9A\x21\xC5\xCD"
"\x19\x7F\x99\x19\x53\xCE\x1D\x14"
"\x69\x74\xA1\x06\x46\x0F\x4E\x75",
.ilen = 248,
.result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82\xEB",
.rlen = 248,
.also_non_np = 1,
.np = 2,
.tap = { 248 - 8, 8 },
}, { /* Generated with Crypto++ */
.key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55",
.klen = 8,
.iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47",
.input = "\x62\xE5\xF4\xDC\x99\xE7\x89\xE3"
"\xF4\x10\xCC\x21\x99\xEB\xDC\x15"
"\x19\x13\x93\x27\x9D\xB6\x6F\x45"
"\x17\x55\x61\x72\xC8\xD3\x7F\xA5"
"\x32\xD0\xD3\x02\x15\xA4\x05\x23"
"\x9C\x23\x61\x60\x77\x7B\x6C\x95"
"\x26\x49\x42\x2E\xF3\xC1\x8C\x6D"
"\xC8\x47\xD5\x94\xE7\x53\xC8\x23"
"\x1B\xA5\x0B\xCB\x12\xD3\x7A\x12"
"\xA4\x42\x15\x34\xF7\x5F\xDC\x58"
"\x5B\x58\x4C\xAD\xD1\x33\x8E\xE6"
"\xE5\xA0\xDA\x4D\x94\x3D\x63\xA8"
"\x02\x82\xBB\x16\xB8\xDC\xB5\x58"
"\xC3\x2D\x79\xE4\x25\x79\x43\xF9"
"\x6D\xD3\xCA\xC0\xE8\x12\xD4\x7E"
"\x04\x25\x79\xFD\x27\xFB\xC4\xEA"
"\x32\x94\x48\x92\xF3\x68\x1A\x7F"
"\x36\x33\x43\x79\xF7\xCA\xC2\x38"
"\xC0\x68\xD4\x53\xA9\xCC\x43\x0C"
"\x40\x57\x3E\xED\x00\x9F\x22\x6E"
"\x80\x99\x0B\xCC\x40\x63\x46\x8A"
"\xE8\xC4\x9B\x6D\x7A\x08\x6E\xA9"
"\x6F\x84\xBC\xB3\xF4\x95\x0B\x2D"
"\x6A\xBA\x37\x50\xC3\xCF\x9F\x7C"
"\x59\x5E\xDE\x0B\x30\xFA\x34\x8A"
"\xF8\xD1\xA2\xF8\x4E\xBD\x5D\x5E"
"\x7D\x71\x99\xE0\xF6\xE5\x7C\xE0"
"\x6D\xEE\x82\x89\x92\xD4\xF5\xD7"
"\xDF\x85\x2D\xE1\xB2\xD6\xAB\x94"
"\xA5\xA6\xE7\xB0\x51\x36\x52\x37"
"\x91\x45\x05\x3E\x58\xBF\x32",
.ilen = 247,
.result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75"
"\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03"
"\x6C\xF8\x61\xCA\x33\xBF\x28\x91"
"\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F"
"\xAB\x14\x7D\x09\x72\xDB\x44\xD0"
"\x39\xA2\x0B\x97\x00\x69\xF5\x5E"
"\xC7\x30\xBC\x25\x8E\x1A\x83\xEC"
"\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A"
"\x06\x6F\xD8\x41\xCD\x36\x9F\x08"
"\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9"
"\x22\x8B\x17\x80\xE9\x52\xDE\x47"
"\xB0\x19\xA5\x0E\x77\x03\x6C\xD5"
"\x3E\xCA\x33\x9C\x05\x91\xFA\x63"
"\xEF\x58\xC1\x2A\xB6\x1F\x88\x14"
"\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2"
"\x0B\x74\x00\x69\xD2\x3B\xC7\x30"
"\x99\x02\x8E\xF7\x60\xEC\x55\xBE"
"\x27\xB3\x1C\x85\x11\x7A\xE3\x4C"
"\xD8\x41\xAA\x13\x9F\x08\x71\xFD"
"\x66\xCF\x38\xC4\x2D\x96\x22\x8B"
"\xF4\x5D\xE9\x52\xBB\x24\xB0\x19"
"\x82\x0E\x77\xE0\x49\xD5\x3E\xA7"
"\x10\x9C\x05\x6E\xFA\x63\xCC\x35"
"\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6"
"\x4F\xB8\x21\xAD\x16\x7F\x0B\x74"
"\xDD\x46\xD2\x3B\xA4\x0D\x99\x02"
"\x6B\xF7\x60\xC9\x32\xBE\x27\x90"
"\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E"
"\xAA\x13\x7C\x08\x71\xDA\x43\xCF"
"\x38\xA1\x0A\x96\xFF\x68\xF4\x5D"
"\xC6\x2F\xBB\x24\x8D\x19\x82",
.rlen = 247,
.also_non_np = 1,
.np = 2,
.tap = { 247 - 8, 8 },
},
};