aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/testmgr.h
diff options
context:
space:
mode:
authorHoria Geanta <horia.geanta@freescale.com>2012-07-03 12:16:54 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2012-07-10 23:08:30 -0400
commite46e9a46386bca8e80a6467b5c643dc494861896 (patch)
tree8950e932426b35c77225ada5fed238448025d2bf /crypto/testmgr.h
parent357fb60502ede168fa1b76b996298e0045e24b59 (diff)
crypto: testmgr - add aead cbc aes hmac sha1,256,512 test vectors
Test vectors were generated starting from existing CBC(AES) test vectors (RFC3602, NIST SP800-38A) and adding HMAC(SHA*) computed with Crypto++ and double-checked with HashCalc. Signed-off-by: Horia Geanta <horia.geanta@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/testmgr.h')
-rw-r--r--crypto/testmgr.h834
1 files changed, 834 insertions, 0 deletions
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 */