#ifndef _CRYPTO_TCRYPT_H #define _CRYPTO_TCRYPT_H #include "fh_aes_mpipara.h" #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) struct cipher_testvec { const char *key; const char *iv; const char *ptext; const char *ctext; unsigned int klen; unsigned int len; }; struct cipher_test_info { enum cryptodev_crypto_op_t crypt; const struct cipher_testvec *vecs; unsigned int count; }; static const struct cipher_testvec aes_cbc_tv_template[] = { { /* From RFC 3602 */ .key = "\x06\xa9\x21\x40\x36\xb8\xa1\x5b" "\x51\x2e\x03\xd5\x34\x12\x00\x06", .klen = 16, .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30" "\xb4\x22\xda\x80\x2c\x9f\xac\x41", .ptext = "Single block msg", .ctext = "\xe3\x53\x77\x9c\x10\x79\xae\xb8" "\x27\x08\x94\x2d\xbe\x77\x18\x1a", .len = 16, }, { .key = "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0" "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a", .klen = 16, .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28" "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58", .ptext = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" "\x10\x11\x12\x13\x14\x15\x16\x17" "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", .ctext = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a" "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a" "\x75\x86\x60\x2d\x25\x3c\xff\xf9" "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1", .len = 32, }, { /* From NIST SP800-38A */ .key = "\x8e\x73\xb0\xf7\xda\x0e\x64\x52" "\xc8\x10\xf3\x2b\x80\x90\x79\xe5" "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b", .klen = 24, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d" "\x71\x78\x18\x3a\x9f\xa0\x71\xe8" "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4" "\xe5\xe7\x38\x76\x3f\x69\x14\x5a" "\x57\x1b\x24\x20\x12\xfb\x7a\xe0" "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0" "\x08\xb0\xe2\x79\x88\x59\x88\x81" "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd", .len = 64, }, { .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" "\x2b\x73\xae\xf0\x85\x7d\x77\x81" "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", .klen = 32, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba" "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6" "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d" "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d" "\x39\xf2\x33\x69\xa9\xd9\xba\xcf" "\xa5\x30\xe2\x63\x04\x23\x14\x61" "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc" "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b", .len = 64, }, { /* Generated with Crypto++ */ .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", .klen = 32, .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", .ptext = "\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" "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" "\x20\x89\x15\x7E\xE7\x50\xDC\x45" "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" "\xED\x56\xBF\x28\xB4\x1D\x86\x12", .ctext = "\xEA\x65\x8A\x19\xB0\x66\xC1\x3F" "\xCE\xF1\x97\x75\xC1\xFD\xB5\xAF" "\x52\x65\xF7\xFF\xBC\xD8\x2D\x9F" "\x2F\xB9\x26\x9B\x6F\x10\xB7\xB8" "\x26\xA1\x02\x46\xA2\xAD\xC6\xC0" "\x11\x15\xFF\x6D\x1E\x82\x04\xA6" "\xB1\x74\xD1\x08\x13\xFD\x90\x7C" "\xF5\xED\xD3\xDB\x5A\x0A\x0C\x2F" "\x0A\x70\xF1\x88\x07\xCF\x21\x26" "\x40\x40\x8A\xF5\x53\xF7\x24\x4F" "\x83\x38\x43\x5F\x08\x99\xEB\xE3" "\xDC\x02\x64\x67\x50\x6E\x15\xC3" "\x01\x1A\xA0\x81\x13\x65\xA6\x73" "\x71\xA6\x3B\x91\x83\x77\xBE\xFA" "\xDB\x71\x73\xA6\xC1\xAE\x43\xC3" "\x36\xCE\xD6\xEB\xF9\x30\x1C\x4F" "\x80\x38\x5E\x9C\x6E\xAB\x98\x2F" "\x53\xAF\xCF\xC8\x9A\xB8\x86\x43" "\x3E\x86\xE7\xA1\xF4\x2F\x30\x40" "\x03\xA8\x6C\x50\x42\x9F\x77\x59" "\x89\xA0\xC5\xEC\x9A\xB8\xDD\x99" "\x16\x24\x02\x07\x48\xAE\xF2\x31" "\x34\x0E\xC3\x85\xFE\x1C\x95\x99" "\x87\x58\x98\x8B\xE7\xC6\xC5\x70" "\x73\x81\x07\x7C\x56\x2F\xD8\x1B" "\xB7\xB9\x2B\xAB\xE3\x01\x87\x0F" "\xD8\xBB\xC0\x0D\xAC\x2C\x2F\x98" "\x3C\x0B\xA2\x99\x4A\x8C\xF7\x04" "\xE0\xE0\xCF\xD1\x81\x5B\xFE\xF5" "\x24\x04\xFD\xB8\xDF\x13\xD8\xCD" "\xF1\xE3\x3D\x98\x50\x02\x77\x9E" "\xBC\x22\xAB\xFA\xC2\x43\x1F\x66" "\x20\x02\x23\xDA\xDF\xA0\x89\xF6" "\xD8\xF3\x45\x24\x53\x6F\x16\x77" "\x02\x3E\x7B\x36\x5F\xA0\x3B\x78" "\x63\xA2\xBD\xB5\xA4\xCA\x1E\xD3" "\x57\xBC\x0B\x9F\x43\x51\x28\x4F" "\x07\x50\x6C\x68\x12\x07\xCF\xFA" "\x6B\x72\x0B\xEB\xF8\x88\x90\x2C" "\x7E\xF5\x91\xD1\x03\xD8\xD5\xBD" "\x22\x39\x7B\x16\x03\x01\x69\xAF" "\x3D\x38\x66\x28\x0C\xBE\x5B\xC5" "\x03\xB4\x2F\x51\x8A\x56\x17\x2B" "\x88\x42\x6D\x40\x68\x8F\xD0\x11" "\x19\xF9\x1F\x43\x79\x95\x31\xFA" "\x28\x7A\x3D\xF7\x66\xEB\xEF\xAC" "\x06\xB2\x01\xAD\xDB\x68\xDB\xEC" "\x8D\x53\x6E\x72\x68\xA3\xC7\x63" "\x43\x2B\x78\xE0\x04\x29\x8F\x72" "\xB2\x2C\xE6\x84\x03\x30\x6D\xCD" "\x26\x92\x37\xE1\x2F\xBB\x8B\x9D" "\xE4\x4C\xF6\x93\xBC\xD9\xAD\x44" "\x52\x65\xC7\xB0\x0E\x3F\x0E\x61" "\x56\x5D\x1C\x6D\xA7\x05\x2E\xBC" "\x58\x08\x15\xAB\x12\xAB\x17\x4A" "\x5E\x1C\xF2\xCD\xB8\xA2\xAE\xFB" "\x9B\x2E\x0E\x85\x34\x80\x0E\x3F" "\x4C\xB8\xDB\xCE\x1C\x90\xA1\x61" "\x6C\x69\x09\x35\x9E\xD4\xF4\xAD" "\xBC\x06\x41\xE3\x01\xB4\x4E\x0A" "\xE0\x1F\x91\xF8\x82\x96\x2D\x65" "\xA3\xAA\x13\xCC\x50\xFF\x7B\x02", .len = 496, }, }; static const struct cipher_testvec des_cbc_tv_template[] = { { /* From OpenSSL */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", .ptext = "\x37\x36\x35\x34\x33\x32\x31\x20" "\x4e\x6f\x77\x20\x69\x73\x20\x74" "\x68\x65\x20\x74\x69\x6d\x65\x20", .ctext = "\xcc\xd1\x73\xff\xab\x20\x39\xf4" "\xac\xd8\xae\xfd\xdf\xd8\xa1\xeb" "\x46\x8e\x91\x15\x78\x88\xba\x68", .len = 24, }, { /* FIPS Pub 81 */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", .ptext = "\x4e\x6f\x77\x20\x69\x73\x20\x74", .ctext = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", .len = 8, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\xe5\xc7\xcd\xde\x87\x2b\xf2\x7c", .ptext = "\x68\x65\x20\x74\x69\x6d\x65\x20", .ctext = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", .len = 8, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\x43\xe9\x34\x00\x8c\x38\x9c\x0f", .ptext = "\x66\x6f\x72\x20\x61\x6c\x6c\x20", .ctext = "\x68\x37\x88\x49\x9a\x7c\x05\xf6", .len = 8, }, { /* Copy of openssl vector for chunk testing */ /* From OpenSSL */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\xfe\xdc\xba\x98\x76\x54\x32\x10", .ptext = "\x37\x36\x35\x34\x33\x32\x31\x20" "\x4e\x6f\x77\x20\x69\x73\x20\x74" "\x68\x65\x20\x74\x69\x6d\x65\x20", .ctext = "\xcc\xd1\x73\xff\xab\x20\x39\xf4" "\xac\xd8\xae\xfd\xdf\xd8\xa1\xeb" "\x46\x8e\x91\x15\x78\x88\xba\x68", .len = 24, }, { /* Generated with Crypto++ */ .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", .klen = 8, .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47", .ptext = "\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", .ctext = "\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", .len = 248, }, }; static const struct cipher_testvec des3_ede_cbc_tv_template[] = { { /* Generated from openssl */ .key = "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24" "\x44\x4D\x99\x5A\x12\xD6\x40\xC0" "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8", .klen = 24, .iv = "\x7D\x33\x88\x93\x0F\x93\xB2\x42", .ptext = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e" "\x53\x20\x63\x65\x65\x72\x73\x74" "\x54\x20\x6f\x6f\x4d\x20\x6e\x61" "\x20\x79\x65\x53\x72\x63\x74\x65" "\x20\x73\x6f\x54\x20\x6f\x61\x4d" "\x79\x6e\x53\x20\x63\x65\x65\x72" "\x73\x74\x54\x20\x6f\x6f\x4d\x20" "\x6e\x61\x20\x79\x65\x53\x72\x63" "\x74\x65\x20\x73\x6f\x54\x20\x6f" "\x61\x4d\x79\x6e\x53\x20\x63\x65" "\x65\x72\x73\x74\x54\x20\x6f\x6f" "\x4d\x20\x6e\x61\x20\x79\x65\x53" "\x72\x63\x74\x65\x20\x73\x6f\x54" "\x20\x6f\x61\x4d\x79\x6e\x53\x20" "\x63\x65\x65\x72\x73\x74\x54\x20" "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79", .ctext = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4" "\x67\x17\x21\xc7\x6e\x8a\xd5\x49" "\x74\xb3\x49\x05\xc5\x1c\xd0\xed" "\x12\x56\x5c\x53\x96\xb6\x00\x7d" "\x90\x48\xfc\xf5\x8d\x29\x39\xcc" "\x8a\xd5\x35\x18\x36\x23\x4e\xd7" "\x76\xd1\xda\x0c\x94\x67\xbb\x04" "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea" "\x22\x64\x47\xaa\x8f\x75\x13\xbf" "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a" "\x71\x63\x2e\x89\x7b\x1e\x12\xca" "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a" "\xd6\xf9\x21\x31\x62\x44\x45\xa6" "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc" "\x9d\xde\xa5\x70\xe9\x42\x45\x8a" "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19", .len = 128, }, { /* Generated with Crypto++ */ .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", .klen = 24, .iv = "\xB2\xD7\x48\xED\x06\x44\xF9\x12" "\xB7\x28\x4D\x83\x24\x59\xF2\x17", .ptext = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" "\xFE\x41\x28\x5C\x27\x8E\x11\x85" "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" "\x5E\x21\x55\x3C\x87\x6E\x92\x65" "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" "\x45\xC9\x50\x3B\xAF\x36\x99\x60" "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" "\x88\x13\x87\x6E\xF1\x58\xCC\x57" "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" "\x50\x3B\x82\x15\x99\x60\xCB\x52" "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" "\x74\xDF\x43\x2A\xBD\x04\x88\x13" "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" "\x82\x15\xFC\x47\xCB\x52\x25\xA9" "\x30\x9B\x62\x96\x79\xC0\x74\xDF" "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" "\x89\x10\x84\x6F\xF6\x59\xCD\x54" "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" "\x51\x38\x83\x6A\x9E\x61\xC8\x53" "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" "\x75\xDC\x40\x2B\xB2\x05\x89\x10" "\xFB\x42\xF6\x59\x20\x54\x3F\x86" "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", .ctext = "\xF8\xF6\xB5\x60\x5C\x5A\x75\x84" "\x87\x81\x53\xBA\xC9\x6F\xEC\xD5" "\x1E\x68\x8E\x85\x12\x86\x1D\x38" "\x1C\x91\x40\xCC\x69\x6A\xD5\x35" "\x0D\x7C\xB5\x07\x7C\x7B\x2A\xAF" "\x32\xBC\xA1\xB3\x84\x31\x1B\x3C" "\x0A\x2B\xFA\xD3\x9F\xB0\x8C\x37" "\x8F\x9D\xA7\x6D\x6C\xFA\xD7\x90" "\xE3\x69\x54\xED\x3A\xC4\xF1\x6B" "\xB1\xCC\xFB\x7D\xD8\x8E\x17\x0B" "\x9C\xF6\x4C\xD6\xFF\x03\x4E\xD9" "\xE6\xA5\xAD\x25\xE6\x17\x69\x63" "\x11\x35\x61\x94\x88\x7B\x1C\x48" "\xF1\x24\x20\x29\x6B\x93\x1A\x8E" "\x43\x03\x89\xD8\xB1\xDA\x47\x7B" "\x79\x3A\x83\x76\xDA\xAE\xC6\xBB" "\x22\xF8\xE8\x3D\x9A\x65\x54\xD8" "\x4C\xE9\xE7\xE4\x63\x2F\x5C\x73" "\x5A\xC3\xAE\x46\xA8\xCD\x57\xE6" "\x67\x88\xA5\x20\x6F\x5F\x97\xC7" "\xCC\x15\xA2\x0A\x93\xEA\x33\xE7" "\x03\x5F\xEC\x64\x30\x6F\xEE\xD7" "\x7E\xDF\xD6\xE9\x6F\x3F\xD6\x1E" "\xBE\x67\x6C\x5B\x97\xA0\x09\xE6" "\xEE\xFE\x55\xA3\x29\x65\xE0\x12" "\xA1\x6A\x8A\x6F\xF2\xE6\xF1\x96" "\x87\xFB\x9C\x05\xDD\x80\xEC\xFF" "\xC5\xED\x50\xFE\xFC\x91\xCD\xCE" "\x25\x2C\x5F\xD9\xAD\x95\x7D\x99" "\xF0\x05\xC4\x71\x46\x5F\xF9\x0D" "\xD2\x63\xDF\x9B\x96\x2E\x2B\xA6" "\x2B\x1C\xD5\xFB\x96\x24\x60\x60" "\x54\x40\xB8\x62\xA4\xF8\x46\x95" "\x73\x28\xA3\xA6\x16\x2B\x17\xE7" "\x7A\xF8\x62\x54\x3B\x64\x69\xE1" "\x71\x34\x29\x5B\x4E\x05\x9B\xFA" "\x5E\xF1\x96\xB7\xCE\x16\x9B\x59" "\xF1\x1A\x4C\x51\x26\xFD\x79\xE2" "\x3B\x8E\x71\x69\x6A\x91\xB6\x65" "\x32\x09\xB8\xE4\x09\x1F\xEA\x39" "\xCE\x20\x65\x9F\xD6\xD1\xC7\xF0" "\x73\x50\x08\x56\x20\x9B\x94\x23" "\x14\x39\xB7\x2B\xB1\x2D\x6D\x6F" "\x41\x5B\xCC\xE2\x18\xAE\x62\x89" "\x78\x8E\x67\x23\xD0\xFB\x2B\xE5" "\x25\xC9\x48\x97\xB5\xD3\x17\xD5" "\x6A\x9F\xA7\x48\x0C\x2B\x73\x3B" "\x57\x08\xAE\x91\xF2\xB7\x57\x89" "\xF4\xD0\xB0\x07\xB0\x42\x6C\xAF" "\x98\x1A\xE7\xD1\xAC\x1E\xB5\x02" "\xD4\x56\x42\x79\x79\x7F\x2A\x77" "\x25\xE9\x7D\xC1\x88\x19\x2B\x49" "\x6F\x46\x59\xAB\x56\x1F\x61\xE0" "\x0C\x24\x9C\xC9\x5B\x63\xA9\x12" "\xCF\x88\x96\xB6\xA8\x24\xC6\xA8" "\x21\x85\x1A\x62\x7E\x34\xBB\xEB" "\xBD\x02\x2A\xC7\xD8\x89\x80\xC5" "\xB1\xBB\x60\xA5\x22\xFC\x6F\x38" "\x02\x80\xA3\x28\x22\x75\xE1\xE9" "\x90\xE9\xFA\x4B\x00\x10\xAC\x58" "\x83\x70\xFF\x86\xE6\xAA\x0F\x1F" "\x95\x63\x73\xA2\x44\xAC\xF8\xA5", .len = 496, }, }; static const struct cipher_testvec aes_ctr_tv_template[] = { { /* From NIST Special Publication 800-38A, Appendix F.5 */ .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", .klen = 16, .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\x87\x4d\x61\x91\xb6\x20\xe3\x26" "\x1b\xef\x68\x64\x99\x0d\xb6\xce" "\x98\x06\xf6\x6b\x79\x70\xfd\xff" "\x86\x17\x18\x7b\xb9\xff\xfd\xff" "\x5a\xe4\xdf\x3e\xdb\xd5\xd3\x5e" "\x5b\x4f\x09\x02\x0d\xb0\x3e\xab" "\x1e\x03\x1d\xda\x2f\xbe\x03\xd1" "\x79\x21\x70\xa0\xf3\x00\x9c\xee", .len = 64, }, { .key = "\x8e\x73\xb0\xf7\xda\x0e\x64\x52" "\xc8\x10\xf3\x2b\x80\x90\x79\xe5" "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b", .klen = 24, .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\x1a\xbc\x93\x24\x17\x52\x1c\xa2" "\x4f\x2b\x04\x59\xfe\x7e\x6e\x0b" "\x09\x03\x39\xec\x0a\xa6\xfa\xef" "\xd5\xcc\xc2\xc6\xf4\xce\x8e\x94" "\x1e\x36\xb2\x6b\xd1\xeb\xc6\x70" "\xd1\xbd\x1d\x66\x56\x20\xab\xf7" "\x4f\x78\xa7\xf6\xd2\x98\x09\x58" "\x5a\x97\xda\xec\x58\xc6\xb0\x50", .len = 64, }, { .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" "\x2b\x73\xae\xf0\x85\x7d\x77\x81" "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", .klen = 32, .iv = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\x60\x1e\xc3\x13\x77\x57\x89\xa5" "\xb7\xa7\xf5\x04\xbb\xf3\xd2\x28" "\xf4\x43\xe3\xca\x4d\x62\xb5\x9a" "\xca\x84\xe9\x90\xca\xca\xf5\xc5" "\x2b\x09\x30\xda\xa2\x3d\xe9\x4c" "\xe8\x70\x17\xba\x2d\x84\x98\x8d" "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6" "\x13\xc2\xdd\x08\x45\x79\x41\xa6", .len = 64, }, { /* Generated with Crypto++ */ .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", .klen = 32, .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", .ptext = "\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" "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" "\x20\x89\x15\x7E\xE7\x50\xDC\x45" "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" "\xED\x56\xBF\x28\xB4\x1D\x86\x12", .ctext = "\x04\xF3\xD3\x88\x17\xEF\xDC\xEF" "\x8B\x04\xF8\x3A\x66\x8D\x1A\x53" "\x57\x1F\x4B\x23\xE4\xA0\xAF\xF9" "\x69\x95\x35\x98\x8D\x4D\x8C\xC1" "\xF0\xB2\x7F\x80\xBB\x54\x28\xA2" "\x7A\x1B\x9F\x77\xEC\x0E\x6E\xDE" "\xF0\xEC\xB8\xE4\x20\x62\xEE\xDB" "\x5D\xF5\xDD\xE3\x54\xFC\xDD\xEB" "\x6A\xEE\x65\xA1\x21\xD6\xD7\x81" "\x47\x61\x12\x4D\xC2\x8C\xFA\x78" "\x1F\x28\x02\x01\xC3\xFC\x1F\xEC" "\x0F\x10\x4F\xB3\x12\x45\xC6\x3B" "\x7E\x08\xF9\x5A\xD0\x5D\x73\x2D" "\x58\xA4\xE5\xCB\x1C\xB4\xCE\x74" "\x32\x41\x1F\x31\x9C\x08\xA2\x5D" "\x67\xEB\x72\x1D\xF8\xE7\x70\x54" "\x34\x4B\x31\x69\x84\x66\x96\x44" "\x56\xCC\x1E\xD9\xE6\x13\x6A\xB9" "\x2D\x0A\x05\x45\x2D\x90\xCC\xDF" "\x16\x5C\x5F\x79\x34\x52\x54\xFE" "\xFE\xCD\xAD\x04\x2E\xAD\x86\x06" "\x1F\x37\xE8\x28\xBC\xD3\x8F\x5B" "\x92\x66\x87\x3B\x8A\x0A\x1A\xCC" "\x6E\xAB\x9F\x0B\xFA\x5C\xE6\xFD" "\x3C\x98\x08\x12\xEC\xAA\x9E\x11" "\xCA\xB2\x1F\xCE\x5E\x5B\xB2\x72" "\x9C\xCC\x5D\xC5\xE0\x32\xC0\x56" "\xD5\x45\x16\xD2\xAF\x13\x66\xF7" "\x8C\x67\xAC\x79\xB2\xAF\x56\x27" "\x3F\xCC\xFE\xCB\x1E\xC0\x75\xF1" "\xA7\xC9\xC3\x1D\x8E\xDD\xF9\xD4" "\x42\xC8\x21\x08\x16\xF7\x01\xD7" "\xAC\x8E\x3F\x1D\x56\xC1\x06\xE4" "\x9C\x62\xD6\xA5\x6A\x50\x44\xB3" "\x35\x1C\x82\xB9\x10\xF9\x42\xA1" "\xFC\x74\x9B\x44\x4F\x25\x02\xE3" "\x08\xF5\xD4\x32\x39\x08\x11\xE8" "\xD2\x6B\x50\x53\xD4\x08\xD1\x6B" "\x3A\x4A\x68\x7B\x7C\xCD\x46\x5E" "\x0D\x07\x19\xDB\x67\xD7\x98\x91" "\xD7\x17\x10\x9B\x7B\x8A\x9B\x33" "\xAE\xF3\x00\xA6\xD4\x15\xD9\xEA" "\x85\x99\x22\xE8\x91\x38\x70\x83" "\x93\x01\x24\x6C\xFA\x9A\xB9\x07" "\xEA\x8D\x3B\xD9\x2A\x43\x59\x16" "\x2F\x69\xEE\x84\x36\x44\x76\x98" "\xF3\x04\x2A\x7C\x74\x3D\x29\x2B" "\x0D\xAD\x8F\x44\x82\x9E\x57\x8D" "\xAC\xED\x18\x1F\x50\xA4\xF5\x98" "\x1F\xBD\x92\x91\x1B\x2D\xA6\xD6" "\xD2\xE3\x02\xAA\x92\x3B\xC6\xB3" "\x1B\x39\x72\xD5\x26\xCA\x04\xE0" "\xFC\x58\x78\xBB\xB1\x3F\xA1\x9C" "\x42\x24\x3E\x2E\x22\xBB\x4B\xBA" "\xF4\x52\x0A\xE6\xAE\x47\xB4\x7D" "\x1D\xA8\xBE\x81\x1A\x75\xDA\xAC" "\xA6\x25\x1E\xEF\x3A\xC0\x6C\x63" "\xEF\xDC\xC9\x79\x10\x26\xE8\x61" "\x29\xFC\xA4\x05\xDF\x7D\x5C\x63" "\x10\x09\x9B\x46\x9B\xF2\x2C\x2B" "\xFA\x3A\x05\x4C\xFA\xD1\xFF\xFE" "\xF1\x4C\xE5\xB2\x91\x64\x0C\x51", .len = 496, }, { /* Generated with Crypto++ */ .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", .klen = 32, .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", .ptext = "\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" "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" "\x20\x89\x15\x7E\xE7\x50\xDC\x45" "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" "\xED\x56\xBF\x28\xB4\x1D\x86\x12" "\x7B\xE4\x4D", .ctext = "\xDA\x4E\x3F\xBC\xE8\xB6\x3A\xA2" "\xD5\x4D\x84\x4A\xA9\x0C\xE1\xA5" "\xB8\x73\xBC\xF9\xBB\x59\x2F\x44" "\x8B\xAB\x82\x6C\xB4\x32\x9A\xDE" "\x5A\x0B\xDB\x7A\x6B\xF2\x38\x9F" "\x06\xF7\xF7\xFF\xFF\xC0\x8A\x2E" "\x76\xEA\x06\x32\x23\xF3\x59\x2E" "\x75\xDE\x71\x86\x3C\x98\x23\x44" "\x5B\xF2\xFA\x6A\x00\xBB\xC1\xAD" "\x58\xBD\x3E\x6F\x2E\xB4\x19\x04" "\x70\x8B\x92\x55\x23\xE9\x6A\x3A" "\x78\x7A\x1B\x10\x85\x52\x9C\x12" "\xE4\x55\x81\x21\xCE\x53\xD0\x3B" "\x63\x77\x2C\x74\xD1\xF5\x60\xF3" "\xA1\xDE\x44\x3C\x8F\x4D\x2F\xDD" "\x8A\xFE\x3C\x42\x8E\xD3\xF2\x8E" "\xA8\x28\x69\x65\x31\xE1\x45\x83" "\xE4\x49\xC4\x9C\xA7\x28\xAA\x21" "\xCD\x5D\x0F\x15\xB7\x93\x07\x26" "\xB0\x65\x6D\x91\x90\x23\x7A\xC6" "\xDB\x68\xB0\xA1\x8E\xA4\x76\x4E" "\xC6\x91\x83\x20\x92\x4D\x63\x7A" "\x45\x18\x18\x74\x19\xAD\x71\x01" "\x6B\x23\xAD\x9D\x4E\xE4\x6E\x46" "\xC9\x73\x7A\xF9\x02\x95\xF4\x07" "\x0E\x7A\xA6\xC5\xAE\xFA\x15\x2C" "\x51\x71\xF1\xDC\x22\xB6\xAC\xD8" "\x19\x24\x44\xBC\x0C\xFB\x3C\x2D" "\xB1\x50\x47\x15\x0E\xDB\xB6\xD7" "\xE8\x61\xE5\x95\x52\x1E\x3E\x49" "\x70\xE9\x66\x04\x4C\xE1\xAF\xBD" "\xDD\x15\x3B\x20\x59\x24\xFF\xB0" "\x39\xAA\xE7\xBF\x23\xA3\x6E\xD5" "\x15\xF0\x61\x4F\xAE\x89\x10\x58" "\x5A\x33\x95\x52\x2A\xB5\x77\x9C" "\xA5\x43\x80\x40\x27\x2D\xAE\xD9" "\x3F\xE0\x80\x94\x78\x79\xCB\x7E" "\xAD\x12\x44\x4C\xEC\x27\xB0\xEE" "\x0B\x05\x2A\x82\x99\x58\xBB\x7A" "\x8D\x6D\x9D\x8E\xE2\x8E\xE7\x93" "\x2F\xB3\x09\x8D\x06\xD5\xEE\x70" "\x16\xAE\x35\xC5\x52\x0F\x46\x1F" "\x71\xF9\x5E\xF2\x67\xDC\x98\x2F" "\xA3\x23\xAA\xD5\xD0\x49\xF4\xA6" "\xF6\xB8\x32\xCD\xD6\x85\x73\x60" "\x59\x20\xE7\x55\x0E\x91\xE2\x0C" "\x3F\x1C\xEB\x3D\xDF\x52\x64\xF2" "\x7D\x8B\x5D\x63\x16\xB9\xB2\x5D" "\x5E\xAB\xB2\x97\xAB\x78\x44\xE7" "\xC6\x72\x20\xC5\x90\x9B\xDC\x5D" "\xB0\xEF\x44\xEF\x87\x31\x8D\xF4" "\xFB\x81\x5D\xF7\x96\x96\xD4\x50" "\x89\xA7\xF6\xB9\x67\x76\x40\x9E" "\x9D\x40\xD5\x2C\x30\xB8\x01\x8F" "\xE4\x7B\x71\x48\xA9\xA0\xA0\x1D" "\x87\x52\xA4\x91\xA9\xD7\xA9\x51" "\xD9\x59\xF7\xCC\x63\x22\xC1\x8D" "\x84\x7B\xD8\x22\x32\x5C\x6F\x1D" "\x6E\x9F\xFA\xDD\x49\x40\xDC\x37" "\x14\x8C\xE1\x80\x1B\xDD\x36\x2A" "\xD0\xE9\x54\x99\x5D\xBA\x3B\x11" "\xD8\xFE\xC9\x5B\x5C\x25\xE5\x76" "\xFB\xF2\x3F", .len = 499, }, }; static const struct cipher_testvec aes_ecb_tv_template[] = { { /* From FIPS-197 */ .key = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .klen = 16, .ptext = "\x00\x11\x22\x33\x44\x55\x66\x77" "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", .ctext = "\x69\xc4\xe0\xd8\x6a\x7b\x04\x30" "\xd8\xcd\xb7\x80\x70\xb4\xc5\x5a", .len = 16, }, { .key = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" "\x10\x11\x12\x13\x14\x15\x16\x17", .klen = 24, .ptext = "\x00\x11\x22\x33\x44\x55\x66\x77" "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", .ctext = "\xdd\xa9\x7c\xa4\x86\x4c\xdf\xe0" "\x6e\xaf\x70\xa0\xec\x0d\x71\x91", .len = 16, }, { .key = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" "\x10\x11\x12\x13\x14\x15\x16\x17" "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", .klen = 32, .ptext = "\x00\x11\x22\x33\x44\x55\x66\x77" "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", .ctext = "\x8e\xa2\xb7\xca\x51\x67\x45\xbf" "\xea\xfc\x49\x90\x4b\x49\x60\x89", .len = 16, }, { /* Generated with Crypto++ */ .key = "\xA6\xC9\x83\xA6\xC9\xEC\x0F\x32" "\x55\x0F\x32\x55\x78\x9B\xBE\x78" "\x9B\xBE\xE1\x04\x27\xE1\x04\x27" "\x4A\x6D\x90\x4A\x6D\x90\xB3\xD6", .klen = 32, .ptext = "\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" "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" "\x20\x89\x15\x7E\xE7\x50\xDC\x45" "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" "\xED\x56\xBF\x28\xB4\x1D\x86\x12", .ctext = "\x71\x73\xF7\xDB\x24\x93\x21\x6D" "\x61\x1E\xBB\x63\x42\x79\xDB\x64" "\x6F\x82\xC0\xCA\xA3\x9B\xFA\x0B" "\xD9\x08\xC7\x4A\x90\xAE\x8F\x5F" "\x5E\x06\xF0\x5F\x31\x51\x18\x37" "\x45\xD7\xCA\x3A\xFD\x6C\x3F\xE1" "\xDD\x8D\x22\x65\x2B\x00\x50\xCE" "\xBA\x28\x67\xD7\xCE\x0E\x0D\xEA" "\x78\x69\x7F\xAE\x8F\x8B\x69\x37" "\x75\xE0\xDC\x96\xE0\xB7\xF4\x09" "\xCB\x6D\xA2\xFB\xDA\xAF\x09\xF8" "\x81\x82\x27\xFA\x45\x9C\x29\xA4" "\x22\x8B\x78\x69\x5B\x46\xF9\x39" "\x1B\xCC\xF9\x1D\x09\xEB\xBC\x5C" "\x41\x72\x51\x97\x1D\x07\x49\xA0" "\x1B\x8E\x65\x4B\xB2\x6A\x12\x03" "\x6A\x60\x95\xAC\xBD\xAC\x1A\x64" "\xDE\x5A\xA5\xF0\x83\x2F\xCB\xCA" "\x22\x74\xA6\x6C\x9B\x73\xCE\x3F" "\xE1\x8B\x22\x17\x59\x0C\x47\x89" "\x33\xA1\xD6\x47\x03\x19\x4F\xA8" "\x67\x69\xF0\x5B\xF0\x20\xAD\x06" "\x27\x81\x92\xD8\xC5\xBA\x98\x12" "\xBE\x24\xB5\x2F\x75\x02\xC2\xAD" "\x12\x2F\x07\x32\xEE\x39\xAF\x64" "\x05\x8F\xB3\xD4\xEB\x1B\x46\x6E" "\xD9\x21\xF9\xC4\xB7\xC9\x45\x68" "\xB4\xA1\x74\x9F\x82\x47\xEB\xCC" "\xBD\x0A\x14\x95\x0F\x8B\xA8\x2F" "\x4B\x1B\xA7\xBF\x82\xA6\x43\x0C" "\xB9\x39\x4A\xA8\x10\x6F\x50\x7B" "\x25\xFB\x26\x81\xE0\x2F\xF0\x96" "\x8D\x8B\xAC\x92\x0F\xF6\xED\x64" "\x63\x29\x4C\x8E\x18\x13\xC5\xBF" "\xFC\xA0\xD9\xBF\x7C\x3A\x0E\x29" "\x6F\xD1\x6C\x6F\xA5\xDA\xBF\xB1" "\x30\xEA\x44\x2D\xC3\x8F\x16\xE1" "\x66\xFA\xA3\x21\x3E\xFC\x13\xCA" "\xF0\xF6\xF0\x59\xBD\x8F\x38\x50" "\x31\xCB\x69\x3F\x96\x15\xD6\xF5" "\xAE\xFF\xF6\xAA\x41\x85\x4C\x10" "\x58\xE3\xF9\x44\xE6\x28\xDA\x9A" "\xDC\x6A\x80\x34\x73\x97\x1B\xC5" "\xCA\x26\x16\x77\x0E\x60\xAB\x89" "\x0F\x04\x27\xBD\xCE\x3E\x71\xB4" "\xA0\xD7\x22\x7E\xDB\xEB\x24\x70" "\x42\x71\x51\x78\x70\xB3\xE0\x3D" "\x84\x8E\x8D\x7B\xD0\x6D\xEA\x92" "\x11\x08\x42\x4F\xE5\xAD\x26\x92" "\xD2\x00\xAE\xA8\xE3\x4B\x37\x47" "\x22\xC1\x95\xC1\x63\x7F\xCB\x03" "\xF3\xE3\xD7\x9D\x60\xC7\xBC\xEA" "\x35\xA2\xFD\x45\x52\x39\x13\x6F" "\xC1\x53\xF3\x53\xDF\x33\x84\xD7" "\xD2\xC8\x37\xB0\x75\xE3\x41\x46" "\xB3\xC7\x83\x2E\x8A\xBB\xA4\xE5" "\x7F\x3C\xFD\x8B\xEB\xEA\x63\xBD" "\xB7\x46\xE7\xBF\x09\x9C\x0D\x0F" "\x40\x86\x7F\x51\xE1\x11\x9C\xCB" "\x88\xE6\x68\x47\xE3\x2B\xC5\xFF" "\x09\x79\xA0\x43\x5C\x0D\x08\x58" "\x17\xBB\xC0\x6B\x62\x3F\x56\xE9", .len = 496, }, }; static const struct cipher_testvec des_ecb_tv_template[] = { { /* From Applied Cryptography */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", .len = 8, }, { /* Same key, different plaintext block */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x22\x33\x44\x55\x66\x77\x88\x99", .ctext = "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", .len = 8, }, { /* Sbox test from NBS */ .key = "\x7c\xa1\x10\x45\x4a\x1a\x6e\x57", .klen = 8, .ptext = "\x01\xa1\xd6\xd0\x39\x77\x67\x42", .ctext = "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", .len = 8, }, { /* Three blocks */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\x22\x33\x44\x55\x66\x77\x88\x99" "\xca\xfe\xba\xbe\xfe\xed\xbe\xef", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90", .len = 24, }, { /* Two blocks -- for testing encryption across pages */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\x22\x33\x44\x55\x66\x77\x88\x99", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", .len = 16, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\xa3\x99\x7b\xca\xaf\x69\xa0\xf5", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", .len = 16, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\xa3\x99\x7b\xca\xaf\x69\xa0\xf5", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\x69\x0f\x5b\x0d\x9a\x26\x93\x9b", .len = 16, }, { /* Four blocks -- for testing encryption with chunking */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\x22\x33\x44\x55\x66\x77\x88\x99" "\xca\xfe\xba\xbe\xfe\xed\xbe\xef" "\x22\x33\x44\x55\x66\x77\x88\x99", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", .len = 32, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\x22\x33\x44\x55\x66\x77\x88\x99" "\xca\xfe\xba\xbe\xfe\xed\xbe\xef", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b" "\xb4\x99\x26\xf7\x1f\xe1\xd4\x90", .len = 24, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7" "\x22\x33\x44\x55\x66\x77\x88\x99", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d" "\xf7\x9c\x89\x2a\x33\x8f\x4a\x8b", .len = 16, }, { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .ptext = "\x01\x23\x45\x67\x89\xab\xcd\xe7", .ctext = "\xc9\x57\x44\x25\x6a\x5e\xd3\x1d", .len = 8, }, { /* Generated with Crypto++ */ .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", .klen = 8, .ptext = "\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", .ctext = "\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", .len = 248, }, }; static const struct cipher_testvec des3_ecb_ede_tv_template[] = { { /* These are from openssl */ .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" "\x55\x55\x55\x55\x55\x55\x55\x55" "\xfe\xdc\xba\x98\x76\x54\x32\x10", .klen = 24, .ptext = "\x73\x6f\x6d\x65\x64\x61\x74\x61", .ctext = "\x18\xd7\x48\xe5\x63\x62\x05\x72", .len = 8, }, { .key = "\x03\x52\x02\x07\x67\x20\x82\x17" "\x86\x02\x87\x66\x59\x08\x21\x98" "\x64\x05\x6a\xbd\xfe\xa9\x34\x57", .klen = 24, .ptext = "\x73\x71\x75\x69\x67\x67\x6c\x65", .ctext = "\xc0\x7d\x2a\x0f\xa5\x66\xfa\x30", .len = 8, }, { .key = "\x10\x46\x10\x34\x89\x98\x80\x20" "\x91\x07\xd0\x15\x89\x19\x01\x01" "\x19\x07\x92\x10\x98\x1a\x01\x01", .klen = 24, .ptext = "\x00\x00\x00\x00\x00\x00\x00\x00", .ctext = "\xe1\xef\x62\xc3\x32\xfe\x82\x5b", .len = 8, }, { /* Generated with Crypto++ */ .key = "\xF3\x9C\xD6\xF3\x9C\xB9\x5A\x67" "\x00\x5A\x67\x00\x2D\xCE\xEB\x2D" "\xCE\xEB\xB4\x51\x72\xB4\x51\x72", .klen = 24, .ptext = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" "\xFE\x41\x28\x5C\x27\x8E\x11\x85" "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" "\x5E\x21\x55\x3C\x87\x6E\x92\x65" "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" "\x45\xC9\x50\x3B\xAF\x36\x99\x60" "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" "\x88\x13\x87\x6E\xF1\x58\xCC\x57" "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" "\x50\x3B\x82\x15\x99\x60\xCB\x52" "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" "\x74\xDF\x43\x2A\xBD\x04\x88\x13" "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" "\x82\x15\xFC\x47\xCB\x52\x25\xA9" "\x30\x9B\x62\x96\x79\xC0\x74\xDF" "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" "\x89\x10\x84\x6F\xF6\x59\xCD\x54" "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" "\x51\x38\x83\x6A\x9E\x61\xC8\x53" "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" "\x75\xDC\x40\x2B\xB2\x05\x89\x10" "\xFB\x42\xF6\x59\x20\x54\x3F\x86" "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", .ctext = "\x4E\x9A\x40\x3D\x61\x7D\x17\xFA" "\x16\x86\x88\x0B\xD8\xAE\xF8\xE4" "\x81\x01\x04\x00\x76\xFA\xED\xD3" "\x44\x7E\x21\x9D\xF0\xFB\x2B\x64" "\xCA\x4E\x90\xE0\xC0\x63\x28\x92" "\xF3\x1F\xA4\x53\x2C\x77\xCC\x77" "\x69\x56\xD0\x19\xAD\x00\x2D\x97" "\xBC\xDE\x49\x6A\x82\xBC\x16\xE2" "\x2F\x3E\x72\xEE\xD1\xCE\xFC\x1B" "\xEA\x32\x56\xE4\x0B\xAF\x27\x36" "\xAF\x08\xB9\x61\xB7\x48\x23\x27" "\xEE\x4D\xC8\x79\x56\x06\xEB\xC7" "\x5B\xCA\x0A\xC6\x5E\x5C\xCB\xB6" "\x9D\xDA\x04\x59\xE2\x09\x48\x7E" "\x6B\x37\xC6\xFE\x92\xA9\x1E\x6E" "\x0D\x19\xFA\x33\x0F\xEE\x36\x68" "\x11\xBB\xF9\x5A\x73\xAB\x3A\xEA" "\xAC\x28\xD8\xD5\x27\xE8\x6B\x16" "\x45\x86\x50\x01\x70\x35\x99\x92" "\xDF\x0C\x07\x88\x8B\x7F\x9E\x4B" "\xD2\x04\x84\x90\xC4\x27\xDF\x0A" "\x49\xA8\xA7\x1A\x6D\x78\x16\xCA" "\xB3\x18\x5C\xC3\x93\x63\x5A\x68" "\x77\x02\xBA\xED\x62\x71\xB1\xD9" "\x5E\xE5\x6F\x1A\xCC\x1D\xBE\x2E" "\x11\xF3\xA6\x97\xCA\x8E\xBF\xB4" "\x56\xA1\x36\x6B\xB1\x0A\x3E\x70" "\xEA\xD7\xCD\x72\x7B\x79\xC8\xAD" "\x6B\xFE\xFB\xBA\x64\xAE\x19\xC1" "\x82\xCF\x8A\xA1\x50\x17\x7F\xB2" "\x6F\x7B\x0F\x52\xC5\x3E\x4A\x52" "\x3F\xD9\x3F\x01\xA6\x41\x1A\xB3" "\xB3\x7A\x0E\x8E\x75\xB2\xB1\x5F" "\xDB\xEA\x84\x13\x26\x6C\x85\x4E" "\xAE\x6B\xDC\xE7\xE7\xAD\xB0\x06" "\x5C\xBA\x92\xD0\x30\xBB\x8D\xD2" "\xAE\x4C\x70\x85\xA0\x07\xE3\x2C" "\xD1\x27\x9C\xCF\xDB\x13\xB7\xE5" "\xF9\x6A\x02\xD0\x39\x9D\xB6\xE7" "\xD1\x17\x25\x08\xF9\xA9\xA6\x67" "\x38\x80\xD1\x22\xAB\x1A\xD7\x26" "\xAD\xCA\x19\x1B\xFA\x18\xA7\x57" "\x31\xEC\xC9\xED\xDB\x79\xC0\x48" "\xAC\x31\x9F\x03\x8B\x62\x5B\x7E" "\x0E\xA6\xD0\x64\xEE\xEA\x00\xFC" "\x58\xC8\xDE\x51\x4E\x17\x15\x11" "\x66\x58\xB6\x90\xDC\xDF\xA1\x49" "\xCA\x79\xE9\x31\x31\x42\xDC\x56" "\x0B\xCD\xB6\x0D\xC7\x64\xF7\x19" "\xD9\x42\x05\x7F\xBC\x2F\xFC\x90" "\xAE\x29\x86\xAA\x43\x7A\x4F\x6B" "\xCE\xEA\xBC\x31\x8D\x65\x9D\x46" "\xEA\x77\xB4\xF9\x58\xEA\x5D\x84" "\xE4\xDC\x14\xBB\xBD\x15\x0E\xDA" "\xD8\xE4\xA4\x5D\x61\xF9\x58\x0F" "\xE4\x82\x77\xCE\x87\xC0\x09\xF0" "\xD6\x10\x9E\x34\xE1\x0C\x67\x55" "\x7B\x6D\xD5\x51\x4B\x00\xEE\xBA" "\xF2\x7B\xBE\x75\x07\x42\x9D\x99" "\x12\xE1\x71\x4A\xF9\x2A\xF5\xF6" "\x93\x03\xD7\x51\x09\xFA\xBE\x68" "\xD8\x45\xFF\x33\xBA\xBB\x2B\x63", .len = 496, }, }; static const struct cipher_testvec aes_ofb_tv_template[] = { /* From NIST Special Publication 800-38A, Appendix F.5 */ { .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", .klen = 16, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07\x08" "\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", .ctext = "\x3b\x3f\xd9\x2e\xb7\x2d\xad\x20" "\x33\x34\x49\xf8\xe8\x3c\xfb\x4a" "\x77\x89\x50\x8d\x16\x91\x8f\x03\xf5" "\x3c\x52\xda\xc5\x4e\xd8\x25" "\x97\x40\x05\x1e\x9c\x5f\xec\xf6\x43" "\x44\xf7\xa8\x22\x60\xed\xcc" "\x30\x4c\x65\x28\xf6\x59\xc7\x78" "\x66\xa5\x10\xd9\xc1\xd6\xae\x5e", .len = 64, } }; static const struct cipher_testvec aes_cfb8_tv_template[] = { { .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", .klen = 16, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d", .ctext = "\x3b\x79\x42\x4c\x9c\x0d\xd4\x36" "\xba\xce\x9e\x0e\xd4\x58\x6a\x4f" "\x32\xb9", .len = 18, }, { .key = "\x8e\x73\xb0\xf7\xda\x0e\x64\x52" "\xc8\x10\xf3\x2b\x80\x90\x79\xe5" "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b", .klen = 24, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d", .ctext = "\xcd\xa2\x52\x1e\xf0\xa9\x05\xca" "\x44\xcd\x05\x7c\xbf\x0d\x47\xa0" "\x67\x8a", .len = 18, }, { .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" "\x2b\x73\xae\xf0\x85\x7d\x77\x81" "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", .klen = 32, .iv = "\x00\x01\x02\x03\x04\x05\x06\x07" "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f", .ptext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" "\xae\x2d", .ctext = "\xdc\x1f\x1a\x85\x20\xa6\x4d\xb5" "\x5f\xcc\x8a\xc5\x54\x84\x4e\x88" "\x97\x00", .len = 18, } }; static const struct cipher_testvec des_ofb_tv_template[] = { { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", .ptext = "\x4e\x6f\x77\x20\x69\x73\x20\x74" "\x68\x65\x20\x74\x69\x6d\x65\x20" "\x66\x6f\x72\x20\x61\x6c\x6c\x20", .ctext = "\xf3\x09\x62\x49\xc7\xf4\x6e\x51" "\x35\xf2\x4a\x24\x2e\xeb\x3d\x3f" "\x3d\x6d\x5b\xe3\x25\x5a\xf8\xc3", .len = 24, } }; static const struct cipher_testvec des_cfb8_tv_template[] = { { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef", .klen = 8, .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", .ptext = "\x4e\x6f\x77\x20\x69\x73\x20\x74", .ctext = "\xf3\x1f\xda\x07\x01\x14\x62\xee", .len = 8, } }; static const struct cipher_testvec des3_ede_ofb_tv_template[] = { { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" "\x23\x45\x67\x89\xab\xcd\xef\x01" "\x45\x67\x89\xab\xcd\xef\x01\x23", .klen = 24, .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", .ptext = "\x4e\x6f\x77\x20\x69\x73\x20\x74" "\x43\xe9\x34\x00\x8c\x38\x9c\x0f" "\x68\x37\x88\x49\x9a\x7c\x05\xf6", .ctext = "\xee\x7e\xc7\x5c\x1a\x10\x13\x01" "\xb1\x06\x75\x74\xe7\x33\x77\x28" "\x89\xba\x70\x90\x17\x36\xd1\x5f", .len = 24, } }; static const struct cipher_testvec des3_ede_cfb8_tv_template[] = { { .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" "\x23\x45\x67\x89\xab\xcd\xef\x01" "\x45\x67\x89\xab\xcd\xef\x01\x23", .klen = 24, .iv = "\x12\x34\x56\x78\x90\xab\xcd\xef", .ptext = "\x00\x00\x00\x7f\x00\x00\x00\x00", .ctext = "\xa0\xd4\x63\xa4\xa0\x63\x3d\x1f", .len = 8, } }; struct cipher_test_info cipher_test_list[] = { { CRYPTO_AES_CBC, aes_cbc_tv_template, ARRAY_SIZE(aes_cbc_tv_template) }, { CRYPTO_AES_OFB, aes_ofb_tv_template, ARRAY_SIZE(aes_ofb_tv_template) }, { CRYPTO_AES_CTR, aes_ctr_tv_template, ARRAY_SIZE(aes_ctr_tv_template) }, { CRYPTO_AES_ECB, aes_ecb_tv_template, ARRAY_SIZE(aes_ecb_tv_template) }, { CRYPTO_AES_CFB, aes_cfb8_tv_template, ARRAY_SIZE(aes_cfb8_tv_template)}, { CRYPTO_DES_CBC, des_cbc_tv_template, ARRAY_SIZE(des_cbc_tv_template) }, { CRYPTO_DES_ECB, des_ecb_tv_template, ARRAY_SIZE(des_ecb_tv_template) }, { CRYPTO_DES_OFB, des_ofb_tv_template, ARRAY_SIZE(des_ofb_tv_template) }, { CRYPTO_DES_CFB, des_cfb8_tv_template, ARRAY_SIZE(des_cfb8_tv_template) }, { CRYPTO_3DES_CBC, des3_ede_cbc_tv_template, ARRAY_SIZE(des3_ede_cbc_tv_template) }, { CRYPTO_3DES_ECB, des3_ecb_ede_tv_template, ARRAY_SIZE(des3_ecb_ede_tv_template) }, { CRYPTO_3DES_OFB, des3_ede_ofb_tv_template, ARRAY_SIZE(des3_ede_ofb_tv_template) }, { CRYPTO_3DES_CFB, des3_ede_cfb8_tv_template, ARRAY_SIZE(des3_ede_cfb8_tv_template) }, }; #endif