diff options
author | Horia Geanta <horia.geanta@freescale.com> | 2012-07-03 12:16:54 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-07-10 23:08:30 -0400 |
commit | e46e9a46386bca8e80a6467b5c643dc494861896 (patch) | |
tree | 8950e932426b35c77225ada5fed238448025d2bf /crypto/testmgr.h | |
parent | 357fb60502ede168fa1b76b996298e0045e24b59 (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.h | 834 |
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 | ||
7238 | static 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 | |||
7487 | static 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 | |||
7750 | static 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 | |||
7235 | static struct cipher_testvec aes_lrw_enc_tv_template[] = { | 8069 | static 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 */ |