aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/testmgr.c36
-rw-r--r--crypto/testmgr.h834
2 files changed, 870 insertions, 0 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 4308a11f129c..a2ca7431760a 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1721,6 +1721,42 @@ static const struct alg_test_desc alg_test_descs[] = {
1721 } 1721 }
1722 } 1722 }
1723 }, { 1723 }, {
1724 .alg = "authenc(hmac(sha1),cbc(aes))",
1725 .test = alg_test_aead,
1726 .fips_allowed = 1,
1727 .suite = {
1728 .aead = {
1729 .enc = {
1730 .vecs = hmac_sha1_aes_cbc_enc_tv_template,
1731 .count = HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS
1732 }
1733 }
1734 }
1735 }, {
1736 .alg = "authenc(hmac(sha256),cbc(aes))",
1737 .test = alg_test_aead,
1738 .fips_allowed = 1,
1739 .suite = {
1740 .aead = {
1741 .enc = {
1742 .vecs = hmac_sha256_aes_cbc_enc_tv_template,
1743 .count = HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS
1744 }
1745 }
1746 }
1747 }, {
1748 .alg = "authenc(hmac(sha512),cbc(aes))",
1749 .test = alg_test_aead,
1750 .fips_allowed = 1,
1751 .suite = {
1752 .aead = {
1753 .enc = {
1754 .vecs = hmac_sha512_aes_cbc_enc_tv_template,
1755 .count = HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS
1756 }
1757 }
1758 }
1759 }, {
1724 .alg = "cbc(aes)", 1760 .alg = "cbc(aes)",
1725 .test = alg_test_skcipher, 1761 .test = alg_test_skcipher,
1726 .fips_allowed = 1, 1762 .fips_allowed = 1,
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 4d84fe48df08..f8179e0344ed 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -6975,6 +6975,9 @@ static struct cipher_testvec cast6_dec_tv_template[] = {
6975#define AES_DEC_TEST_VECTORS 3 6975#define AES_DEC_TEST_VECTORS 3
6976#define AES_CBC_ENC_TEST_VECTORS 4 6976#define AES_CBC_ENC_TEST_VECTORS 4
6977#define AES_CBC_DEC_TEST_VECTORS 4 6977#define AES_CBC_DEC_TEST_VECTORS 4
6978#define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7
6979#define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7
6980#define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7
6978#define AES_LRW_ENC_TEST_VECTORS 8 6981#define AES_LRW_ENC_TEST_VECTORS 8
6979#define AES_LRW_DEC_TEST_VECTORS 8 6982#define AES_LRW_DEC_TEST_VECTORS 8
6980#define AES_XTS_ENC_TEST_VECTORS 5 6983#define AES_XTS_ENC_TEST_VECTORS 5
@@ -7232,6 +7235,837 @@ static struct cipher_testvec aes_cbc_dec_tv_template[] = {
7232 }, 7235 },
7233}; 7236};
7234 7237
7238static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
7239 { /* RFC 3602 Case 1 */
7240#ifdef __LITTLE_ENDIAN
7241 .key = "\x08\x00" /* rta length */
7242 "\x01\x00" /* rta type */
7243#else
7244 .key = "\x00\x08" /* rta length */
7245 "\x00\x01" /* rta type */
7246#endif
7247 "\x00\x00\x00\x10" /* enc key length */
7248 "\x00\x00\x00\x00\x00\x00\x00\x00"
7249 "\x00\x00\x00\x00\x00\x00\x00\x00"
7250 "\x00\x00\x00\x00"
7251 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7252 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7253 .klen = 8 + 20 + 16,
7254 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7255 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7256 .input = "Single block msg",
7257 .ilen = 16,
7258 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7259 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7260 "\x1b\x13\xcb\xaf\x89\x5e\xe1\x2c"
7261 "\x13\xc5\x2e\xa3\xcc\xed\xdc\xb5"
7262 "\x03\x71\xa2\x06",
7263 .rlen = 16 + 20,
7264 }, { /* RFC 3602 Case 2 */
7265#ifdef __LITTLE_ENDIAN
7266 .key = "\x08\x00" /* rta length */
7267 "\x01\x00" /* rta type */
7268#else
7269 .key = "\x00\x08" /* rta length */
7270 "\x00\x01" /* rta type */
7271#endif
7272 "\x00\x00\x00\x10" /* enc key length */
7273 "\x20\x21\x22\x23\x24\x25\x26\x27"
7274 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7275 "\x30\x31\x32\x33"
7276 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7277 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7278 .klen = 8 + 20 + 16,
7279 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7280 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7281 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7282 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7283 "\x10\x11\x12\x13\x14\x15\x16\x17"
7284 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7285 .ilen = 32,
7286 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7287 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7288 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7289 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7290 "\xad\x9b\x4c\x5c\x85\xe1\xda\xae"
7291 "\xee\x81\x4e\xd7\xdb\x74\xcf\x58"
7292 "\x65\x39\xf8\xde",
7293 .rlen = 32 + 20,
7294 }, { /* RFC 3602 Case 3 */
7295#ifdef __LITTLE_ENDIAN
7296 .key = "\x08\x00" /* rta length */
7297 "\x01\x00" /* rta type */
7298#else
7299 .key = "\x00\x08" /* rta length */
7300 "\x00\x01" /* rta type */
7301#endif
7302 "\x00\x00\x00\x10" /* enc key length */
7303 "\x11\x22\x33\x44\x55\x66\x77\x88"
7304 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7305 "\x22\x33\x44\x55"
7306 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7307 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7308 .klen = 8 + 20 + 16,
7309 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7310 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7311 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7312 .ilen = 48,
7313 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7314 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7315 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7316 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7317 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7318 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7319 "\xc2\xec\x0c\xf8\x7f\x05\xba\xca"
7320 "\xff\xee\x4c\xd0\x93\xe6\x36\x7f"
7321 "\x8d\x62\xf2\x1e",
7322 .rlen = 48 + 20,
7323 }, { /* RFC 3602 Case 4 */
7324#ifdef __LITTLE_ENDIAN
7325 .key = "\x08\x00" /* rta length */
7326 "\x01\x00" /* rta type */
7327#else
7328 .key = "\x00\x08" /* rta length */
7329 "\x00\x01" /* rta type */
7330#endif
7331 "\x00\x00\x00\x10" /* enc key length */
7332 "\x11\x22\x33\x44\x55\x66\x77\x88"
7333 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7334 "\x22\x33\x44\x55"
7335 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7336 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7337 .klen = 8 + 20 + 16,
7338 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7339 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7340 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7341 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7342 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7343 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7344 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7345 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7346 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7347 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7348 .ilen = 64,
7349 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7350 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7351 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7352 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7353 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7354 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7355 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7356 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7357 "\x1c\x45\x57\xa9\x56\xcb\xa9\x2d"
7358 "\x18\xac\xf1\xc7\x5d\xd1\xcd\x0d"
7359 "\x1d\xbe\xc6\xe9",
7360 .rlen = 64 + 20,
7361 }, { /* RFC 3602 Case 5 */
7362#ifdef __LITTLE_ENDIAN
7363 .key = "\x08\x00" /* rta length */
7364 "\x01\x00" /* rta type */
7365#else
7366 .key = "\x00\x08" /* rta length */
7367 "\x00\x01" /* rta type */
7368#endif
7369 "\x00\x00\x00\x10" /* enc key length */
7370 "\x11\x22\x33\x44\x55\x66\x77\x88"
7371 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7372 "\x22\x33\x44\x55"
7373 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7374 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7375 .klen = 8 + 20 + 16,
7376 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7377 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7378 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7379 .alen = 8,
7380 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7381 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7382 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7383 "\x10\x11\x12\x13\x14\x15\x16\x17"
7384 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7385 "\x20\x21\x22\x23\x24\x25\x26\x27"
7386 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7387 "\x30\x31\x32\x33\x34\x35\x36\x37"
7388 "\x01\x02\x03\x04\x05\x06\x07\x08"
7389 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7390 .ilen = 80,
7391 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7392 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7393 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7394 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7395 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7396 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7397 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7398 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7399 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7400 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7401 "\x58\xc6\x84\x75\xe4\xe9\x6b\x0c"
7402 "\xe1\xc5\x0b\x73\x4d\x82\x55\xa8"
7403 "\x85\xe1\x59\xf7",
7404 .rlen = 80 + 20,
7405 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7406#ifdef __LITTLE_ENDIAN
7407 .key = "\x08\x00" /* rta length */
7408 "\x01\x00" /* rta type */
7409#else
7410 .key = "\x00\x08" /* rta length */
7411 "\x00\x01" /* rta type */
7412#endif
7413 "\x00\x00\x00\x18" /* enc key length */
7414 "\x11\x22\x33\x44\x55\x66\x77\x88"
7415 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7416 "\x22\x33\x44\x55"
7417 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7418 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7419 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7420 .klen = 8 + 20 + 24,
7421 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7422 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7423 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7424 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7425 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7426 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7427 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7428 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7429 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7430 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7431 .ilen = 64,
7432 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
7433 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
7434 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
7435 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
7436 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
7437 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
7438 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
7439 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
7440 "\x73\xe3\x19\x3f\x8b\xc9\xc6\xf4"
7441 "\x5a\xf1\x5b\xa8\x98\x07\xc5\x36"
7442 "\x47\x4c\xfc\x36",
7443 .rlen = 64 + 20,
7444 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
7445#ifdef __LITTLE_ENDIAN
7446 .key = "\x08\x00" /* rta length */
7447 "\x01\x00" /* rta type */
7448#else
7449 .key = "\x00\x08" /* rta length */
7450 "\x00\x01" /* rta type */
7451#endif
7452 "\x00\x00\x00\x20" /* enc key length */
7453 "\x11\x22\x33\x44\x55\x66\x77\x88"
7454 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7455 "\x22\x33\x44\x55"
7456 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
7457 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
7458 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
7459 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
7460 .klen = 8 + 20 + 32,
7461 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7462 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7463 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7464 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7465 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7466 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7467 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7468 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7469 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7470 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7471 .ilen = 64,
7472 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
7473 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
7474 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
7475 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
7476 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
7477 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
7478 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
7479 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
7480 "\xa3\xe8\x9b\x17\xe3\xf4\x7f\xde"
7481 "\x1b\x9f\xc6\x81\x26\x43\x4a\x87"
7482 "\x51\xee\xd6\x4e",
7483 .rlen = 64 + 20,
7484 },
7485};
7486
7487static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_template[] = {
7488 { /* RFC 3602 Case 1 */
7489#ifdef __LITTLE_ENDIAN
7490 .key = "\x08\x00" /* rta length */
7491 "\x01\x00" /* rta type */
7492#else
7493 .key = "\x00\x08" /* rta length */
7494 "\x00\x01" /* rta type */
7495#endif
7496 "\x00\x00\x00\x10" /* enc key length */
7497 "\x00\x00\x00\x00\x00\x00\x00\x00"
7498 "\x00\x00\x00\x00\x00\x00\x00\x00"
7499 "\x00\x00\x00\x00\x00\x00\x00\x00"
7500 "\x00\x00\x00\x00\x00\x00\x00\x00"
7501 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7502 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7503 .klen = 8 + 32 + 16,
7504 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7505 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7506 .input = "Single block msg",
7507 .ilen = 16,
7508 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7509 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7510 "\xcc\xde\x2d\x6a\xae\xf1\x0b\xcc"
7511 "\x38\x06\x38\x51\xb4\xb8\xf3\x5b"
7512 "\x5c\x34\xa6\xa3\x6e\x0b\x05\xe5"
7513 "\x6a\x6d\x44\xaa\x26\xa8\x44\xa5",
7514 .rlen = 16 + 32,
7515 }, { /* RFC 3602 Case 2 */
7516#ifdef __LITTLE_ENDIAN
7517 .key = "\x08\x00" /* rta length */
7518 "\x01\x00" /* rta type */
7519#else
7520 .key = "\x00\x08" /* rta length */
7521 "\x00\x01" /* rta type */
7522#endif
7523 "\x00\x00\x00\x10" /* enc key length */
7524 "\x20\x21\x22\x23\x24\x25\x26\x27"
7525 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7526 "\x30\x31\x32\x33\x34\x35\x36\x37"
7527 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
7528 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7529 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7530 .klen = 8 + 32 + 16,
7531 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7532 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7533 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7534 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7535 "\x10\x11\x12\x13\x14\x15\x16\x17"
7536 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7537 .ilen = 32,
7538 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7539 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7540 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7541 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7542 "\xf5\x33\x53\xf3\x68\x85\x2a\x99"
7543 "\x0e\x06\x58\x8f\xba\xf6\x06\xda"
7544 "\x49\x69\x0d\x5b\xd4\x36\x06\x62"
7545 "\x35\x5e\x54\x58\x53\x4d\xdf\xbf",
7546 .rlen = 32 + 32,
7547 }, { /* RFC 3602 Case 3 */
7548#ifdef __LITTLE_ENDIAN
7549 .key = "\x08\x00" /* rta length */
7550 "\x01\x00" /* rta type */
7551#else
7552 .key = "\x00\x08" /* rta length */
7553 "\x00\x01" /* rta type */
7554#endif
7555 "\x00\x00\x00\x10" /* enc key length */
7556 "\x11\x22\x33\x44\x55\x66\x77\x88"
7557 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7558 "\x22\x33\x44\x55\x66\x77\x88\x99"
7559 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7560 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7561 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7562 .klen = 8 + 32 + 16,
7563 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7564 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7565 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7566 .ilen = 48,
7567 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7568 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7569 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7570 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7571 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7572 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7573 "\x68\xb9\x3e\x90\x38\xa0\x88\x01"
7574 "\xe7\xc6\xce\x10\x31\x2f\x9b\x1d"
7575 "\x24\x78\xfb\xbe\x02\xe0\x4f\x40"
7576 "\x10\xbd\xaa\xc6\xa7\x79\xe0\x1a",
7577 .rlen = 48 + 32,
7578 }, { /* RFC 3602 Case 4 */
7579#ifdef __LITTLE_ENDIAN
7580 .key = "\x08\x00" /* rta length */
7581 "\x01\x00" /* rta type */
7582#else
7583 .key = "\x00\x08" /* rta length */
7584 "\x00\x01" /* rta type */
7585#endif
7586 "\x00\x00\x00\x10" /* enc key length */
7587 "\x11\x22\x33\x44\x55\x66\x77\x88"
7588 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7589 "\x22\x33\x44\x55\x66\x77\x88\x99"
7590 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7591 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7592 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7593 .klen = 8 + 32 + 16,
7594 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7595 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7596 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7597 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7598 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7599 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7600 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7601 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7602 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7603 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7604 .ilen = 64,
7605 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7606 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7607 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7608 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7609 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7610 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7611 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7612 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7613 "\x7a\x1b\xd4\x3c\xdb\x17\x95\xe2"
7614 "\xe0\x93\xec\xc9\x9f\xf7\xce\xd8"
7615 "\x3f\x54\xe2\x49\x39\xe3\x71\x25"
7616 "\x2b\x6c\xe9\x5d\xec\xec\x2b\x64",
7617 .rlen = 64 + 32,
7618 }, { /* RFC 3602 Case 5 */
7619#ifdef __LITTLE_ENDIAN
7620 .key = "\x08\x00" /* rta length */
7621 "\x01\x00" /* rta type */
7622#else
7623 .key = "\x00\x08" /* rta length */
7624 "\x00\x01" /* rta type */
7625#endif
7626 "\x00\x00\x00\x10" /* enc key length */
7627 "\x11\x22\x33\x44\x55\x66\x77\x88"
7628 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7629 "\x22\x33\x44\x55\x66\x77\x88\x99"
7630 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7631 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7632 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7633 .klen = 8 + 32 + 16,
7634 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7635 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7636 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7637 .alen = 8,
7638 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7639 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7640 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7641 "\x10\x11\x12\x13\x14\x15\x16\x17"
7642 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7643 "\x20\x21\x22\x23\x24\x25\x26\x27"
7644 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7645 "\x30\x31\x32\x33\x34\x35\x36\x37"
7646 "\x01\x02\x03\x04\x05\x06\x07\x08"
7647 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7648 .ilen = 80,
7649 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7650 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7651 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7652 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7653 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7654 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7655 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7656 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7657 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7658 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7659 "\xbb\xd4\x0f\xbe\xa3\x3b\x4c\xb8"
7660 "\x3a\xd2\xe1\x03\x86\xa5\x59\xb7"
7661 "\x73\xc3\x46\x20\x2c\xb1\xef\x68"
7662 "\xbb\x8a\x32\x7e\x12\x8c\x69\xcf",
7663 .rlen = 80 + 32,
7664 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7665#ifdef __LITTLE_ENDIAN
7666 .key = "\x08\x00" /* rta length */
7667 "\x01\x00" /* rta type */
7668#else
7669 .key = "\x00\x08" /* rta length */
7670 "\x00\x01" /* rta type */
7671#endif
7672 "\x00\x00\x00\x18" /* enc key length */
7673 "\x11\x22\x33\x44\x55\x66\x77\x88"
7674 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7675 "\x22\x33\x44\x55\x66\x77\x88\x99"
7676 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7677 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7678 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7679 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7680 .klen = 8 + 32 + 24,
7681 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7682 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7683 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7684 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7685 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7686 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7687 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7688 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7689 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7690 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7691 .ilen = 64,
7692 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
7693 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
7694 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
7695 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
7696 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
7697 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
7698 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
7699 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
7700 "\x2f\xee\x5f\xdb\x66\xfe\x79\x09"
7701 "\x61\x81\x31\xea\x5b\x3d\x8e\xfb"
7702 "\xca\x71\x85\x93\xf7\x85\x55\x8b"
7703 "\x7a\xe4\x94\xca\x8b\xba\x19\x33",
7704 .rlen = 64 + 32,
7705 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
7706#ifdef __LITTLE_ENDIAN
7707 .key = "\x08\x00" /* rta length */
7708 "\x01\x00" /* rta type */
7709#else
7710 .key = "\x00\x08" /* rta length */
7711 "\x00\x01" /* rta type */
7712#endif
7713 "\x00\x00\x00\x20" /* enc key length */
7714 "\x11\x22\x33\x44\x55\x66\x77\x88"
7715 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7716 "\x22\x33\x44\x55\x66\x77\x88\x99"
7717 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7718 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
7719 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
7720 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
7721 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
7722 .klen = 8 + 32 + 32,
7723 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7724 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7725 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7726 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7727 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7728 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7729 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7730 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7731 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7732 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7733 .ilen = 64,
7734 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
7735 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
7736 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
7737 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
7738 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
7739 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
7740 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
7741 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
7742 "\x24\x29\xed\xc2\x31\x49\xdb\xb1"
7743 "\x8f\x74\xbd\x17\x92\x03\xbe\x8f"
7744 "\xf3\x61\xde\x1c\xe9\xdb\xcd\xd0"
7745 "\xcc\xce\xe9\x85\x57\xcf\x6f\x5f",
7746 .rlen = 64 + 32,
7747 },
7748};
7749
7750static struct aead_testvec hmac_sha512_aes_cbc_enc_tv_template[] = {
7751 { /* RFC 3602 Case 1 */
7752#ifdef __LITTLE_ENDIAN
7753 .key = "\x08\x00" /* rta length */
7754 "\x01\x00" /* rta type */
7755#else
7756 .key = "\x00\x08" /* rta length */
7757 "\x00\x01" /* rta type */
7758#endif
7759 "\x00\x00\x00\x10" /* enc key length */
7760 "\x00\x00\x00\x00\x00\x00\x00\x00"
7761 "\x00\x00\x00\x00\x00\x00\x00\x00"
7762 "\x00\x00\x00\x00\x00\x00\x00\x00"
7763 "\x00\x00\x00\x00\x00\x00\x00\x00"
7764 "\x00\x00\x00\x00\x00\x00\x00\x00"
7765 "\x00\x00\x00\x00\x00\x00\x00\x00"
7766 "\x00\x00\x00\x00\x00\x00\x00\x00"
7767 "\x00\x00\x00\x00\x00\x00\x00\x00"
7768 "\x06\xa9\x21\x40\x36\xb8\xa1\x5b"
7769 "\x51\x2e\x03\xd5\x34\x12\x00\x06",
7770 .klen = 8 + 64 + 16,
7771 .iv = "\x3d\xaf\xba\x42\x9d\x9e\xb4\x30"
7772 "\xb4\x22\xda\x80\x2c\x9f\xac\x41",
7773 .input = "Single block msg",
7774 .ilen = 16,
7775 .result = "\xe3\x53\x77\x9c\x10\x79\xae\xb8"
7776 "\x27\x08\x94\x2d\xbe\x77\x18\x1a"
7777 "\x3f\xdc\xad\x90\x03\x63\x5e\x68"
7778 "\xc3\x13\xdd\xa4\x5c\x4d\x54\xa7"
7779 "\x19\x6e\x03\x75\x2b\xa1\x62\xce"
7780 "\xe0\xc6\x96\x75\xb2\x14\xca\x96"
7781 "\xec\xbd\x50\x08\x07\x64\x1a\x49"
7782 "\xe8\x9a\x7c\x06\x3d\xcb\xff\xb2"
7783 "\xfa\x20\x89\xdd\x9c\xac\x9e\x16"
7784 "\x18\x8a\xa0\x6d\x01\x6c\xa3\x3a",
7785 .rlen = 16 + 64,
7786 }, { /* RFC 3602 Case 2 */
7787#ifdef __LITTLE_ENDIAN
7788 .key = "\x08\x00" /* rta length */
7789 "\x01\x00" /* rta type */
7790#else
7791 .key = "\x00\x08" /* rta length */
7792 "\x00\x01" /* rta type */
7793#endif
7794 "\x00\x00\x00\x10" /* enc key length */
7795 "\x20\x21\x22\x23\x24\x25\x26\x27"
7796 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7797 "\x30\x31\x32\x33\x34\x35\x36\x37"
7798 "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
7799 "\x40\x41\x42\x43\x44\x45\x46\x47"
7800 "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"
7801 "\x50\x51\x52\x53\x54\x55\x56\x57"
7802 "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
7803 "\xc2\x86\x69\x6d\x88\x7c\x9a\xa0"
7804 "\x61\x1b\xbb\x3e\x20\x25\xa4\x5a",
7805 .klen = 8 + 64 + 16,
7806 .iv = "\x56\x2e\x17\x99\x6d\x09\x3d\x28"
7807 "\xdd\xb3\xba\x69\x5a\x2e\x6f\x58",
7808 .input = "\x00\x01\x02\x03\x04\x05\x06\x07"
7809 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7810 "\x10\x11\x12\x13\x14\x15\x16\x17"
7811 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
7812 .ilen = 32,
7813 .result = "\xd2\x96\xcd\x94\xc2\xcc\xcf\x8a"
7814 "\x3a\x86\x30\x28\xb5\xe1\xdc\x0a"
7815 "\x75\x86\x60\x2d\x25\x3c\xff\xf9"
7816 "\x1b\x82\x66\xbe\xa6\xd6\x1a\xb1"
7817 "\xda\xb2\x0c\xb2\x26\xc4\xd5\xef"
7818 "\x60\x38\xa4\x5e\x9a\x8c\x1b\x41"
7819 "\x03\x9f\xc4\x64\x7f\x01\x42\x9b"
7820 "\x0e\x1b\xea\xef\xbc\x88\x19\x5e"
7821 "\x31\x7e\xc2\x95\xfc\x09\x32\x0a"
7822 "\x46\x32\x7c\x41\x9c\x59\x3e\xe9"
7823 "\x8f\x9f\xd4\x31\xd6\x22\xbd\xf8"
7824 "\xf7\x0a\x94\xe5\xa9\xc3\xf6\x9d",
7825 .rlen = 32 + 64,
7826 }, { /* RFC 3602 Case 3 */
7827#ifdef __LITTLE_ENDIAN
7828 .key = "\x08\x00" /* rta length */
7829 "\x01\x00" /* rta type */
7830#else
7831 .key = "\x00\x08" /* rta length */
7832 "\x00\x01" /* rta type */
7833#endif
7834 "\x00\x00\x00\x10" /* enc key length */
7835 "\x11\x22\x33\x44\x55\x66\x77\x88"
7836 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7837 "\x22\x33\x44\x55\x66\x77\x88\x99"
7838 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7839 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7840 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7841 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7842 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7843 "\x6c\x3e\xa0\x47\x76\x30\xce\x21"
7844 "\xa2\xce\x33\x4a\xa7\x46\xc2\xcd",
7845 .klen = 8 + 64 + 16,
7846 .iv = "\xc7\x82\xdc\x4c\x09\x8c\x66\xcb"
7847 "\xd9\xcd\x27\xd8\x25\x68\x2c\x81",
7848 .input = "This is a 48-byte message (exactly 3 AES blocks)",
7849 .ilen = 48,
7850 .result = "\xd0\xa0\x2b\x38\x36\x45\x17\x53"
7851 "\xd4\x93\x66\x5d\x33\xf0\xe8\x86"
7852 "\x2d\xea\x54\xcd\xb2\x93\xab\xc7"
7853 "\x50\x69\x39\x27\x67\x72\xf8\xd5"
7854 "\x02\x1c\x19\x21\x6b\xad\x52\x5c"
7855 "\x85\x79\x69\x5d\x83\xba\x26\x84"
7856 "\x64\x19\x17\x5b\x57\xe0\x21\x0f"
7857 "\xca\xdb\xa1\x26\x38\x14\xa2\x69"
7858 "\xdb\x54\x67\x80\xc0\x54\xe0\xfd"
7859 "\x3e\x91\xe7\x91\x7f\x13\x38\x44"
7860 "\xb7\xb1\xd6\xc8\x7d\x48\x8d\x41"
7861 "\x08\xea\x29\x6c\x74\x67\x3f\xb0"
7862 "\xac\x7f\x5c\x1d\xf5\xee\x22\x66"
7863 "\x27\xa6\xb6\x13\xba\xba\xf0\xc2",
7864 .rlen = 48 + 64,
7865 }, { /* RFC 3602 Case 4 */
7866#ifdef __LITTLE_ENDIAN
7867 .key = "\x08\x00" /* rta length */
7868 "\x01\x00" /* rta type */
7869#else
7870 .key = "\x00\x08" /* rta length */
7871 "\x00\x01" /* rta type */
7872#endif
7873 "\x00\x00\x00\x10" /* enc key length */
7874 "\x11\x22\x33\x44\x55\x66\x77\x88"
7875 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7876 "\x22\x33\x44\x55\x66\x77\x88\x99"
7877 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7878 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7879 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7880 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7881 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7882 "\x56\xe4\x7a\x38\xc5\x59\x89\x74"
7883 "\xbc\x46\x90\x3d\xba\x29\x03\x49",
7884 .klen = 8 + 64 + 16,
7885 .iv = "\x8c\xe8\x2e\xef\xbe\xa0\xda\x3c"
7886 "\x44\x69\x9e\xd7\xdb\x51\xb7\xd9",
7887 .input = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7"
7888 "\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
7889 "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7"
7890 "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
7891 "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
7892 "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
7893 "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7"
7894 "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf",
7895 .ilen = 64,
7896 .result = "\xc3\x0e\x32\xff\xed\xc0\x77\x4e"
7897 "\x6a\xff\x6a\xf0\x86\x9f\x71\xaa"
7898 "\x0f\x3a\xf0\x7a\x9a\x31\xa9\xc6"
7899 "\x84\xdb\x20\x7e\xb0\xef\x8e\x4e"
7900 "\x35\x90\x7a\xa6\x32\xc3\xff\xdf"
7901 "\x86\x8b\xb7\xb2\x9d\x3d\x46\xad"
7902 "\x83\xce\x9f\x9a\x10\x2e\xe9\x9d"
7903 "\x49\xa5\x3e\x87\xf4\xc3\xda\x55"
7904 "\x82\xcd\x42\x28\x21\x20\x15\xcc"
7905 "\xb7\xb2\x48\x40\xc7\x64\x41\x3a"
7906 "\x61\x32\x82\x85\xcf\x27\xed\xb4"
7907 "\xe4\x68\xa2\xf5\x79\x26\x27\xb2"
7908 "\x51\x67\x6a\xc4\xf0\x66\x55\x50"
7909 "\xbc\x6f\xed\xd5\x8d\xde\x23\x7c"
7910 "\x62\x98\x14\xd7\x2f\x37\x8d\xdf"
7911 "\xf4\x33\x80\xeb\x8e\xb4\xa4\xda",
7912 .rlen = 64 + 64,
7913 }, { /* RFC 3602 Case 5 */
7914#ifdef __LITTLE_ENDIAN
7915 .key = "\x08\x00" /* rta length */
7916 "\x01\x00" /* rta type */
7917#else
7918 .key = "\x00\x08" /* rta length */
7919 "\x00\x01" /* rta type */
7920#endif
7921 "\x00\x00\x00\x10" /* enc key length */
7922 "\x11\x22\x33\x44\x55\x66\x77\x88"
7923 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7924 "\x22\x33\x44\x55\x66\x77\x88\x99"
7925 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7926 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7927 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7928 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7929 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7930 "\x90\xd3\x82\xb4\x10\xee\xba\x7a"
7931 "\xd9\x38\xc4\x6c\xec\x1a\x82\xbf",
7932 .klen = 8 + 64 + 16,
7933 .iv = "\xe9\x6e\x8c\x08\xab\x46\x57\x63"
7934 "\xfd\x09\x8d\x45\xdd\x3f\xf8\x93",
7935 .assoc = "\x00\x00\x43\x21\x00\x00\x00\x01",
7936 .alen = 8,
7937 .input = "\x08\x00\x0e\xbd\xa7\x0a\x00\x00"
7938 "\x8e\x9c\x08\x3d\xb9\x5b\x07\x00"
7939 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
7940 "\x10\x11\x12\x13\x14\x15\x16\x17"
7941 "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
7942 "\x20\x21\x22\x23\x24\x25\x26\x27"
7943 "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
7944 "\x30\x31\x32\x33\x34\x35\x36\x37"
7945 "\x01\x02\x03\x04\x05\x06\x07\x08"
7946 "\x09\x0a\x0b\x0c\x0d\x0e\x0e\x01",
7947 .ilen = 80,
7948 .result = "\xf6\x63\xc2\x5d\x32\x5c\x18\xc6"
7949 "\xa9\x45\x3e\x19\x4e\x12\x08\x49"
7950 "\xa4\x87\x0b\x66\xcc\x6b\x99\x65"
7951 "\x33\x00\x13\xb4\x89\x8d\xc8\x56"
7952 "\xa4\x69\x9e\x52\x3a\x55\xdb\x08"
7953 "\x0b\x59\xec\x3a\x8e\x4b\x7e\x52"
7954 "\x77\x5b\x07\xd1\xdb\x34\xed\x9c"
7955 "\x53\x8a\xb5\x0c\x55\x1b\x87\x4a"
7956 "\xa2\x69\xad\xd0\x47\xad\x2d\x59"
7957 "\x13\xac\x19\xb7\xcf\xba\xd4\xa6"
7958 "\x74\x84\x94\xe2\xd7\x7a\xf9\xbf"
7959 "\x00\x8a\xa2\xd5\xb7\xf3\x60\xcf"
7960 "\xa0\x47\xdf\x4e\x09\xf4\xb1\x7f"
7961 "\x14\xd9\x3d\x53\x8e\x12\xb3\x00"
7962 "\x4c\x0a\x4e\x32\x40\x43\x88\xce"
7963 "\x92\x26\xc1\x76\x20\x11\xeb\xba"
7964 "\x62\x4f\x9a\x62\x25\xc3\x75\x80"
7965 "\xb7\x0a\x17\xf5\xd7\x94\xb4\x14",
7966 .rlen = 80 + 64,
7967 }, { /* NIST SP800-38A F.2.3 CBC-AES192.Encrypt */
7968#ifdef __LITTLE_ENDIAN
7969 .key = "\x08\x00" /* rta length */
7970 "\x01\x00" /* rta type */
7971#else
7972 .key = "\x00\x08" /* rta length */
7973 "\x00\x01" /* rta type */
7974#endif
7975 "\x00\x00\x00\x18" /* enc key length */
7976 "\x11\x22\x33\x44\x55\x66\x77\x88"
7977 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
7978 "\x22\x33\x44\x55\x66\x77\x88\x99"
7979 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
7980 "\x33\x44\x55\x66\x77\x88\x99\xaa"
7981 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
7982 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
7983 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
7984 "\x8e\x73\xb0\xf7\xda\x0e\x64\x52"
7985 "\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
7986 "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b",
7987 .klen = 8 + 64 + 24,
7988 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
7989 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
7990 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
7991 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
7992 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
7993 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
7994 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
7995 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
7996 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
7997 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
7998 .ilen = 64,
7999 .result = "\x4f\x02\x1d\xb2\x43\xbc\x63\x3d"
8000 "\x71\x78\x18\x3a\x9f\xa0\x71\xe8"
8001 "\xb4\xd9\xad\xa9\xad\x7d\xed\xf4"
8002 "\xe5\xe7\x38\x76\x3f\x69\x14\x5a"
8003 "\x57\x1b\x24\x20\x12\xfb\x7a\xe0"
8004 "\x7f\xa9\xba\xac\x3d\xf1\x02\xe0"
8005 "\x08\xb0\xe2\x79\x88\x59\x88\x81"
8006 "\xd9\x20\xa9\xe6\x4f\x56\x15\xcd"
8007 "\x77\x4b\x69\x9d\x3a\x0d\xb4\x99"
8008 "\x8f\xc6\x8e\x0e\x72\x58\xe3\x56"
8009 "\xbb\x21\xd2\x7d\x93\x11\x17\x91"
8010 "\xc4\x83\xfd\x0a\xea\x71\xfe\x77"
8011 "\xae\x6f\x0a\xa5\xf0\xcf\xe1\x35"
8012 "\xba\x03\xd5\x32\xfa\x5f\x41\x58"
8013 "\x8d\x43\x98\xa7\x94\x16\x07\x02"
8014 "\x0f\xb6\x81\x50\x28\x95\x2e\x75",
8015 .rlen = 64 + 64,
8016 }, { /* NIST SP800-38A F.2.5 CBC-AES256.Encrypt */
8017#ifdef __LITTLE_ENDIAN
8018 .key = "\x08\x00" /* rta length */
8019 "\x01\x00" /* rta type */
8020#else
8021 .key = "\x00\x08" /* rta length */
8022 "\x00\x01" /* rta type */
8023#endif
8024 "\x00\x00\x00\x20" /* enc key length */
8025 "\x11\x22\x33\x44\x55\x66\x77\x88"
8026 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
8027 "\x22\x33\x44\x55\x66\x77\x88\x99"
8028 "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
8029 "\x33\x44\x55\x66\x77\x88\x99\xaa"
8030 "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
8031 "\x44\x55\x66\x77\x88\x99\xaa\xbb"
8032 "\xcc\xdd\xee\xff\x11\x22\x33\x44"
8033 "\x60\x3d\xeb\x10\x15\xca\x71\xbe"
8034 "\x2b\x73\xae\xf0\x85\x7d\x77\x81"
8035 "\x1f\x35\x2c\x07\x3b\x61\x08\xd7"
8036 "\x2d\x98\x10\xa3\x09\x14\xdf\xf4",
8037 .klen = 8 + 64 + 32,
8038 .iv = "\x00\x01\x02\x03\x04\x05\x06\x07"
8039 "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
8040 .input = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96"
8041 "\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
8042 "\xae\x2d\x8a\x57\x1e\x03\xac\x9c"
8043 "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"
8044 "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11"
8045 "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef"
8046 "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17"
8047 "\xad\x2b\x41\x7b\xe6\x6c\x37\x10",
8048 .ilen = 64,
8049 .result = "\xf5\x8c\x4c\x04\xd6\xe5\xf1\xba"
8050 "\x77\x9e\xab\xfb\x5f\x7b\xfb\xd6"
8051 "\x9c\xfc\x4e\x96\x7e\xdb\x80\x8d"
8052 "\x67\x9f\x77\x7b\xc6\x70\x2c\x7d"
8053 "\x39\xf2\x33\x69\xa9\xd9\xba\xcf"
8054 "\xa5\x30\xe2\x63\x04\x23\x14\x61"
8055 "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc"
8056 "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b"
8057 "\xb2\x27\x69\x7f\x45\x64\x79\x2b"
8058 "\xb7\xb8\x4c\xd4\x75\x94\x68\x40"
8059 "\x2a\xea\x91\xc7\x3f\x7c\xed\x7b"
8060 "\x95\x2c\x9b\xa8\xf5\xe5\x52\x8d"
8061 "\x6b\xe1\xae\xf1\x74\xfa\x0d\x0c"
8062 "\xe3\x8d\x64\xc3\x8d\xff\x7c\x8c"
8063 "\xdb\xbf\xa0\xb4\x01\xa2\xa8\xa2"
8064 "\x2c\xb1\x62\x2c\x10\xca\xf1\x21",
8065 .rlen = 64 + 64,
8066 },
8067};
8068
7235static struct cipher_testvec aes_lrw_enc_tv_template[] = { 8069static struct cipher_testvec aes_lrw_enc_tv_template[] = {
7236 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */ 8070 /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */
7237 { /* LRW-32-AES 1 */ 8071 { /* LRW-32-AES 1 */