diff options
Diffstat (limited to 'crypto')
| -rw-r--r-- | crypto/Kconfig | 19 | ||||
| -rw-r--r-- | crypto/Makefile | 2 | ||||
| -rw-r--r-- | crypto/ablkcipher.c | 4 | ||||
| -rw-r--r-- | crypto/aead.c | 4 | ||||
| -rw-r--r-- | crypto/ahash.c | 4 | ||||
| -rw-r--r-- | crypto/algapi.c | 35 | ||||
| -rw-r--r-- | crypto/async_tx/async_memcpy.c | 8 | ||||
| -rw-r--r-- | crypto/blkcipher.c | 8 | ||||
| -rw-r--r-- | crypto/camellia_generic.c (renamed from crypto/camellia.c) | 104 | ||||
| -rw-r--r-- | crypto/ccm.c | 4 | ||||
| -rw-r--r-- | crypto/crc32c.c | 94 | ||||
| -rw-r--r-- | crypto/crypto_user.c | 90 | ||||
| -rw-r--r-- | crypto/pcrypt.c | 8 | ||||
| -rw-r--r-- | crypto/scatterwalk.c | 8 | ||||
| -rw-r--r-- | crypto/shash.c | 8 | ||||
| -rw-r--r-- | crypto/tcrypt.c | 12 | ||||
| -rw-r--r-- | crypto/testmgr.c | 45 | ||||
| -rw-r--r-- | crypto/testmgr.h | 1383 |
18 files changed, 1653 insertions, 187 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index e6cfe1a25137..21ff9d015432 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
| @@ -308,6 +308,7 @@ comment "Digest" | |||
| 308 | config CRYPTO_CRC32C | 308 | config CRYPTO_CRC32C |
| 309 | tristate "CRC32c CRC algorithm" | 309 | tristate "CRC32c CRC algorithm" |
| 310 | select CRYPTO_HASH | 310 | select CRYPTO_HASH |
| 311 | select CRC32 | ||
| 311 | help | 312 | help |
| 312 | Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used | 313 | Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used |
| 313 | by iSCSI for header and data digests and by others. | 314 | by iSCSI for header and data digests and by others. |
| @@ -654,6 +655,24 @@ config CRYPTO_CAMELLIA | |||
| 654 | See also: | 655 | See also: |
| 655 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | 656 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> |
| 656 | 657 | ||
| 658 | config CRYPTO_CAMELLIA_X86_64 | ||
| 659 | tristate "Camellia cipher algorithm (x86_64)" | ||
| 660 | depends on (X86 || UML_X86) && 64BIT | ||
| 661 | depends on CRYPTO | ||
| 662 | select CRYPTO_ALGAPI | ||
| 663 | select CRYPTO_LRW | ||
| 664 | select CRYPTO_XTS | ||
| 665 | help | ||
| 666 | Camellia cipher algorithm module (x86_64). | ||
| 667 | |||
| 668 | Camellia is a symmetric key block cipher developed jointly | ||
| 669 | at NTT and Mitsubishi Electric Corporation. | ||
| 670 | |||
| 671 | The Camellia specifies three key sizes: 128, 192 and 256 bits. | ||
| 672 | |||
| 673 | See also: | ||
| 674 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | ||
| 675 | |||
| 657 | config CRYPTO_CAST5 | 676 | config CRYPTO_CAST5 |
| 658 | tristate "CAST5 (CAST-128) cipher algorithm" | 677 | tristate "CAST5 (CAST-128) cipher algorithm" |
| 659 | select CRYPTO_ALGAPI | 678 | select CRYPTO_ALGAPI |
diff --git a/crypto/Makefile b/crypto/Makefile index f638063f4ea9..30f33d675330 100644 --- a/crypto/Makefile +++ b/crypto/Makefile | |||
| @@ -67,7 +67,7 @@ obj-$(CONFIG_CRYPTO_TWOFISH) += twofish_generic.o | |||
| 67 | obj-$(CONFIG_CRYPTO_TWOFISH_COMMON) += twofish_common.o | 67 | obj-$(CONFIG_CRYPTO_TWOFISH_COMMON) += twofish_common.o |
| 68 | obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o | 68 | obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o |
| 69 | obj-$(CONFIG_CRYPTO_AES) += aes_generic.o | 69 | obj-$(CONFIG_CRYPTO_AES) += aes_generic.o |
| 70 | obj-$(CONFIG_CRYPTO_CAMELLIA) += camellia.o | 70 | obj-$(CONFIG_CRYPTO_CAMELLIA) += camellia_generic.o |
| 71 | obj-$(CONFIG_CRYPTO_CAST5) += cast5.o | 71 | obj-$(CONFIG_CRYPTO_CAST5) += cast5.o |
| 72 | obj-$(CONFIG_CRYPTO_CAST6) += cast6.o | 72 | obj-$(CONFIG_CRYPTO_CAST6) += cast6.o |
| 73 | obj-$(CONFIG_CRYPTO_ARC4) += arc4.o | 73 | obj-$(CONFIG_CRYPTO_ARC4) += arc4.o |
diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c index a0f768c1d9aa..8d3a056ebeea 100644 --- a/crypto/ablkcipher.c +++ b/crypto/ablkcipher.c | |||
| @@ -613,8 +613,7 @@ out: | |||
| 613 | return err; | 613 | return err; |
| 614 | } | 614 | } |
| 615 | 615 | ||
| 616 | static struct crypto_alg *crypto_lookup_skcipher(const char *name, u32 type, | 616 | struct crypto_alg *crypto_lookup_skcipher(const char *name, u32 type, u32 mask) |
| 617 | u32 mask) | ||
| 618 | { | 617 | { |
| 619 | struct crypto_alg *alg; | 618 | struct crypto_alg *alg; |
| 620 | 619 | ||
| @@ -652,6 +651,7 @@ static struct crypto_alg *crypto_lookup_skcipher(const char *name, u32 type, | |||
| 652 | 651 | ||
| 653 | return ERR_PTR(crypto_givcipher_default(alg, type, mask)); | 652 | return ERR_PTR(crypto_givcipher_default(alg, type, mask)); |
| 654 | } | 653 | } |
| 654 | EXPORT_SYMBOL_GPL(crypto_lookup_skcipher); | ||
| 655 | 655 | ||
| 656 | int crypto_grab_skcipher(struct crypto_skcipher_spawn *spawn, const char *name, | 656 | int crypto_grab_skcipher(struct crypto_skcipher_spawn *spawn, const char *name, |
| 657 | u32 type, u32 mask) | 657 | u32 type, u32 mask) |
diff --git a/crypto/aead.c b/crypto/aead.c index 04add3dca6fe..e4cb35159be4 100644 --- a/crypto/aead.c +++ b/crypto/aead.c | |||
| @@ -470,8 +470,7 @@ out: | |||
| 470 | return err; | 470 | return err; |
| 471 | } | 471 | } |
| 472 | 472 | ||
| 473 | static struct crypto_alg *crypto_lookup_aead(const char *name, u32 type, | 473 | struct crypto_alg *crypto_lookup_aead(const char *name, u32 type, u32 mask) |
| 474 | u32 mask) | ||
| 475 | { | 474 | { |
| 476 | struct crypto_alg *alg; | 475 | struct crypto_alg *alg; |
| 477 | 476 | ||
| @@ -503,6 +502,7 @@ static struct crypto_alg *crypto_lookup_aead(const char *name, u32 type, | |||
| 503 | 502 | ||
| 504 | return ERR_PTR(crypto_nivaead_default(alg, type, mask)); | 503 | return ERR_PTR(crypto_nivaead_default(alg, type, mask)); |
| 505 | } | 504 | } |
| 505 | EXPORT_SYMBOL_GPL(crypto_lookup_aead); | ||
| 506 | 506 | ||
| 507 | int crypto_grab_aead(struct crypto_aead_spawn *spawn, const char *name, | 507 | int crypto_grab_aead(struct crypto_aead_spawn *spawn, const char *name, |
| 508 | u32 type, u32 mask) | 508 | u32 type, u32 mask) |
diff --git a/crypto/ahash.c b/crypto/ahash.c index ac93c99cfae8..33bc9b62e9ae 100644 --- a/crypto/ahash.c +++ b/crypto/ahash.c | |||
| @@ -46,7 +46,7 @@ static int hash_walk_next(struct crypto_hash_walk *walk) | |||
| 46 | unsigned int nbytes = min(walk->entrylen, | 46 | unsigned int nbytes = min(walk->entrylen, |
| 47 | ((unsigned int)(PAGE_SIZE)) - offset); | 47 | ((unsigned int)(PAGE_SIZE)) - offset); |
| 48 | 48 | ||
| 49 | walk->data = crypto_kmap(walk->pg, 0); | 49 | walk->data = kmap_atomic(walk->pg); |
| 50 | walk->data += offset; | 50 | walk->data += offset; |
| 51 | 51 | ||
| 52 | if (offset & alignmask) { | 52 | if (offset & alignmask) { |
| @@ -93,7 +93,7 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err) | |||
| 93 | return nbytes; | 93 | return nbytes; |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | crypto_kunmap(walk->data, 0); | 96 | kunmap_atomic(walk->data); |
| 97 | crypto_yield(walk->flags); | 97 | crypto_yield(walk->flags); |
| 98 | 98 | ||
| 99 | if (err) | 99 | if (err) |
diff --git a/crypto/algapi.c b/crypto/algapi.c index 9d4a9fe913f8..056571b85445 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c | |||
| @@ -405,6 +405,41 @@ int crypto_unregister_alg(struct crypto_alg *alg) | |||
| 405 | } | 405 | } |
| 406 | EXPORT_SYMBOL_GPL(crypto_unregister_alg); | 406 | EXPORT_SYMBOL_GPL(crypto_unregister_alg); |
| 407 | 407 | ||
| 408 | int crypto_register_algs(struct crypto_alg *algs, int count) | ||
| 409 | { | ||
| 410 | int i, ret; | ||
| 411 | |||
| 412 | for (i = 0; i < count; i++) { | ||
| 413 | ret = crypto_register_alg(&algs[i]); | ||
| 414 | if (ret) | ||
| 415 | goto err; | ||
| 416 | } | ||
| 417 | |||
| 418 | return 0; | ||
| 419 | |||
| 420 | err: | ||
| 421 | for (--i; i >= 0; --i) | ||
| 422 | crypto_unregister_alg(&algs[i]); | ||
| 423 | |||
| 424 | return ret; | ||
| 425 | } | ||
| 426 | EXPORT_SYMBOL_GPL(crypto_register_algs); | ||
| 427 | |||
| 428 | int crypto_unregister_algs(struct crypto_alg *algs, int count) | ||
| 429 | { | ||
| 430 | int i, ret; | ||
| 431 | |||
| 432 | for (i = 0; i < count; i++) { | ||
| 433 | ret = crypto_unregister_alg(&algs[i]); | ||
| 434 | if (ret) | ||
| 435 | pr_err("Failed to unregister %s %s: %d\n", | ||
| 436 | algs[i].cra_driver_name, algs[i].cra_name, ret); | ||
| 437 | } | ||
| 438 | |||
| 439 | return 0; | ||
| 440 | } | ||
| 441 | EXPORT_SYMBOL_GPL(crypto_unregister_algs); | ||
| 442 | |||
| 408 | int crypto_register_template(struct crypto_template *tmpl) | 443 | int crypto_register_template(struct crypto_template *tmpl) |
| 409 | { | 444 | { |
| 410 | struct crypto_template *q; | 445 | struct crypto_template *q; |
diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c index 0d5a90ca6501..361b5e8239bc 100644 --- a/crypto/async_tx/async_memcpy.c +++ b/crypto/async_tx/async_memcpy.c | |||
| @@ -79,13 +79,13 @@ async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset, | |||
| 79 | /* wait for any prerequisite operations */ | 79 | /* wait for any prerequisite operations */ |
| 80 | async_tx_quiesce(&submit->depend_tx); | 80 | async_tx_quiesce(&submit->depend_tx); |
| 81 | 81 | ||
| 82 | dest_buf = kmap_atomic(dest, KM_USER0) + dest_offset; | 82 | dest_buf = kmap_atomic(dest) + dest_offset; |
| 83 | src_buf = kmap_atomic(src, KM_USER1) + src_offset; | 83 | src_buf = kmap_atomic(src) + src_offset; |
| 84 | 84 | ||
| 85 | memcpy(dest_buf, src_buf, len); | 85 | memcpy(dest_buf, src_buf, len); |
| 86 | 86 | ||
| 87 | kunmap_atomic(src_buf, KM_USER1); | 87 | kunmap_atomic(src_buf); |
| 88 | kunmap_atomic(dest_buf, KM_USER0); | 88 | kunmap_atomic(dest_buf); |
| 89 | 89 | ||
| 90 | async_tx_sync_epilog(submit); | 90 | async_tx_sync_epilog(submit); |
| 91 | } | 91 | } |
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c index 1e61d1a888b2..4dd80c725498 100644 --- a/crypto/blkcipher.c +++ b/crypto/blkcipher.c | |||
| @@ -43,22 +43,22 @@ static int blkcipher_walk_first(struct blkcipher_desc *desc, | |||
| 43 | 43 | ||
| 44 | static inline void blkcipher_map_src(struct blkcipher_walk *walk) | 44 | static inline void blkcipher_map_src(struct blkcipher_walk *walk) |
| 45 | { | 45 | { |
| 46 | walk->src.virt.addr = scatterwalk_map(&walk->in, 0); | 46 | walk->src.virt.addr = scatterwalk_map(&walk->in); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | static inline void blkcipher_map_dst(struct blkcipher_walk *walk) | 49 | static inline void blkcipher_map_dst(struct blkcipher_walk *walk) |
| 50 | { | 50 | { |
| 51 | walk->dst.virt.addr = scatterwalk_map(&walk->out, 1); | 51 | walk->dst.virt.addr = scatterwalk_map(&walk->out); |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | static inline void blkcipher_unmap_src(struct blkcipher_walk *walk) | 54 | static inline void blkcipher_unmap_src(struct blkcipher_walk *walk) |
| 55 | { | 55 | { |
| 56 | scatterwalk_unmap(walk->src.virt.addr, 0); | 56 | scatterwalk_unmap(walk->src.virt.addr); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | static inline void blkcipher_unmap_dst(struct blkcipher_walk *walk) | 59 | static inline void blkcipher_unmap_dst(struct blkcipher_walk *walk) |
| 60 | { | 60 | { |
| 61 | scatterwalk_unmap(walk->dst.virt.addr, 1); | 61 | scatterwalk_unmap(walk->dst.virt.addr); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | /* Get a spot of the specified length that does not straddle a page. | 64 | /* Get a spot of the specified length that does not straddle a page. |
diff --git a/crypto/camellia.c b/crypto/camellia_generic.c index 64cff46ea5e4..f7aaaaf86982 100644 --- a/crypto/camellia.c +++ b/crypto/camellia_generic.c | |||
| @@ -337,43 +337,40 @@ static const u32 camellia_sp4404[256] = { | |||
| 337 | /* | 337 | /* |
| 338 | * macros | 338 | * macros |
| 339 | */ | 339 | */ |
| 340 | #define ROLDQ(ll, lr, rl, rr, w0, w1, bits) \ | 340 | #define ROLDQ(ll, lr, rl, rr, w0, w1, bits) ({ \ |
| 341 | do { \ | ||
| 342 | w0 = ll; \ | 341 | w0 = ll; \ |
| 343 | ll = (ll << bits) + (lr >> (32 - bits)); \ | 342 | ll = (ll << bits) + (lr >> (32 - bits)); \ |
| 344 | lr = (lr << bits) + (rl >> (32 - bits)); \ | 343 | lr = (lr << bits) + (rl >> (32 - bits)); \ |
| 345 | rl = (rl << bits) + (rr >> (32 - bits)); \ | 344 | rl = (rl << bits) + (rr >> (32 - bits)); \ |
| 346 | rr = (rr << bits) + (w0 >> (32 - bits)); \ | 345 | rr = (rr << bits) + (w0 >> (32 - bits)); \ |
| 347 | } while (0) | 346 | }) |
| 348 | 347 | ||
| 349 | #define ROLDQo32(ll, lr, rl, rr, w0, w1, bits) \ | 348 | #define ROLDQo32(ll, lr, rl, rr, w0, w1, bits) ({ \ |
| 350 | do { \ | ||
| 351 | w0 = ll; \ | 349 | w0 = ll; \ |
| 352 | w1 = lr; \ | 350 | w1 = lr; \ |
| 353 | ll = (lr << (bits - 32)) + (rl >> (64 - bits)); \ | 351 | ll = (lr << (bits - 32)) + (rl >> (64 - bits)); \ |
| 354 | lr = (rl << (bits - 32)) + (rr >> (64 - bits)); \ | 352 | lr = (rl << (bits - 32)) + (rr >> (64 - bits)); \ |
| 355 | rl = (rr << (bits - 32)) + (w0 >> (64 - bits)); \ | 353 | rl = (rr << (bits - 32)) + (w0 >> (64 - bits)); \ |
| 356 | rr = (w0 << (bits - 32)) + (w1 >> (64 - bits)); \ | 354 | rr = (w0 << (bits - 32)) + (w1 >> (64 - bits)); \ |
| 357 | } while (0) | 355 | }) |
| 358 | 356 | ||
| 359 | #define CAMELLIA_F(xl, xr, kl, kr, yl, yr, il, ir, t0, t1) \ | 357 | #define CAMELLIA_F(xl, xr, kl, kr, yl, yr, il, ir, t0, t1) ({ \ |
| 360 | do { \ | ||
| 361 | il = xl ^ kl; \ | 358 | il = xl ^ kl; \ |
| 362 | ir = xr ^ kr; \ | 359 | ir = xr ^ kr; \ |
| 363 | t0 = il >> 16; \ | 360 | t0 = il >> 16; \ |
| 364 | t1 = ir >> 16; \ | 361 | t1 = ir >> 16; \ |
| 365 | yl = camellia_sp1110[(u8)(ir )] \ | 362 | yl = camellia_sp1110[(u8)(ir)] \ |
| 366 | ^ camellia_sp0222[ (t1 >> 8)] \ | 363 | ^ camellia_sp0222[(u8)(t1 >> 8)] \ |
| 367 | ^ camellia_sp3033[(u8)(t1 )] \ | 364 | ^ camellia_sp3033[(u8)(t1)] \ |
| 368 | ^ camellia_sp4404[(u8)(ir >> 8)]; \ | 365 | ^ camellia_sp4404[(u8)(ir >> 8)]; \ |
| 369 | yr = camellia_sp1110[ (t0 >> 8)] \ | 366 | yr = camellia_sp1110[(u8)(t0 >> 8)] \ |
| 370 | ^ camellia_sp0222[(u8)(t0 )] \ | 367 | ^ camellia_sp0222[(u8)(t0)] \ |
| 371 | ^ camellia_sp3033[(u8)(il >> 8)] \ | 368 | ^ camellia_sp3033[(u8)(il >> 8)] \ |
| 372 | ^ camellia_sp4404[(u8)(il )]; \ | 369 | ^ camellia_sp4404[(u8)(il)]; \ |
| 373 | yl ^= yr; \ | 370 | yl ^= yr; \ |
| 374 | yr = ror32(yr, 8); \ | 371 | yr = ror32(yr, 8); \ |
| 375 | yr ^= yl; \ | 372 | yr ^= yl; \ |
| 376 | } while (0) | 373 | }) |
| 377 | 374 | ||
| 378 | #define SUBKEY_L(INDEX) (subkey[(INDEX)*2]) | 375 | #define SUBKEY_L(INDEX) (subkey[(INDEX)*2]) |
| 379 | #define SUBKEY_R(INDEX) (subkey[(INDEX)*2 + 1]) | 376 | #define SUBKEY_R(INDEX) (subkey[(INDEX)*2 + 1]) |
| @@ -382,7 +379,6 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max) | |||
| 382 | { | 379 | { |
| 383 | u32 dw, tl, tr; | 380 | u32 dw, tl, tr; |
| 384 | u32 kw4l, kw4r; | 381 | u32 kw4l, kw4r; |
| 385 | int i; | ||
| 386 | 382 | ||
| 387 | /* absorb kw2 to other subkeys */ | 383 | /* absorb kw2 to other subkeys */ |
| 388 | /* round 2 */ | 384 | /* round 2 */ |
| @@ -557,24 +553,6 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max) | |||
| 557 | SUBKEY_L(32) = subL[32] ^ subL[31]; /* kw3 */ | 553 | SUBKEY_L(32) = subL[32] ^ subL[31]; /* kw3 */ |
| 558 | SUBKEY_R(32) = subR[32] ^ subR[31]; | 554 | SUBKEY_R(32) = subR[32] ^ subR[31]; |
| 559 | } | 555 | } |
| 560 | |||
| 561 | /* apply the inverse of the last half of P-function */ | ||
| 562 | i = 2; | ||
| 563 | do { | ||
| 564 | dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = rol32(dw, 8);/* round 1 */ | ||
| 565 | SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw; | ||
| 566 | dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = rol32(dw, 8);/* round 2 */ | ||
| 567 | SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw; | ||
| 568 | dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = rol32(dw, 8);/* round 3 */ | ||
| 569 | SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw; | ||
| 570 | dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = rol32(dw, 8);/* round 4 */ | ||
| 571 | SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw; | ||
| 572 | dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = rol32(dw, 8);/* round 5 */ | ||
| 573 | SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw; | ||
| 574 | dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = rol32(dw, 8);/* round 6 */ | ||
| 575 | SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw; | ||
| 576 | i += 8; | ||
| 577 | } while (i < max); | ||
| 578 | } | 556 | } |
| 579 | 557 | ||
| 580 | static void camellia_setup128(const unsigned char *key, u32 *subkey) | 558 | static void camellia_setup128(const unsigned char *key, u32 *subkey) |
| @@ -851,8 +829,7 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey) | |||
| 851 | /* | 829 | /* |
| 852 | * Encrypt/decrypt | 830 | * Encrypt/decrypt |
| 853 | */ | 831 | */ |
| 854 | #define CAMELLIA_FLS(ll, lr, rl, rr, kll, klr, krl, krr, t0, t1, t2, t3) \ | 832 | #define CAMELLIA_FLS(ll, lr, rl, rr, kll, klr, krl, krr, t0, t1, t2, t3) ({ \ |
| 855 | do { \ | ||
| 856 | t0 = kll; \ | 833 | t0 = kll; \ |
| 857 | t2 = krr; \ | 834 | t2 = krr; \ |
| 858 | t0 &= ll; \ | 835 | t0 &= ll; \ |
| @@ -865,23 +842,23 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey) | |||
| 865 | t1 |= lr; \ | 842 | t1 |= lr; \ |
| 866 | ll ^= t1; \ | 843 | ll ^= t1; \ |
| 867 | rr ^= rol32(t3, 1); \ | 844 | rr ^= rol32(t3, 1); \ |
| 868 | } while (0) | 845 | }) |
| 869 | 846 | ||
| 870 | #define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \ | 847 | #define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) ({ \ |
| 871 | do { \ | 848 | yl ^= kl; \ |
| 849 | yr ^= kr; \ | ||
| 872 | ir = camellia_sp1110[(u8)xr]; \ | 850 | ir = camellia_sp1110[(u8)xr]; \ |
| 873 | il = camellia_sp1110[ (xl >> 24)]; \ | 851 | il = camellia_sp1110[(u8)(xl >> 24)]; \ |
| 874 | ir ^= camellia_sp0222[ (xr >> 24)]; \ | 852 | ir ^= camellia_sp0222[(u8)(xr >> 24)]; \ |
| 875 | il ^= camellia_sp0222[(u8)(xl >> 16)]; \ | 853 | il ^= camellia_sp0222[(u8)(xl >> 16)]; \ |
| 876 | ir ^= camellia_sp3033[(u8)(xr >> 16)]; \ | 854 | ir ^= camellia_sp3033[(u8)(xr >> 16)]; \ |
| 877 | il ^= camellia_sp3033[(u8)(xl >> 8)]; \ | 855 | il ^= camellia_sp3033[(u8)(xl >> 8)]; \ |
| 878 | ir ^= camellia_sp4404[(u8)(xr >> 8)]; \ | 856 | ir ^= camellia_sp4404[(u8)(xr >> 8)]; \ |
| 879 | il ^= camellia_sp4404[(u8)xl]; \ | 857 | il ^= camellia_sp4404[(u8)xl]; \ |
| 880 | il ^= kl; \ | 858 | ir ^= il; \ |
| 881 | ir ^= il ^ kr; \ | ||
| 882 | yl ^= ir; \ | 859 | yl ^= ir; \ |
| 883 | yr ^= ror32(il, 8) ^ ir; \ | 860 | yr ^= ror32(il, 8) ^ ir; \ |
| 884 | } while (0) | 861 | }) |
| 885 | 862 | ||
| 886 | /* max = 24: 128bit encrypt, max = 32: 256bit encrypt */ | 863 | /* max = 24: 128bit encrypt, max = 32: 256bit encrypt */ |
| 887 | static void camellia_do_encrypt(const u32 *subkey, u32 *io, unsigned max) | 864 | static void camellia_do_encrypt(const u32 *subkey, u32 *io, unsigned max) |
| @@ -893,7 +870,7 @@ static void camellia_do_encrypt(const u32 *subkey, u32 *io, unsigned max) | |||
| 893 | io[1] ^= SUBKEY_R(0); | 870 | io[1] ^= SUBKEY_R(0); |
| 894 | 871 | ||
| 895 | /* main iteration */ | 872 | /* main iteration */ |
| 896 | #define ROUNDS(i) do { \ | 873 | #define ROUNDS(i) ({ \ |
| 897 | CAMELLIA_ROUNDSM(io[0], io[1], \ | 874 | CAMELLIA_ROUNDSM(io[0], io[1], \ |
| 898 | SUBKEY_L(i + 2), SUBKEY_R(i + 2), \ | 875 | SUBKEY_L(i + 2), SUBKEY_R(i + 2), \ |
| 899 | io[2], io[3], il, ir); \ | 876 | io[2], io[3], il, ir); \ |
| @@ -912,13 +889,13 @@ static void camellia_do_encrypt(const u32 *subkey, u32 *io, unsigned max) | |||
| 912 | CAMELLIA_ROUNDSM(io[2], io[3], \ | 889 | CAMELLIA_ROUNDSM(io[2], io[3], \ |
| 913 | SUBKEY_L(i + 7), SUBKEY_R(i + 7), \ | 890 | SUBKEY_L(i + 7), SUBKEY_R(i + 7), \ |
| 914 | io[0], io[1], il, ir); \ | 891 | io[0], io[1], il, ir); \ |
| 915 | } while (0) | 892 | }) |
| 916 | #define FLS(i) do { \ | 893 | #define FLS(i) ({ \ |
| 917 | CAMELLIA_FLS(io[0], io[1], io[2], io[3], \ | 894 | CAMELLIA_FLS(io[0], io[1], io[2], io[3], \ |
| 918 | SUBKEY_L(i + 0), SUBKEY_R(i + 0), \ | 895 | SUBKEY_L(i + 0), SUBKEY_R(i + 0), \ |
| 919 | SUBKEY_L(i + 1), SUBKEY_R(i + 1), \ | 896 | SUBKEY_L(i + 1), SUBKEY_R(i + 1), \ |
| 920 | t0, t1, il, ir); \ | 897 | t0, t1, il, ir); \ |
| 921 | } while (0) | 898 | }) |
| 922 | 899 | ||
| 923 | ROUNDS(0); | 900 | ROUNDS(0); |
| 924 | FLS(8); | 901 | FLS(8); |
| @@ -948,7 +925,7 @@ static void camellia_do_decrypt(const u32 *subkey, u32 *io, unsigned i) | |||
| 948 | io[1] ^= SUBKEY_R(i); | 925 | io[1] ^= SUBKEY_R(i); |
| 949 | 926 | ||
| 950 | /* main iteration */ | 927 | /* main iteration */ |
| 951 | #define ROUNDS(i) do { \ | 928 | #define ROUNDS(i) ({ \ |
| 952 | CAMELLIA_ROUNDSM(io[0], io[1], \ | 929 | CAMELLIA_ROUNDSM(io[0], io[1], \ |
| 953 | SUBKEY_L(i + 7), SUBKEY_R(i + 7), \ | 930 | SUBKEY_L(i + 7), SUBKEY_R(i + 7), \ |
| 954 | io[2], io[3], il, ir); \ | 931 | io[2], io[3], il, ir); \ |
| @@ -967,13 +944,13 @@ static void camellia_do_decrypt(const u32 *subkey, u32 *io, unsigned i) | |||
| 967 | CAMELLIA_ROUNDSM(io[2], io[3], \ | 944 | CAMELLIA_ROUNDSM(io[2], io[3], \ |
| 968 | SUBKEY_L(i + 2), SUBKEY_R(i + 2), \ | 945 | SUBKEY_L(i + 2), SUBKEY_R(i + 2), \ |
| 969 | io[0], io[1], il, ir); \ | 946 | io[0], io[1], il, ir); \ |
| 970 | } while (0) | 947 | }) |
| 971 | #define FLS(i) do { \ | 948 | #define FLS(i) ({ \ |
| 972 | CAMELLIA_FLS(io[0], io[1], io[2], io[3], \ | 949 | CAMELLIA_FLS(io[0], io[1], io[2], io[3], \ |
| 973 | SUBKEY_L(i + 1), SUBKEY_R(i + 1), \ | 950 | SUBKEY_L(i + 1), SUBKEY_R(i + 1), \ |
| 974 | SUBKEY_L(i + 0), SUBKEY_R(i + 0), \ | 951 | SUBKEY_L(i + 0), SUBKEY_R(i + 0), \ |
| 975 | t0, t1, il, ir); \ | 952 | t0, t1, il, ir); \ |
| 976 | } while (0) | 953 | }) |
| 977 | 954 | ||
| 978 | if (i == 32) { | 955 | if (i == 32) { |
| 979 | ROUNDS(24); | 956 | ROUNDS(24); |
| @@ -1035,6 +1012,7 @@ static void camellia_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) | |||
| 1035 | const struct camellia_ctx *cctx = crypto_tfm_ctx(tfm); | 1012 | const struct camellia_ctx *cctx = crypto_tfm_ctx(tfm); |
| 1036 | const __be32 *src = (const __be32 *)in; | 1013 | const __be32 *src = (const __be32 *)in; |
| 1037 | __be32 *dst = (__be32 *)out; | 1014 | __be32 *dst = (__be32 *)out; |
| 1015 | unsigned int max; | ||
| 1038 | 1016 | ||
| 1039 | u32 tmp[4]; | 1017 | u32 tmp[4]; |
| 1040 | 1018 | ||
| @@ -1043,9 +1021,12 @@ static void camellia_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) | |||
| 1043 | tmp[2] = be32_to_cpu(src[2]); | 1021 | tmp[2] = be32_to_cpu(src[2]); |
| 1044 | tmp[3] = be32_to_cpu(src[3]); | 1022 | tmp[3] = be32_to_cpu(src[3]); |
| 1045 | 1023 | ||
| 1046 | camellia_do_encrypt(cctx->key_table, tmp, | 1024 | if (cctx->key_length == 16) |
| 1047 | cctx->key_length == 16 ? 24 : 32 /* for key lengths of 24 and 32 */ | 1025 | max = 24; |
| 1048 | ); | 1026 | else |
| 1027 | max = 32; /* for key lengths of 24 and 32 */ | ||
| 1028 | |||
| 1029 | camellia_do_encrypt(cctx->key_table, tmp, max); | ||
| 1049 | 1030 | ||
| 1050 | /* do_encrypt returns 0,1 swapped with 2,3 */ | 1031 | /* do_encrypt returns 0,1 swapped with 2,3 */ |
| 1051 | dst[0] = cpu_to_be32(tmp[2]); | 1032 | dst[0] = cpu_to_be32(tmp[2]); |
| @@ -1059,6 +1040,7 @@ static void camellia_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) | |||
| 1059 | const struct camellia_ctx *cctx = crypto_tfm_ctx(tfm); | 1040 | const struct camellia_ctx *cctx = crypto_tfm_ctx(tfm); |
| 1060 | const __be32 *src = (const __be32 *)in; | 1041 | const __be32 *src = (const __be32 *)in; |
| 1061 | __be32 *dst = (__be32 *)out; | 1042 | __be32 *dst = (__be32 *)out; |
| 1043 | unsigned int max; | ||
| 1062 | 1044 | ||
| 1063 | u32 tmp[4]; | 1045 | u32 tmp[4]; |
| 1064 | 1046 | ||
| @@ -1067,9 +1049,12 @@ static void camellia_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) | |||
| 1067 | tmp[2] = be32_to_cpu(src[2]); | 1049 | tmp[2] = be32_to_cpu(src[2]); |
| 1068 | tmp[3] = be32_to_cpu(src[3]); | 1050 | tmp[3] = be32_to_cpu(src[3]); |
| 1069 | 1051 | ||
| 1070 | camellia_do_decrypt(cctx->key_table, tmp, | 1052 | if (cctx->key_length == 16) |
| 1071 | cctx->key_length == 16 ? 24 : 32 /* for key lengths of 24 and 32 */ | 1053 | max = 24; |
| 1072 | ); | 1054 | else |
| 1055 | max = 32; /* for key lengths of 24 and 32 */ | ||
| 1056 | |||
| 1057 | camellia_do_decrypt(cctx->key_table, tmp, max); | ||
| 1073 | 1058 | ||
| 1074 | /* do_decrypt returns 0,1 swapped with 2,3 */ | 1059 | /* do_decrypt returns 0,1 swapped with 2,3 */ |
| 1075 | dst[0] = cpu_to_be32(tmp[2]); | 1060 | dst[0] = cpu_to_be32(tmp[2]); |
| @@ -1114,3 +1099,4 @@ module_exit(camellia_fini); | |||
| 1114 | 1099 | ||
| 1115 | MODULE_DESCRIPTION("Camellia Cipher Algorithm"); | 1100 | MODULE_DESCRIPTION("Camellia Cipher Algorithm"); |
| 1116 | MODULE_LICENSE("GPL"); | 1101 | MODULE_LICENSE("GPL"); |
| 1102 | MODULE_ALIAS("camellia"); | ||
diff --git a/crypto/ccm.c b/crypto/ccm.c index c36d654cf56a..32fe1bb5decb 100644 --- a/crypto/ccm.c +++ b/crypto/ccm.c | |||
| @@ -216,12 +216,12 @@ static void get_data_to_compute(struct crypto_cipher *tfm, | |||
| 216 | scatterwalk_start(&walk, sg_next(walk.sg)); | 216 | scatterwalk_start(&walk, sg_next(walk.sg)); |
| 217 | n = scatterwalk_clamp(&walk, len); | 217 | n = scatterwalk_clamp(&walk, len); |
| 218 | } | 218 | } |
| 219 | data_src = scatterwalk_map(&walk, 0); | 219 | data_src = scatterwalk_map(&walk); |
| 220 | 220 | ||
| 221 | compute_mac(tfm, data_src, n, pctx); | 221 | compute_mac(tfm, data_src, n, pctx); |
| 222 | len -= n; | 222 | len -= n; |
| 223 | 223 | ||
| 224 | scatterwalk_unmap(data_src, 0); | 224 | scatterwalk_unmap(data_src); |
| 225 | scatterwalk_advance(&walk, n); | 225 | scatterwalk_advance(&walk, n); |
| 226 | scatterwalk_done(&walk, 0, len); | 226 | scatterwalk_done(&walk, 0, len); |
| 227 | if (len) | 227 | if (len) |
diff --git a/crypto/crc32c.c b/crypto/crc32c.c index 3f9ad2801052..06f7018c9d95 100644 --- a/crypto/crc32c.c +++ b/crypto/crc32c.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | #include <linux/module.h> | 40 | #include <linux/module.h> |
| 41 | #include <linux/string.h> | 41 | #include <linux/string.h> |
| 42 | #include <linux/kernel.h> | 42 | #include <linux/kernel.h> |
| 43 | #include <linux/crc32.h> | ||
| 43 | 44 | ||
| 44 | #define CHKSUM_BLOCK_SIZE 1 | 45 | #define CHKSUM_BLOCK_SIZE 1 |
| 45 | #define CHKSUM_DIGEST_SIZE 4 | 46 | #define CHKSUM_DIGEST_SIZE 4 |
| @@ -53,95 +54,6 @@ struct chksum_desc_ctx { | |||
| 53 | }; | 54 | }; |
| 54 | 55 | ||
| 55 | /* | 56 | /* |
| 56 | * This is the CRC-32C table | ||
| 57 | * Generated with: | ||
| 58 | * width = 32 bits | ||
| 59 | * poly = 0x1EDC6F41 | ||
| 60 | * reflect input bytes = true | ||
| 61 | * reflect output bytes = true | ||
| 62 | */ | ||
| 63 | |||
| 64 | static const u32 crc32c_table[256] = { | ||
| 65 | 0x00000000L, 0xF26B8303L, 0xE13B70F7L, 0x1350F3F4L, | ||
| 66 | 0xC79A971FL, 0x35F1141CL, 0x26A1E7E8L, 0xD4CA64EBL, | ||
| 67 | 0x8AD958CFL, 0x78B2DBCCL, 0x6BE22838L, 0x9989AB3BL, | ||
| 68 | 0x4D43CFD0L, 0xBF284CD3L, 0xAC78BF27L, 0x5E133C24L, | ||
| 69 | 0x105EC76FL, 0xE235446CL, 0xF165B798L, 0x030E349BL, | ||
| 70 | 0xD7C45070L, 0x25AFD373L, 0x36FF2087L, 0xC494A384L, | ||
| 71 | 0x9A879FA0L, 0x68EC1CA3L, 0x7BBCEF57L, 0x89D76C54L, | ||
| 72 | 0x5D1D08BFL, 0xAF768BBCL, 0xBC267848L, 0x4E4DFB4BL, | ||
| 73 | 0x20BD8EDEL, 0xD2D60DDDL, 0xC186FE29L, 0x33ED7D2AL, | ||
| 74 | 0xE72719C1L, 0x154C9AC2L, 0x061C6936L, 0xF477EA35L, | ||
| 75 | 0xAA64D611L, 0x580F5512L, 0x4B5FA6E6L, 0xB93425E5L, | ||
| 76 | 0x6DFE410EL, 0x9F95C20DL, 0x8CC531F9L, 0x7EAEB2FAL, | ||
| 77 | 0x30E349B1L, 0xC288CAB2L, 0xD1D83946L, 0x23B3BA45L, | ||
| 78 | 0xF779DEAEL, 0x05125DADL, 0x1642AE59L, 0xE4292D5AL, | ||
| 79 | 0xBA3A117EL, 0x4851927DL, 0x5B016189L, 0xA96AE28AL, | ||
| 80 | 0x7DA08661L, 0x8FCB0562L, 0x9C9BF696L, 0x6EF07595L, | ||
| 81 | 0x417B1DBCL, 0xB3109EBFL, 0xA0406D4BL, 0x522BEE48L, | ||
| 82 | 0x86E18AA3L, 0x748A09A0L, 0x67DAFA54L, 0x95B17957L, | ||
| 83 | 0xCBA24573L, 0x39C9C670L, 0x2A993584L, 0xD8F2B687L, | ||
| 84 | 0x0C38D26CL, 0xFE53516FL, 0xED03A29BL, 0x1F682198L, | ||
| 85 | 0x5125DAD3L, 0xA34E59D0L, 0xB01EAA24L, 0x42752927L, | ||
| 86 | 0x96BF4DCCL, 0x64D4CECFL, 0x77843D3BL, 0x85EFBE38L, | ||
| 87 | 0xDBFC821CL, 0x2997011FL, 0x3AC7F2EBL, 0xC8AC71E8L, | ||
| 88 | 0x1C661503L, 0xEE0D9600L, 0xFD5D65F4L, 0x0F36E6F7L, | ||
| 89 | 0x61C69362L, 0x93AD1061L, 0x80FDE395L, 0x72966096L, | ||
| 90 | 0xA65C047DL, 0x5437877EL, 0x4767748AL, 0xB50CF789L, | ||
| 91 | 0xEB1FCBADL, 0x197448AEL, 0x0A24BB5AL, 0xF84F3859L, | ||
| 92 | 0x2C855CB2L, 0xDEEEDFB1L, 0xCDBE2C45L, 0x3FD5AF46L, | ||
| 93 | 0x7198540DL, 0x83F3D70EL, 0x90A324FAL, 0x62C8A7F9L, | ||
| 94 | 0xB602C312L, 0x44694011L, 0x5739B3E5L, 0xA55230E6L, | ||
| 95 | 0xFB410CC2L, 0x092A8FC1L, 0x1A7A7C35L, 0xE811FF36L, | ||
| 96 | 0x3CDB9BDDL, 0xCEB018DEL, 0xDDE0EB2AL, 0x2F8B6829L, | ||
| 97 | 0x82F63B78L, 0x709DB87BL, 0x63CD4B8FL, 0x91A6C88CL, | ||
| 98 | 0x456CAC67L, 0xB7072F64L, 0xA457DC90L, 0x563C5F93L, | ||
| 99 | 0x082F63B7L, 0xFA44E0B4L, 0xE9141340L, 0x1B7F9043L, | ||
| 100 | 0xCFB5F4A8L, 0x3DDE77ABL, 0x2E8E845FL, 0xDCE5075CL, | ||
| 101 | 0x92A8FC17L, 0x60C37F14L, 0x73938CE0L, 0x81F80FE3L, | ||
| 102 | 0x55326B08L, 0xA759E80BL, 0xB4091BFFL, 0x466298FCL, | ||
| 103 | 0x1871A4D8L, 0xEA1A27DBL, 0xF94AD42FL, 0x0B21572CL, | ||
| 104 | 0xDFEB33C7L, 0x2D80B0C4L, 0x3ED04330L, 0xCCBBC033L, | ||
| 105 | 0xA24BB5A6L, 0x502036A5L, 0x4370C551L, 0xB11B4652L, | ||
| 106 | 0x65D122B9L, 0x97BAA1BAL, 0x84EA524EL, 0x7681D14DL, | ||
| 107 | 0x2892ED69L, 0xDAF96E6AL, 0xC9A99D9EL, 0x3BC21E9DL, | ||
| 108 | 0xEF087A76L, 0x1D63F975L, 0x0E330A81L, 0xFC588982L, | ||
| 109 | 0xB21572C9L, 0x407EF1CAL, 0x532E023EL, 0xA145813DL, | ||
| 110 | 0x758FE5D6L, 0x87E466D5L, 0x94B49521L, 0x66DF1622L, | ||
| 111 | 0x38CC2A06L, 0xCAA7A905L, 0xD9F75AF1L, 0x2B9CD9F2L, | ||
| 112 | 0xFF56BD19L, 0x0D3D3E1AL, 0x1E6DCDEEL, 0xEC064EEDL, | ||
| 113 | 0xC38D26C4L, 0x31E6A5C7L, 0x22B65633L, 0xD0DDD530L, | ||
| 114 | 0x0417B1DBL, 0xF67C32D8L, 0xE52CC12CL, 0x1747422FL, | ||
| 115 | 0x49547E0BL, 0xBB3FFD08L, 0xA86F0EFCL, 0x5A048DFFL, | ||
| 116 | 0x8ECEE914L, 0x7CA56A17L, 0x6FF599E3L, 0x9D9E1AE0L, | ||
| 117 | 0xD3D3E1ABL, 0x21B862A8L, 0x32E8915CL, 0xC083125FL, | ||
| 118 | 0x144976B4L, 0xE622F5B7L, 0xF5720643L, 0x07198540L, | ||
| 119 | 0x590AB964L, 0xAB613A67L, 0xB831C993L, 0x4A5A4A90L, | ||
| 120 | 0x9E902E7BL, 0x6CFBAD78L, 0x7FAB5E8CL, 0x8DC0DD8FL, | ||
| 121 | 0xE330A81AL, 0x115B2B19L, 0x020BD8EDL, 0xF0605BEEL, | ||
| 122 | 0x24AA3F05L, 0xD6C1BC06L, 0xC5914FF2L, 0x37FACCF1L, | ||
| 123 | 0x69E9F0D5L, 0x9B8273D6L, 0x88D28022L, 0x7AB90321L, | ||
| 124 | 0xAE7367CAL, 0x5C18E4C9L, 0x4F48173DL, 0xBD23943EL, | ||
| 125 | 0xF36E6F75L, 0x0105EC76L, 0x12551F82L, 0xE03E9C81L, | ||
| 126 | 0x34F4F86AL, 0xC69F7B69L, 0xD5CF889DL, 0x27A40B9EL, | ||
| 127 | 0x79B737BAL, 0x8BDCB4B9L, 0x988C474DL, 0x6AE7C44EL, | ||
| 128 | 0xBE2DA0A5L, 0x4C4623A6L, 0x5F16D052L, 0xAD7D5351L | ||
| 129 | }; | ||
| 130 | |||
| 131 | /* | ||
| 132 | * Steps through buffer one byte at at time, calculates reflected | ||
| 133 | * crc using table. | ||
| 134 | */ | ||
| 135 | |||
| 136 | static u32 crc32c(u32 crc, const u8 *data, unsigned int length) | ||
| 137 | { | ||
| 138 | while (length--) | ||
| 139 | crc = crc32c_table[(crc ^ *data++) & 0xFFL] ^ (crc >> 8); | ||
| 140 | |||
| 141 | return crc; | ||
| 142 | } | ||
| 143 | |||
| 144 | /* | ||
| 145 | * Steps through buffer one byte at at time, calculates reflected | 57 | * Steps through buffer one byte at at time, calculates reflected |
| 146 | * crc using table. | 58 | * crc using table. |
| 147 | */ | 59 | */ |
| @@ -179,7 +91,7 @@ static int chksum_update(struct shash_desc *desc, const u8 *data, | |||
| 179 | { | 91 | { |
| 180 | struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); | 92 | struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); |
| 181 | 93 | ||
| 182 | ctx->crc = crc32c(ctx->crc, data, length); | 94 | ctx->crc = __crc32c_le(ctx->crc, data, length); |
| 183 | return 0; | 95 | return 0; |
| 184 | } | 96 | } |
| 185 | 97 | ||
| @@ -193,7 +105,7 @@ static int chksum_final(struct shash_desc *desc, u8 *out) | |||
| 193 | 105 | ||
| 194 | static int __chksum_finup(u32 *crcp, const u8 *data, unsigned int len, u8 *out) | 106 | static int __chksum_finup(u32 *crcp, const u8 *data, unsigned int len, u8 *out) |
| 195 | { | 107 | { |
| 196 | *(__le32 *)out = ~cpu_to_le32(crc32c(*crcp, data, len)); | 108 | *(__le32 *)out = ~cpu_to_le32(__crc32c_le(*crcp, data, len)); |
| 197 | return 0; | 109 | return 0; |
| 198 | } | 110 | } |
| 199 | 111 | ||
diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c index 16f8693cc147..f1ea0a064135 100644 --- a/crypto/crypto_user.c +++ b/crypto/crypto_user.c | |||
| @@ -21,9 +21,13 @@ | |||
| 21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
| 22 | #include <linux/crypto.h> | 22 | #include <linux/crypto.h> |
| 23 | #include <linux/cryptouser.h> | 23 | #include <linux/cryptouser.h> |
| 24 | #include <linux/sched.h> | ||
| 24 | #include <net/netlink.h> | 25 | #include <net/netlink.h> |
| 25 | #include <linux/security.h> | 26 | #include <linux/security.h> |
| 26 | #include <net/net_namespace.h> | 27 | #include <net/net_namespace.h> |
| 28 | #include <crypto/internal/aead.h> | ||
| 29 | #include <crypto/internal/skcipher.h> | ||
| 30 | |||
| 27 | #include "internal.h" | 31 | #include "internal.h" |
| 28 | 32 | ||
| 29 | DEFINE_MUTEX(crypto_cfg_mutex); | 33 | DEFINE_MUTEX(crypto_cfg_mutex); |
| @@ -301,10 +305,64 @@ static int crypto_del_alg(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
| 301 | return crypto_unregister_instance(alg); | 305 | return crypto_unregister_instance(alg); |
| 302 | } | 306 | } |
| 303 | 307 | ||
| 308 | static struct crypto_alg *crypto_user_skcipher_alg(const char *name, u32 type, | ||
| 309 | u32 mask) | ||
| 310 | { | ||
| 311 | int err; | ||
| 312 | struct crypto_alg *alg; | ||
| 313 | |||
| 314 | type = crypto_skcipher_type(type); | ||
| 315 | mask = crypto_skcipher_mask(mask); | ||
| 316 | |||
| 317 | for (;;) { | ||
| 318 | alg = crypto_lookup_skcipher(name, type, mask); | ||
| 319 | if (!IS_ERR(alg)) | ||
| 320 | return alg; | ||
| 321 | |||
| 322 | err = PTR_ERR(alg); | ||
| 323 | if (err != -EAGAIN) | ||
| 324 | break; | ||
| 325 | if (signal_pending(current)) { | ||
| 326 | err = -EINTR; | ||
| 327 | break; | ||
| 328 | } | ||
| 329 | } | ||
| 330 | |||
| 331 | return ERR_PTR(err); | ||
| 332 | } | ||
| 333 | |||
| 334 | static struct crypto_alg *crypto_user_aead_alg(const char *name, u32 type, | ||
| 335 | u32 mask) | ||
| 336 | { | ||
| 337 | int err; | ||
| 338 | struct crypto_alg *alg; | ||
| 339 | |||
| 340 | type &= ~(CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_GENIV); | ||
| 341 | type |= CRYPTO_ALG_TYPE_AEAD; | ||
| 342 | mask &= ~(CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_GENIV); | ||
| 343 | mask |= CRYPTO_ALG_TYPE_MASK; | ||
| 344 | |||
| 345 | for (;;) { | ||
| 346 | alg = crypto_lookup_aead(name, type, mask); | ||
| 347 | if (!IS_ERR(alg)) | ||
| 348 | return alg; | ||
| 349 | |||
| 350 | err = PTR_ERR(alg); | ||
| 351 | if (err != -EAGAIN) | ||
| 352 | break; | ||
| 353 | if (signal_pending(current)) { | ||
| 354 | err = -EINTR; | ||
| 355 | break; | ||
| 356 | } | ||
| 357 | } | ||
| 358 | |||
| 359 | return ERR_PTR(err); | ||
| 360 | } | ||
| 361 | |||
| 304 | static int crypto_add_alg(struct sk_buff *skb, struct nlmsghdr *nlh, | 362 | static int crypto_add_alg(struct sk_buff *skb, struct nlmsghdr *nlh, |
| 305 | struct nlattr **attrs) | 363 | struct nlattr **attrs) |
| 306 | { | 364 | { |
| 307 | int exact; | 365 | int exact = 0; |
| 308 | const char *name; | 366 | const char *name; |
| 309 | struct crypto_alg *alg; | 367 | struct crypto_alg *alg; |
| 310 | struct crypto_user_alg *p = nlmsg_data(nlh); | 368 | struct crypto_user_alg *p = nlmsg_data(nlh); |
| @@ -325,7 +383,19 @@ static int crypto_add_alg(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
| 325 | else | 383 | else |
| 326 | name = p->cru_name; | 384 | name = p->cru_name; |
| 327 | 385 | ||
| 328 | alg = crypto_alg_mod_lookup(name, p->cru_type, p->cru_mask); | 386 | switch (p->cru_type & p->cru_mask & CRYPTO_ALG_TYPE_MASK) { |
| 387 | case CRYPTO_ALG_TYPE_AEAD: | ||
| 388 | alg = crypto_user_aead_alg(name, p->cru_type, p->cru_mask); | ||
| 389 | break; | ||
| 390 | case CRYPTO_ALG_TYPE_GIVCIPHER: | ||
| 391 | case CRYPTO_ALG_TYPE_BLKCIPHER: | ||
| 392 | case CRYPTO_ALG_TYPE_ABLKCIPHER: | ||
| 393 | alg = crypto_user_skcipher_alg(name, p->cru_type, p->cru_mask); | ||
| 394 | break; | ||
| 395 | default: | ||
| 396 | alg = crypto_alg_mod_lookup(name, p->cru_type, p->cru_mask); | ||
| 397 | } | ||
| 398 | |||
| 329 | if (IS_ERR(alg)) | 399 | if (IS_ERR(alg)) |
| 330 | return PTR_ERR(alg); | 400 | return PTR_ERR(alg); |
| 331 | 401 | ||
| @@ -387,11 +457,23 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
| 387 | 457 | ||
| 388 | if ((type == (CRYPTO_MSG_GETALG - CRYPTO_MSG_BASE) && | 458 | if ((type == (CRYPTO_MSG_GETALG - CRYPTO_MSG_BASE) && |
| 389 | (nlh->nlmsg_flags & NLM_F_DUMP))) { | 459 | (nlh->nlmsg_flags & NLM_F_DUMP))) { |
| 460 | struct crypto_alg *alg; | ||
| 461 | u16 dump_alloc = 0; | ||
| 462 | |||
| 390 | if (link->dump == NULL) | 463 | if (link->dump == NULL) |
| 391 | return -EINVAL; | 464 | return -EINVAL; |
| 392 | 465 | ||
| 393 | return netlink_dump_start(crypto_nlsk, skb, nlh, | 466 | list_for_each_entry(alg, &crypto_alg_list, cra_list) |
| 394 | link->dump, link->done, 0); | 467 | dump_alloc += CRYPTO_REPORT_MAXSIZE; |
| 468 | |||
| 469 | { | ||
| 470 | struct netlink_dump_control c = { | ||
| 471 | .dump = link->dump, | ||
| 472 | .done = link->done, | ||
| 473 | .min_dump_alloc = dump_alloc, | ||
| 474 | }; | ||
| 475 | return netlink_dump_start(crypto_nlsk, skb, nlh, &c); | ||
| 476 | } | ||
| 395 | } | 477 | } |
| 396 | 478 | ||
| 397 | err = nlmsg_parse(nlh, crypto_msg_min[type], attrs, CRYPTOCFGA_MAX, | 479 | err = nlmsg_parse(nlh, crypto_msg_min[type], attrs, CRYPTOCFGA_MAX, |
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c index 29a89dad68b6..b2c99dc1c5e2 100644 --- a/crypto/pcrypt.c +++ b/crypto/pcrypt.c | |||
| @@ -280,11 +280,11 @@ static int pcrypt_aead_init_tfm(struct crypto_tfm *tfm) | |||
| 280 | 280 | ||
| 281 | ictx->tfm_count++; | 281 | ictx->tfm_count++; |
| 282 | 282 | ||
| 283 | cpu_index = ictx->tfm_count % cpumask_weight(cpu_active_mask); | 283 | cpu_index = ictx->tfm_count % cpumask_weight(cpu_online_mask); |
| 284 | 284 | ||
| 285 | ctx->cb_cpu = cpumask_first(cpu_active_mask); | 285 | ctx->cb_cpu = cpumask_first(cpu_online_mask); |
| 286 | for (cpu = 0; cpu < cpu_index; cpu++) | 286 | for (cpu = 0; cpu < cpu_index; cpu++) |
| 287 | ctx->cb_cpu = cpumask_next(ctx->cb_cpu, cpu_active_mask); | 287 | ctx->cb_cpu = cpumask_next(ctx->cb_cpu, cpu_online_mask); |
| 288 | 288 | ||
| 289 | cipher = crypto_spawn_aead(crypto_instance_ctx(inst)); | 289 | cipher = crypto_spawn_aead(crypto_instance_ctx(inst)); |
| 290 | 290 | ||
| @@ -472,7 +472,7 @@ static int pcrypt_init_padata(struct padata_pcrypt *pcrypt, | |||
| 472 | goto err_free_padata; | 472 | goto err_free_padata; |
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | cpumask_and(mask->mask, cpu_possible_mask, cpu_active_mask); | 475 | cpumask_and(mask->mask, cpu_possible_mask, cpu_online_mask); |
| 476 | rcu_assign_pointer(pcrypt->cb_cpumask, mask); | 476 | rcu_assign_pointer(pcrypt->cb_cpumask, mask); |
| 477 | 477 | ||
| 478 | pcrypt->nblock.notifier_call = pcrypt_cpumask_change_notify; | 478 | pcrypt->nblock.notifier_call = pcrypt_cpumask_change_notify; |
diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index 41e529af0773..7281b8a93ad3 100644 --- a/crypto/scatterwalk.c +++ b/crypto/scatterwalk.c | |||
| @@ -40,9 +40,9 @@ void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg) | |||
| 40 | } | 40 | } |
| 41 | EXPORT_SYMBOL_GPL(scatterwalk_start); | 41 | EXPORT_SYMBOL_GPL(scatterwalk_start); |
| 42 | 42 | ||
| 43 | void *scatterwalk_map(struct scatter_walk *walk, int out) | 43 | void *scatterwalk_map(struct scatter_walk *walk) |
| 44 | { | 44 | { |
| 45 | return crypto_kmap(scatterwalk_page(walk), out) + | 45 | return kmap_atomic(scatterwalk_page(walk)) + |
| 46 | offset_in_page(walk->offset); | 46 | offset_in_page(walk->offset); |
| 47 | } | 47 | } |
| 48 | EXPORT_SYMBOL_GPL(scatterwalk_map); | 48 | EXPORT_SYMBOL_GPL(scatterwalk_map); |
| @@ -83,9 +83,9 @@ void scatterwalk_copychunks(void *buf, struct scatter_walk *walk, | |||
| 83 | if (len_this_page > nbytes) | 83 | if (len_this_page > nbytes) |
| 84 | len_this_page = nbytes; | 84 | len_this_page = nbytes; |
| 85 | 85 | ||
| 86 | vaddr = scatterwalk_map(walk, out); | 86 | vaddr = scatterwalk_map(walk); |
| 87 | memcpy_dir(buf, vaddr, len_this_page, out); | 87 | memcpy_dir(buf, vaddr, len_this_page, out); |
| 88 | scatterwalk_unmap(vaddr, out); | 88 | scatterwalk_unmap(vaddr); |
| 89 | 89 | ||
| 90 | scatterwalk_advance(walk, len_this_page); | 90 | scatterwalk_advance(walk, len_this_page); |
| 91 | 91 | ||
diff --git a/crypto/shash.c b/crypto/shash.c index 9100912716ae..21fc12e2378f 100644 --- a/crypto/shash.c +++ b/crypto/shash.c | |||
| @@ -281,10 +281,10 @@ int shash_ahash_digest(struct ahash_request *req, struct shash_desc *desc) | |||
| 281 | if (nbytes < min(sg->length, ((unsigned int)(PAGE_SIZE)) - offset)) { | 281 | if (nbytes < min(sg->length, ((unsigned int)(PAGE_SIZE)) - offset)) { |
| 282 | void *data; | 282 | void *data; |
| 283 | 283 | ||
| 284 | data = crypto_kmap(sg_page(sg), 0); | 284 | data = kmap_atomic(sg_page(sg)); |
| 285 | err = crypto_shash_digest(desc, data + offset, nbytes, | 285 | err = crypto_shash_digest(desc, data + offset, nbytes, |
| 286 | req->result); | 286 | req->result); |
| 287 | crypto_kunmap(data, 0); | 287 | kunmap_atomic(data); |
| 288 | crypto_yield(desc->flags); | 288 | crypto_yield(desc->flags); |
| 289 | } else | 289 | } else |
| 290 | err = crypto_shash_init(desc) ?: | 290 | err = crypto_shash_init(desc) ?: |
| @@ -420,9 +420,9 @@ static int shash_compat_digest(struct hash_desc *hdesc, struct scatterlist *sg, | |||
| 420 | 420 | ||
| 421 | desc->flags = hdesc->flags; | 421 | desc->flags = hdesc->flags; |
| 422 | 422 | ||
| 423 | data = crypto_kmap(sg_page(sg), 0); | 423 | data = kmap_atomic(sg_page(sg)); |
| 424 | err = crypto_shash_digest(desc, data + offset, nbytes, out); | 424 | err = crypto_shash_digest(desc, data + offset, nbytes, out); |
| 425 | crypto_kunmap(data, 0); | 425 | kunmap_atomic(data); |
| 426 | crypto_yield(desc->flags); | 426 | crypto_yield(desc->flags); |
| 427 | goto out; | 427 | goto out; |
| 428 | } | 428 | } |
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index 7736a9f05aba..8f147bff0980 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c | |||
| @@ -1297,6 +1297,18 @@ static int do_test(int m) | |||
| 1297 | speed_template_16_24_32); | 1297 | speed_template_16_24_32); |
| 1298 | test_cipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0, | 1298 | test_cipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0, |
| 1299 | speed_template_16_24_32); | 1299 | speed_template_16_24_32); |
| 1300 | test_cipher_speed("ctr(camellia)", ENCRYPT, sec, NULL, 0, | ||
| 1301 | speed_template_16_24_32); | ||
| 1302 | test_cipher_speed("ctr(camellia)", DECRYPT, sec, NULL, 0, | ||
| 1303 | speed_template_16_24_32); | ||
| 1304 | test_cipher_speed("lrw(camellia)", ENCRYPT, sec, NULL, 0, | ||
| 1305 | speed_template_32_40_48); | ||
| 1306 | test_cipher_speed("lrw(camellia)", DECRYPT, sec, NULL, 0, | ||
| 1307 | speed_template_32_40_48); | ||
| 1308 | test_cipher_speed("xts(camellia)", ENCRYPT, sec, NULL, 0, | ||
| 1309 | speed_template_32_48_64); | ||
| 1310 | test_cipher_speed("xts(camellia)", DECRYPT, sec, NULL, 0, | ||
| 1311 | speed_template_32_48_64); | ||
| 1300 | break; | 1312 | break; |
| 1301 | 1313 | ||
| 1302 | case 206: | 1314 | case 206: |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index bb54b882d738..5674878ff6c1 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c | |||
| @@ -1846,6 +1846,21 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
| 1846 | } | 1846 | } |
| 1847 | } | 1847 | } |
| 1848 | }, { | 1848 | }, { |
| 1849 | .alg = "ctr(camellia)", | ||
| 1850 | .test = alg_test_skcipher, | ||
| 1851 | .suite = { | ||
| 1852 | .cipher = { | ||
| 1853 | .enc = { | ||
| 1854 | .vecs = camellia_ctr_enc_tv_template, | ||
| 1855 | .count = CAMELLIA_CTR_ENC_TEST_VECTORS | ||
| 1856 | }, | ||
| 1857 | .dec = { | ||
| 1858 | .vecs = camellia_ctr_dec_tv_template, | ||
| 1859 | .count = CAMELLIA_CTR_DEC_TEST_VECTORS | ||
| 1860 | } | ||
| 1861 | } | ||
| 1862 | } | ||
| 1863 | }, { | ||
| 1849 | .alg = "ctr(serpent)", | 1864 | .alg = "ctr(serpent)", |
| 1850 | .test = alg_test_skcipher, | 1865 | .test = alg_test_skcipher, |
| 1851 | .suite = { | 1866 | .suite = { |
| @@ -2297,6 +2312,21 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
| 2297 | } | 2312 | } |
| 2298 | } | 2313 | } |
| 2299 | }, { | 2314 | }, { |
| 2315 | .alg = "lrw(camellia)", | ||
| 2316 | .test = alg_test_skcipher, | ||
| 2317 | .suite = { | ||
| 2318 | .cipher = { | ||
| 2319 | .enc = { | ||
| 2320 | .vecs = camellia_lrw_enc_tv_template, | ||
| 2321 | .count = CAMELLIA_LRW_ENC_TEST_VECTORS | ||
| 2322 | }, | ||
| 2323 | .dec = { | ||
| 2324 | .vecs = camellia_lrw_dec_tv_template, | ||
| 2325 | .count = CAMELLIA_LRW_DEC_TEST_VECTORS | ||
| 2326 | } | ||
| 2327 | } | ||
| 2328 | } | ||
| 2329 | }, { | ||
| 2300 | .alg = "lrw(serpent)", | 2330 | .alg = "lrw(serpent)", |
| 2301 | .test = alg_test_skcipher, | 2331 | .test = alg_test_skcipher, |
| 2302 | .suite = { | 2332 | .suite = { |
| @@ -2634,6 +2664,21 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
| 2634 | } | 2664 | } |
| 2635 | } | 2665 | } |
| 2636 | }, { | 2666 | }, { |
| 2667 | .alg = "xts(camellia)", | ||
| 2668 | .test = alg_test_skcipher, | ||
| 2669 | .suite = { | ||
| 2670 | .cipher = { | ||
| 2671 | .enc = { | ||
| 2672 | .vecs = camellia_xts_enc_tv_template, | ||
| 2673 | .count = CAMELLIA_XTS_ENC_TEST_VECTORS | ||
| 2674 | }, | ||
| 2675 | .dec = { | ||
| 2676 | .vecs = camellia_xts_dec_tv_template, | ||
| 2677 | .count = CAMELLIA_XTS_DEC_TEST_VECTORS | ||
| 2678 | } | ||
| 2679 | } | ||
| 2680 | } | ||
| 2681 | }, { | ||
| 2637 | .alg = "xts(serpent)", | 2682 | .alg = "xts(serpent)", |
| 2638 | .test = alg_test_skcipher, | 2683 | .test = alg_test_skcipher, |
| 2639 | .suite = { | 2684 | .suite = { |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 43e84d32b341..36e5a8ee0e1e 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h | |||
| @@ -11332,10 +11332,16 @@ static struct cipher_testvec fcrypt_pcbc_dec_tv_template[] = { | |||
| 11332 | /* | 11332 | /* |
| 11333 | * CAMELLIA test vectors. | 11333 | * CAMELLIA test vectors. |
| 11334 | */ | 11334 | */ |
| 11335 | #define CAMELLIA_ENC_TEST_VECTORS 3 | 11335 | #define CAMELLIA_ENC_TEST_VECTORS 4 |
| 11336 | #define CAMELLIA_DEC_TEST_VECTORS 3 | 11336 | #define CAMELLIA_DEC_TEST_VECTORS 4 |
| 11337 | #define CAMELLIA_CBC_ENC_TEST_VECTORS 2 | 11337 | #define CAMELLIA_CBC_ENC_TEST_VECTORS 3 |
| 11338 | #define CAMELLIA_CBC_DEC_TEST_VECTORS 2 | 11338 | #define CAMELLIA_CBC_DEC_TEST_VECTORS 3 |
| 11339 | #define CAMELLIA_CTR_ENC_TEST_VECTORS 2 | ||
| 11340 | #define CAMELLIA_CTR_DEC_TEST_VECTORS 2 | ||
| 11341 | #define CAMELLIA_LRW_ENC_TEST_VECTORS 8 | ||
| 11342 | #define CAMELLIA_LRW_DEC_TEST_VECTORS 8 | ||
| 11343 | #define CAMELLIA_XTS_ENC_TEST_VECTORS 5 | ||
| 11344 | #define CAMELLIA_XTS_DEC_TEST_VECTORS 5 | ||
| 11339 | 11345 | ||
| 11340 | static struct cipher_testvec camellia_enc_tv_template[] = { | 11346 | static struct cipher_testvec camellia_enc_tv_template[] = { |
| 11341 | { | 11347 | { |
| @@ -11372,6 +11378,27 @@ static struct cipher_testvec camellia_enc_tv_template[] = { | |||
| 11372 | "\x20\xef\x7c\x91\x9e\x3a\x75\x09", | 11378 | "\x20\xef\x7c\x91\x9e\x3a\x75\x09", |
| 11373 | .rlen = 16, | 11379 | .rlen = 16, |
| 11374 | }, | 11380 | }, |
| 11381 | { /* Generated with Crypto++ */ | ||
| 11382 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" | ||
| 11383 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" | ||
| 11384 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" | ||
| 11385 | "\x9B\x78\xBE\x9B\x78\x55\x32\x0F", | ||
| 11386 | .klen = 32, | ||
| 11387 | .input = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11388 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11389 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11390 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11391 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11392 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11393 | .ilen = 48, | ||
| 11394 | .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" | ||
| 11395 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" | ||
| 11396 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" | ||
| 11397 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" | ||
| 11398 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" | ||
| 11399 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A", | ||
| 11400 | .rlen = 48, | ||
| 11401 | }, | ||
| 11375 | }; | 11402 | }; |
| 11376 | 11403 | ||
| 11377 | static struct cipher_testvec camellia_dec_tv_template[] = { | 11404 | static struct cipher_testvec camellia_dec_tv_template[] = { |
| @@ -11409,6 +11436,27 @@ static struct cipher_testvec camellia_dec_tv_template[] = { | |||
| 11409 | "\xfe\xdc\xba\x98\x76\x54\x32\x10", | 11436 | "\xfe\xdc\xba\x98\x76\x54\x32\x10", |
| 11410 | .rlen = 16, | 11437 | .rlen = 16, |
| 11411 | }, | 11438 | }, |
| 11439 | { /* Generated with Crypto++ */ | ||
| 11440 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" | ||
| 11441 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" | ||
| 11442 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" | ||
| 11443 | "\x9B\x78\xBE\x9B\x78\x55\x32\x0F", | ||
| 11444 | .klen = 32, | ||
| 11445 | .input = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" | ||
| 11446 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" | ||
| 11447 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" | ||
| 11448 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" | ||
| 11449 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" | ||
| 11450 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A", | ||
| 11451 | .ilen = 48, | ||
| 11452 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11453 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11454 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11455 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11456 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11457 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11458 | .rlen = 48, | ||
| 11459 | }, | ||
| 11412 | }; | 11460 | }; |
| 11413 | 11461 | ||
| 11414 | static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | 11462 | static struct cipher_testvec camellia_cbc_enc_tv_template[] = { |
| @@ -11440,6 +11488,29 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | |||
| 11440 | "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", | 11488 | "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", |
| 11441 | .rlen = 32, | 11489 | .rlen = 32, |
| 11442 | }, | 11490 | }, |
| 11491 | { /* Generated with Crypto++ */ | ||
| 11492 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11493 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11494 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11495 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11496 | .klen = 32, | ||
| 11497 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11498 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11499 | .input = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11500 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11501 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11502 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11503 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11504 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11505 | .ilen = 48, | ||
| 11506 | .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" | ||
| 11507 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" | ||
| 11508 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" | ||
| 11509 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" | ||
| 11510 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" | ||
| 11511 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01", | ||
| 11512 | .rlen = 48, | ||
| 11513 | }, | ||
| 11443 | }; | 11514 | }; |
| 11444 | 11515 | ||
| 11445 | static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | 11516 | static struct cipher_testvec camellia_cbc_dec_tv_template[] = { |
| @@ -11471,6 +11542,1310 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | |||
| 11471 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", | 11542 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", |
| 11472 | .rlen = 32, | 11543 | .rlen = 32, |
| 11473 | }, | 11544 | }, |
| 11545 | { /* Generated with Crypto++ */ | ||
| 11546 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11547 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11548 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11549 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11550 | .klen = 32, | ||
| 11551 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11552 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11553 | .input = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" | ||
| 11554 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" | ||
| 11555 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" | ||
| 11556 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" | ||
| 11557 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" | ||
| 11558 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01", | ||
| 11559 | .ilen = 48, | ||
| 11560 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11561 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11562 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11563 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11564 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11565 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11566 | .rlen = 48, | ||
| 11567 | }, | ||
| 11568 | }; | ||
| 11569 | |||
| 11570 | static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | ||
| 11571 | { /* Generated with Crypto++ */ | ||
| 11572 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11573 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11574 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11575 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11576 | .klen = 32, | ||
| 11577 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11578 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11579 | .input = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11580 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11581 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11582 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11583 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11584 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11585 | .ilen = 48, | ||
| 11586 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | ||
| 11587 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | ||
| 11588 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | ||
| 11589 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | ||
| 11590 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | ||
| 11591 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C", | ||
| 11592 | .rlen = 48, | ||
| 11593 | }, | ||
| 11594 | { /* Generated with Crypto++ */ | ||
| 11595 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11596 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11597 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11598 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11599 | .klen = 32, | ||
| 11600 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11601 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11602 | .input = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11603 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11604 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11605 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11606 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11607 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" | ||
| 11608 | "\xDF\x76\x0D", | ||
| 11609 | .ilen = 51, | ||
| 11610 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | ||
| 11611 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | ||
| 11612 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | ||
| 11613 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | ||
| 11614 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | ||
| 11615 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" | ||
| 11616 | "\x1E\x43\xEF", | ||
| 11617 | .rlen = 51, | ||
| 11618 | }, | ||
| 11619 | }; | ||
| 11620 | |||
| 11621 | static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | ||
| 11622 | { /* Generated with Crypto++ */ | ||
| 11623 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11624 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11625 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11626 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11627 | .klen = 32, | ||
| 11628 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11629 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11630 | .input = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | ||
| 11631 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | ||
| 11632 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | ||
| 11633 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | ||
| 11634 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | ||
| 11635 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C", | ||
| 11636 | .ilen = 48, | ||
| 11637 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11638 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11639 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11640 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11641 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11642 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | ||
| 11643 | .rlen = 48, | ||
| 11644 | }, | ||
| 11645 | { /* Generated with Crypto++ */ | ||
| 11646 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | ||
| 11647 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | ||
| 11648 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | ||
| 11649 | "\x78\xBE\x9B\x78\x55\x32\x0F\x55", | ||
| 11650 | .klen = 32, | ||
| 11651 | .iv = "\xE2\x24\x89\xEE\x53\xB8\x1D\x5F" | ||
| 11652 | "\xC4\x29\x8E\xF3\x35\x9A\xFF\x64", | ||
| 11653 | .input = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | ||
| 11654 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | ||
| 11655 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | ||
| 11656 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | ||
| 11657 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | ||
| 11658 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" | ||
| 11659 | "\x1E\x43\xEF", | ||
| 11660 | .ilen = 51, | ||
| 11661 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | ||
| 11662 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | ||
| 11663 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | ||
| 11664 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | ||
| 11665 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | ||
| 11666 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" | ||
| 11667 | "\xDF\x76\x0D", | ||
| 11668 | .rlen = 51, | ||
| 11669 | }, | ||
| 11670 | |||
| 11671 | }; | ||
| 11672 | |||
| 11673 | static struct cipher_testvec camellia_lrw_enc_tv_template[] = { | ||
| 11674 | /* Generated from AES-LRW test vectors */ | ||
| 11675 | { | ||
| 11676 | .key = "\x45\x62\xac\x25\xf8\x28\x17\x6d" | ||
| 11677 | "\x4c\x26\x84\x14\xb5\x68\x01\x85" | ||
| 11678 | "\x25\x8e\x2a\x05\xe7\x3e\x9d\x03" | ||
| 11679 | "\xee\x5a\x83\x0c\xcc\x09\x4c\x87", | ||
| 11680 | .klen = 32, | ||
| 11681 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11682 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11683 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11684 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11685 | .ilen = 16, | ||
| 11686 | .result = "\x92\x68\x19\xd7\xb7\x5b\x0a\x31" | ||
| 11687 | "\x97\xcc\x72\xbe\x99\x17\xeb\x3e", | ||
| 11688 | .rlen = 16, | ||
| 11689 | }, { | ||
| 11690 | .key = "\x59\x70\x47\x14\xf5\x57\x47\x8c" | ||
| 11691 | "\xd7\x79\xe8\x0f\x54\x88\x79\x44" | ||
| 11692 | "\x0d\x48\xf0\xb7\xb1\x5a\x53\xea" | ||
| 11693 | "\x1c\xaa\x6b\x29\xc2\xca\xfb\xaf", | ||
| 11694 | .klen = 32, | ||
| 11695 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11696 | "\x00\x00\x00\x00\x00\x00\x00\x02", | ||
| 11697 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11698 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11699 | .ilen = 16, | ||
| 11700 | .result = "\x73\x09\xb7\x50\xb6\x77\x30\x50" | ||
| 11701 | "\x5c\x8a\x9c\x26\x77\x9d\xfc\x4a", | ||
| 11702 | .rlen = 16, | ||
| 11703 | }, { | ||
| 11704 | .key = "\xd8\x2a\x91\x34\xb2\x6a\x56\x50" | ||
| 11705 | "\x30\xfe\x69\xe2\x37\x7f\x98\x47" | ||
| 11706 | "\xcd\xf9\x0b\x16\x0c\x64\x8f\xb6" | ||
| 11707 | "\xb0\x0d\x0d\x1b\xae\x85\x87\x1f", | ||
| 11708 | .klen = 32, | ||
| 11709 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11710 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 11711 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11712 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11713 | .ilen = 16, | ||
| 11714 | .result = "\x90\xae\x83\xe0\x22\xb9\x60\x91" | ||
| 11715 | "\xfa\xa9\xb7\x98\xe3\xed\x87\x01", | ||
| 11716 | .rlen = 16, | ||
| 11717 | }, { | ||
| 11718 | .key = "\x0f\x6a\xef\xf8\xd3\xd2\xbb\x15" | ||
| 11719 | "\x25\x83\xf7\x3c\x1f\x01\x28\x74" | ||
| 11720 | "\xca\xc6\xbc\x35\x4d\x4a\x65\x54" | ||
| 11721 | "\x90\xae\x61\xcf\x7b\xae\xbd\xcc" | ||
| 11722 | "\xad\xe4\x94\xc5\x4a\x29\xae\x70", | ||
| 11723 | .klen = 40, | ||
| 11724 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11725 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11726 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11727 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11728 | .ilen = 16, | ||
| 11729 | .result = "\x99\xe9\x6e\xd4\xc9\x21\xa5\xf0" | ||
| 11730 | "\xd8\x83\xef\xd9\x07\x16\x5f\x35", | ||
| 11731 | .rlen = 16, | ||
| 11732 | }, { | ||
| 11733 | .key = "\x8a\xd4\xee\x10\x2f\xbd\x81\xff" | ||
| 11734 | "\xf8\x86\xce\xac\x93\xc5\xad\xc6" | ||
| 11735 | "\xa0\x19\x07\xc0\x9d\xf7\xbb\xdd" | ||
| 11736 | "\x52\x13\xb2\xb7\xf0\xff\x11\xd8" | ||
| 11737 | "\xd6\x08\xd0\xcd\x2e\xb1\x17\x6f", | ||
| 11738 | .klen = 40, | ||
| 11739 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11740 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 11741 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11742 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11743 | .ilen = 16, | ||
| 11744 | .result = "\x42\x88\xf4\xcb\x21\x11\x6d\x8e" | ||
| 11745 | "\xde\x1a\xf2\x29\xf1\x4a\xe0\x15", | ||
| 11746 | .rlen = 16, | ||
| 11747 | }, { | ||
| 11748 | .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" | ||
| 11749 | "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" | ||
| 11750 | "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" | ||
| 11751 | "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" | ||
| 11752 | "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" | ||
| 11753 | "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", | ||
| 11754 | .klen = 48, | ||
| 11755 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11756 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11757 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11758 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11759 | .ilen = 16, | ||
| 11760 | .result = "\x40\xaa\x34\x86\x4a\x8f\x78\xb9" | ||
| 11761 | "\xdb\xdb\x0f\x3d\x48\x70\xbe\x8d", | ||
| 11762 | .rlen = 16, | ||
| 11763 | }, { | ||
| 11764 | .key = "\xfb\x76\x15\xb2\x3d\x80\x89\x1d" | ||
| 11765 | "\xd4\x70\x98\x0b\xc7\x95\x84\xc8" | ||
| 11766 | "\xb2\xfb\x64\xce\x60\x97\x87\x8d" | ||
| 11767 | "\x17\xfc\xe4\x5a\x49\xe8\x30\xb7" | ||
| 11768 | "\x6e\x78\x17\xe7\x2d\x5e\x12\xd4" | ||
| 11769 | "\x60\x64\x04\x7a\xf1\x2f\x9e\x0c", | ||
| 11770 | .klen = 48, | ||
| 11771 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11772 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 11773 | .input = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11774 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11775 | .ilen = 16, | ||
| 11776 | .result = "\x04\xab\x28\x37\x31\x7a\x26\xab" | ||
| 11777 | "\xa1\x70\x1b\x9c\xe7\xdd\x83\xff", | ||
| 11778 | .rlen = 16, | ||
| 11779 | }, { | ||
| 11780 | .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" | ||
| 11781 | "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" | ||
| 11782 | "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" | ||
| 11783 | "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" | ||
| 11784 | "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" | ||
| 11785 | "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", | ||
| 11786 | .klen = 48, | ||
| 11787 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11788 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11789 | .input = "\x05\x11\xb7\x18\xab\xc6\x2d\xac" | ||
| 11790 | "\x70\x5d\xf6\x22\x94\xcd\xe5\x6c" | ||
| 11791 | "\x17\x6b\xf6\x1c\xf0\xf3\x6e\xf8" | ||
| 11792 | "\x50\x38\x1f\x71\x49\xb6\x57\xd6" | ||
| 11793 | "\x8f\xcb\x8d\x6b\xe3\xa6\x29\x90" | ||
| 11794 | "\xfe\x2a\x62\x82\xae\x6d\x8b\xf6" | ||
| 11795 | "\xad\x1e\x9e\x20\x5f\x38\xbe\x04" | ||
| 11796 | "\xda\x10\x8e\xed\xa2\xa4\x87\xab" | ||
| 11797 | "\xda\x6b\xb4\x0c\x75\xba\xd3\x7c" | ||
| 11798 | "\xc9\xac\x42\x31\x95\x7c\xc9\x04" | ||
| 11799 | "\xeb\xd5\x6e\x32\x69\x8a\xdb\xa6" | ||
| 11800 | "\x15\xd7\x3f\x4f\x2f\x66\x69\x03" | ||
| 11801 | "\x9c\x1f\x54\x0f\xde\x1f\xf3\x65" | ||
| 11802 | "\x4c\x96\x12\xed\x7c\x92\x03\x01" | ||
| 11803 | "\x6f\xbc\x35\x93\xac\xf1\x27\xf1" | ||
| 11804 | "\xb4\x96\x82\x5a\x5f\xb0\xa0\x50" | ||
| 11805 | "\x89\xa4\x8e\x66\x44\x85\xcc\xfd" | ||
| 11806 | "\x33\x14\x70\xe3\x96\xb2\xc3\xd3" | ||
| 11807 | "\xbb\x54\x5a\x1a\xf9\x74\xa2\xc5" | ||
| 11808 | "\x2d\x64\x75\xdd\xb4\x54\xe6\x74" | ||
| 11809 | "\x8c\xd3\x9d\x9e\x86\xab\x51\x53" | ||
| 11810 | "\xb7\x93\x3e\x6f\xd0\x4e\x2c\x40" | ||
| 11811 | "\xf6\xa8\x2e\x3e\x9d\xf4\x66\xa5" | ||
| 11812 | "\x76\x12\x73\x44\x1a\x56\xd7\x72" | ||
| 11813 | "\x88\xcd\x21\x8c\x4c\x0f\xfe\xda" | ||
| 11814 | "\x95\xe0\x3a\xa6\xa5\x84\x46\xcd" | ||
| 11815 | "\xd5\x3e\x9d\x3a\xe2\x67\xe6\x60" | ||
| 11816 | "\x1a\xe2\x70\x85\x58\xc2\x1b\x09" | ||
| 11817 | "\xe1\xd7\x2c\xca\xad\xa8\x8f\xf9" | ||
| 11818 | "\xac\xb3\x0e\xdb\xca\x2e\xe2\xb8" | ||
| 11819 | "\x51\x71\xd9\x3c\x6c\xf1\x56\xf8" | ||
| 11820 | "\xea\x9c\xf1\xfb\x0c\xe6\xb7\x10" | ||
| 11821 | "\x1c\xf8\xa9\x7c\xe8\x53\x35\xc1" | ||
| 11822 | "\x90\x3e\x76\x4a\x74\xa4\x21\x2c" | ||
| 11823 | "\xf6\x2c\x4e\x0f\x94\x3a\x88\x2e" | ||
| 11824 | "\x41\x09\x6a\x33\x7d\xf6\xdd\x3f" | ||
| 11825 | "\x8d\x23\x31\x74\x84\xeb\x88\x6e" | ||
| 11826 | "\xcc\xb9\xbc\x22\x83\x19\x07\x22" | ||
| 11827 | "\xa5\x2d\xdf\xa5\xf3\x80\x85\x78" | ||
| 11828 | "\x84\x39\x6a\x6d\x6a\x99\x4f\xa5" | ||
| 11829 | "\x15\xfe\x46\xb0\xe4\x6c\xa5\x41" | ||
| 11830 | "\x3c\xce\x8f\x42\x60\x71\xa7\x75" | ||
| 11831 | "\x08\x40\x65\x8a\x82\xbf\xf5\x43" | ||
| 11832 | "\x71\x96\xa9\x4d\x44\x8a\x20\xbe" | ||
| 11833 | "\xfa\x4d\xbb\xc0\x7d\x31\x96\x65" | ||
| 11834 | "\xe7\x75\xe5\x3e\xfd\x92\x3b\xc9" | ||
| 11835 | "\x55\xbb\x16\x7e\xf7\xc2\x8c\xa4" | ||
| 11836 | "\x40\x1d\xe5\xef\x0e\xdf\xe4\x9a" | ||
| 11837 | "\x62\x73\x65\xfd\x46\x63\x25\x3d" | ||
| 11838 | "\x2b\xaf\xe5\x64\xfe\xa5\x5c\xcf" | ||
| 11839 | "\x24\xf3\xb4\xac\x64\xba\xdf\x4b" | ||
| 11840 | "\xc6\x96\x7d\x81\x2d\x8d\x97\xf7" | ||
| 11841 | "\xc5\x68\x77\x84\x32\x2b\xcc\x85" | ||
| 11842 | "\x74\x96\xf0\x12\x77\x61\xb9\xeb" | ||
| 11843 | "\x71\xaa\x82\xcb\x1c\xdb\x89\xc8" | ||
| 11844 | "\xc6\xb5\xe3\x5c\x7d\x39\x07\x24" | ||
| 11845 | "\xda\x39\x87\x45\xc0\x2b\xbb\x01" | ||
| 11846 | "\xac\xbc\x2a\x5c\x7f\xfc\xe8\xce" | ||
| 11847 | "\x6d\x9c\x6f\xed\xd3\xc1\xa1\xd6" | ||
| 11848 | "\xc5\x55\xa9\x66\x2f\xe1\xc8\x32" | ||
| 11849 | "\xa6\x5d\xa4\x3a\x98\x73\xe8\x45" | ||
| 11850 | "\xa4\xc7\xa8\xb4\xf6\x13\x03\xf6" | ||
| 11851 | "\xe9\x2e\xc4\x29\x0f\x84\xdb\xc4" | ||
| 11852 | "\x21\xc4\xc2\x75\x67\x89\x37\x0a", | ||
| 11853 | .ilen = 512, | ||
| 11854 | .result = "\x90\x69\x8e\xf2\x14\x86\x59\xf9" | ||
| 11855 | "\xec\xe7\xfa\x3f\x48\x9d\x7f\x96" | ||
| 11856 | "\x67\x76\xac\x2c\xd2\x63\x18\x93" | ||
| 11857 | "\x13\xf8\xf1\xf6\x71\x77\xb3\xee" | ||
| 11858 | "\x93\xb2\xcc\xf3\x26\xc1\x16\x4f" | ||
| 11859 | "\xd4\xe8\x43\xc1\x68\xa3\x3e\x06" | ||
| 11860 | "\x38\x51\xff\xa8\xb9\xa4\xeb\xb1" | ||
| 11861 | "\x62\xdd\x78\x81\xea\x1d\xef\x04" | ||
| 11862 | "\x1d\x07\xc1\x67\xc8\xd6\x77\xa1" | ||
| 11863 | "\x84\x95\xf4\x9a\xd9\xbc\x2d\xe2" | ||
| 11864 | "\xf6\x80\xfc\x91\x2a\xbc\x42\xa0" | ||
| 11865 | "\x40\x41\x69\xaa\x71\xc0\x37\xec" | ||
| 11866 | "\x39\xf3\xf2\xec\x82\xc3\x88\x79" | ||
| 11867 | "\xbc\xc3\xaa\xb7\xcf\x6a\x72\x80" | ||
| 11868 | "\x4c\xf4\x84\x8f\x13\x9e\x94\x5c" | ||
| 11869 | "\xe5\xb2\x91\xbb\x92\x51\x4d\xf1" | ||
| 11870 | "\xd6\x0d\x71\x6b\x7a\xc2\x2f\x12" | ||
| 11871 | "\x6f\x75\xc7\x80\x99\x50\x84\xcf" | ||
| 11872 | "\xa8\xeb\xd6\xe1\x1c\x59\x81\x7e" | ||
| 11873 | "\xb9\xb3\xde\x7a\x93\x14\x12\xa2" | ||
| 11874 | "\xf7\x43\xb3\x9d\x1a\x87\x65\x91" | ||
| 11875 | "\x42\x08\x40\x82\x06\x1c\x2d\x55" | ||
| 11876 | "\x6e\x48\xd5\x74\x07\x6e\x9d\x80" | ||
| 11877 | "\xeb\xb4\x97\xa1\x36\xdf\xfa\x74" | ||
| 11878 | "\x79\x7f\x5a\x75\xe7\x71\xc8\x8c" | ||
| 11879 | "\x7e\xf8\x3a\x77\xcd\x32\x05\xf9" | ||
| 11880 | "\x3d\xd4\xe9\xa2\xbb\xc4\x8b\x83" | ||
| 11881 | "\x42\x5c\x82\xfa\xe9\x4b\x96\x3b" | ||
| 11882 | "\x7f\x89\x8b\xf9\xf1\x87\xda\xf0" | ||
| 11883 | "\x87\xef\x13\x5d\xf0\xe2\xc5\xc1" | ||
| 11884 | "\xed\x14\xa9\x57\x19\x63\x40\x04" | ||
| 11885 | "\x24\xeb\x6e\x19\xd1\x3d\x70\x78" | ||
| 11886 | "\xeb\xda\x55\x70\x2c\x4f\x41\x5b" | ||
| 11887 | "\x56\x9f\x1a\xd3\xac\xf1\xc0\xc3" | ||
| 11888 | "\x21\xec\xd7\xd2\x55\x32\x7c\x2e" | ||
| 11889 | "\x3c\x48\x8e\xb4\x85\x35\x47\xfe" | ||
| 11890 | "\xe2\x88\x79\x98\x6a\xc9\x8d\xff" | ||
| 11891 | "\xe9\x89\x6e\xb8\xe2\x97\x00\xbd" | ||
| 11892 | "\xa4\x8f\xba\xd0\x8c\xcb\x79\x99" | ||
| 11893 | "\xb3\xb2\xb2\x7a\xc3\xb7\xef\x75" | ||
| 11894 | "\x23\x52\x76\xc3\x50\x6e\x66\xf8" | ||
| 11895 | "\xa2\xe2\xce\xba\x40\x21\x3f\xc9" | ||
| 11896 | "\x0a\x32\x7f\xf7\x08\x8c\x66\xcf" | ||
| 11897 | "\xd3\xdf\x57\x59\x83\xb8\xe1\x85" | ||
| 11898 | "\xd6\x8f\xfb\x48\x1f\x3a\xc4\x2f" | ||
| 11899 | "\xb4\x2d\x58\xab\xd8\x7f\x5e\x3a" | ||
| 11900 | "\xbc\x62\x3e\xe2\x6a\x52\x0d\x76" | ||
| 11901 | "\x2f\x1c\x1a\x30\xed\x95\x2a\x44" | ||
| 11902 | "\x35\xa5\x83\x04\x84\x01\x99\x56" | ||
| 11903 | "\xb7\xe3\x10\x96\xfa\xdc\x19\xdd" | ||
| 11904 | "\xe2\x7f\xcb\xa0\x49\x1b\xff\x4c" | ||
| 11905 | "\x73\xf6\xbb\x94\x00\xe8\xa9\x3d" | ||
| 11906 | "\xe2\x20\xe9\x3f\xfa\x07\x5d\x77" | ||
| 11907 | "\x06\xd5\x4f\x4d\x02\xb8\x40\x1b" | ||
| 11908 | "\x30\xed\x1a\x50\x19\xef\xc4\x2c" | ||
| 11909 | "\x02\xd9\xc5\xd3\x11\x33\x37\xe5" | ||
| 11910 | "\x2b\xa3\x95\xa6\xee\xd8\x74\x1d" | ||
| 11911 | "\x68\xa0\xeb\xbf\xdd\x5e\x99\x96" | ||
| 11912 | "\x91\xc3\x94\x24\xa5\x12\xa2\x37" | ||
| 11913 | "\xb3\xac\xcf\x2a\xfd\x55\x34\xfe" | ||
| 11914 | "\x79\x92\x3e\xe6\x1b\x49\x57\x5d" | ||
| 11915 | "\x93\x6c\x01\xf7\xcc\x4e\x20\xd1" | ||
| 11916 | "\xb2\x1a\xd8\x4c\xbd\x1d\x10\xe9" | ||
| 11917 | "\x5a\xa8\x92\x7f\xba\xe6\x0c\x95", | ||
| 11918 | .rlen = 512, | ||
| 11919 | }, | ||
| 11920 | }; | ||
| 11921 | |||
| 11922 | static struct cipher_testvec camellia_lrw_dec_tv_template[] = { | ||
| 11923 | /* Generated from AES-LRW test vectors */ | ||
| 11924 | /* same as enc vectors with input and result reversed */ | ||
| 11925 | { | ||
| 11926 | .key = "\x45\x62\xac\x25\xf8\x28\x17\x6d" | ||
| 11927 | "\x4c\x26\x84\x14\xb5\x68\x01\x85" | ||
| 11928 | "\x25\x8e\x2a\x05\xe7\x3e\x9d\x03" | ||
| 11929 | "\xee\x5a\x83\x0c\xcc\x09\x4c\x87", | ||
| 11930 | .klen = 32, | ||
| 11931 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11932 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11933 | .input = "\x92\x68\x19\xd7\xb7\x5b\x0a\x31" | ||
| 11934 | "\x97\xcc\x72\xbe\x99\x17\xeb\x3e", | ||
| 11935 | .ilen = 16, | ||
| 11936 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11937 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11938 | .rlen = 16, | ||
| 11939 | }, { | ||
| 11940 | .key = "\x59\x70\x47\x14\xf5\x57\x47\x8c" | ||
| 11941 | "\xd7\x79\xe8\x0f\x54\x88\x79\x44" | ||
| 11942 | "\x0d\x48\xf0\xb7\xb1\x5a\x53\xea" | ||
| 11943 | "\x1c\xaa\x6b\x29\xc2\xca\xfb\xaf", | ||
| 11944 | .klen = 32, | ||
| 11945 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11946 | "\x00\x00\x00\x00\x00\x00\x00\x02", | ||
| 11947 | .input = "\x73\x09\xb7\x50\xb6\x77\x30\x50" | ||
| 11948 | "\x5c\x8a\x9c\x26\x77\x9d\xfc\x4a", | ||
| 11949 | .ilen = 16, | ||
| 11950 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11951 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11952 | .rlen = 16, | ||
| 11953 | }, { | ||
| 11954 | .key = "\xd8\x2a\x91\x34\xb2\x6a\x56\x50" | ||
| 11955 | "\x30\xfe\x69\xe2\x37\x7f\x98\x47" | ||
| 11956 | "\xcd\xf9\x0b\x16\x0c\x64\x8f\xb6" | ||
| 11957 | "\xb0\x0d\x0d\x1b\xae\x85\x87\x1f", | ||
| 11958 | .klen = 32, | ||
| 11959 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11960 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 11961 | .input = "\x90\xae\x83\xe0\x22\xb9\x60\x91" | ||
| 11962 | "\xfa\xa9\xb7\x98\xe3\xed\x87\x01", | ||
| 11963 | .ilen = 16, | ||
| 11964 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11965 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11966 | .rlen = 16, | ||
| 11967 | }, { | ||
| 11968 | .key = "\x0f\x6a\xef\xf8\xd3\xd2\xbb\x15" | ||
| 11969 | "\x25\x83\xf7\x3c\x1f\x01\x28\x74" | ||
| 11970 | "\xca\xc6\xbc\x35\x4d\x4a\x65\x54" | ||
| 11971 | "\x90\xae\x61\xcf\x7b\xae\xbd\xcc" | ||
| 11972 | "\xad\xe4\x94\xc5\x4a\x29\xae\x70", | ||
| 11973 | .klen = 40, | ||
| 11974 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11975 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 11976 | .input = "\x99\xe9\x6e\xd4\xc9\x21\xa5\xf0" | ||
| 11977 | "\xd8\x83\xef\xd9\x07\x16\x5f\x35", | ||
| 11978 | .ilen = 16, | ||
| 11979 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11980 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11981 | .rlen = 16, | ||
| 11982 | }, { | ||
| 11983 | .key = "\x8a\xd4\xee\x10\x2f\xbd\x81\xff" | ||
| 11984 | "\xf8\x86\xce\xac\x93\xc5\xad\xc6" | ||
| 11985 | "\xa0\x19\x07\xc0\x9d\xf7\xbb\xdd" | ||
| 11986 | "\x52\x13\xb2\xb7\xf0\xff\x11\xd8" | ||
| 11987 | "\xd6\x08\xd0\xcd\x2e\xb1\x17\x6f", | ||
| 11988 | .klen = 40, | ||
| 11989 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 11990 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 11991 | .input = "\x42\x88\xf4\xcb\x21\x11\x6d\x8e" | ||
| 11992 | "\xde\x1a\xf2\x29\xf1\x4a\xe0\x15", | ||
| 11993 | .ilen = 16, | ||
| 11994 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 11995 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 11996 | .rlen = 16, | ||
| 11997 | }, { | ||
| 11998 | .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" | ||
| 11999 | "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" | ||
| 12000 | "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" | ||
| 12001 | "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" | ||
| 12002 | "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" | ||
| 12003 | "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", | ||
| 12004 | .klen = 48, | ||
| 12005 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12006 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 12007 | .input = "\x40\xaa\x34\x86\x4a\x8f\x78\xb9" | ||
| 12008 | "\xdb\xdb\x0f\x3d\x48\x70\xbe\x8d", | ||
| 12009 | .ilen = 16, | ||
| 12010 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12011 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 12012 | .rlen = 16, | ||
| 12013 | }, { | ||
| 12014 | .key = "\xfb\x76\x15\xb2\x3d\x80\x89\x1d" | ||
| 12015 | "\xd4\x70\x98\x0b\xc7\x95\x84\xc8" | ||
| 12016 | "\xb2\xfb\x64\xce\x60\x97\x87\x8d" | ||
| 12017 | "\x17\xfc\xe4\x5a\x49\xe8\x30\xb7" | ||
| 12018 | "\x6e\x78\x17\xe7\x2d\x5e\x12\xd4" | ||
| 12019 | "\x60\x64\x04\x7a\xf1\x2f\x9e\x0c", | ||
| 12020 | .klen = 48, | ||
| 12021 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12022 | "\x00\x00\x00\x02\x00\x00\x00\x00", | ||
| 12023 | .input = "\x04\xab\x28\x37\x31\x7a\x26\xab" | ||
| 12024 | "\xa1\x70\x1b\x9c\xe7\xdd\x83\xff", | ||
| 12025 | .ilen = 16, | ||
| 12026 | .result = "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12027 | "\x38\x39\x41\x42\x43\x44\x45\x46", | ||
| 12028 | .rlen = 16, | ||
| 12029 | }, { | ||
| 12030 | .key = "\xf8\xd4\x76\xff\xd6\x46\xee\x6c" | ||
| 12031 | "\x23\x84\xcb\x1c\x77\xd6\x19\x5d" | ||
| 12032 | "\xfe\xf1\xa9\xf3\x7b\xbc\x8d\x21" | ||
| 12033 | "\xa7\x9c\x21\xf8\xcb\x90\x02\x89" | ||
| 12034 | "\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1" | ||
| 12035 | "\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e", | ||
| 12036 | .klen = 48, | ||
| 12037 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12038 | "\x00\x00\x00\x00\x00\x00\x00\x01", | ||
| 12039 | .input = "\x90\x69\x8e\xf2\x14\x86\x59\xf9" | ||
| 12040 | "\xec\xe7\xfa\x3f\x48\x9d\x7f\x96" | ||
| 12041 | "\x67\x76\xac\x2c\xd2\x63\x18\x93" | ||
| 12042 | "\x13\xf8\xf1\xf6\x71\x77\xb3\xee" | ||
| 12043 | "\x93\xb2\xcc\xf3\x26\xc1\x16\x4f" | ||
| 12044 | "\xd4\xe8\x43\xc1\x68\xa3\x3e\x06" | ||
| 12045 | "\x38\x51\xff\xa8\xb9\xa4\xeb\xb1" | ||
| 12046 | "\x62\xdd\x78\x81\xea\x1d\xef\x04" | ||
| 12047 | "\x1d\x07\xc1\x67\xc8\xd6\x77\xa1" | ||
| 12048 | "\x84\x95\xf4\x9a\xd9\xbc\x2d\xe2" | ||
| 12049 | "\xf6\x80\xfc\x91\x2a\xbc\x42\xa0" | ||
| 12050 | "\x40\x41\x69\xaa\x71\xc0\x37\xec" | ||
| 12051 | "\x39\xf3\xf2\xec\x82\xc3\x88\x79" | ||
| 12052 | "\xbc\xc3\xaa\xb7\xcf\x6a\x72\x80" | ||
| 12053 | "\x4c\xf4\x84\x8f\x13\x9e\x94\x5c" | ||
| 12054 | "\xe5\xb2\x91\xbb\x92\x51\x4d\xf1" | ||
| 12055 | "\xd6\x0d\x71\x6b\x7a\xc2\x2f\x12" | ||
| 12056 | "\x6f\x75\xc7\x80\x99\x50\x84\xcf" | ||
| 12057 | "\xa8\xeb\xd6\xe1\x1c\x59\x81\x7e" | ||
| 12058 | "\xb9\xb3\xde\x7a\x93\x14\x12\xa2" | ||
| 12059 | "\xf7\x43\xb3\x9d\x1a\x87\x65\x91" | ||
| 12060 | "\x42\x08\x40\x82\x06\x1c\x2d\x55" | ||
| 12061 | "\x6e\x48\xd5\x74\x07\x6e\x9d\x80" | ||
| 12062 | "\xeb\xb4\x97\xa1\x36\xdf\xfa\x74" | ||
| 12063 | "\x79\x7f\x5a\x75\xe7\x71\xc8\x8c" | ||
| 12064 | "\x7e\xf8\x3a\x77\xcd\x32\x05\xf9" | ||
| 12065 | "\x3d\xd4\xe9\xa2\xbb\xc4\x8b\x83" | ||
| 12066 | "\x42\x5c\x82\xfa\xe9\x4b\x96\x3b" | ||
| 12067 | "\x7f\x89\x8b\xf9\xf1\x87\xda\xf0" | ||
| 12068 | "\x87\xef\x13\x5d\xf0\xe2\xc5\xc1" | ||
| 12069 | "\xed\x14\xa9\x57\x19\x63\x40\x04" | ||
| 12070 | "\x24\xeb\x6e\x19\xd1\x3d\x70\x78" | ||
| 12071 | "\xeb\xda\x55\x70\x2c\x4f\x41\x5b" | ||
| 12072 | "\x56\x9f\x1a\xd3\xac\xf1\xc0\xc3" | ||
| 12073 | "\x21\xec\xd7\xd2\x55\x32\x7c\x2e" | ||
| 12074 | "\x3c\x48\x8e\xb4\x85\x35\x47\xfe" | ||
| 12075 | "\xe2\x88\x79\x98\x6a\xc9\x8d\xff" | ||
| 12076 | "\xe9\x89\x6e\xb8\xe2\x97\x00\xbd" | ||
| 12077 | "\xa4\x8f\xba\xd0\x8c\xcb\x79\x99" | ||
| 12078 | "\xb3\xb2\xb2\x7a\xc3\xb7\xef\x75" | ||
| 12079 | "\x23\x52\x76\xc3\x50\x6e\x66\xf8" | ||
| 12080 | "\xa2\xe2\xce\xba\x40\x21\x3f\xc9" | ||
| 12081 | "\x0a\x32\x7f\xf7\x08\x8c\x66\xcf" | ||
| 12082 | "\xd3\xdf\x57\x59\x83\xb8\xe1\x85" | ||
| 12083 | "\xd6\x8f\xfb\x48\x1f\x3a\xc4\x2f" | ||
| 12084 | "\xb4\x2d\x58\xab\xd8\x7f\x5e\x3a" | ||
| 12085 | "\xbc\x62\x3e\xe2\x6a\x52\x0d\x76" | ||
| 12086 | "\x2f\x1c\x1a\x30\xed\x95\x2a\x44" | ||
| 12087 | "\x35\xa5\x83\x04\x84\x01\x99\x56" | ||
| 12088 | "\xb7\xe3\x10\x96\xfa\xdc\x19\xdd" | ||
| 12089 | "\xe2\x7f\xcb\xa0\x49\x1b\xff\x4c" | ||
| 12090 | "\x73\xf6\xbb\x94\x00\xe8\xa9\x3d" | ||
| 12091 | "\xe2\x20\xe9\x3f\xfa\x07\x5d\x77" | ||
| 12092 | "\x06\xd5\x4f\x4d\x02\xb8\x40\x1b" | ||
| 12093 | "\x30\xed\x1a\x50\x19\xef\xc4\x2c" | ||
| 12094 | "\x02\xd9\xc5\xd3\x11\x33\x37\xe5" | ||
| 12095 | "\x2b\xa3\x95\xa6\xee\xd8\x74\x1d" | ||
| 12096 | "\x68\xa0\xeb\xbf\xdd\x5e\x99\x96" | ||
| 12097 | "\x91\xc3\x94\x24\xa5\x12\xa2\x37" | ||
| 12098 | "\xb3\xac\xcf\x2a\xfd\x55\x34\xfe" | ||
| 12099 | "\x79\x92\x3e\xe6\x1b\x49\x57\x5d" | ||
| 12100 | "\x93\x6c\x01\xf7\xcc\x4e\x20\xd1" | ||
| 12101 | "\xb2\x1a\xd8\x4c\xbd\x1d\x10\xe9" | ||
| 12102 | "\x5a\xa8\x92\x7f\xba\xe6\x0c\x95", | ||
| 12103 | .ilen = 512, | ||
| 12104 | .result = "\x05\x11\xb7\x18\xab\xc6\x2d\xac" | ||
| 12105 | "\x70\x5d\xf6\x22\x94\xcd\xe5\x6c" | ||
| 12106 | "\x17\x6b\xf6\x1c\xf0\xf3\x6e\xf8" | ||
| 12107 | "\x50\x38\x1f\x71\x49\xb6\x57\xd6" | ||
| 12108 | "\x8f\xcb\x8d\x6b\xe3\xa6\x29\x90" | ||
| 12109 | "\xfe\x2a\x62\x82\xae\x6d\x8b\xf6" | ||
| 12110 | "\xad\x1e\x9e\x20\x5f\x38\xbe\x04" | ||
| 12111 | "\xda\x10\x8e\xed\xa2\xa4\x87\xab" | ||
| 12112 | "\xda\x6b\xb4\x0c\x75\xba\xd3\x7c" | ||
| 12113 | "\xc9\xac\x42\x31\x95\x7c\xc9\x04" | ||
| 12114 | "\xeb\xd5\x6e\x32\x69\x8a\xdb\xa6" | ||
| 12115 | "\x15\xd7\x3f\x4f\x2f\x66\x69\x03" | ||
| 12116 | "\x9c\x1f\x54\x0f\xde\x1f\xf3\x65" | ||
| 12117 | "\x4c\x96\x12\xed\x7c\x92\x03\x01" | ||
| 12118 | "\x6f\xbc\x35\x93\xac\xf1\x27\xf1" | ||
| 12119 | "\xb4\x96\x82\x5a\x5f\xb0\xa0\x50" | ||
| 12120 | "\x89\xa4\x8e\x66\x44\x85\xcc\xfd" | ||
| 12121 | "\x33\x14\x70\xe3\x96\xb2\xc3\xd3" | ||
| 12122 | "\xbb\x54\x5a\x1a\xf9\x74\xa2\xc5" | ||
| 12123 | "\x2d\x64\x75\xdd\xb4\x54\xe6\x74" | ||
| 12124 | "\x8c\xd3\x9d\x9e\x86\xab\x51\x53" | ||
| 12125 | "\xb7\x93\x3e\x6f\xd0\x4e\x2c\x40" | ||
| 12126 | "\xf6\xa8\x2e\x3e\x9d\xf4\x66\xa5" | ||
| 12127 | "\x76\x12\x73\x44\x1a\x56\xd7\x72" | ||
| 12128 | "\x88\xcd\x21\x8c\x4c\x0f\xfe\xda" | ||
| 12129 | "\x95\xe0\x3a\xa6\xa5\x84\x46\xcd" | ||
| 12130 | "\xd5\x3e\x9d\x3a\xe2\x67\xe6\x60" | ||
| 12131 | "\x1a\xe2\x70\x85\x58\xc2\x1b\x09" | ||
| 12132 | "\xe1\xd7\x2c\xca\xad\xa8\x8f\xf9" | ||
| 12133 | "\xac\xb3\x0e\xdb\xca\x2e\xe2\xb8" | ||
| 12134 | "\x51\x71\xd9\x3c\x6c\xf1\x56\xf8" | ||
| 12135 | "\xea\x9c\xf1\xfb\x0c\xe6\xb7\x10" | ||
| 12136 | "\x1c\xf8\xa9\x7c\xe8\x53\x35\xc1" | ||
| 12137 | "\x90\x3e\x76\x4a\x74\xa4\x21\x2c" | ||
| 12138 | "\xf6\x2c\x4e\x0f\x94\x3a\x88\x2e" | ||
| 12139 | "\x41\x09\x6a\x33\x7d\xf6\xdd\x3f" | ||
| 12140 | "\x8d\x23\x31\x74\x84\xeb\x88\x6e" | ||
| 12141 | "\xcc\xb9\xbc\x22\x83\x19\x07\x22" | ||
| 12142 | "\xa5\x2d\xdf\xa5\xf3\x80\x85\x78" | ||
| 12143 | "\x84\x39\x6a\x6d\x6a\x99\x4f\xa5" | ||
| 12144 | "\x15\xfe\x46\xb0\xe4\x6c\xa5\x41" | ||
| 12145 | "\x3c\xce\x8f\x42\x60\x71\xa7\x75" | ||
| 12146 | "\x08\x40\x65\x8a\x82\xbf\xf5\x43" | ||
| 12147 | "\x71\x96\xa9\x4d\x44\x8a\x20\xbe" | ||
| 12148 | "\xfa\x4d\xbb\xc0\x7d\x31\x96\x65" | ||
| 12149 | "\xe7\x75\xe5\x3e\xfd\x92\x3b\xc9" | ||
| 12150 | "\x55\xbb\x16\x7e\xf7\xc2\x8c\xa4" | ||
| 12151 | "\x40\x1d\xe5\xef\x0e\xdf\xe4\x9a" | ||
| 12152 | "\x62\x73\x65\xfd\x46\x63\x25\x3d" | ||
| 12153 | "\x2b\xaf\xe5\x64\xfe\xa5\x5c\xcf" | ||
| 12154 | "\x24\xf3\xb4\xac\x64\xba\xdf\x4b" | ||
| 12155 | "\xc6\x96\x7d\x81\x2d\x8d\x97\xf7" | ||
| 12156 | "\xc5\x68\x77\x84\x32\x2b\xcc\x85" | ||
| 12157 | "\x74\x96\xf0\x12\x77\x61\xb9\xeb" | ||
| 12158 | "\x71\xaa\x82\xcb\x1c\xdb\x89\xc8" | ||
| 12159 | "\xc6\xb5\xe3\x5c\x7d\x39\x07\x24" | ||
| 12160 | "\xda\x39\x87\x45\xc0\x2b\xbb\x01" | ||
| 12161 | "\xac\xbc\x2a\x5c\x7f\xfc\xe8\xce" | ||
| 12162 | "\x6d\x9c\x6f\xed\xd3\xc1\xa1\xd6" | ||
| 12163 | "\xc5\x55\xa9\x66\x2f\xe1\xc8\x32" | ||
| 12164 | "\xa6\x5d\xa4\x3a\x98\x73\xe8\x45" | ||
| 12165 | "\xa4\xc7\xa8\xb4\xf6\x13\x03\xf6" | ||
| 12166 | "\xe9\x2e\xc4\x29\x0f\x84\xdb\xc4" | ||
| 12167 | "\x21\xc4\xc2\x75\x67\x89\x37\x0a", | ||
| 12168 | .rlen = 512, | ||
| 12169 | }, | ||
| 12170 | }; | ||
| 12171 | |||
| 12172 | static struct cipher_testvec camellia_xts_enc_tv_template[] = { | ||
| 12173 | /* Generated from AES-XTS test vectors */ | ||
| 12174 | { | ||
| 12175 | .key = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12176 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12177 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12178 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12179 | .klen = 32, | ||
| 12180 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12181 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12182 | .input = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12183 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12184 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12185 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12186 | .ilen = 32, | ||
| 12187 | .result = "\x06\xcb\xa5\xf1\x04\x63\xb2\x41" | ||
| 12188 | "\xdc\xca\xfa\x09\xba\x74\xb9\x05" | ||
| 12189 | "\x78\xba\xa4\xf8\x67\x4d\x7e\xad" | ||
| 12190 | "\x20\x18\xf5\x0c\x41\x16\x2a\x61", | ||
| 12191 | .rlen = 32, | ||
| 12192 | }, { | ||
| 12193 | .key = "\x11\x11\x11\x11\x11\x11\x11\x11" | ||
| 12194 | "\x11\x11\x11\x11\x11\x11\x11\x11" | ||
| 12195 | "\x22\x22\x22\x22\x22\x22\x22\x22" | ||
| 12196 | "\x22\x22\x22\x22\x22\x22\x22\x22", | ||
| 12197 | .klen = 32, | ||
| 12198 | .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" | ||
| 12199 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12200 | .input = "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12201 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12202 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12203 | "\x44\x44\x44\x44\x44\x44\x44\x44", | ||
| 12204 | .ilen = 32, | ||
| 12205 | .result = "\xc2\xb9\xdc\x44\x1d\xdf\xf2\x86" | ||
| 12206 | "\x8d\x35\x42\x0a\xa5\x5e\x3d\x4f" | ||
| 12207 | "\xb5\x37\x06\xff\xbd\xd4\x91\x70" | ||
| 12208 | "\x80\x1f\xb2\x39\x10\x89\x44\xf5", | ||
| 12209 | .rlen = 32, | ||
| 12210 | }, { | ||
| 12211 | .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" | ||
| 12212 | "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" | ||
| 12213 | "\x22\x22\x22\x22\x22\x22\x22\x22" | ||
| 12214 | "\x22\x22\x22\x22\x22\x22\x22\x22", | ||
| 12215 | .klen = 32, | ||
| 12216 | .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" | ||
| 12217 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12218 | .input = "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12219 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12220 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12221 | "\x44\x44\x44\x44\x44\x44\x44\x44", | ||
| 12222 | .ilen = 32, | ||
| 12223 | .result = "\x52\x1f\x9d\xf5\x5a\x58\x5a\x7e" | ||
| 12224 | "\x9f\xd0\x8e\x02\x9c\x9a\x6a\xa7" | ||
| 12225 | "\xb4\x3b\xce\xe7\x17\xaa\x89\x6a" | ||
| 12226 | "\x35\x3c\x6b\xb5\x61\x1c\x79\x38", | ||
| 12227 | .rlen = 32, | ||
| 12228 | }, { | ||
| 12229 | .key = "\x27\x18\x28\x18\x28\x45\x90\x45" | ||
| 12230 | "\x23\x53\x60\x28\x74\x71\x35\x26" | ||
| 12231 | "\x31\x41\x59\x26\x53\x58\x97\x93" | ||
| 12232 | "\x23\x84\x62\x64\x33\x83\x27\x95", | ||
| 12233 | .klen = 32, | ||
| 12234 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12235 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12236 | .input = "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12237 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12238 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12239 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12240 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12241 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12242 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12243 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12244 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12245 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12246 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12247 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12248 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12249 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12250 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12251 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12252 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12253 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12254 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12255 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12256 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12257 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12258 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12259 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12260 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12261 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12262 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12263 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12264 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12265 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12266 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12267 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" | ||
| 12268 | "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12269 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12270 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12271 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12272 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12273 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12274 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12275 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12276 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12277 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12278 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12279 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12280 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12281 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12282 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12283 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12284 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12285 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12286 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12287 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12288 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12289 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12290 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12291 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12292 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12293 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12294 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12295 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12296 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12297 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12298 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12299 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", | ||
| 12300 | .ilen = 512, | ||
| 12301 | .result = "\xc7\xf9\x0a\xaa\xcb\xb5\x8f\x33" | ||
| 12302 | "\x60\xc3\xe9\x47\x90\xb7\x50\x57" | ||
| 12303 | "\xa3\xad\x81\x2f\xf5\x22\x96\x02" | ||
| 12304 | "\xaa\x7f\xea\xac\x29\x78\xca\x2a" | ||
| 12305 | "\x7c\xcd\x31\x1a\x3c\x40\x0a\x73" | ||
| 12306 | "\x09\x66\xad\x72\x0e\x4d\x5d\x77" | ||
| 12307 | "\xbc\xb8\x76\x80\x37\x59\xa9\x01" | ||
| 12308 | "\x9e\xfb\xdb\x6c\x93\xef\xb6\x8d" | ||
| 12309 | "\x1e\xc1\x94\xa8\xd4\xb5\xb0\x01" | ||
| 12310 | "\xd5\x01\x97\x28\xcd\x7a\x1f\xe8" | ||
| 12311 | "\x08\xda\x76\x00\x65\xcf\x7b\x31" | ||
| 12312 | "\xc6\xfa\xf2\x3b\x00\xa7\x6a\x9e" | ||
| 12313 | "\x6c\x43\x80\x87\xe0\xbb\x4e\xe5" | ||
| 12314 | "\xdc\x8a\xdf\xc3\x1d\x1b\x41\x04" | ||
| 12315 | "\xfb\x54\xdd\x29\x27\xc2\x65\x17" | ||
| 12316 | "\x36\x88\xb0\x85\x8d\x73\x7e\x4b" | ||
| 12317 | "\x1d\x16\x8a\x52\xbc\xa6\xbc\xa4" | ||
| 12318 | "\x8c\xd1\x04\x16\xbf\x8c\x01\x0f" | ||
| 12319 | "\x7e\x6b\x59\x15\x29\xd1\x9b\xd3" | ||
| 12320 | "\x6c\xee\xac\xdc\x45\x58\xca\x5b" | ||
| 12321 | "\x70\x0e\x6a\x12\x86\x82\x79\x9f" | ||
| 12322 | "\x16\xd4\x9d\x67\xcd\x70\x65\x26" | ||
| 12323 | "\x21\x72\x1e\xa1\x94\x8a\x83\x0c" | ||
| 12324 | "\x92\x42\x58\x5e\xa2\xc5\x31\xf3" | ||
| 12325 | "\x7b\xd1\x31\xd4\x15\x80\x31\x61" | ||
| 12326 | "\x5c\x53\x10\xdd\xea\xc8\x83\x5c" | ||
| 12327 | "\x7d\xa7\x05\x66\xcc\x1e\xbb\x05" | ||
| 12328 | "\x47\xae\xb4\x0f\x84\xd8\xf6\xb5" | ||
| 12329 | "\xa1\xc6\x52\x00\x52\xe8\xdc\xd9" | ||
| 12330 | "\x16\x31\xb2\x47\x91\x67\xaa\x28" | ||
| 12331 | "\x2c\x29\x85\xa3\xf7\xf2\x24\x93" | ||
| 12332 | "\x23\x80\x1f\xa8\x1b\x82\x8d\xdc" | ||
| 12333 | "\x9f\x0b\xcd\xb4\x3c\x20\xbc\xec" | ||
| 12334 | "\x4f\xc7\xee\xf8\xfd\xd9\xfb\x7e" | ||
| 12335 | "\x3f\x0d\x23\xfa\x3f\xa7\xcc\x66" | ||
| 12336 | "\x1c\xfe\xa6\x86\xf6\xf7\x85\xc7" | ||
| 12337 | "\x43\xc1\xd4\xfc\xe4\x79\xc9\x1d" | ||
| 12338 | "\xf8\x89\xcd\x20\x27\x84\x5d\x5c" | ||
| 12339 | "\x8e\x4f\x1f\xeb\x08\x21\x4f\xa3" | ||
| 12340 | "\xe0\x7e\x0b\x9c\xe7\x42\xcf\xb7" | ||
| 12341 | "\x3f\x43\xcc\x86\x71\x34\x6a\xd9" | ||
| 12342 | "\x5e\xec\x8f\x36\xc9\x0a\x03\xfe" | ||
| 12343 | "\x18\x41\xdc\x9e\x2e\x75\x20\x3e" | ||
| 12344 | "\xcc\x77\xe0\x8f\xe8\x43\x37\x4c" | ||
| 12345 | "\xed\x1a\x5a\xb3\xfa\x43\xc9\x71" | ||
| 12346 | "\x9f\xc5\xce\xcf\xff\xe7\x77\x1e" | ||
| 12347 | "\x35\x93\xde\x6b\xc0\x6a\x7e\xa9" | ||
| 12348 | "\x34\xb8\x27\x74\x08\xda\xf2\x4a" | ||
| 12349 | "\x23\x5b\x9f\x55\x3a\x57\x82\x52" | ||
| 12350 | "\xea\x6d\xc3\xc7\xf2\xc8\xb5\xdc" | ||
| 12351 | "\xc5\xb9\xbb\xaa\xf2\x29\x9f\x49" | ||
| 12352 | "\x7a\xef\xfe\xdc\x9f\xc9\x28\xe2" | ||
| 12353 | "\x96\x0b\x35\x84\x05\x0d\xd6\x2a" | ||
| 12354 | "\xea\x5a\xbf\x69\xde\xee\x4f\x8f" | ||
| 12355 | "\x84\xb9\xcf\xa7\x57\xea\xe0\xe8" | ||
| 12356 | "\x96\xef\x0f\x0e\xec\xc7\xa6\x74" | ||
| 12357 | "\xb1\xfe\x7a\x6d\x11\xdd\x0e\x15" | ||
| 12358 | "\x4a\x1e\x73\x7f\x55\xea\xf6\xe1" | ||
| 12359 | "\x5b\xb6\x71\xda\xb0\x0c\xba\x26" | ||
| 12360 | "\x5c\x48\x38\x6d\x1c\x32\xb2\x7d" | ||
| 12361 | "\x05\x87\xc2\x1e\x7e\x2d\xd4\x33" | ||
| 12362 | "\xcc\x06\xdb\xe7\x82\x29\x63\xd1" | ||
| 12363 | "\x52\x84\x4f\xee\x27\xe8\x02\xd4" | ||
| 12364 | "\x34\x3c\x69\xc2\xbd\x20\xe6\x7a", | ||
| 12365 | .rlen = 512, | ||
| 12366 | }, { | ||
| 12367 | .key = "\x27\x18\x28\x18\x28\x45\x90\x45" | ||
| 12368 | "\x23\x53\x60\x28\x74\x71\x35\x26" | ||
| 12369 | "\x62\x49\x77\x57\x24\x70\x93\x69" | ||
| 12370 | "\x99\x59\x57\x49\x66\x96\x76\x27" | ||
| 12371 | "\x31\x41\x59\x26\x53\x58\x97\x93" | ||
| 12372 | "\x23\x84\x62\x64\x33\x83\x27\x95" | ||
| 12373 | "\x02\x88\x41\x97\x16\x93\x99\x37" | ||
| 12374 | "\x51\x05\x82\x09\x74\x94\x45\x92", | ||
| 12375 | .klen = 64, | ||
| 12376 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" | ||
| 12377 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12378 | .input = "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12379 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12380 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12381 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12382 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12383 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12384 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12385 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12386 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12387 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12388 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12389 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12390 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12391 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12392 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12393 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12394 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12395 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12396 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12397 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12398 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12399 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12400 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12401 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12402 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12403 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12404 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12405 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12406 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12407 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12408 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12409 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" | ||
| 12410 | "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12411 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12412 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12413 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12414 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12415 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12416 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12417 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12418 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12419 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12420 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12421 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12422 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12423 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12424 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12425 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12426 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12427 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12428 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12429 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12430 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12431 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12432 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12433 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12434 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12435 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12436 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12437 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12438 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12439 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12440 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12441 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", | ||
| 12442 | .ilen = 512, | ||
| 12443 | .result = "\x49\xcd\xb8\xbf\x2f\x73\x37\x28" | ||
| 12444 | "\x9a\x7f\x6e\x57\x55\xb8\x07\x88" | ||
| 12445 | "\x4a\x0d\x8b\x55\x60\xed\xb6\x7b" | ||
| 12446 | "\xf1\x74\xac\x96\x05\x7b\x32\xca" | ||
| 12447 | "\xd1\x4e\xf1\x58\x29\x16\x24\x6c" | ||
| 12448 | "\xf2\xb3\xe4\x88\x84\xac\x4d\xee" | ||
| 12449 | "\x97\x07\x82\xf0\x07\x12\x38\x0a" | ||
| 12450 | "\x67\x62\xaf\xfd\x85\x9f\x0a\x55" | ||
| 12451 | "\xa5\x20\xc5\x60\xe4\x68\x53\xa4" | ||
| 12452 | "\x0e\x2e\x65\xe3\xe4\x0c\x30\x7c" | ||
| 12453 | "\x1c\x01\x4f\x55\xa9\x13\xeb\x25" | ||
| 12454 | "\x21\x87\xbc\xd3\xe7\x67\x4f\x38" | ||
| 12455 | "\xa8\x14\x25\x71\xe9\x2e\x4c\x21" | ||
| 12456 | "\x41\x82\x0c\x45\x39\x35\xa8\x75" | ||
| 12457 | "\x03\x29\x01\x84\x8c\xab\x48\xbe" | ||
| 12458 | "\x11\x56\x22\x67\xb7\x67\x1a\x09" | ||
| 12459 | "\xa1\x72\x25\x41\x3c\x39\x65\x80" | ||
| 12460 | "\x7d\x2f\xf8\x2c\x73\x04\x58\x9d" | ||
| 12461 | "\xdd\x16\x8b\x63\x70\x4e\xc5\x17" | ||
| 12462 | "\x21\xe0\x84\x51\x4b\x6f\x05\x52" | ||
| 12463 | "\xe3\x63\x34\xfa\xa4\xaf\x33\x20" | ||
| 12464 | "\xc1\xae\x32\xc4\xb8\x2b\xdb\x76" | ||
| 12465 | "\xd9\x02\x31\x2f\xa3\xc6\xd0\x7b" | ||
| 12466 | "\xaf\x1b\x84\xe3\x9b\xbf\xa6\xe0" | ||
| 12467 | "\xb8\x8a\x13\x88\x71\xf4\x11\xa5" | ||
| 12468 | "\xe9\xa9\x10\x33\xe0\xbe\x49\x89" | ||
| 12469 | "\x41\x22\xf5\x9d\x80\x3e\x3b\x76" | ||
| 12470 | "\x01\x16\x50\x6e\x7c\x6a\x81\xe9" | ||
| 12471 | "\x13\x2c\xde\xb2\x5f\x79\xba\xb2" | ||
| 12472 | "\xb1\x75\xae\xd2\x07\x98\x4b\x69" | ||
| 12473 | "\xae\x7d\x5b\x90\xc2\x6c\xe6\x98" | ||
| 12474 | "\xd3\x4c\xa1\xa3\x9c\xc9\x33\x6a" | ||
| 12475 | "\x0d\x23\xb1\x79\x25\x13\x4b\xe5" | ||
| 12476 | "\xaf\x93\x20\x5c\x7f\x06\x7a\x34" | ||
| 12477 | "\x0b\x78\xe3\x67\x26\xe0\xad\x95" | ||
| 12478 | "\xc5\x4e\x26\x22\xcf\x73\x77\x62" | ||
| 12479 | "\x3e\x10\xd7\x90\x4b\x52\x1c\xc9" | ||
| 12480 | "\xef\x38\x52\x18\x0e\x29\x7e\xef" | ||
| 12481 | "\x34\xfe\x31\x95\xc5\xbc\xa8\xe2" | ||
| 12482 | "\xa8\x4e\x9f\xea\xa6\xf0\xfe\x5d" | ||
| 12483 | "\xc5\x39\x86\xed\x2f\x6d\xa0\xfe" | ||
| 12484 | "\x96\xcd\x41\x10\x78\x4e\x0c\xc9" | ||
| 12485 | "\xc3\x6d\x0f\xb7\xe8\xe0\x62\xab" | ||
| 12486 | "\x8b\xf1\x21\x89\xa1\x12\xaa\xfa" | ||
| 12487 | "\x9d\x70\xbe\x4c\xa8\x98\x89\x01" | ||
| 12488 | "\xb9\xe2\x61\xde\x0c\x4a\x0b\xaa" | ||
| 12489 | "\x89\xf5\x14\x79\x18\x8f\x3b\x0d" | ||
| 12490 | "\x21\x17\xf8\x59\x15\x24\x64\x22" | ||
| 12491 | "\x57\x48\x80\xd5\x3d\x92\x30\x07" | ||
| 12492 | "\xd9\xa1\x4a\x23\x16\x43\x48\x0e" | ||
| 12493 | "\x2b\x2d\x1b\x87\xef\x7e\xbd\xfa" | ||
| 12494 | "\x49\xbc\x7e\x68\x6e\xa8\x46\x95" | ||
| 12495 | "\xad\x5e\xfe\x0a\xa8\xd3\x1a\x5d" | ||
| 12496 | "\x6b\x84\xf3\x00\xba\x52\x05\x02" | ||
| 12497 | "\xe3\x96\x4e\xb6\x79\x3f\x43\xd3" | ||
| 12498 | "\x4d\x3f\xd6\xab\x0a\xc4\x75\x2d" | ||
| 12499 | "\xd1\x08\xc3\x6a\xc8\x37\x29\xa0" | ||
| 12500 | "\xcc\x9a\x05\xdd\x5c\xe1\xff\x66" | ||
| 12501 | "\xf2\x7a\x1d\xf2\xaf\xa9\x48\x89" | ||
| 12502 | "\xf5\x21\x0f\x02\x48\x83\x74\xbf" | ||
| 12503 | "\x2e\xe6\x93\x7b\xa0\xf4\xb1\x2b" | ||
| 12504 | "\xb1\x02\x0a\x5c\x79\x19\x3b\x75" | ||
| 12505 | "\xb7\x16\xd8\x12\x5c\xcd\x7d\x4e" | ||
| 12506 | "\xd5\xc6\x99\xcc\x4e\x6c\x94\x95", | ||
| 12507 | .rlen = 512, | ||
| 12508 | }, | ||
| 12509 | }; | ||
| 12510 | |||
| 12511 | static struct cipher_testvec camellia_xts_dec_tv_template[] = { | ||
| 12512 | /* Generated from AES-XTS test vectors */ | ||
| 12513 | /* same as enc vectors with input and result reversed */ | ||
| 12514 | { | ||
| 12515 | .key = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12516 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12517 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12518 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12519 | .klen = 32, | ||
| 12520 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12521 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12522 | .input = "\x06\xcb\xa5\xf1\x04\x63\xb2\x41" | ||
| 12523 | "\xdc\xca\xfa\x09\xba\x74\xb9\x05" | ||
| 12524 | "\x78\xba\xa4\xf8\x67\x4d\x7e\xad" | ||
| 12525 | "\x20\x18\xf5\x0c\x41\x16\x2a\x61", | ||
| 12526 | .ilen = 32, | ||
| 12527 | .result = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12528 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12529 | "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12530 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12531 | .rlen = 32, | ||
| 12532 | }, { | ||
| 12533 | .key = "\x11\x11\x11\x11\x11\x11\x11\x11" | ||
| 12534 | "\x11\x11\x11\x11\x11\x11\x11\x11" | ||
| 12535 | "\x22\x22\x22\x22\x22\x22\x22\x22" | ||
| 12536 | "\x22\x22\x22\x22\x22\x22\x22\x22", | ||
| 12537 | .klen = 32, | ||
| 12538 | .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" | ||
| 12539 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12540 | .input = "\xc2\xb9\xdc\x44\x1d\xdf\xf2\x86" | ||
| 12541 | "\x8d\x35\x42\x0a\xa5\x5e\x3d\x4f" | ||
| 12542 | "\xb5\x37\x06\xff\xbd\xd4\x91\x70" | ||
| 12543 | "\x80\x1f\xb2\x39\x10\x89\x44\xf5", | ||
| 12544 | .ilen = 32, | ||
| 12545 | .result = "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12546 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12547 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12548 | "\x44\x44\x44\x44\x44\x44\x44\x44", | ||
| 12549 | .rlen = 32, | ||
| 12550 | }, { | ||
| 12551 | .key = "\xff\xfe\xfd\xfc\xfb\xfa\xf9\xf8" | ||
| 12552 | "\xf7\xf6\xf5\xf4\xf3\xf2\xf1\xf0" | ||
| 12553 | "\x22\x22\x22\x22\x22\x22\x22\x22" | ||
| 12554 | "\x22\x22\x22\x22\x22\x22\x22\x22", | ||
| 12555 | .klen = 32, | ||
| 12556 | .iv = "\x33\x33\x33\x33\x33\x00\x00\x00" | ||
| 12557 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12558 | .input = "\x52\x1f\x9d\xf5\x5a\x58\x5a\x7e" | ||
| 12559 | "\x9f\xd0\x8e\x02\x9c\x9a\x6a\xa7" | ||
| 12560 | "\xb4\x3b\xce\xe7\x17\xaa\x89\x6a" | ||
| 12561 | "\x35\x3c\x6b\xb5\x61\x1c\x79\x38", | ||
| 12562 | .ilen = 32, | ||
| 12563 | .result = "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12564 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12565 | "\x44\x44\x44\x44\x44\x44\x44\x44" | ||
| 12566 | "\x44\x44\x44\x44\x44\x44\x44\x44", | ||
| 12567 | .rlen = 32, | ||
| 12568 | }, { | ||
| 12569 | .key = "\x27\x18\x28\x18\x28\x45\x90\x45" | ||
| 12570 | "\x23\x53\x60\x28\x74\x71\x35\x26" | ||
| 12571 | "\x31\x41\x59\x26\x53\x58\x97\x93" | ||
| 12572 | "\x23\x84\x62\x64\x33\x83\x27\x95", | ||
| 12573 | .klen = 32, | ||
| 12574 | .iv = "\x00\x00\x00\x00\x00\x00\x00\x00" | ||
| 12575 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12576 | .input = "\xc7\xf9\x0a\xaa\xcb\xb5\x8f\x33" | ||
| 12577 | "\x60\xc3\xe9\x47\x90\xb7\x50\x57" | ||
| 12578 | "\xa3\xad\x81\x2f\xf5\x22\x96\x02" | ||
| 12579 | "\xaa\x7f\xea\xac\x29\x78\xca\x2a" | ||
| 12580 | "\x7c\xcd\x31\x1a\x3c\x40\x0a\x73" | ||
| 12581 | "\x09\x66\xad\x72\x0e\x4d\x5d\x77" | ||
| 12582 | "\xbc\xb8\x76\x80\x37\x59\xa9\x01" | ||
| 12583 | "\x9e\xfb\xdb\x6c\x93\xef\xb6\x8d" | ||
| 12584 | "\x1e\xc1\x94\xa8\xd4\xb5\xb0\x01" | ||
| 12585 | "\xd5\x01\x97\x28\xcd\x7a\x1f\xe8" | ||
| 12586 | "\x08\xda\x76\x00\x65\xcf\x7b\x31" | ||
| 12587 | "\xc6\xfa\xf2\x3b\x00\xa7\x6a\x9e" | ||
| 12588 | "\x6c\x43\x80\x87\xe0\xbb\x4e\xe5" | ||
| 12589 | "\xdc\x8a\xdf\xc3\x1d\x1b\x41\x04" | ||
| 12590 | "\xfb\x54\xdd\x29\x27\xc2\x65\x17" | ||
| 12591 | "\x36\x88\xb0\x85\x8d\x73\x7e\x4b" | ||
| 12592 | "\x1d\x16\x8a\x52\xbc\xa6\xbc\xa4" | ||
| 12593 | "\x8c\xd1\x04\x16\xbf\x8c\x01\x0f" | ||
| 12594 | "\x7e\x6b\x59\x15\x29\xd1\x9b\xd3" | ||
| 12595 | "\x6c\xee\xac\xdc\x45\x58\xca\x5b" | ||
| 12596 | "\x70\x0e\x6a\x12\x86\x82\x79\x9f" | ||
| 12597 | "\x16\xd4\x9d\x67\xcd\x70\x65\x26" | ||
| 12598 | "\x21\x72\x1e\xa1\x94\x8a\x83\x0c" | ||
| 12599 | "\x92\x42\x58\x5e\xa2\xc5\x31\xf3" | ||
| 12600 | "\x7b\xd1\x31\xd4\x15\x80\x31\x61" | ||
| 12601 | "\x5c\x53\x10\xdd\xea\xc8\x83\x5c" | ||
| 12602 | "\x7d\xa7\x05\x66\xcc\x1e\xbb\x05" | ||
| 12603 | "\x47\xae\xb4\x0f\x84\xd8\xf6\xb5" | ||
| 12604 | "\xa1\xc6\x52\x00\x52\xe8\xdc\xd9" | ||
| 12605 | "\x16\x31\xb2\x47\x91\x67\xaa\x28" | ||
| 12606 | "\x2c\x29\x85\xa3\xf7\xf2\x24\x93" | ||
| 12607 | "\x23\x80\x1f\xa8\x1b\x82\x8d\xdc" | ||
| 12608 | "\x9f\x0b\xcd\xb4\x3c\x20\xbc\xec" | ||
| 12609 | "\x4f\xc7\xee\xf8\xfd\xd9\xfb\x7e" | ||
| 12610 | "\x3f\x0d\x23\xfa\x3f\xa7\xcc\x66" | ||
| 12611 | "\x1c\xfe\xa6\x86\xf6\xf7\x85\xc7" | ||
| 12612 | "\x43\xc1\xd4\xfc\xe4\x79\xc9\x1d" | ||
| 12613 | "\xf8\x89\xcd\x20\x27\x84\x5d\x5c" | ||
| 12614 | "\x8e\x4f\x1f\xeb\x08\x21\x4f\xa3" | ||
| 12615 | "\xe0\x7e\x0b\x9c\xe7\x42\xcf\xb7" | ||
| 12616 | "\x3f\x43\xcc\x86\x71\x34\x6a\xd9" | ||
| 12617 | "\x5e\xec\x8f\x36\xc9\x0a\x03\xfe" | ||
| 12618 | "\x18\x41\xdc\x9e\x2e\x75\x20\x3e" | ||
| 12619 | "\xcc\x77\xe0\x8f\xe8\x43\x37\x4c" | ||
| 12620 | "\xed\x1a\x5a\xb3\xfa\x43\xc9\x71" | ||
| 12621 | "\x9f\xc5\xce\xcf\xff\xe7\x77\x1e" | ||
| 12622 | "\x35\x93\xde\x6b\xc0\x6a\x7e\xa9" | ||
| 12623 | "\x34\xb8\x27\x74\x08\xda\xf2\x4a" | ||
| 12624 | "\x23\x5b\x9f\x55\x3a\x57\x82\x52" | ||
| 12625 | "\xea\x6d\xc3\xc7\xf2\xc8\xb5\xdc" | ||
| 12626 | "\xc5\xb9\xbb\xaa\xf2\x29\x9f\x49" | ||
| 12627 | "\x7a\xef\xfe\xdc\x9f\xc9\x28\xe2" | ||
| 12628 | "\x96\x0b\x35\x84\x05\x0d\xd6\x2a" | ||
| 12629 | "\xea\x5a\xbf\x69\xde\xee\x4f\x8f" | ||
| 12630 | "\x84\xb9\xcf\xa7\x57\xea\xe0\xe8" | ||
| 12631 | "\x96\xef\x0f\x0e\xec\xc7\xa6\x74" | ||
| 12632 | "\xb1\xfe\x7a\x6d\x11\xdd\x0e\x15" | ||
| 12633 | "\x4a\x1e\x73\x7f\x55\xea\xf6\xe1" | ||
| 12634 | "\x5b\xb6\x71\xda\xb0\x0c\xba\x26" | ||
| 12635 | "\x5c\x48\x38\x6d\x1c\x32\xb2\x7d" | ||
| 12636 | "\x05\x87\xc2\x1e\x7e\x2d\xd4\x33" | ||
| 12637 | "\xcc\x06\xdb\xe7\x82\x29\x63\xd1" | ||
| 12638 | "\x52\x84\x4f\xee\x27\xe8\x02\xd4" | ||
| 12639 | "\x34\x3c\x69\xc2\xbd\x20\xe6\x7a", | ||
| 12640 | .ilen = 512, | ||
| 12641 | .result = "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12642 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12643 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12644 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12645 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12646 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12647 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12648 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12649 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12650 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12651 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12652 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12653 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12654 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12655 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12656 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12657 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12658 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12659 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12660 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12661 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12662 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12663 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12664 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12665 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12666 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12667 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12668 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12669 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12670 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12671 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12672 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" | ||
| 12673 | "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12674 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12675 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12676 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12677 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12678 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12679 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12680 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12681 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12682 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12683 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12684 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12685 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12686 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12687 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12688 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12689 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12690 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12691 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12692 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12693 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12694 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12695 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12696 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12697 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12698 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12699 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12700 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12701 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12702 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12703 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12704 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", | ||
| 12705 | .rlen = 512, | ||
| 12706 | }, { | ||
| 12707 | .key = "\x27\x18\x28\x18\x28\x45\x90\x45" | ||
| 12708 | "\x23\x53\x60\x28\x74\x71\x35\x26" | ||
| 12709 | "\x62\x49\x77\x57\x24\x70\x93\x69" | ||
| 12710 | "\x99\x59\x57\x49\x66\x96\x76\x27" | ||
| 12711 | "\x31\x41\x59\x26\x53\x58\x97\x93" | ||
| 12712 | "\x23\x84\x62\x64\x33\x83\x27\x95" | ||
| 12713 | "\x02\x88\x41\x97\x16\x93\x99\x37" | ||
| 12714 | "\x51\x05\x82\x09\x74\x94\x45\x92", | ||
| 12715 | .klen = 64, | ||
| 12716 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" | ||
| 12717 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
| 12718 | .input = "\x49\xcd\xb8\xbf\x2f\x73\x37\x28" | ||
| 12719 | "\x9a\x7f\x6e\x57\x55\xb8\x07\x88" | ||
| 12720 | "\x4a\x0d\x8b\x55\x60\xed\xb6\x7b" | ||
| 12721 | "\xf1\x74\xac\x96\x05\x7b\x32\xca" | ||
| 12722 | "\xd1\x4e\xf1\x58\x29\x16\x24\x6c" | ||
| 12723 | "\xf2\xb3\xe4\x88\x84\xac\x4d\xee" | ||
| 12724 | "\x97\x07\x82\xf0\x07\x12\x38\x0a" | ||
| 12725 | "\x67\x62\xaf\xfd\x85\x9f\x0a\x55" | ||
| 12726 | "\xa5\x20\xc5\x60\xe4\x68\x53\xa4" | ||
| 12727 | "\x0e\x2e\x65\xe3\xe4\x0c\x30\x7c" | ||
| 12728 | "\x1c\x01\x4f\x55\xa9\x13\xeb\x25" | ||
| 12729 | "\x21\x87\xbc\xd3\xe7\x67\x4f\x38" | ||
| 12730 | "\xa8\x14\x25\x71\xe9\x2e\x4c\x21" | ||
| 12731 | "\x41\x82\x0c\x45\x39\x35\xa8\x75" | ||
| 12732 | "\x03\x29\x01\x84\x8c\xab\x48\xbe" | ||
| 12733 | "\x11\x56\x22\x67\xb7\x67\x1a\x09" | ||
| 12734 | "\xa1\x72\x25\x41\x3c\x39\x65\x80" | ||
| 12735 | "\x7d\x2f\xf8\x2c\x73\x04\x58\x9d" | ||
| 12736 | "\xdd\x16\x8b\x63\x70\x4e\xc5\x17" | ||
| 12737 | "\x21\xe0\x84\x51\x4b\x6f\x05\x52" | ||
| 12738 | "\xe3\x63\x34\xfa\xa4\xaf\x33\x20" | ||
| 12739 | "\xc1\xae\x32\xc4\xb8\x2b\xdb\x76" | ||
| 12740 | "\xd9\x02\x31\x2f\xa3\xc6\xd0\x7b" | ||
| 12741 | "\xaf\x1b\x84\xe3\x9b\xbf\xa6\xe0" | ||
| 12742 | "\xb8\x8a\x13\x88\x71\xf4\x11\xa5" | ||
| 12743 | "\xe9\xa9\x10\x33\xe0\xbe\x49\x89" | ||
| 12744 | "\x41\x22\xf5\x9d\x80\x3e\x3b\x76" | ||
| 12745 | "\x01\x16\x50\x6e\x7c\x6a\x81\xe9" | ||
| 12746 | "\x13\x2c\xde\xb2\x5f\x79\xba\xb2" | ||
| 12747 | "\xb1\x75\xae\xd2\x07\x98\x4b\x69" | ||
| 12748 | "\xae\x7d\x5b\x90\xc2\x6c\xe6\x98" | ||
| 12749 | "\xd3\x4c\xa1\xa3\x9c\xc9\x33\x6a" | ||
| 12750 | "\x0d\x23\xb1\x79\x25\x13\x4b\xe5" | ||
| 12751 | "\xaf\x93\x20\x5c\x7f\x06\x7a\x34" | ||
| 12752 | "\x0b\x78\xe3\x67\x26\xe0\xad\x95" | ||
| 12753 | "\xc5\x4e\x26\x22\xcf\x73\x77\x62" | ||
| 12754 | "\x3e\x10\xd7\x90\x4b\x52\x1c\xc9" | ||
| 12755 | "\xef\x38\x52\x18\x0e\x29\x7e\xef" | ||
| 12756 | "\x34\xfe\x31\x95\xc5\xbc\xa8\xe2" | ||
| 12757 | "\xa8\x4e\x9f\xea\xa6\xf0\xfe\x5d" | ||
| 12758 | "\xc5\x39\x86\xed\x2f\x6d\xa0\xfe" | ||
| 12759 | "\x96\xcd\x41\x10\x78\x4e\x0c\xc9" | ||
| 12760 | "\xc3\x6d\x0f\xb7\xe8\xe0\x62\xab" | ||
| 12761 | "\x8b\xf1\x21\x89\xa1\x12\xaa\xfa" | ||
| 12762 | "\x9d\x70\xbe\x4c\xa8\x98\x89\x01" | ||
| 12763 | "\xb9\xe2\x61\xde\x0c\x4a\x0b\xaa" | ||
| 12764 | "\x89\xf5\x14\x79\x18\x8f\x3b\x0d" | ||
| 12765 | "\x21\x17\xf8\x59\x15\x24\x64\x22" | ||
| 12766 | "\x57\x48\x80\xd5\x3d\x92\x30\x07" | ||
| 12767 | "\xd9\xa1\x4a\x23\x16\x43\x48\x0e" | ||
| 12768 | "\x2b\x2d\x1b\x87\xef\x7e\xbd\xfa" | ||
| 12769 | "\x49\xbc\x7e\x68\x6e\xa8\x46\x95" | ||
| 12770 | "\xad\x5e\xfe\x0a\xa8\xd3\x1a\x5d" | ||
| 12771 | "\x6b\x84\xf3\x00\xba\x52\x05\x02" | ||
| 12772 | "\xe3\x96\x4e\xb6\x79\x3f\x43\xd3" | ||
| 12773 | "\x4d\x3f\xd6\xab\x0a\xc4\x75\x2d" | ||
| 12774 | "\xd1\x08\xc3\x6a\xc8\x37\x29\xa0" | ||
| 12775 | "\xcc\x9a\x05\xdd\x5c\xe1\xff\x66" | ||
| 12776 | "\xf2\x7a\x1d\xf2\xaf\xa9\x48\x89" | ||
| 12777 | "\xf5\x21\x0f\x02\x48\x83\x74\xbf" | ||
| 12778 | "\x2e\xe6\x93\x7b\xa0\xf4\xb1\x2b" | ||
| 12779 | "\xb1\x02\x0a\x5c\x79\x19\x3b\x75" | ||
| 12780 | "\xb7\x16\xd8\x12\x5c\xcd\x7d\x4e" | ||
| 12781 | "\xd5\xc6\x99\xcc\x4e\x6c\x94\x95", | ||
| 12782 | .ilen = 512, | ||
| 12783 | .result = "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12784 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12785 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12786 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12787 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12788 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12789 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12790 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12791 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12792 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12793 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12794 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12795 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12796 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12797 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12798 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12799 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12800 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12801 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12802 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12803 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12804 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12805 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12806 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12807 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12808 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12809 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12810 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12811 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12812 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12813 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12814 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" | ||
| 12815 | "\x00\x01\x02\x03\x04\x05\x06\x07" | ||
| 12816 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | ||
| 12817 | "\x10\x11\x12\x13\x14\x15\x16\x17" | ||
| 12818 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" | ||
| 12819 | "\x20\x21\x22\x23\x24\x25\x26\x27" | ||
| 12820 | "\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f" | ||
| 12821 | "\x30\x31\x32\x33\x34\x35\x36\x37" | ||
| 12822 | "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f" | ||
| 12823 | "\x40\x41\x42\x43\x44\x45\x46\x47" | ||
| 12824 | "\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f" | ||
| 12825 | "\x50\x51\x52\x53\x54\x55\x56\x57" | ||
| 12826 | "\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f" | ||
| 12827 | "\x60\x61\x62\x63\x64\x65\x66\x67" | ||
| 12828 | "\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f" | ||
| 12829 | "\x70\x71\x72\x73\x74\x75\x76\x77" | ||
| 12830 | "\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f" | ||
| 12831 | "\x80\x81\x82\x83\x84\x85\x86\x87" | ||
| 12832 | "\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f" | ||
| 12833 | "\x90\x91\x92\x93\x94\x95\x96\x97" | ||
| 12834 | "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f" | ||
| 12835 | "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7" | ||
| 12836 | "\xa8\xa9\xaa\xab\xac\xad\xae\xaf" | ||
| 12837 | "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7" | ||
| 12838 | "\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf" | ||
| 12839 | "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | ||
| 12840 | "\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf" | ||
| 12841 | "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7" | ||
| 12842 | "\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf" | ||
| 12843 | "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7" | ||
| 12844 | "\xe8\xe9\xea\xeb\xec\xed\xee\xef" | ||
| 12845 | "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" | ||
| 12846 | "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", | ||
| 12847 | .rlen = 512, | ||
| 12848 | }, | ||
| 11474 | }; | 12849 | }; |
| 11475 | 12850 | ||
| 11476 | /* | 12851 | /* |
