diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-02 17:53:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-02 17:53:12 -0400 |
commit | 797994f81a8b2bdca2eecffa415c1e7a89a4f961 (patch) | |
tree | 1383dc469c26ad37fdf960f682d9a48c782935c5 /crypto | |
parent | c8d8566952fda026966784a62f324c8352f77430 (diff) | |
parent | 3862de1f6c442d53bd828d39f86d07d933a70605 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto update from Herbert Xu:
- XTS mode optimisation for twofish/cast6/camellia/aes on x86
- AVX2/x86_64 implementation for blowfish/twofish/serpent/camellia
- SSSE3/AVX/AVX2 optimisations for sha256/sha512
- Added driver for SAHARA2 crypto accelerator
- Fix for GMAC when used in non-IPsec secnarios
- Added generic CMAC implementation (including IPsec glue)
- IP update for crypto/atmel
- Support for more than one device in hwrng/timeriomem
- Added Broadcom BCM2835 RNG driver
- Misc fixes
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (59 commits)
crypto: caam - fix job ring cleanup code
crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher
crypto: serpent - add AVX2/x86_64 assembler implementation of serpent cipher
crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher
crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher
crypto: tcrypt - add async cipher speed tests for blowfish
crypto: testmgr - extend camellia test-vectors for camellia-aesni/avx2
crypto: aesni_intel - fix Kconfig problem with CRYPTO_GLUE_HELPER_X86
crypto: aesni_intel - add more optimized XTS mode for x86-64
crypto: x86/camellia-aesni-avx - add more optimized XTS code
crypto: cast6-avx: use new optimized XTS code
crypto: x86/twofish-avx - use optimized XTS code
crypto: x86 - add more optimized XTS-mode for serpent-avx
xfrm: add rfc4494 AES-CMAC-96 support
crypto: add CMAC support to CryptoAPI
crypto: testmgr - add empty test vectors for null ciphers
crypto: testmgr - add AES GMAC test vectors
crypto: gcm - fix rfc4543 to handle async crypto correctly
crypto: gcm - make GMAC work when dst and src are different
hwrng: timeriomem - added devicetree hooks
...
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/Kconfig | 133 | ||||
-rw-r--r-- | crypto/Makefile | 1 | ||||
-rw-r--r-- | crypto/cmac.c | 315 | ||||
-rw-r--r-- | crypto/crypto_user.c | 4 | ||||
-rw-r--r-- | crypto/gcm.c | 116 | ||||
-rw-r--r-- | crypto/sha256_generic.c | 11 | ||||
-rw-r--r-- | crypto/sha512_generic.c | 13 | ||||
-rw-r--r-- | crypto/tcrypt.c | 30 | ||||
-rw-r--r-- | crypto/testmgr.c | 95 | ||||
-rw-r--r-- | crypto/testmgr.h | 1314 |
10 files changed, 1949 insertions, 83 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 05c0ce52f96d..622d8a48cbe9 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -198,6 +198,7 @@ config CRYPTO_GCM | |||
198 | select CRYPTO_CTR | 198 | select CRYPTO_CTR |
199 | select CRYPTO_AEAD | 199 | select CRYPTO_AEAD |
200 | select CRYPTO_GHASH | 200 | select CRYPTO_GHASH |
201 | select CRYPTO_NULL | ||
201 | help | 202 | help |
202 | Support for Galois/Counter Mode (GCM) and Galois Message | 203 | Support for Galois/Counter Mode (GCM) and Galois Message |
203 | Authentication Code (GMAC). Required for IPSec. | 204 | Authentication Code (GMAC). Required for IPSec. |
@@ -282,6 +283,17 @@ config CRYPTO_XTS | |||
282 | 283 | ||
283 | comment "Hash modes" | 284 | comment "Hash modes" |
284 | 285 | ||
286 | config CRYPTO_CMAC | ||
287 | tristate "CMAC support" | ||
288 | select CRYPTO_HASH | ||
289 | select CRYPTO_MANAGER | ||
290 | help | ||
291 | Cipher-based Message Authentication Code (CMAC) specified by | ||
292 | The National Institute of Standards and Technology (NIST). | ||
293 | |||
294 | https://tools.ietf.org/html/rfc4493 | ||
295 | http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf | ||
296 | |||
285 | config CRYPTO_HMAC | 297 | config CRYPTO_HMAC |
286 | tristate "HMAC support" | 298 | tristate "HMAC support" |
287 | select CRYPTO_HASH | 299 | select CRYPTO_HASH |
@@ -322,19 +334,9 @@ config CRYPTO_CRC32C | |||
322 | by iSCSI for header and data digests and by others. | 334 | by iSCSI for header and data digests and by others. |
323 | See Castagnoli93. Module will be crc32c. | 335 | See Castagnoli93. Module will be crc32c. |
324 | 336 | ||
325 | config CRYPTO_CRC32C_X86_64 | ||
326 | bool | ||
327 | depends on X86 && 64BIT | ||
328 | select CRYPTO_HASH | ||
329 | help | ||
330 | In Intel processor with SSE4.2 supported, the processor will | ||
331 | support CRC32C calculation using hardware accelerated CRC32 | ||
332 | instruction optimized with PCLMULQDQ instruction when available. | ||
333 | |||
334 | config CRYPTO_CRC32C_INTEL | 337 | config CRYPTO_CRC32C_INTEL |
335 | tristate "CRC32c INTEL hardware acceleration" | 338 | tristate "CRC32c INTEL hardware acceleration" |
336 | depends on X86 | 339 | depends on X86 |
337 | select CRYPTO_CRC32C_X86_64 if 64BIT | ||
338 | select CRYPTO_HASH | 340 | select CRYPTO_HASH |
339 | help | 341 | help |
340 | In Intel processor with SSE4.2 supported, the processor will | 342 | In Intel processor with SSE4.2 supported, the processor will |
@@ -480,6 +482,28 @@ config CRYPTO_SHA1_SSSE3 | |||
480 | using Supplemental SSE3 (SSSE3) instructions or Advanced Vector | 482 | using Supplemental SSE3 (SSSE3) instructions or Advanced Vector |
481 | Extensions (AVX), when available. | 483 | Extensions (AVX), when available. |
482 | 484 | ||
485 | config CRYPTO_SHA256_SSSE3 | ||
486 | tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2)" | ||
487 | depends on X86 && 64BIT | ||
488 | select CRYPTO_SHA256 | ||
489 | select CRYPTO_HASH | ||
490 | help | ||
491 | SHA-256 secure hash standard (DFIPS 180-2) implemented | ||
492 | using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector | ||
493 | Extensions version 1 (AVX1), or Advanced Vector Extensions | ||
494 | version 2 (AVX2) instructions, when available. | ||
495 | |||
496 | config CRYPTO_SHA512_SSSE3 | ||
497 | tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)" | ||
498 | depends on X86 && 64BIT | ||
499 | select CRYPTO_SHA512 | ||
500 | select CRYPTO_HASH | ||
501 | help | ||
502 | SHA-512 secure hash standard (DFIPS 180-2) implemented | ||
503 | using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector | ||
504 | Extensions version 1 (AVX1), or Advanced Vector Extensions | ||
505 | version 2 (AVX2) instructions, when available. | ||
506 | |||
483 | config CRYPTO_SHA1_SPARC64 | 507 | config CRYPTO_SHA1_SPARC64 |
484 | tristate "SHA1 digest algorithm (SPARC64)" | 508 | tristate "SHA1 digest algorithm (SPARC64)" |
485 | depends on SPARC64 | 509 | depends on SPARC64 |
@@ -654,6 +678,7 @@ config CRYPTO_AES_NI_INTEL | |||
654 | select CRYPTO_CRYPTD | 678 | select CRYPTO_CRYPTD |
655 | select CRYPTO_ABLK_HELPER_X86 | 679 | select CRYPTO_ABLK_HELPER_X86 |
656 | select CRYPTO_ALGAPI | 680 | select CRYPTO_ALGAPI |
681 | select CRYPTO_GLUE_HELPER_X86 if 64BIT | ||
657 | select CRYPTO_LRW | 682 | select CRYPTO_LRW |
658 | select CRYPTO_XTS | 683 | select CRYPTO_XTS |
659 | help | 684 | help |
@@ -795,6 +820,24 @@ config CRYPTO_BLOWFISH_X86_64 | |||
795 | See also: | 820 | See also: |
796 | <http://www.schneier.com/blowfish.html> | 821 | <http://www.schneier.com/blowfish.html> |
797 | 822 | ||
823 | config CRYPTO_BLOWFISH_AVX2_X86_64 | ||
824 | tristate "Blowfish cipher algorithm (x86_64/AVX2)" | ||
825 | depends on X86 && 64BIT | ||
826 | select CRYPTO_ALGAPI | ||
827 | select CRYPTO_CRYPTD | ||
828 | select CRYPTO_ABLK_HELPER_X86 | ||
829 | select CRYPTO_BLOWFISH_COMMON | ||
830 | select CRYPTO_BLOWFISH_X86_64 | ||
831 | help | ||
832 | Blowfish cipher algorithm (x86_64/AVX2), by Bruce Schneier. | ||
833 | |||
834 | This is a variable key length cipher which can use keys from 32 | ||
835 | bits to 448 bits in length. It's fast, simple and specifically | ||
836 | designed for use on "large microprocessors". | ||
837 | |||
838 | See also: | ||
839 | <http://www.schneier.com/blowfish.html> | ||
840 | |||
798 | config CRYPTO_CAMELLIA | 841 | config CRYPTO_CAMELLIA |
799 | tristate "Camellia cipher algorithms" | 842 | tristate "Camellia cipher algorithms" |
800 | depends on CRYPTO | 843 | depends on CRYPTO |
@@ -851,6 +894,29 @@ config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 | |||
851 | See also: | 894 | See also: |
852 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | 895 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> |
853 | 896 | ||
897 | config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 | ||
898 | tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" | ||
899 | depends on X86 && 64BIT | ||
900 | depends on CRYPTO | ||
901 | select CRYPTO_ALGAPI | ||
902 | select CRYPTO_CRYPTD | ||
903 | select CRYPTO_ABLK_HELPER_X86 | ||
904 | select CRYPTO_GLUE_HELPER_X86 | ||
905 | select CRYPTO_CAMELLIA_X86_64 | ||
906 | select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 | ||
907 | select CRYPTO_LRW | ||
908 | select CRYPTO_XTS | ||
909 | help | ||
910 | Camellia cipher algorithm module (x86_64/AES-NI/AVX2). | ||
911 | |||
912 | Camellia is a symmetric key block cipher developed jointly | ||
913 | at NTT and Mitsubishi Electric Corporation. | ||
914 | |||
915 | The Camellia specifies three key sizes: 128, 192 and 256 bits. | ||
916 | |||
917 | See also: | ||
918 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | ||
919 | |||
854 | config CRYPTO_CAMELLIA_SPARC64 | 920 | config CRYPTO_CAMELLIA_SPARC64 |
855 | tristate "Camellia cipher algorithm (SPARC64)" | 921 | tristate "Camellia cipher algorithm (SPARC64)" |
856 | depends on SPARC64 | 922 | depends on SPARC64 |
@@ -1088,6 +1154,29 @@ config CRYPTO_SERPENT_AVX_X86_64 | |||
1088 | See also: | 1154 | See also: |
1089 | <http://www.cl.cam.ac.uk/~rja14/serpent.html> | 1155 | <http://www.cl.cam.ac.uk/~rja14/serpent.html> |
1090 | 1156 | ||
1157 | config CRYPTO_SERPENT_AVX2_X86_64 | ||
1158 | tristate "Serpent cipher algorithm (x86_64/AVX2)" | ||
1159 | depends on X86 && 64BIT | ||
1160 | select CRYPTO_ALGAPI | ||
1161 | select CRYPTO_CRYPTD | ||
1162 | select CRYPTO_ABLK_HELPER_X86 | ||
1163 | select CRYPTO_GLUE_HELPER_X86 | ||
1164 | select CRYPTO_SERPENT | ||
1165 | select CRYPTO_SERPENT_AVX_X86_64 | ||
1166 | select CRYPTO_LRW | ||
1167 | select CRYPTO_XTS | ||
1168 | help | ||
1169 | Serpent cipher algorithm, by Anderson, Biham & Knudsen. | ||
1170 | |||
1171 | Keys are allowed to be from 0 to 256 bits in length, in steps | ||
1172 | of 8 bits. | ||
1173 | |||
1174 | This module provides Serpent cipher algorithm that processes 16 | ||
1175 | blocks parallel using AVX2 instruction set. | ||
1176 | |||
1177 | See also: | ||
1178 | <http://www.cl.cam.ac.uk/~rja14/serpent.html> | ||
1179 | |||
1091 | config CRYPTO_TEA | 1180 | config CRYPTO_TEA |
1092 | tristate "TEA, XTEA and XETA cipher algorithms" | 1181 | tristate "TEA, XTEA and XETA cipher algorithms" |
1093 | select CRYPTO_ALGAPI | 1182 | select CRYPTO_ALGAPI |
@@ -1207,6 +1296,30 @@ config CRYPTO_TWOFISH_AVX_X86_64 | |||
1207 | See also: | 1296 | See also: |
1208 | <http://www.schneier.com/twofish.html> | 1297 | <http://www.schneier.com/twofish.html> |
1209 | 1298 | ||
1299 | config CRYPTO_TWOFISH_AVX2_X86_64 | ||
1300 | tristate "Twofish cipher algorithm (x86_64/AVX2)" | ||
1301 | depends on X86 && 64BIT | ||
1302 | select CRYPTO_ALGAPI | ||
1303 | select CRYPTO_CRYPTD | ||
1304 | select CRYPTO_ABLK_HELPER_X86 | ||
1305 | select CRYPTO_GLUE_HELPER_X86 | ||
1306 | select CRYPTO_TWOFISH_COMMON | ||
1307 | select CRYPTO_TWOFISH_X86_64 | ||
1308 | select CRYPTO_TWOFISH_X86_64_3WAY | ||
1309 | select CRYPTO_TWOFISH_AVX_X86_64 | ||
1310 | select CRYPTO_LRW | ||
1311 | select CRYPTO_XTS | ||
1312 | help | ||
1313 | Twofish cipher algorithm (x86_64/AVX2). | ||
1314 | |||
1315 | Twofish was submitted as an AES (Advanced Encryption Standard) | ||
1316 | candidate cipher by researchers at CounterPane Systems. It is a | ||
1317 | 16 round block cipher supporting key sizes of 128, 192, and 256 | ||
1318 | bits. | ||
1319 | |||
1320 | See also: | ||
1321 | <http://www.schneier.com/twofish.html> | ||
1322 | |||
1210 | comment "Compression" | 1323 | comment "Compression" |
1211 | 1324 | ||
1212 | config CRYPTO_DEFLATE | 1325 | config CRYPTO_DEFLATE |
diff --git a/crypto/Makefile b/crypto/Makefile index be1a1bebbb86..a8e9b0fefbe9 100644 --- a/crypto/Makefile +++ b/crypto/Makefile | |||
@@ -32,6 +32,7 @@ cryptomgr-y := algboss.o testmgr.o | |||
32 | 32 | ||
33 | obj-$(CONFIG_CRYPTO_MANAGER2) += cryptomgr.o | 33 | obj-$(CONFIG_CRYPTO_MANAGER2) += cryptomgr.o |
34 | obj-$(CONFIG_CRYPTO_USER) += crypto_user.o | 34 | obj-$(CONFIG_CRYPTO_USER) += crypto_user.o |
35 | obj-$(CONFIG_CRYPTO_CMAC) += cmac.o | ||
35 | obj-$(CONFIG_CRYPTO_HMAC) += hmac.o | 36 | obj-$(CONFIG_CRYPTO_HMAC) += hmac.o |
36 | obj-$(CONFIG_CRYPTO_VMAC) += vmac.o | 37 | obj-$(CONFIG_CRYPTO_VMAC) += vmac.o |
37 | obj-$(CONFIG_CRYPTO_XCBC) += xcbc.o | 38 | obj-$(CONFIG_CRYPTO_XCBC) += xcbc.o |
diff --git a/crypto/cmac.c b/crypto/cmac.c new file mode 100644 index 000000000000..50880cf17fad --- /dev/null +++ b/crypto/cmac.c | |||
@@ -0,0 +1,315 @@ | |||
1 | /* | ||
2 | * CMAC: Cipher Block Mode for Authentication | ||
3 | * | ||
4 | * Copyright © 2013 Jussi Kivilinna <jussi.kivilinna@iki.fi> | ||
5 | * | ||
6 | * Based on work by: | ||
7 | * Copyright © 2013 Tom St Denis <tstdenis@elliptictech.com> | ||
8 | * Based on crypto/xcbc.c: | ||
9 | * Copyright © 2006 USAGI/WIDE Project, | ||
10 | * Author: Kazunori Miyazawa <miyazawa@linux-ipv6.org> | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License as published by | ||
14 | * the Free Software Foundation; either version 2 of the License, or | ||
15 | * (at your option) any later version. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #include <crypto/internal/hash.h> | ||
20 | #include <linux/err.h> | ||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/module.h> | ||
23 | |||
24 | /* | ||
25 | * +------------------------ | ||
26 | * | <parent tfm> | ||
27 | * +------------------------ | ||
28 | * | cmac_tfm_ctx | ||
29 | * +------------------------ | ||
30 | * | consts (block size * 2) | ||
31 | * +------------------------ | ||
32 | */ | ||
33 | struct cmac_tfm_ctx { | ||
34 | struct crypto_cipher *child; | ||
35 | u8 ctx[]; | ||
36 | }; | ||
37 | |||
38 | /* | ||
39 | * +------------------------ | ||
40 | * | <shash desc> | ||
41 | * +------------------------ | ||
42 | * | cmac_desc_ctx | ||
43 | * +------------------------ | ||
44 | * | odds (block size) | ||
45 | * +------------------------ | ||
46 | * | prev (block size) | ||
47 | * +------------------------ | ||
48 | */ | ||
49 | struct cmac_desc_ctx { | ||
50 | unsigned int len; | ||
51 | u8 ctx[]; | ||
52 | }; | ||
53 | |||
54 | static int crypto_cmac_digest_setkey(struct crypto_shash *parent, | ||
55 | const u8 *inkey, unsigned int keylen) | ||
56 | { | ||
57 | unsigned long alignmask = crypto_shash_alignmask(parent); | ||
58 | struct cmac_tfm_ctx *ctx = crypto_shash_ctx(parent); | ||
59 | unsigned int bs = crypto_shash_blocksize(parent); | ||
60 | __be64 *consts = PTR_ALIGN((void *)ctx->ctx, alignmask + 1); | ||
61 | u64 _const[2]; | ||
62 | int i, err = 0; | ||
63 | u8 msb_mask, gfmask; | ||
64 | |||
65 | err = crypto_cipher_setkey(ctx->child, inkey, keylen); | ||
66 | if (err) | ||
67 | return err; | ||
68 | |||
69 | /* encrypt the zero block */ | ||
70 | memset(consts, 0, bs); | ||
71 | crypto_cipher_encrypt_one(ctx->child, (u8 *)consts, (u8 *)consts); | ||
72 | |||
73 | switch (bs) { | ||
74 | case 16: | ||
75 | gfmask = 0x87; | ||
76 | _const[0] = be64_to_cpu(consts[1]); | ||
77 | _const[1] = be64_to_cpu(consts[0]); | ||
78 | |||
79 | /* gf(2^128) multiply zero-ciphertext with u and u^2 */ | ||
80 | for (i = 0; i < 4; i += 2) { | ||
81 | msb_mask = ((s64)_const[1] >> 63) & gfmask; | ||
82 | _const[1] = (_const[1] << 1) | (_const[0] >> 63); | ||
83 | _const[0] = (_const[0] << 1) ^ msb_mask; | ||
84 | |||
85 | consts[i + 0] = cpu_to_be64(_const[1]); | ||
86 | consts[i + 1] = cpu_to_be64(_const[0]); | ||
87 | } | ||
88 | |||
89 | break; | ||
90 | case 8: | ||
91 | gfmask = 0x1B; | ||
92 | _const[0] = be64_to_cpu(consts[0]); | ||
93 | |||
94 | /* gf(2^64) multiply zero-ciphertext with u and u^2 */ | ||
95 | for (i = 0; i < 2; i++) { | ||
96 | msb_mask = ((s64)_const[0] >> 63) & gfmask; | ||
97 | _const[0] = (_const[0] << 1) ^ msb_mask; | ||
98 | |||
99 | consts[i] = cpu_to_be64(_const[0]); | ||
100 | } | ||
101 | |||
102 | break; | ||
103 | } | ||
104 | |||
105 | return 0; | ||
106 | } | ||
107 | |||
108 | static int crypto_cmac_digest_init(struct shash_desc *pdesc) | ||
109 | { | ||
110 | unsigned long alignmask = crypto_shash_alignmask(pdesc->tfm); | ||
111 | struct cmac_desc_ctx *ctx = shash_desc_ctx(pdesc); | ||
112 | int bs = crypto_shash_blocksize(pdesc->tfm); | ||
113 | u8 *prev = PTR_ALIGN((void *)ctx->ctx, alignmask + 1) + bs; | ||
114 | |||
115 | ctx->len = 0; | ||
116 | memset(prev, 0, bs); | ||
117 | |||
118 | return 0; | ||
119 | } | ||
120 | |||
121 | static int crypto_cmac_digest_update(struct shash_desc *pdesc, const u8 *p, | ||
122 | unsigned int len) | ||
123 | { | ||
124 | struct crypto_shash *parent = pdesc->tfm; | ||
125 | unsigned long alignmask = crypto_shash_alignmask(parent); | ||
126 | struct cmac_tfm_ctx *tctx = crypto_shash_ctx(parent); | ||
127 | struct cmac_desc_ctx *ctx = shash_desc_ctx(pdesc); | ||
128 | struct crypto_cipher *tfm = tctx->child; | ||
129 | int bs = crypto_shash_blocksize(parent); | ||
130 | u8 *odds = PTR_ALIGN((void *)ctx->ctx, alignmask + 1); | ||
131 | u8 *prev = odds + bs; | ||
132 | |||
133 | /* checking the data can fill the block */ | ||
134 | if ((ctx->len + len) <= bs) { | ||
135 | memcpy(odds + ctx->len, p, len); | ||
136 | ctx->len += len; | ||
137 | return 0; | ||
138 | } | ||
139 | |||
140 | /* filling odds with new data and encrypting it */ | ||
141 | memcpy(odds + ctx->len, p, bs - ctx->len); | ||
142 | len -= bs - ctx->len; | ||
143 | p += bs - ctx->len; | ||
144 | |||
145 | crypto_xor(prev, odds, bs); | ||
146 | crypto_cipher_encrypt_one(tfm, prev, prev); | ||
147 | |||
148 | /* clearing the length */ | ||
149 | ctx->len = 0; | ||
150 | |||
151 | /* encrypting the rest of data */ | ||
152 | while (len > bs) { | ||
153 | crypto_xor(prev, p, bs); | ||
154 | crypto_cipher_encrypt_one(tfm, prev, prev); | ||
155 | p += bs; | ||
156 | len -= bs; | ||
157 | } | ||
158 | |||
159 | /* keeping the surplus of blocksize */ | ||
160 | if (len) { | ||
161 | memcpy(odds, p, len); | ||
162 | ctx->len = len; | ||
163 | } | ||
164 | |||
165 | return 0; | ||
166 | } | ||
167 | |||
168 | static int crypto_cmac_digest_final(struct shash_desc *pdesc, u8 *out) | ||
169 | { | ||
170 | struct crypto_shash *parent = pdesc->tfm; | ||
171 | unsigned long alignmask = crypto_shash_alignmask(parent); | ||
172 | struct cmac_tfm_ctx *tctx = crypto_shash_ctx(parent); | ||
173 | struct cmac_desc_ctx *ctx = shash_desc_ctx(pdesc); | ||
174 | struct crypto_cipher *tfm = tctx->child; | ||
175 | int bs = crypto_shash_blocksize(parent); | ||
176 | u8 *consts = PTR_ALIGN((void *)tctx->ctx, alignmask + 1); | ||
177 | u8 *odds = PTR_ALIGN((void *)ctx->ctx, alignmask + 1); | ||
178 | u8 *prev = odds + bs; | ||
179 | unsigned int offset = 0; | ||
180 | |||
181 | if (ctx->len != bs) { | ||
182 | unsigned int rlen; | ||
183 | u8 *p = odds + ctx->len; | ||
184 | |||
185 | *p = 0x80; | ||
186 | p++; | ||
187 | |||
188 | rlen = bs - ctx->len - 1; | ||
189 | if (rlen) | ||
190 | memset(p, 0, rlen); | ||
191 | |||
192 | offset += bs; | ||
193 | } | ||
194 | |||
195 | crypto_xor(prev, odds, bs); | ||
196 | crypto_xor(prev, consts + offset, bs); | ||
197 | |||
198 | crypto_cipher_encrypt_one(tfm, out, prev); | ||
199 | |||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static int cmac_init_tfm(struct crypto_tfm *tfm) | ||
204 | { | ||
205 | struct crypto_cipher *cipher; | ||
206 | struct crypto_instance *inst = (void *)tfm->__crt_alg; | ||
207 | struct crypto_spawn *spawn = crypto_instance_ctx(inst); | ||
208 | struct cmac_tfm_ctx *ctx = crypto_tfm_ctx(tfm); | ||
209 | |||
210 | cipher = crypto_spawn_cipher(spawn); | ||
211 | if (IS_ERR(cipher)) | ||
212 | return PTR_ERR(cipher); | ||
213 | |||
214 | ctx->child = cipher; | ||
215 | |||
216 | return 0; | ||
217 | }; | ||
218 | |||
219 | static void cmac_exit_tfm(struct crypto_tfm *tfm) | ||
220 | { | ||
221 | struct cmac_tfm_ctx *ctx = crypto_tfm_ctx(tfm); | ||
222 | crypto_free_cipher(ctx->child); | ||
223 | } | ||
224 | |||
225 | static int cmac_create(struct crypto_template *tmpl, struct rtattr **tb) | ||
226 | { | ||
227 | struct shash_instance *inst; | ||
228 | struct crypto_alg *alg; | ||
229 | unsigned long alignmask; | ||
230 | int err; | ||
231 | |||
232 | err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_SHASH); | ||
233 | if (err) | ||
234 | return err; | ||
235 | |||
236 | alg = crypto_get_attr_alg(tb, CRYPTO_ALG_TYPE_CIPHER, | ||
237 | CRYPTO_ALG_TYPE_MASK); | ||
238 | if (IS_ERR(alg)) | ||
239 | return PTR_ERR(alg); | ||
240 | |||
241 | switch (alg->cra_blocksize) { | ||
242 | case 16: | ||
243 | case 8: | ||
244 | break; | ||
245 | default: | ||
246 | goto out_put_alg; | ||
247 | } | ||
248 | |||
249 | inst = shash_alloc_instance("cmac", alg); | ||
250 | err = PTR_ERR(inst); | ||
251 | if (IS_ERR(inst)) | ||
252 | goto out_put_alg; | ||
253 | |||
254 | err = crypto_init_spawn(shash_instance_ctx(inst), alg, | ||
255 | shash_crypto_instance(inst), | ||
256 | CRYPTO_ALG_TYPE_MASK); | ||
257 | if (err) | ||
258 | goto out_free_inst; | ||
259 | |||
260 | alignmask = alg->cra_alignmask | (sizeof(long) - 1); | ||
261 | inst->alg.base.cra_alignmask = alignmask; | ||
262 | inst->alg.base.cra_priority = alg->cra_priority; | ||
263 | inst->alg.base.cra_blocksize = alg->cra_blocksize; | ||
264 | |||
265 | inst->alg.digestsize = alg->cra_blocksize; | ||
266 | inst->alg.descsize = | ||
267 | ALIGN(sizeof(struct cmac_desc_ctx), crypto_tfm_ctx_alignment()) | ||
268 | + (alignmask & ~(crypto_tfm_ctx_alignment() - 1)) | ||
269 | + alg->cra_blocksize * 2; | ||
270 | |||
271 | inst->alg.base.cra_ctxsize = | ||
272 | ALIGN(sizeof(struct cmac_tfm_ctx), alignmask + 1) | ||
273 | + alg->cra_blocksize * 2; | ||
274 | |||
275 | inst->alg.base.cra_init = cmac_init_tfm; | ||
276 | inst->alg.base.cra_exit = cmac_exit_tfm; | ||
277 | |||
278 | inst->alg.init = crypto_cmac_digest_init; | ||
279 | inst->alg.update = crypto_cmac_digest_update; | ||
280 | inst->alg.final = crypto_cmac_digest_final; | ||
281 | inst->alg.setkey = crypto_cmac_digest_setkey; | ||
282 | |||
283 | err = shash_register_instance(tmpl, inst); | ||
284 | if (err) { | ||
285 | out_free_inst: | ||
286 | shash_free_instance(shash_crypto_instance(inst)); | ||
287 | } | ||
288 | |||
289 | out_put_alg: | ||
290 | crypto_mod_put(alg); | ||
291 | return err; | ||
292 | } | ||
293 | |||
294 | static struct crypto_template crypto_cmac_tmpl = { | ||
295 | .name = "cmac", | ||
296 | .create = cmac_create, | ||
297 | .free = shash_free_instance, | ||
298 | .module = THIS_MODULE, | ||
299 | }; | ||
300 | |||
301 | static int __init crypto_cmac_module_init(void) | ||
302 | { | ||
303 | return crypto_register_template(&crypto_cmac_tmpl); | ||
304 | } | ||
305 | |||
306 | static void __exit crypto_cmac_module_exit(void) | ||
307 | { | ||
308 | crypto_unregister_template(&crypto_cmac_tmpl); | ||
309 | } | ||
310 | |||
311 | module_init(crypto_cmac_module_init); | ||
312 | module_exit(crypto_cmac_module_exit); | ||
313 | |||
314 | MODULE_LICENSE("GPL"); | ||
315 | MODULE_DESCRIPTION("CMAC keyed hash algorithm"); | ||
diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c index dfd511fb39ee..1512e41cd93d 100644 --- a/crypto/crypto_user.c +++ b/crypto/crypto_user.c | |||
@@ -440,7 +440,7 @@ static const struct nla_policy crypto_policy[CRYPTOCFGA_MAX+1] = { | |||
440 | 440 | ||
441 | #undef MSGSIZE | 441 | #undef MSGSIZE |
442 | 442 | ||
443 | static struct crypto_link { | 443 | static const struct crypto_link { |
444 | int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **); | 444 | int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **); |
445 | int (*dump)(struct sk_buff *, struct netlink_callback *); | 445 | int (*dump)(struct sk_buff *, struct netlink_callback *); |
446 | int (*done)(struct netlink_callback *); | 446 | int (*done)(struct netlink_callback *); |
@@ -456,7 +456,7 @@ static struct crypto_link { | |||
456 | static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | 456 | static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) |
457 | { | 457 | { |
458 | struct nlattr *attrs[CRYPTOCFGA_MAX+1]; | 458 | struct nlattr *attrs[CRYPTOCFGA_MAX+1]; |
459 | struct crypto_link *link; | 459 | const struct crypto_link *link; |
460 | int type, err; | 460 | int type, err; |
461 | 461 | ||
462 | type = nlh->nlmsg_type; | 462 | type = nlh->nlmsg_type; |
diff --git a/crypto/gcm.c b/crypto/gcm.c index 13ccbda34ff9..43e1fb05ea54 100644 --- a/crypto/gcm.c +++ b/crypto/gcm.c | |||
@@ -37,8 +37,14 @@ struct crypto_rfc4106_ctx { | |||
37 | u8 nonce[4]; | 37 | u8 nonce[4]; |
38 | }; | 38 | }; |
39 | 39 | ||
40 | struct crypto_rfc4543_instance_ctx { | ||
41 | struct crypto_aead_spawn aead; | ||
42 | struct crypto_skcipher_spawn null; | ||
43 | }; | ||
44 | |||
40 | struct crypto_rfc4543_ctx { | 45 | struct crypto_rfc4543_ctx { |
41 | struct crypto_aead *child; | 46 | struct crypto_aead *child; |
47 | struct crypto_blkcipher *null; | ||
42 | u8 nonce[4]; | 48 | u8 nonce[4]; |
43 | }; | 49 | }; |
44 | 50 | ||
@@ -1094,21 +1100,36 @@ static int crypto_rfc4543_setauthsize(struct crypto_aead *parent, | |||
1094 | return crypto_aead_setauthsize(ctx->child, authsize); | 1100 | return crypto_aead_setauthsize(ctx->child, authsize); |
1095 | } | 1101 | } |
1096 | 1102 | ||
1103 | static void crypto_rfc4543_done(struct crypto_async_request *areq, int err) | ||
1104 | { | ||
1105 | struct aead_request *req = areq->data; | ||
1106 | struct crypto_aead *aead = crypto_aead_reqtfm(req); | ||
1107 | struct crypto_rfc4543_req_ctx *rctx = crypto_rfc4543_reqctx(req); | ||
1108 | |||
1109 | if (!err) { | ||
1110 | scatterwalk_map_and_copy(rctx->auth_tag, req->dst, | ||
1111 | req->cryptlen, | ||
1112 | crypto_aead_authsize(aead), 1); | ||
1113 | } | ||
1114 | |||
1115 | aead_request_complete(req, err); | ||
1116 | } | ||
1117 | |||
1097 | static struct aead_request *crypto_rfc4543_crypt(struct aead_request *req, | 1118 | static struct aead_request *crypto_rfc4543_crypt(struct aead_request *req, |
1098 | int enc) | 1119 | bool enc) |
1099 | { | 1120 | { |
1100 | struct crypto_aead *aead = crypto_aead_reqtfm(req); | 1121 | struct crypto_aead *aead = crypto_aead_reqtfm(req); |
1101 | struct crypto_rfc4543_ctx *ctx = crypto_aead_ctx(aead); | 1122 | struct crypto_rfc4543_ctx *ctx = crypto_aead_ctx(aead); |
1102 | struct crypto_rfc4543_req_ctx *rctx = crypto_rfc4543_reqctx(req); | 1123 | struct crypto_rfc4543_req_ctx *rctx = crypto_rfc4543_reqctx(req); |
1103 | struct aead_request *subreq = &rctx->subreq; | 1124 | struct aead_request *subreq = &rctx->subreq; |
1104 | struct scatterlist *dst = req->dst; | 1125 | struct scatterlist *src = req->src; |
1105 | struct scatterlist *cipher = rctx->cipher; | 1126 | struct scatterlist *cipher = rctx->cipher; |
1106 | struct scatterlist *payload = rctx->payload; | 1127 | struct scatterlist *payload = rctx->payload; |
1107 | struct scatterlist *assoc = rctx->assoc; | 1128 | struct scatterlist *assoc = rctx->assoc; |
1108 | unsigned int authsize = crypto_aead_authsize(aead); | 1129 | unsigned int authsize = crypto_aead_authsize(aead); |
1109 | unsigned int assoclen = req->assoclen; | 1130 | unsigned int assoclen = req->assoclen; |
1110 | struct page *dstp; | 1131 | struct page *srcp; |
1111 | u8 *vdst; | 1132 | u8 *vsrc; |
1112 | u8 *iv = PTR_ALIGN((u8 *)(rctx + 1) + crypto_aead_reqsize(ctx->child), | 1133 | u8 *iv = PTR_ALIGN((u8 *)(rctx + 1) + crypto_aead_reqsize(ctx->child), |
1113 | crypto_aead_alignmask(ctx->child) + 1); | 1134 | crypto_aead_alignmask(ctx->child) + 1); |
1114 | 1135 | ||
@@ -1119,19 +1140,19 @@ static struct aead_request *crypto_rfc4543_crypt(struct aead_request *req, | |||
1119 | if (enc) | 1140 | if (enc) |
1120 | memset(rctx->auth_tag, 0, authsize); | 1141 | memset(rctx->auth_tag, 0, authsize); |
1121 | else | 1142 | else |
1122 | scatterwalk_map_and_copy(rctx->auth_tag, dst, | 1143 | scatterwalk_map_and_copy(rctx->auth_tag, src, |
1123 | req->cryptlen - authsize, | 1144 | req->cryptlen - authsize, |
1124 | authsize, 0); | 1145 | authsize, 0); |
1125 | 1146 | ||
1126 | sg_init_one(cipher, rctx->auth_tag, authsize); | 1147 | sg_init_one(cipher, rctx->auth_tag, authsize); |
1127 | 1148 | ||
1128 | /* construct the aad */ | 1149 | /* construct the aad */ |
1129 | dstp = sg_page(dst); | 1150 | srcp = sg_page(src); |
1130 | vdst = PageHighMem(dstp) ? NULL : page_address(dstp) + dst->offset; | 1151 | vsrc = PageHighMem(srcp) ? NULL : page_address(srcp) + src->offset; |
1131 | 1152 | ||
1132 | sg_init_table(payload, 2); | 1153 | sg_init_table(payload, 2); |
1133 | sg_set_buf(payload, req->iv, 8); | 1154 | sg_set_buf(payload, req->iv, 8); |
1134 | scatterwalk_crypto_chain(payload, dst, vdst == req->iv + 8, 2); | 1155 | scatterwalk_crypto_chain(payload, src, vsrc == req->iv + 8, 2); |
1135 | assoclen += 8 + req->cryptlen - (enc ? 0 : authsize); | 1156 | assoclen += 8 + req->cryptlen - (enc ? 0 : authsize); |
1136 | 1157 | ||
1137 | if (req->assoc->length == req->assoclen) { | 1158 | if (req->assoc->length == req->assoclen) { |
@@ -1150,14 +1171,27 @@ static struct aead_request *crypto_rfc4543_crypt(struct aead_request *req, | |||
1150 | scatterwalk_crypto_chain(assoc, payload, 0, 2); | 1171 | scatterwalk_crypto_chain(assoc, payload, 0, 2); |
1151 | 1172 | ||
1152 | aead_request_set_tfm(subreq, ctx->child); | 1173 | aead_request_set_tfm(subreq, ctx->child); |
1153 | aead_request_set_callback(subreq, req->base.flags, req->base.complete, | 1174 | aead_request_set_callback(subreq, req->base.flags, crypto_rfc4543_done, |
1154 | req->base.data); | 1175 | req); |
1155 | aead_request_set_crypt(subreq, cipher, cipher, enc ? 0 : authsize, iv); | 1176 | aead_request_set_crypt(subreq, cipher, cipher, enc ? 0 : authsize, iv); |
1156 | aead_request_set_assoc(subreq, assoc, assoclen); | 1177 | aead_request_set_assoc(subreq, assoc, assoclen); |
1157 | 1178 | ||
1158 | return subreq; | 1179 | return subreq; |
1159 | } | 1180 | } |
1160 | 1181 | ||
1182 | static int crypto_rfc4543_copy_src_to_dst(struct aead_request *req, bool enc) | ||
1183 | { | ||
1184 | struct crypto_aead *aead = crypto_aead_reqtfm(req); | ||
1185 | struct crypto_rfc4543_ctx *ctx = crypto_aead_ctx(aead); | ||
1186 | unsigned int authsize = crypto_aead_authsize(aead); | ||
1187 | unsigned int nbytes = req->cryptlen - (enc ? 0 : authsize); | ||
1188 | struct blkcipher_desc desc = { | ||
1189 | .tfm = ctx->null, | ||
1190 | }; | ||
1191 | |||
1192 | return crypto_blkcipher_encrypt(&desc, req->dst, req->src, nbytes); | ||
1193 | } | ||
1194 | |||
1161 | static int crypto_rfc4543_encrypt(struct aead_request *req) | 1195 | static int crypto_rfc4543_encrypt(struct aead_request *req) |
1162 | { | 1196 | { |
1163 | struct crypto_aead *aead = crypto_aead_reqtfm(req); | 1197 | struct crypto_aead *aead = crypto_aead_reqtfm(req); |
@@ -1165,7 +1199,13 @@ static int crypto_rfc4543_encrypt(struct aead_request *req) | |||
1165 | struct aead_request *subreq; | 1199 | struct aead_request *subreq; |
1166 | int err; | 1200 | int err; |
1167 | 1201 | ||
1168 | subreq = crypto_rfc4543_crypt(req, 1); | 1202 | if (req->src != req->dst) { |
1203 | err = crypto_rfc4543_copy_src_to_dst(req, true); | ||
1204 | if (err) | ||
1205 | return err; | ||
1206 | } | ||
1207 | |||
1208 | subreq = crypto_rfc4543_crypt(req, true); | ||
1169 | err = crypto_aead_encrypt(subreq); | 1209 | err = crypto_aead_encrypt(subreq); |
1170 | if (err) | 1210 | if (err) |
1171 | return err; | 1211 | return err; |
@@ -1178,7 +1218,15 @@ static int crypto_rfc4543_encrypt(struct aead_request *req) | |||
1178 | 1218 | ||
1179 | static int crypto_rfc4543_decrypt(struct aead_request *req) | 1219 | static int crypto_rfc4543_decrypt(struct aead_request *req) |
1180 | { | 1220 | { |
1181 | req = crypto_rfc4543_crypt(req, 0); | 1221 | int err; |
1222 | |||
1223 | if (req->src != req->dst) { | ||
1224 | err = crypto_rfc4543_copy_src_to_dst(req, false); | ||
1225 | if (err) | ||
1226 | return err; | ||
1227 | } | ||
1228 | |||
1229 | req = crypto_rfc4543_crypt(req, false); | ||
1182 | 1230 | ||
1183 | return crypto_aead_decrypt(req); | 1231 | return crypto_aead_decrypt(req); |
1184 | } | 1232 | } |
@@ -1186,16 +1234,25 @@ static int crypto_rfc4543_decrypt(struct aead_request *req) | |||
1186 | static int crypto_rfc4543_init_tfm(struct crypto_tfm *tfm) | 1234 | static int crypto_rfc4543_init_tfm(struct crypto_tfm *tfm) |
1187 | { | 1235 | { |
1188 | struct crypto_instance *inst = (void *)tfm->__crt_alg; | 1236 | struct crypto_instance *inst = (void *)tfm->__crt_alg; |
1189 | struct crypto_aead_spawn *spawn = crypto_instance_ctx(inst); | 1237 | struct crypto_rfc4543_instance_ctx *ictx = crypto_instance_ctx(inst); |
1238 | struct crypto_aead_spawn *spawn = &ictx->aead; | ||
1190 | struct crypto_rfc4543_ctx *ctx = crypto_tfm_ctx(tfm); | 1239 | struct crypto_rfc4543_ctx *ctx = crypto_tfm_ctx(tfm); |
1191 | struct crypto_aead *aead; | 1240 | struct crypto_aead *aead; |
1241 | struct crypto_blkcipher *null; | ||
1192 | unsigned long align; | 1242 | unsigned long align; |
1243 | int err = 0; | ||
1193 | 1244 | ||
1194 | aead = crypto_spawn_aead(spawn); | 1245 | aead = crypto_spawn_aead(spawn); |
1195 | if (IS_ERR(aead)) | 1246 | if (IS_ERR(aead)) |
1196 | return PTR_ERR(aead); | 1247 | return PTR_ERR(aead); |
1197 | 1248 | ||
1249 | null = crypto_spawn_blkcipher(&ictx->null.base); | ||
1250 | err = PTR_ERR(null); | ||
1251 | if (IS_ERR(null)) | ||
1252 | goto err_free_aead; | ||
1253 | |||
1198 | ctx->child = aead; | 1254 | ctx->child = aead; |
1255 | ctx->null = null; | ||
1199 | 1256 | ||
1200 | align = crypto_aead_alignmask(aead); | 1257 | align = crypto_aead_alignmask(aead); |
1201 | align &= ~(crypto_tfm_ctx_alignment() - 1); | 1258 | align &= ~(crypto_tfm_ctx_alignment() - 1); |
@@ -1205,6 +1262,10 @@ static int crypto_rfc4543_init_tfm(struct crypto_tfm *tfm) | |||
1205 | align + 16; | 1262 | align + 16; |
1206 | 1263 | ||
1207 | return 0; | 1264 | return 0; |
1265 | |||
1266 | err_free_aead: | ||
1267 | crypto_free_aead(aead); | ||
1268 | return err; | ||
1208 | } | 1269 | } |
1209 | 1270 | ||
1210 | static void crypto_rfc4543_exit_tfm(struct crypto_tfm *tfm) | 1271 | static void crypto_rfc4543_exit_tfm(struct crypto_tfm *tfm) |
@@ -1212,6 +1273,7 @@ static void crypto_rfc4543_exit_tfm(struct crypto_tfm *tfm) | |||
1212 | struct crypto_rfc4543_ctx *ctx = crypto_tfm_ctx(tfm); | 1273 | struct crypto_rfc4543_ctx *ctx = crypto_tfm_ctx(tfm); |
1213 | 1274 | ||
1214 | crypto_free_aead(ctx->child); | 1275 | crypto_free_aead(ctx->child); |
1276 | crypto_free_blkcipher(ctx->null); | ||
1215 | } | 1277 | } |
1216 | 1278 | ||
1217 | static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | 1279 | static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) |
@@ -1220,6 +1282,7 @@ static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | |||
1220 | struct crypto_instance *inst; | 1282 | struct crypto_instance *inst; |
1221 | struct crypto_aead_spawn *spawn; | 1283 | struct crypto_aead_spawn *spawn; |
1222 | struct crypto_alg *alg; | 1284 | struct crypto_alg *alg; |
1285 | struct crypto_rfc4543_instance_ctx *ctx; | ||
1223 | const char *ccm_name; | 1286 | const char *ccm_name; |
1224 | int err; | 1287 | int err; |
1225 | 1288 | ||
@@ -1234,11 +1297,12 @@ static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | |||
1234 | if (IS_ERR(ccm_name)) | 1297 | if (IS_ERR(ccm_name)) |
1235 | return ERR_CAST(ccm_name); | 1298 | return ERR_CAST(ccm_name); |
1236 | 1299 | ||
1237 | inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL); | 1300 | inst = kzalloc(sizeof(*inst) + sizeof(*ctx), GFP_KERNEL); |
1238 | if (!inst) | 1301 | if (!inst) |
1239 | return ERR_PTR(-ENOMEM); | 1302 | return ERR_PTR(-ENOMEM); |
1240 | 1303 | ||
1241 | spawn = crypto_instance_ctx(inst); | 1304 | ctx = crypto_instance_ctx(inst); |
1305 | spawn = &ctx->aead; | ||
1242 | crypto_set_aead_spawn(spawn, inst); | 1306 | crypto_set_aead_spawn(spawn, inst); |
1243 | err = crypto_grab_aead(spawn, ccm_name, 0, | 1307 | err = crypto_grab_aead(spawn, ccm_name, 0, |
1244 | crypto_requires_sync(algt->type, algt->mask)); | 1308 | crypto_requires_sync(algt->type, algt->mask)); |
@@ -1247,15 +1311,23 @@ static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | |||
1247 | 1311 | ||
1248 | alg = crypto_aead_spawn_alg(spawn); | 1312 | alg = crypto_aead_spawn_alg(spawn); |
1249 | 1313 | ||
1314 | crypto_set_skcipher_spawn(&ctx->null, inst); | ||
1315 | err = crypto_grab_skcipher(&ctx->null, "ecb(cipher_null)", 0, | ||
1316 | CRYPTO_ALG_ASYNC); | ||
1317 | if (err) | ||
1318 | goto out_drop_alg; | ||
1319 | |||
1320 | crypto_skcipher_spawn_alg(&ctx->null); | ||
1321 | |||
1250 | err = -EINVAL; | 1322 | err = -EINVAL; |
1251 | 1323 | ||
1252 | /* We only support 16-byte blocks. */ | 1324 | /* We only support 16-byte blocks. */ |
1253 | if (alg->cra_aead.ivsize != 16) | 1325 | if (alg->cra_aead.ivsize != 16) |
1254 | goto out_drop_alg; | 1326 | goto out_drop_ecbnull; |
1255 | 1327 | ||
1256 | /* Not a stream cipher? */ | 1328 | /* Not a stream cipher? */ |
1257 | if (alg->cra_blocksize != 1) | 1329 | if (alg->cra_blocksize != 1) |
1258 | goto out_drop_alg; | 1330 | goto out_drop_ecbnull; |
1259 | 1331 | ||
1260 | err = -ENAMETOOLONG; | 1332 | err = -ENAMETOOLONG; |
1261 | if (snprintf(inst->alg.cra_name, CRYPTO_MAX_ALG_NAME, | 1333 | if (snprintf(inst->alg.cra_name, CRYPTO_MAX_ALG_NAME, |
@@ -1263,7 +1335,7 @@ static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | |||
1263 | snprintf(inst->alg.cra_driver_name, CRYPTO_MAX_ALG_NAME, | 1335 | snprintf(inst->alg.cra_driver_name, CRYPTO_MAX_ALG_NAME, |
1264 | "rfc4543(%s)", alg->cra_driver_name) >= | 1336 | "rfc4543(%s)", alg->cra_driver_name) >= |
1265 | CRYPTO_MAX_ALG_NAME) | 1337 | CRYPTO_MAX_ALG_NAME) |
1266 | goto out_drop_alg; | 1338 | goto out_drop_ecbnull; |
1267 | 1339 | ||
1268 | inst->alg.cra_flags = CRYPTO_ALG_TYPE_AEAD; | 1340 | inst->alg.cra_flags = CRYPTO_ALG_TYPE_AEAD; |
1269 | inst->alg.cra_flags |= alg->cra_flags & CRYPTO_ALG_ASYNC; | 1341 | inst->alg.cra_flags |= alg->cra_flags & CRYPTO_ALG_ASYNC; |
@@ -1290,6 +1362,8 @@ static struct crypto_instance *crypto_rfc4543_alloc(struct rtattr **tb) | |||
1290 | out: | 1362 | out: |
1291 | return inst; | 1363 | return inst; |
1292 | 1364 | ||
1365 | out_drop_ecbnull: | ||
1366 | crypto_drop_skcipher(&ctx->null); | ||
1293 | out_drop_alg: | 1367 | out_drop_alg: |
1294 | crypto_drop_aead(spawn); | 1368 | crypto_drop_aead(spawn); |
1295 | out_free_inst: | 1369 | out_free_inst: |
@@ -1300,7 +1374,11 @@ out_free_inst: | |||
1300 | 1374 | ||
1301 | static void crypto_rfc4543_free(struct crypto_instance *inst) | 1375 | static void crypto_rfc4543_free(struct crypto_instance *inst) |
1302 | { | 1376 | { |
1303 | crypto_drop_spawn(crypto_instance_ctx(inst)); | 1377 | struct crypto_rfc4543_instance_ctx *ctx = crypto_instance_ctx(inst); |
1378 | |||
1379 | crypto_drop_aead(&ctx->aead); | ||
1380 | crypto_drop_skcipher(&ctx->null); | ||
1381 | |||
1304 | kfree(inst); | 1382 | kfree(inst); |
1305 | } | 1383 | } |
1306 | 1384 | ||
diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c index c3ed4ec924e1..543366779524 100644 --- a/crypto/sha256_generic.c +++ b/crypto/sha256_generic.c | |||
@@ -246,7 +246,7 @@ static int sha256_init(struct shash_desc *desc) | |||
246 | return 0; | 246 | return 0; |
247 | } | 247 | } |
248 | 248 | ||
249 | static int sha256_update(struct shash_desc *desc, const u8 *data, | 249 | int crypto_sha256_update(struct shash_desc *desc, const u8 *data, |
250 | unsigned int len) | 250 | unsigned int len) |
251 | { | 251 | { |
252 | struct sha256_state *sctx = shash_desc_ctx(desc); | 252 | struct sha256_state *sctx = shash_desc_ctx(desc); |
@@ -277,6 +277,7 @@ static int sha256_update(struct shash_desc *desc, const u8 *data, | |||
277 | 277 | ||
278 | return 0; | 278 | return 0; |
279 | } | 279 | } |
280 | EXPORT_SYMBOL(crypto_sha256_update); | ||
280 | 281 | ||
281 | static int sha256_final(struct shash_desc *desc, u8 *out) | 282 | static int sha256_final(struct shash_desc *desc, u8 *out) |
282 | { | 283 | { |
@@ -293,10 +294,10 @@ static int sha256_final(struct shash_desc *desc, u8 *out) | |||
293 | /* Pad out to 56 mod 64. */ | 294 | /* Pad out to 56 mod 64. */ |
294 | index = sctx->count & 0x3f; | 295 | index = sctx->count & 0x3f; |
295 | pad_len = (index < 56) ? (56 - index) : ((64+56) - index); | 296 | pad_len = (index < 56) ? (56 - index) : ((64+56) - index); |
296 | sha256_update(desc, padding, pad_len); | 297 | crypto_sha256_update(desc, padding, pad_len); |
297 | 298 | ||
298 | /* Append length (before padding) */ | 299 | /* Append length (before padding) */ |
299 | sha256_update(desc, (const u8 *)&bits, sizeof(bits)); | 300 | crypto_sha256_update(desc, (const u8 *)&bits, sizeof(bits)); |
300 | 301 | ||
301 | /* Store state in digest */ | 302 | /* Store state in digest */ |
302 | for (i = 0; i < 8; i++) | 303 | for (i = 0; i < 8; i++) |
@@ -339,7 +340,7 @@ static int sha256_import(struct shash_desc *desc, const void *in) | |||
339 | static struct shash_alg sha256_algs[2] = { { | 340 | static struct shash_alg sha256_algs[2] = { { |
340 | .digestsize = SHA256_DIGEST_SIZE, | 341 | .digestsize = SHA256_DIGEST_SIZE, |
341 | .init = sha256_init, | 342 | .init = sha256_init, |
342 | .update = sha256_update, | 343 | .update = crypto_sha256_update, |
343 | .final = sha256_final, | 344 | .final = sha256_final, |
344 | .export = sha256_export, | 345 | .export = sha256_export, |
345 | .import = sha256_import, | 346 | .import = sha256_import, |
@@ -355,7 +356,7 @@ static struct shash_alg sha256_algs[2] = { { | |||
355 | }, { | 356 | }, { |
356 | .digestsize = SHA224_DIGEST_SIZE, | 357 | .digestsize = SHA224_DIGEST_SIZE, |
357 | .init = sha224_init, | 358 | .init = sha224_init, |
358 | .update = sha256_update, | 359 | .update = crypto_sha256_update, |
359 | .final = sha224_final, | 360 | .final = sha224_final, |
360 | .descsize = sizeof(struct sha256_state), | 361 | .descsize = sizeof(struct sha256_state), |
361 | .base = { | 362 | .base = { |
diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c index 71fcf361102d..4c5862095679 100644 --- a/crypto/sha512_generic.c +++ b/crypto/sha512_generic.c | |||
@@ -163,8 +163,8 @@ sha384_init(struct shash_desc *desc) | |||
163 | return 0; | 163 | return 0; |
164 | } | 164 | } |
165 | 165 | ||
166 | static int | 166 | int crypto_sha512_update(struct shash_desc *desc, const u8 *data, |
167 | sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len) | 167 | unsigned int len) |
168 | { | 168 | { |
169 | struct sha512_state *sctx = shash_desc_ctx(desc); | 169 | struct sha512_state *sctx = shash_desc_ctx(desc); |
170 | 170 | ||
@@ -197,6 +197,7 @@ sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len) | |||
197 | 197 | ||
198 | return 0; | 198 | return 0; |
199 | } | 199 | } |
200 | EXPORT_SYMBOL(crypto_sha512_update); | ||
200 | 201 | ||
201 | static int | 202 | static int |
202 | sha512_final(struct shash_desc *desc, u8 *hash) | 203 | sha512_final(struct shash_desc *desc, u8 *hash) |
@@ -215,10 +216,10 @@ sha512_final(struct shash_desc *desc, u8 *hash) | |||
215 | /* Pad out to 112 mod 128. */ | 216 | /* Pad out to 112 mod 128. */ |
216 | index = sctx->count[0] & 0x7f; | 217 | index = sctx->count[0] & 0x7f; |
217 | pad_len = (index < 112) ? (112 - index) : ((128+112) - index); | 218 | pad_len = (index < 112) ? (112 - index) : ((128+112) - index); |
218 | sha512_update(desc, padding, pad_len); | 219 | crypto_sha512_update(desc, padding, pad_len); |
219 | 220 | ||
220 | /* Append length (before padding) */ | 221 | /* Append length (before padding) */ |
221 | sha512_update(desc, (const u8 *)bits, sizeof(bits)); | 222 | crypto_sha512_update(desc, (const u8 *)bits, sizeof(bits)); |
222 | 223 | ||
223 | /* Store state in digest */ | 224 | /* Store state in digest */ |
224 | for (i = 0; i < 8; i++) | 225 | for (i = 0; i < 8; i++) |
@@ -245,7 +246,7 @@ static int sha384_final(struct shash_desc *desc, u8 *hash) | |||
245 | static struct shash_alg sha512_algs[2] = { { | 246 | static struct shash_alg sha512_algs[2] = { { |
246 | .digestsize = SHA512_DIGEST_SIZE, | 247 | .digestsize = SHA512_DIGEST_SIZE, |
247 | .init = sha512_init, | 248 | .init = sha512_init, |
248 | .update = sha512_update, | 249 | .update = crypto_sha512_update, |
249 | .final = sha512_final, | 250 | .final = sha512_final, |
250 | .descsize = sizeof(struct sha512_state), | 251 | .descsize = sizeof(struct sha512_state), |
251 | .base = { | 252 | .base = { |
@@ -257,7 +258,7 @@ static struct shash_alg sha512_algs[2] = { { | |||
257 | }, { | 258 | }, { |
258 | .digestsize = SHA384_DIGEST_SIZE, | 259 | .digestsize = SHA384_DIGEST_SIZE, |
259 | .init = sha384_init, | 260 | .init = sha384_init, |
260 | .update = sha512_update, | 261 | .update = crypto_sha512_update, |
261 | .final = sha384_final, | 262 | .final = sha384_final, |
262 | .descsize = sizeof(struct sha512_state), | 263 | .descsize = sizeof(struct sha512_state), |
263 | .base = { | 264 | .base = { |
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index 87ef7d66bc20..66d254ce0d11 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c | |||
@@ -1095,7 +1095,6 @@ static int do_test(int m) | |||
1095 | break; | 1095 | break; |
1096 | 1096 | ||
1097 | case 28: | 1097 | case 28: |
1098 | |||
1099 | ret += tcrypt_test("tgr160"); | 1098 | ret += tcrypt_test("tgr160"); |
1100 | break; | 1099 | break; |
1101 | 1100 | ||
@@ -1118,6 +1117,7 @@ static int do_test(int m) | |||
1118 | ret += tcrypt_test("lrw(camellia)"); | 1117 | ret += tcrypt_test("lrw(camellia)"); |
1119 | ret += tcrypt_test("xts(camellia)"); | 1118 | ret += tcrypt_test("xts(camellia)"); |
1120 | break; | 1119 | break; |
1120 | |||
1121 | case 33: | 1121 | case 33: |
1122 | ret += tcrypt_test("sha224"); | 1122 | ret += tcrypt_test("sha224"); |
1123 | break; | 1123 | break; |
@@ -1213,6 +1213,7 @@ static int do_test(int m) | |||
1213 | case 109: | 1213 | case 109: |
1214 | ret += tcrypt_test("vmac(aes)"); | 1214 | ret += tcrypt_test("vmac(aes)"); |
1215 | break; | 1215 | break; |
1216 | |||
1216 | case 110: | 1217 | case 110: |
1217 | ret += tcrypt_test("hmac(crc32)"); | 1218 | ret += tcrypt_test("hmac(crc32)"); |
1218 | break; | 1219 | break; |
@@ -1225,6 +1226,18 @@ static int do_test(int m) | |||
1225 | ret += tcrypt_test("rfc4106(gcm(aes))"); | 1226 | ret += tcrypt_test("rfc4106(gcm(aes))"); |
1226 | break; | 1227 | break; |
1227 | 1228 | ||
1229 | case 152: | ||
1230 | ret += tcrypt_test("rfc4543(gcm(aes))"); | ||
1231 | break; | ||
1232 | |||
1233 | case 153: | ||
1234 | ret += tcrypt_test("cmac(aes)"); | ||
1235 | break; | ||
1236 | |||
1237 | case 154: | ||
1238 | ret += tcrypt_test("cmac(des3_ede)"); | ||
1239 | break; | ||
1240 | |||
1228 | case 200: | 1241 | case 200: |
1229 | test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0, | 1242 | test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0, |
1230 | speed_template_16_24_32); | 1243 | speed_template_16_24_32); |
@@ -1755,6 +1768,21 @@ static int do_test(int m) | |||
1755 | speed_template_32_64); | 1768 | speed_template_32_64); |
1756 | break; | 1769 | break; |
1757 | 1770 | ||
1771 | case 509: | ||
1772 | test_acipher_speed("ecb(blowfish)", ENCRYPT, sec, NULL, 0, | ||
1773 | speed_template_8_32); | ||
1774 | test_acipher_speed("ecb(blowfish)", DECRYPT, sec, NULL, 0, | ||
1775 | speed_template_8_32); | ||
1776 | test_acipher_speed("cbc(blowfish)", ENCRYPT, sec, NULL, 0, | ||
1777 | speed_template_8_32); | ||
1778 | test_acipher_speed("cbc(blowfish)", DECRYPT, sec, NULL, 0, | ||
1779 | speed_template_8_32); | ||
1780 | test_acipher_speed("ctr(blowfish)", ENCRYPT, sec, NULL, 0, | ||
1781 | speed_template_8_32); | ||
1782 | test_acipher_speed("ctr(blowfish)", DECRYPT, sec, NULL, 0, | ||
1783 | speed_template_8_32); | ||
1784 | break; | ||
1785 | |||
1758 | case 1000: | 1786 | case 1000: |
1759 | test_available(); | 1787 | test_available(); |
1760 | break; | 1788 | break; |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index efd8b20e13dc..5823735cf381 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c | |||
@@ -1645,19 +1645,31 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1645 | .alg = "__cbc-serpent-avx", | 1645 | .alg = "__cbc-serpent-avx", |
1646 | .test = alg_test_null, | 1646 | .test = alg_test_null, |
1647 | }, { | 1647 | }, { |
1648 | .alg = "__cbc-serpent-avx2", | ||
1649 | .test = alg_test_null, | ||
1650 | }, { | ||
1648 | .alg = "__cbc-serpent-sse2", | 1651 | .alg = "__cbc-serpent-sse2", |
1649 | .test = alg_test_null, | 1652 | .test = alg_test_null, |
1650 | }, { | 1653 | }, { |
1651 | .alg = "__cbc-twofish-avx", | 1654 | .alg = "__cbc-twofish-avx", |
1652 | .test = alg_test_null, | 1655 | .test = alg_test_null, |
1653 | }, { | 1656 | }, { |
1657 | .alg = "__cbc-twofish-avx2", | ||
1658 | .test = alg_test_null, | ||
1659 | }, { | ||
1654 | .alg = "__driver-cbc-aes-aesni", | 1660 | .alg = "__driver-cbc-aes-aesni", |
1655 | .test = alg_test_null, | 1661 | .test = alg_test_null, |
1656 | .fips_allowed = 1, | 1662 | .fips_allowed = 1, |
1657 | }, { | 1663 | }, { |
1664 | .alg = "__driver-cbc-blowfish-avx2", | ||
1665 | .test = alg_test_null, | ||
1666 | }, { | ||
1658 | .alg = "__driver-cbc-camellia-aesni", | 1667 | .alg = "__driver-cbc-camellia-aesni", |
1659 | .test = alg_test_null, | 1668 | .test = alg_test_null, |
1660 | }, { | 1669 | }, { |
1670 | .alg = "__driver-cbc-camellia-aesni-avx2", | ||
1671 | .test = alg_test_null, | ||
1672 | }, { | ||
1661 | .alg = "__driver-cbc-cast5-avx", | 1673 | .alg = "__driver-cbc-cast5-avx", |
1662 | .test = alg_test_null, | 1674 | .test = alg_test_null, |
1663 | }, { | 1675 | }, { |
@@ -1667,19 +1679,31 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1667 | .alg = "__driver-cbc-serpent-avx", | 1679 | .alg = "__driver-cbc-serpent-avx", |
1668 | .test = alg_test_null, | 1680 | .test = alg_test_null, |
1669 | }, { | 1681 | }, { |
1682 | .alg = "__driver-cbc-serpent-avx2", | ||
1683 | .test = alg_test_null, | ||
1684 | }, { | ||
1670 | .alg = "__driver-cbc-serpent-sse2", | 1685 | .alg = "__driver-cbc-serpent-sse2", |
1671 | .test = alg_test_null, | 1686 | .test = alg_test_null, |
1672 | }, { | 1687 | }, { |
1673 | .alg = "__driver-cbc-twofish-avx", | 1688 | .alg = "__driver-cbc-twofish-avx", |
1674 | .test = alg_test_null, | 1689 | .test = alg_test_null, |
1675 | }, { | 1690 | }, { |
1691 | .alg = "__driver-cbc-twofish-avx2", | ||
1692 | .test = alg_test_null, | ||
1693 | }, { | ||
1676 | .alg = "__driver-ecb-aes-aesni", | 1694 | .alg = "__driver-ecb-aes-aesni", |
1677 | .test = alg_test_null, | 1695 | .test = alg_test_null, |
1678 | .fips_allowed = 1, | 1696 | .fips_allowed = 1, |
1679 | }, { | 1697 | }, { |
1698 | .alg = "__driver-ecb-blowfish-avx2", | ||
1699 | .test = alg_test_null, | ||
1700 | }, { | ||
1680 | .alg = "__driver-ecb-camellia-aesni", | 1701 | .alg = "__driver-ecb-camellia-aesni", |
1681 | .test = alg_test_null, | 1702 | .test = alg_test_null, |
1682 | }, { | 1703 | }, { |
1704 | .alg = "__driver-ecb-camellia-aesni-avx2", | ||
1705 | .test = alg_test_null, | ||
1706 | }, { | ||
1683 | .alg = "__driver-ecb-cast5-avx", | 1707 | .alg = "__driver-ecb-cast5-avx", |
1684 | .test = alg_test_null, | 1708 | .test = alg_test_null, |
1685 | }, { | 1709 | }, { |
@@ -1689,12 +1713,18 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1689 | .alg = "__driver-ecb-serpent-avx", | 1713 | .alg = "__driver-ecb-serpent-avx", |
1690 | .test = alg_test_null, | 1714 | .test = alg_test_null, |
1691 | }, { | 1715 | }, { |
1716 | .alg = "__driver-ecb-serpent-avx2", | ||
1717 | .test = alg_test_null, | ||
1718 | }, { | ||
1692 | .alg = "__driver-ecb-serpent-sse2", | 1719 | .alg = "__driver-ecb-serpent-sse2", |
1693 | .test = alg_test_null, | 1720 | .test = alg_test_null, |
1694 | }, { | 1721 | }, { |
1695 | .alg = "__driver-ecb-twofish-avx", | 1722 | .alg = "__driver-ecb-twofish-avx", |
1696 | .test = alg_test_null, | 1723 | .test = alg_test_null, |
1697 | }, { | 1724 | }, { |
1725 | .alg = "__driver-ecb-twofish-avx2", | ||
1726 | .test = alg_test_null, | ||
1727 | }, { | ||
1698 | .alg = "__ghash-pclmulqdqni", | 1728 | .alg = "__ghash-pclmulqdqni", |
1699 | .test = alg_test_null, | 1729 | .test = alg_test_null, |
1700 | .fips_allowed = 1, | 1730 | .fips_allowed = 1, |
@@ -1913,6 +1943,27 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1913 | } | 1943 | } |
1914 | } | 1944 | } |
1915 | }, { | 1945 | }, { |
1946 | .alg = "cmac(aes)", | ||
1947 | .test = alg_test_hash, | ||
1948 | .suite = { | ||
1949 | .hash = { | ||
1950 | .vecs = aes_cmac128_tv_template, | ||
1951 | .count = CMAC_AES_TEST_VECTORS | ||
1952 | } | ||
1953 | } | ||
1954 | }, { | ||
1955 | .alg = "cmac(des3_ede)", | ||
1956 | .test = alg_test_hash, | ||
1957 | .suite = { | ||
1958 | .hash = { | ||
1959 | .vecs = des3_ede_cmac64_tv_template, | ||
1960 | .count = CMAC_DES3_EDE_TEST_VECTORS | ||
1961 | } | ||
1962 | } | ||
1963 | }, { | ||
1964 | .alg = "compress_null", | ||
1965 | .test = alg_test_null, | ||
1966 | }, { | ||
1916 | .alg = "crc32c", | 1967 | .alg = "crc32c", |
1917 | .test = alg_test_crc32c, | 1968 | .test = alg_test_crc32c, |
1918 | .fips_allowed = 1, | 1969 | .fips_allowed = 1, |
@@ -1927,16 +1978,31 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1927 | .test = alg_test_null, | 1978 | .test = alg_test_null, |
1928 | .fips_allowed = 1, | 1979 | .fips_allowed = 1, |
1929 | }, { | 1980 | }, { |
1981 | .alg = "cryptd(__driver-cbc-blowfish-avx2)", | ||
1982 | .test = alg_test_null, | ||
1983 | }, { | ||
1930 | .alg = "cryptd(__driver-cbc-camellia-aesni)", | 1984 | .alg = "cryptd(__driver-cbc-camellia-aesni)", |
1931 | .test = alg_test_null, | 1985 | .test = alg_test_null, |
1932 | }, { | 1986 | }, { |
1987 | .alg = "cryptd(__driver-cbc-camellia-aesni-avx2)", | ||
1988 | .test = alg_test_null, | ||
1989 | }, { | ||
1990 | .alg = "cryptd(__driver-cbc-serpent-avx2)", | ||
1991 | .test = alg_test_null, | ||
1992 | }, { | ||
1933 | .alg = "cryptd(__driver-ecb-aes-aesni)", | 1993 | .alg = "cryptd(__driver-ecb-aes-aesni)", |
1934 | .test = alg_test_null, | 1994 | .test = alg_test_null, |
1935 | .fips_allowed = 1, | 1995 | .fips_allowed = 1, |
1936 | }, { | 1996 | }, { |
1997 | .alg = "cryptd(__driver-ecb-blowfish-avx2)", | ||
1998 | .test = alg_test_null, | ||
1999 | }, { | ||
1937 | .alg = "cryptd(__driver-ecb-camellia-aesni)", | 2000 | .alg = "cryptd(__driver-ecb-camellia-aesni)", |
1938 | .test = alg_test_null, | 2001 | .test = alg_test_null, |
1939 | }, { | 2002 | }, { |
2003 | .alg = "cryptd(__driver-ecb-camellia-aesni-avx2)", | ||
2004 | .test = alg_test_null, | ||
2005 | }, { | ||
1940 | .alg = "cryptd(__driver-ecb-cast5-avx)", | 2006 | .alg = "cryptd(__driver-ecb-cast5-avx)", |
1941 | .test = alg_test_null, | 2007 | .test = alg_test_null, |
1942 | }, { | 2008 | }, { |
@@ -1946,12 +2012,18 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1946 | .alg = "cryptd(__driver-ecb-serpent-avx)", | 2012 | .alg = "cryptd(__driver-ecb-serpent-avx)", |
1947 | .test = alg_test_null, | 2013 | .test = alg_test_null, |
1948 | }, { | 2014 | }, { |
2015 | .alg = "cryptd(__driver-ecb-serpent-avx2)", | ||
2016 | .test = alg_test_null, | ||
2017 | }, { | ||
1949 | .alg = "cryptd(__driver-ecb-serpent-sse2)", | 2018 | .alg = "cryptd(__driver-ecb-serpent-sse2)", |
1950 | .test = alg_test_null, | 2019 | .test = alg_test_null, |
1951 | }, { | 2020 | }, { |
1952 | .alg = "cryptd(__driver-ecb-twofish-avx)", | 2021 | .alg = "cryptd(__driver-ecb-twofish-avx)", |
1953 | .test = alg_test_null, | 2022 | .test = alg_test_null, |
1954 | }, { | 2023 | }, { |
2024 | .alg = "cryptd(__driver-ecb-twofish-avx2)", | ||
2025 | .test = alg_test_null, | ||
2026 | }, { | ||
1955 | .alg = "cryptd(__driver-gcm-aes-aesni)", | 2027 | .alg = "cryptd(__driver-gcm-aes-aesni)", |
1956 | .test = alg_test_null, | 2028 | .test = alg_test_null, |
1957 | .fips_allowed = 1, | 2029 | .fips_allowed = 1, |
@@ -2127,6 +2199,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2127 | } | 2199 | } |
2128 | } | 2200 | } |
2129 | }, { | 2201 | }, { |
2202 | .alg = "digest_null", | ||
2203 | .test = alg_test_null, | ||
2204 | }, { | ||
2130 | .alg = "ecb(__aes-aesni)", | 2205 | .alg = "ecb(__aes-aesni)", |
2131 | .test = alg_test_null, | 2206 | .test = alg_test_null, |
2132 | .fips_allowed = 1, | 2207 | .fips_allowed = 1, |
@@ -2237,6 +2312,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2237 | } | 2312 | } |
2238 | } | 2313 | } |
2239 | }, { | 2314 | }, { |
2315 | .alg = "ecb(cipher_null)", | ||
2316 | .test = alg_test_null, | ||
2317 | }, { | ||
2240 | .alg = "ecb(des)", | 2318 | .alg = "ecb(des)", |
2241 | .test = alg_test_skcipher, | 2319 | .test = alg_test_skcipher, |
2242 | .fips_allowed = 1, | 2320 | .fips_allowed = 1, |
@@ -2696,8 +2774,6 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2696 | } | 2774 | } |
2697 | } | 2775 | } |
2698 | }, { | 2776 | }, { |
2699 | |||
2700 | |||
2701 | .alg = "rfc4309(ccm(aes))", | 2777 | .alg = "rfc4309(ccm(aes))", |
2702 | .test = alg_test_aead, | 2778 | .test = alg_test_aead, |
2703 | .fips_allowed = 1, | 2779 | .fips_allowed = 1, |
@@ -2714,6 +2790,21 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2714 | } | 2790 | } |
2715 | } | 2791 | } |
2716 | }, { | 2792 | }, { |
2793 | .alg = "rfc4543(gcm(aes))", | ||
2794 | .test = alg_test_aead, | ||
2795 | .suite = { | ||
2796 | .aead = { | ||
2797 | .enc = { | ||
2798 | .vecs = aes_gcm_rfc4543_enc_tv_template, | ||
2799 | .count = AES_GCM_4543_ENC_TEST_VECTORS | ||
2800 | }, | ||
2801 | .dec = { | ||
2802 | .vecs = aes_gcm_rfc4543_dec_tv_template, | ||
2803 | .count = AES_GCM_4543_DEC_TEST_VECTORS | ||
2804 | }, | ||
2805 | } | ||
2806 | } | ||
2807 | }, { | ||
2717 | .alg = "rmd128", | 2808 | .alg = "rmd128", |
2718 | .test = alg_test_hash, | 2809 | .test = alg_test_hash, |
2719 | .suite = { | 2810 | .suite = { |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 3db1b7591559..1e701bc075b9 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h | |||
@@ -1639,6 +1639,131 @@ static struct hash_testvec hmac_sha256_tv_template[] = { | |||
1639 | }, | 1639 | }, |
1640 | }; | 1640 | }; |
1641 | 1641 | ||
1642 | #define CMAC_AES_TEST_VECTORS 6 | ||
1643 | |||
1644 | static struct hash_testvec aes_cmac128_tv_template[] = { | ||
1645 | { /* From NIST Special Publication 800-38B, AES-128 */ | ||
1646 | .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" | ||
1647 | "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", | ||
1648 | .plaintext = zeroed_string, | ||
1649 | .digest = "\xbb\x1d\x69\x29\xe9\x59\x37\x28" | ||
1650 | "\x7f\xa3\x7d\x12\x9b\x75\x67\x46", | ||
1651 | .psize = 0, | ||
1652 | .ksize = 16, | ||
1653 | }, { | ||
1654 | .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" | ||
1655 | "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", | ||
1656 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1657 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a", | ||
1658 | .digest = "\x07\x0a\x16\xb4\x6b\x4d\x41\x44" | ||
1659 | "\xf7\x9b\xdd\x9d\xd0\x4a\x28\x7c", | ||
1660 | .psize = 16, | ||
1661 | .ksize = 16, | ||
1662 | }, { | ||
1663 | .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" | ||
1664 | "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", | ||
1665 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1666 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" | ||
1667 | "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" | ||
1668 | "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" | ||
1669 | "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11", | ||
1670 | .digest = "\xdf\xa6\x67\x47\xde\x9a\xe6\x30" | ||
1671 | "\x30\xca\x32\x61\x14\x97\xc8\x27", | ||
1672 | .psize = 40, | ||
1673 | .ksize = 16, | ||
1674 | }, { | ||
1675 | .key = "\x2b\x7e\x15\x16\x28\xae\xd2\xa6" | ||
1676 | "\xab\xf7\x15\x88\x09\xcf\x4f\x3c", | ||
1677 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1678 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" | ||
1679 | "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" | ||
1680 | "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" | ||
1681 | "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" | ||
1682 | "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" | ||
1683 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" | ||
1684 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", | ||
1685 | .digest = "\x51\xf0\xbe\xbf\x7e\x3b\x9d\x92" | ||
1686 | "\xfc\x49\x74\x17\x79\x36\x3c\xfe", | ||
1687 | .psize = 64, | ||
1688 | .ksize = 16, | ||
1689 | }, { /* From NIST Special Publication 800-38B, AES-256 */ | ||
1690 | .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" | ||
1691 | "\x2b\x73\xae\xf0\x85\x7d\x77\x81" | ||
1692 | "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" | ||
1693 | "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", | ||
1694 | .plaintext = zeroed_string, | ||
1695 | .digest = "\x02\x89\x62\xf6\x1b\x7b\xf8\x9e" | ||
1696 | "\xfc\x6b\x55\x1f\x46\x67\xd9\x83", | ||
1697 | .psize = 0, | ||
1698 | .ksize = 32, | ||
1699 | }, { | ||
1700 | .key = "\x60\x3d\xeb\x10\x15\xca\x71\xbe" | ||
1701 | "\x2b\x73\xae\xf0\x85\x7d\x77\x81" | ||
1702 | "\x1f\x35\x2c\x07\x3b\x61\x08\xd7" | ||
1703 | "\x2d\x98\x10\xa3\x09\x14\xdf\xf4", | ||
1704 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1705 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" | ||
1706 | "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" | ||
1707 | "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51" | ||
1708 | "\x30\xc8\x1c\x46\xa3\x5c\xe4\x11" | ||
1709 | "\xe5\xfb\xc1\x19\x1a\x0a\x52\xef" | ||
1710 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" | ||
1711 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", | ||
1712 | .digest = "\xe1\x99\x21\x90\x54\x9f\x6e\xd5" | ||
1713 | "\x69\x6a\x2c\x05\x6c\x31\x54\x10", | ||
1714 | .psize = 64, | ||
1715 | .ksize = 32, | ||
1716 | } | ||
1717 | }; | ||
1718 | |||
1719 | #define CMAC_DES3_EDE_TEST_VECTORS 4 | ||
1720 | |||
1721 | static struct hash_testvec des3_ede_cmac64_tv_template[] = { | ||
1722 | /* | ||
1723 | * From NIST Special Publication 800-38B, Three Key TDEA | ||
1724 | * Corrected test vectors from: | ||
1725 | * http://csrc.nist.gov/publications/nistpubs/800-38B/Updated_CMAC_Examples.pdf | ||
1726 | */ | ||
1727 | { | ||
1728 | .key = "\x8a\xa8\x3b\xf8\xcb\xda\x10\x62" | ||
1729 | "\x0b\xc1\xbf\x19\xfb\xb6\xcd\x58" | ||
1730 | "\xbc\x31\x3d\x4a\x37\x1c\xa8\xb5", | ||
1731 | .plaintext = zeroed_string, | ||
1732 | .digest = "\xb7\xa6\x88\xe1\x22\xff\xaf\x95", | ||
1733 | .psize = 0, | ||
1734 | .ksize = 24, | ||
1735 | }, { | ||
1736 | .key = "\x8a\xa8\x3b\xf8\xcb\xda\x10\x62" | ||
1737 | "\x0b\xc1\xbf\x19\xfb\xb6\xcd\x58" | ||
1738 | "\xbc\x31\x3d\x4a\x37\x1c\xa8\xb5", | ||
1739 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96", | ||
1740 | .digest = "\x8e\x8f\x29\x31\x36\x28\x37\x97", | ||
1741 | .psize = 8, | ||
1742 | .ksize = 24, | ||
1743 | }, { | ||
1744 | .key = "\x8a\xa8\x3b\xf8\xcb\xda\x10\x62" | ||
1745 | "\x0b\xc1\xbf\x19\xfb\xb6\xcd\x58" | ||
1746 | "\xbc\x31\x3d\x4a\x37\x1c\xa8\xb5", | ||
1747 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1748 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" | ||
1749 | "\xae\x2d\x8a\x57", | ||
1750 | .digest = "\x74\x3d\xdb\xe0\xce\x2d\xc2\xed", | ||
1751 | .psize = 20, | ||
1752 | .ksize = 24, | ||
1753 | }, { | ||
1754 | .key = "\x8a\xa8\x3b\xf8\xcb\xda\x10\x62" | ||
1755 | "\x0b\xc1\xbf\x19\xfb\xb6\xcd\x58" | ||
1756 | "\xbc\x31\x3d\x4a\x37\x1c\xa8\xb5", | ||
1757 | .plaintext = "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96" | ||
1758 | "\xe9\x3d\x7e\x11\x73\x93\x17\x2a" | ||
1759 | "\xae\x2d\x8a\x57\x1e\x03\xac\x9c" | ||
1760 | "\x9e\xb7\x6f\xac\x45\xaf\x8e\x51", | ||
1761 | .digest = "\x33\xe6\xb1\x09\x24\x00\xea\xe5", | ||
1762 | .psize = 32, | ||
1763 | .ksize = 24, | ||
1764 | } | ||
1765 | }; | ||
1766 | |||
1642 | #define XCBC_AES_TEST_VECTORS 6 | 1767 | #define XCBC_AES_TEST_VECTORS 6 |
1643 | 1768 | ||
1644 | static struct hash_testvec aes_xcbc128_tv_template[] = { | 1769 | static struct hash_testvec aes_xcbc128_tv_template[] = { |
@@ -12680,6 +12805,8 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = { | |||
12680 | #define AES_GCM_DEC_TEST_VECTORS 8 | 12805 | #define AES_GCM_DEC_TEST_VECTORS 8 |
12681 | #define AES_GCM_4106_ENC_TEST_VECTORS 7 | 12806 | #define AES_GCM_4106_ENC_TEST_VECTORS 7 |
12682 | #define AES_GCM_4106_DEC_TEST_VECTORS 7 | 12807 | #define AES_GCM_4106_DEC_TEST_VECTORS 7 |
12808 | #define AES_GCM_4543_ENC_TEST_VECTORS 1 | ||
12809 | #define AES_GCM_4543_DEC_TEST_VECTORS 2 | ||
12683 | #define AES_CCM_ENC_TEST_VECTORS 7 | 12810 | #define AES_CCM_ENC_TEST_VECTORS 7 |
12684 | #define AES_CCM_DEC_TEST_VECTORS 7 | 12811 | #define AES_CCM_DEC_TEST_VECTORS 7 |
12685 | #define AES_CCM_4309_ENC_TEST_VECTORS 7 | 12812 | #define AES_CCM_4309_ENC_TEST_VECTORS 7 |
@@ -18193,6 +18320,93 @@ static struct aead_testvec aes_gcm_rfc4106_dec_tv_template[] = { | |||
18193 | } | 18320 | } |
18194 | }; | 18321 | }; |
18195 | 18322 | ||
18323 | static struct aead_testvec aes_gcm_rfc4543_enc_tv_template[] = { | ||
18324 | { /* From draft-mcgrew-gcm-test-01 */ | ||
18325 | .key = "\x4c\x80\xcd\xef\xbb\x5d\x10\xda" | ||
18326 | "\x90\x6a\xc7\x3c\x36\x13\xa6\x34" | ||
18327 | "\x22\x43\x3c\x64", | ||
18328 | .klen = 20, | ||
18329 | .iv = zeroed_string, | ||
18330 | .assoc = "\x00\x00\x43\x21\x00\x00\x00\x07", | ||
18331 | .alen = 8, | ||
18332 | .input = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18333 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18334 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18335 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18336 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18337 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18338 | "\x01\x02\x02\x01", | ||
18339 | .ilen = 52, | ||
18340 | .result = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18341 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18342 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18343 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18344 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18345 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18346 | "\x01\x02\x02\x01\xf2\xa9\xa8\x36" | ||
18347 | "\xe1\x55\x10\x6a\xa8\xdc\xd6\x18" | ||
18348 | "\xe4\x09\x9a\xaa", | ||
18349 | .rlen = 68, | ||
18350 | } | ||
18351 | }; | ||
18352 | |||
18353 | static struct aead_testvec aes_gcm_rfc4543_dec_tv_template[] = { | ||
18354 | { /* From draft-mcgrew-gcm-test-01 */ | ||
18355 | .key = "\x4c\x80\xcd\xef\xbb\x5d\x10\xda" | ||
18356 | "\x90\x6a\xc7\x3c\x36\x13\xa6\x34" | ||
18357 | "\x22\x43\x3c\x64", | ||
18358 | .klen = 20, | ||
18359 | .iv = zeroed_string, | ||
18360 | .assoc = "\x00\x00\x43\x21\x00\x00\x00\x07", | ||
18361 | .alen = 8, | ||
18362 | .input = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18363 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18364 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18365 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18366 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18367 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18368 | "\x01\x02\x02\x01\xf2\xa9\xa8\x36" | ||
18369 | "\xe1\x55\x10\x6a\xa8\xdc\xd6\x18" | ||
18370 | "\xe4\x09\x9a\xaa", | ||
18371 | .ilen = 68, | ||
18372 | .result = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18373 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18374 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18375 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18376 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18377 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18378 | "\x01\x02\x02\x01", | ||
18379 | .rlen = 52, | ||
18380 | }, { /* nearly same as previous, but should fail */ | ||
18381 | .key = "\x4c\x80\xcd\xef\xbb\x5d\x10\xda" | ||
18382 | "\x90\x6a\xc7\x3c\x36\x13\xa6\x34" | ||
18383 | "\x22\x43\x3c\x64", | ||
18384 | .klen = 20, | ||
18385 | .iv = zeroed_string, | ||
18386 | .assoc = "\x00\x00\x43\x21\x00\x00\x00\x07", | ||
18387 | .alen = 8, | ||
18388 | .input = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18389 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18390 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18391 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18392 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18393 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18394 | "\x01\x02\x02\x01\xf2\xa9\xa8\x36" | ||
18395 | "\xe1\x55\x10\x6a\xa8\xdc\xd6\x18" | ||
18396 | "\x00\x00\x00\x00", | ||
18397 | .ilen = 68, | ||
18398 | .novrfy = 1, | ||
18399 | .result = "\x45\x00\x00\x30\xda\x3a\x00\x00" | ||
18400 | "\x80\x01\xdf\x3b\xc0\xa8\x00\x05" | ||
18401 | "\xc0\xa8\x00\x01\x08\x00\xc6\xcd" | ||
18402 | "\x02\x00\x07\x00\x61\x62\x63\x64" | ||
18403 | "\x65\x66\x67\x68\x69\x6a\x6b\x6c" | ||
18404 | "\x6d\x6e\x6f\x70\x71\x72\x73\x74" | ||
18405 | "\x01\x02\x02\x01", | ||
18406 | .rlen = 52, | ||
18407 | }, | ||
18408 | }; | ||
18409 | |||
18196 | static struct aead_testvec aes_ccm_enc_tv_template[] = { | 18410 | static struct aead_testvec aes_ccm_enc_tv_template[] = { |
18197 | { /* From RFC 3610 */ | 18411 | { /* From RFC 3610 */ |
18198 | .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" | 18412 | .key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7" |
@@ -20783,8 +20997,72 @@ static struct cipher_testvec camellia_enc_tv_template[] = { | |||
20783 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 20997 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
20784 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 20998 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
20785 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 20999 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
20786 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 21000 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
20787 | .ilen = 496, | 21001 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
21002 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
21003 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
21004 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
21005 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
21006 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
21007 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
21008 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
21009 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
21010 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
21011 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
21012 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
21013 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
21014 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
21015 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
21016 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
21017 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
21018 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
21019 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
21020 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
21021 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
21022 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
21023 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
21024 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
21025 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
21026 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
21027 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
21028 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
21029 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
21030 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
21031 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
21032 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
21033 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
21034 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
21035 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
21036 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
21037 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
21038 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
21039 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
21040 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
21041 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
21042 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
21043 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
21044 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
21045 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
21046 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
21047 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
21048 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
21049 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
21050 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
21051 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
21052 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
21053 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
21054 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
21055 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
21056 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
21057 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
21058 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
21059 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
21060 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
21061 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
21062 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
21063 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
21064 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
21065 | .ilen = 1008, | ||
20788 | .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" | 21066 | .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" |
20789 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" | 21067 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" |
20790 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" | 21068 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" |
@@ -20846,11 +21124,75 @@ static struct cipher_testvec camellia_enc_tv_template[] = { | |||
20846 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" | 21124 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" |
20847 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" | 21125 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" |
20848 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" | 21126 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" |
20849 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB", | 21127 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB" |
20850 | .rlen = 496, | 21128 | "\xA4\xAD\xCF\x5D\xD4\x58\xC9\xCD" |
21129 | "\xF7\x90\x68\xCF\xC9\x11\x52\x3E" | ||
21130 | "\xE8\xA1\xA3\x78\x8B\xD0\xAC\x0A" | ||
21131 | "\xD4\xC9\xA3\xA5\x55\x30\xC8\x3E" | ||
21132 | "\xED\x28\x39\xE9\x63\xED\x41\x70" | ||
21133 | "\x51\xE3\xC4\xA0\xFC\xD5\x43\xCB" | ||
21134 | "\x4D\x65\xC8\xFD\x3A\x91\x8F\x60" | ||
21135 | "\x8A\xA6\x6D\x9D\x3E\x01\x23\x4B" | ||
21136 | "\x50\x47\xC9\xDC\x9B\xDE\x37\xC5" | ||
21137 | "\xBF\x67\xB1\x6B\x78\x38\xD5\x7E" | ||
21138 | "\xB6\xFF\x67\x83\x3B\x6E\xBE\x23" | ||
21139 | "\x45\xFA\x1D\x69\x44\xFD\xC6\xB9" | ||
21140 | "\xD0\x4A\x92\xD1\xBE\xF6\x4A\xB7" | ||
21141 | "\xCA\xA8\xA2\x9E\x13\x87\x57\x92" | ||
21142 | "\x64\x7C\x85\x0B\xB3\x29\x37\xD8" | ||
21143 | "\xE6\xAA\xAF\xC4\x03\x67\xA3\xBF" | ||
21144 | "\x2E\x45\x83\xB6\xD8\x54\x00\x89" | ||
21145 | "\xF6\xBC\x3A\x7A\x88\x58\x51\xED" | ||
21146 | "\xF4\x4E\x01\xA5\xC3\x2E\xD9\x42" | ||
21147 | "\xBD\x6E\x0D\x0B\x21\xB0\x1A\xCC" | ||
21148 | "\xA4\xD3\x3F\xDC\x9B\x81\xD8\xF1" | ||
21149 | "\xEA\x7A\x6A\xB7\x07\xC9\x6D\x91" | ||
21150 | "\x6D\x3A\xF5\x5F\xA6\xFF\x87\x1E" | ||
21151 | "\x3F\xDD\xC0\x72\xEA\xAC\x08\x15" | ||
21152 | "\x21\xE6\xC6\xB6\x0D\xD8\x51\x86" | ||
21153 | "\x2A\x03\x73\xF7\x29\xD4\xC4\xE4" | ||
21154 | "\x7F\x95\x10\xF7\xAB\x3F\x92\x23" | ||
21155 | "\xD3\xCE\x9C\x2E\x46\x3B\x63\x43" | ||
21156 | "\xBB\xC2\x82\x7A\x83\xD5\x55\xE2" | ||
21157 | "\xE7\x9B\x2F\x92\xAF\xFD\x81\x56" | ||
21158 | "\x79\xFD\x3E\xF9\x46\xE0\x25\xD4" | ||
21159 | "\x38\xDE\xBC\x2C\xC4\x7A\x2A\x8F" | ||
21160 | "\x94\x4F\xD0\xAD\x9B\x37\x18\xD4" | ||
21161 | "\x0E\x4D\x0F\x02\x3A\xDC\x5A\xA2" | ||
21162 | "\x39\x25\x55\x20\x5A\xA6\x02\x9F" | ||
21163 | "\xE6\x77\x21\x77\xE5\x4B\x7B\x0B" | ||
21164 | "\x30\xF8\x5F\x33\x0F\x49\xCD\xFF" | ||
21165 | "\xF2\xE4\x35\xF9\xF0\x63\xC3\x7E" | ||
21166 | "\xF1\xA6\x73\xB4\xDF\xE7\xBB\x78" | ||
21167 | "\xFF\x21\xA9\xF3\xF3\xCF\x5D\xBA" | ||
21168 | "\xED\x87\x98\xAC\xFE\x48\x97\x6D" | ||
21169 | "\xA6\x7F\x69\x31\xB1\xC4\xFF\x14" | ||
21170 | "\xC6\x76\xD4\x10\xDD\xF6\x49\x2C" | ||
21171 | "\x9C\xC8\x6D\x76\xC0\x8F\x5F\x55" | ||
21172 | "\x2F\x3C\x8A\x30\xAA\xC3\x16\x55" | ||
21173 | "\xC6\xFC\x8D\x8B\xB9\xE5\x80\x6C" | ||
21174 | "\xC8\x7E\xBD\x65\x58\x36\xD5\xBC" | ||
21175 | "\xF0\x33\x52\x29\x70\xF9\x5C\xE9" | ||
21176 | "\xAC\x1F\xB5\x73\x56\x66\x54\xAF" | ||
21177 | "\x1B\x8F\x7D\xED\xAB\x03\xCE\xE3" | ||
21178 | "\xAE\x47\xB6\x69\x86\xE9\x01\x31" | ||
21179 | "\x83\x18\x3D\xF4\x74\x7B\xF9\x42" | ||
21180 | "\x4C\xFD\x75\x4A\x6D\xF0\x03\xA6" | ||
21181 | "\x2B\x20\x63\xDA\x49\x65\x5E\x8B" | ||
21182 | "\xC0\x19\xE3\x8D\xD9\xF3\xB0\x34" | ||
21183 | "\xD3\x52\xFC\x68\x00\x43\x1B\x37" | ||
21184 | "\x31\x93\x51\x1C\x63\x97\x70\xB0" | ||
21185 | "\x99\x78\x83\x13\xFD\xCF\x53\x81" | ||
21186 | "\x36\x46\xB5\x42\x52\x2F\x32\xEB" | ||
21187 | "\x4A\x3D\xF1\x8F\x1C\x54\x2E\xFC" | ||
21188 | "\x41\x75\x5A\x8C\x8E\x6F\xE7\x1A" | ||
21189 | "\xAE\xEF\x3E\x82\x12\x0B\x74\x72" | ||
21190 | "\xF8\xB2\xAA\x7A\xD6\xFF\xFA\x55" | ||
21191 | "\x33\x1A\xBB\xD3\xA2\x7E\x97\x66", | ||
21192 | .rlen = 1008, | ||
20851 | .also_non_np = 1, | 21193 | .also_non_np = 1, |
20852 | .np = 2, | 21194 | .np = 2, |
20853 | .tap = { 496 - 16, 16 }, | 21195 | .tap = { 1008 - 16, 16 }, |
20854 | }, | 21196 | }, |
20855 | }; | 21197 | }; |
20856 | 21198 | ||
@@ -20955,8 +21297,72 @@ static struct cipher_testvec camellia_dec_tv_template[] = { | |||
20955 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" | 21297 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" |
20956 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" | 21298 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" |
20957 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" | 21299 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" |
20958 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB", | 21300 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB" |
20959 | .ilen = 496, | 21301 | "\xA4\xAD\xCF\x5D\xD4\x58\xC9\xCD" |
21302 | "\xF7\x90\x68\xCF\xC9\x11\x52\x3E" | ||
21303 | "\xE8\xA1\xA3\x78\x8B\xD0\xAC\x0A" | ||
21304 | "\xD4\xC9\xA3\xA5\x55\x30\xC8\x3E" | ||
21305 | "\xED\x28\x39\xE9\x63\xED\x41\x70" | ||
21306 | "\x51\xE3\xC4\xA0\xFC\xD5\x43\xCB" | ||
21307 | "\x4D\x65\xC8\xFD\x3A\x91\x8F\x60" | ||
21308 | "\x8A\xA6\x6D\x9D\x3E\x01\x23\x4B" | ||
21309 | "\x50\x47\xC9\xDC\x9B\xDE\x37\xC5" | ||
21310 | "\xBF\x67\xB1\x6B\x78\x38\xD5\x7E" | ||
21311 | "\xB6\xFF\x67\x83\x3B\x6E\xBE\x23" | ||
21312 | "\x45\xFA\x1D\x69\x44\xFD\xC6\xB9" | ||
21313 | "\xD0\x4A\x92\xD1\xBE\xF6\x4A\xB7" | ||
21314 | "\xCA\xA8\xA2\x9E\x13\x87\x57\x92" | ||
21315 | "\x64\x7C\x85\x0B\xB3\x29\x37\xD8" | ||
21316 | "\xE6\xAA\xAF\xC4\x03\x67\xA3\xBF" | ||
21317 | "\x2E\x45\x83\xB6\xD8\x54\x00\x89" | ||
21318 | "\xF6\xBC\x3A\x7A\x88\x58\x51\xED" | ||
21319 | "\xF4\x4E\x01\xA5\xC3\x2E\xD9\x42" | ||
21320 | "\xBD\x6E\x0D\x0B\x21\xB0\x1A\xCC" | ||
21321 | "\xA4\xD3\x3F\xDC\x9B\x81\xD8\xF1" | ||
21322 | "\xEA\x7A\x6A\xB7\x07\xC9\x6D\x91" | ||
21323 | "\x6D\x3A\xF5\x5F\xA6\xFF\x87\x1E" | ||
21324 | "\x3F\xDD\xC0\x72\xEA\xAC\x08\x15" | ||
21325 | "\x21\xE6\xC6\xB6\x0D\xD8\x51\x86" | ||
21326 | "\x2A\x03\x73\xF7\x29\xD4\xC4\xE4" | ||
21327 | "\x7F\x95\x10\xF7\xAB\x3F\x92\x23" | ||
21328 | "\xD3\xCE\x9C\x2E\x46\x3B\x63\x43" | ||
21329 | "\xBB\xC2\x82\x7A\x83\xD5\x55\xE2" | ||
21330 | "\xE7\x9B\x2F\x92\xAF\xFD\x81\x56" | ||
21331 | "\x79\xFD\x3E\xF9\x46\xE0\x25\xD4" | ||
21332 | "\x38\xDE\xBC\x2C\xC4\x7A\x2A\x8F" | ||
21333 | "\x94\x4F\xD0\xAD\x9B\x37\x18\xD4" | ||
21334 | "\x0E\x4D\x0F\x02\x3A\xDC\x5A\xA2" | ||
21335 | "\x39\x25\x55\x20\x5A\xA6\x02\x9F" | ||
21336 | "\xE6\x77\x21\x77\xE5\x4B\x7B\x0B" | ||
21337 | "\x30\xF8\x5F\x33\x0F\x49\xCD\xFF" | ||
21338 | "\xF2\xE4\x35\xF9\xF0\x63\xC3\x7E" | ||
21339 | "\xF1\xA6\x73\xB4\xDF\xE7\xBB\x78" | ||
21340 | "\xFF\x21\xA9\xF3\xF3\xCF\x5D\xBA" | ||
21341 | "\xED\x87\x98\xAC\xFE\x48\x97\x6D" | ||
21342 | "\xA6\x7F\x69\x31\xB1\xC4\xFF\x14" | ||
21343 | "\xC6\x76\xD4\x10\xDD\xF6\x49\x2C" | ||
21344 | "\x9C\xC8\x6D\x76\xC0\x8F\x5F\x55" | ||
21345 | "\x2F\x3C\x8A\x30\xAA\xC3\x16\x55" | ||
21346 | "\xC6\xFC\x8D\x8B\xB9\xE5\x80\x6C" | ||
21347 | "\xC8\x7E\xBD\x65\x58\x36\xD5\xBC" | ||
21348 | "\xF0\x33\x52\x29\x70\xF9\x5C\xE9" | ||
21349 | "\xAC\x1F\xB5\x73\x56\x66\x54\xAF" | ||
21350 | "\x1B\x8F\x7D\xED\xAB\x03\xCE\xE3" | ||
21351 | "\xAE\x47\xB6\x69\x86\xE9\x01\x31" | ||
21352 | "\x83\x18\x3D\xF4\x74\x7B\xF9\x42" | ||
21353 | "\x4C\xFD\x75\x4A\x6D\xF0\x03\xA6" | ||
21354 | "\x2B\x20\x63\xDA\x49\x65\x5E\x8B" | ||
21355 | "\xC0\x19\xE3\x8D\xD9\xF3\xB0\x34" | ||
21356 | "\xD3\x52\xFC\x68\x00\x43\x1B\x37" | ||
21357 | "\x31\x93\x51\x1C\x63\x97\x70\xB0" | ||
21358 | "\x99\x78\x83\x13\xFD\xCF\x53\x81" | ||
21359 | "\x36\x46\xB5\x42\x52\x2F\x32\xEB" | ||
21360 | "\x4A\x3D\xF1\x8F\x1C\x54\x2E\xFC" | ||
21361 | "\x41\x75\x5A\x8C\x8E\x6F\xE7\x1A" | ||
21362 | "\xAE\xEF\x3E\x82\x12\x0B\x74\x72" | ||
21363 | "\xF8\xB2\xAA\x7A\xD6\xFF\xFA\x55" | ||
21364 | "\x33\x1A\xBB\xD3\xA2\x7E\x97\x66", | ||
21365 | .ilen = 1008, | ||
20960 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 21366 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
20961 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 21367 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
20962 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21368 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -21018,11 +21424,75 @@ static struct cipher_testvec camellia_dec_tv_template[] = { | |||
21018 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 21424 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
21019 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 21425 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
21020 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 21426 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
21021 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 21427 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
21022 | .rlen = 496, | 21428 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
21429 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
21430 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
21431 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
21432 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
21433 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
21434 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
21435 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
21436 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
21437 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
21438 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
21439 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
21440 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
21441 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
21442 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
21443 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
21444 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
21445 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
21446 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
21447 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
21448 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
21449 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
21450 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
21451 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
21452 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
21453 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
21454 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
21455 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
21456 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
21457 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
21458 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
21459 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
21460 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
21461 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
21462 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
21463 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
21464 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
21465 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
21466 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
21467 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
21468 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
21469 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
21470 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
21471 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
21472 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
21473 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
21474 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
21475 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
21476 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
21477 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
21478 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
21479 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
21480 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
21481 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
21482 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
21483 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
21484 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
21485 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
21486 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
21487 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
21488 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
21489 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
21490 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
21491 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
21492 | .rlen = 1008, | ||
21023 | .also_non_np = 1, | 21493 | .also_non_np = 1, |
21024 | .np = 2, | 21494 | .np = 2, |
21025 | .tap = { 496 - 16, 16 }, | 21495 | .tap = { 1008 - 16, 16 }, |
21026 | }, | 21496 | }, |
21027 | }; | 21497 | }; |
21028 | 21498 | ||
@@ -21123,8 +21593,72 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | |||
21123 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 21593 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
21124 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 21594 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
21125 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 21595 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
21126 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 21596 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
21127 | .ilen = 496, | 21597 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
21598 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
21599 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
21600 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
21601 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
21602 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
21603 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
21604 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
21605 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
21606 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
21607 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
21608 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
21609 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
21610 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
21611 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
21612 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
21613 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
21614 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
21615 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
21616 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
21617 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
21618 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
21619 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
21620 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
21621 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
21622 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
21623 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
21624 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
21625 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
21626 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
21627 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
21628 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
21629 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
21630 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
21631 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
21632 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
21633 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
21634 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
21635 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
21636 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
21637 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
21638 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
21639 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
21640 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
21641 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
21642 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
21643 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
21644 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
21645 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
21646 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
21647 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
21648 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
21649 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
21650 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
21651 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
21652 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
21653 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
21654 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
21655 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
21656 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
21657 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
21658 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
21659 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
21660 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
21661 | .ilen = 1008, | ||
21128 | .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" | 21662 | .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" |
21129 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" | 21663 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" |
21130 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" | 21664 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" |
@@ -21186,11 +21720,75 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | |||
21186 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" | 21720 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" |
21187 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" | 21721 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" |
21188 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" | 21722 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" |
21189 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20", | 21723 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20" |
21190 | .rlen = 496, | 21724 | "\x78\x1A\x7F\x18\x8C\xD9\xCD\xF5" |
21725 | "\x21\x41\x56\x72\x13\xE1\x86\x07" | ||
21726 | "\x07\x26\xF3\x4F\x7B\xEA\xB5\x18" | ||
21727 | "\xFE\x94\x2D\x9F\xE0\x72\x18\x65" | ||
21728 | "\xB2\xA5\x63\x48\xB4\x13\x22\xF7" | ||
21729 | "\x25\xF1\x80\xA8\x7F\x54\x86\x7B" | ||
21730 | "\x39\xAE\x95\x0C\x09\x32\x22\x2D" | ||
21731 | "\x4D\x73\x39\x0C\x09\x2C\x7C\x10" | ||
21732 | "\xD0\x4B\x53\xF6\x90\xC5\x99\x2F" | ||
21733 | "\x15\xE1\x7F\xC6\xC5\x7A\x52\x14" | ||
21734 | "\x65\xEE\x93\x54\xD0\x66\x15\x3C" | ||
21735 | "\x4C\x68\xFD\x64\x0F\xF9\x10\x39" | ||
21736 | "\x46\x7A\xDD\x97\x20\xEE\xC7\xD2" | ||
21737 | "\x98\x4A\xB6\xE6\xF5\xA8\x1F\x4F" | ||
21738 | "\xDB\xAB\x6D\xD5\x9B\x34\x16\x97" | ||
21739 | "\x2F\x64\xE5\x37\xEF\x0E\xA1\xE9" | ||
21740 | "\xBE\x31\x31\x96\x8B\x40\x18\x75" | ||
21741 | "\x11\x75\x14\x32\xA5\x2D\x1B\x6B" | ||
21742 | "\xDB\x59\xEB\xFA\x3D\x8E\x7C\xC4" | ||
21743 | "\xDE\x68\xC8\x9F\xC9\x99\xE3\xC6" | ||
21744 | "\x71\xB0\x12\x57\x89\x0D\xC0\x2B" | ||
21745 | "\x9F\x12\x6A\x04\x67\xF1\x95\x31" | ||
21746 | "\x59\xFD\x84\x95\x2C\x9C\x5B\xEC" | ||
21747 | "\x09\xB0\x43\x96\x4A\x64\x80\x40" | ||
21748 | "\xB9\x72\x19\xDD\x70\x42\xFA\xB1" | ||
21749 | "\x4A\x2C\x0C\x0A\x60\x6E\xE3\x7C" | ||
21750 | "\x37\x5A\xBE\xA4\x62\xCF\x29\xAB" | ||
21751 | "\x7F\x4D\xA6\xB3\xE2\xB6\x64\xC6" | ||
21752 | "\x33\x0B\xF3\xD5\x01\x38\x74\xA4" | ||
21753 | "\x67\x1E\x75\x68\xC3\xAD\x76\xE9" | ||
21754 | "\xE9\xBC\xF0\xEB\xD8\xFD\x31\x8A" | ||
21755 | "\x5F\xC9\x18\x94\x4B\x86\x66\xFC" | ||
21756 | "\xBD\x0B\x3D\xB3\x9F\xFA\x1F\xD9" | ||
21757 | "\x78\xC4\xE3\x24\x1C\x67\xA2\xF8" | ||
21758 | "\x43\xBC\x76\x75\xBF\x6C\x05\xB3" | ||
21759 | "\x32\xE8\x7C\x80\xDB\xC7\xB6\x61" | ||
21760 | "\x1A\x3E\x2B\xA7\x25\xED\x8F\xA0" | ||
21761 | "\x00\x4B\xF8\x90\xCA\xD8\xFB\x12" | ||
21762 | "\xAC\x1F\x18\xE9\xD2\x5E\xA2\x8E" | ||
21763 | "\xE4\x84\x6B\x9D\xEB\x1E\x6B\xA3" | ||
21764 | "\x7B\xDC\xCE\x15\x97\x27\xB2\x65" | ||
21765 | "\xBC\x0E\x47\xAB\x55\x13\x53\xAB" | ||
21766 | "\x0E\x34\x55\x02\x5F\x27\xC5\x89" | ||
21767 | "\xDF\xC5\x70\xC4\xDD\x76\x82\xEE" | ||
21768 | "\x68\xA6\x09\xB0\xE5\x5E\xF1\x0C" | ||
21769 | "\xE3\xF3\x09\x9B\xFE\x65\x4B\xB8" | ||
21770 | "\x30\xEC\xD5\x7C\x6A\xEC\x1D\xD2" | ||
21771 | "\x93\xB7\xA1\x1A\x02\xD4\xC0\xD6" | ||
21772 | "\x8D\x4D\x83\x9A\xED\x29\x4E\x14" | ||
21773 | "\x86\xD5\x3C\x1A\xD5\xB9\x0A\x6A" | ||
21774 | "\x72\x22\xD5\x92\x38\xF1\xA1\x86" | ||
21775 | "\xB2\x41\x51\xCA\x4E\xAB\x8F\xD3" | ||
21776 | "\x80\x56\xC3\xD7\x65\xE1\xB3\x86" | ||
21777 | "\xCB\xCE\x98\xA1\xD4\x59\x1C\x06" | ||
21778 | "\x01\xED\xF8\x29\x91\x19\x5C\x9A" | ||
21779 | "\xEE\x28\x1B\x48\xD7\x32\xEF\x9F" | ||
21780 | "\x6C\x2B\x66\x4E\x78\xD5\x8B\x72" | ||
21781 | "\x80\xE7\x29\xDC\x23\x55\x98\x54" | ||
21782 | "\xB1\xFF\x3E\x95\x56\xA8\x78\x78" | ||
21783 | "\xEF\xC4\xA5\x11\x2D\x2B\xD8\x93" | ||
21784 | "\x30\x6E\x7E\x51\xBB\x42\x5F\x03" | ||
21785 | "\x43\x94\x23\x7E\xEE\xF0\xA5\x79" | ||
21786 | "\x55\x01\xD4\x58\xB2\xF2\x85\x49" | ||
21787 | "\x70\xC5\xB9\x0B\x3B\x7A\x6E\x6C", | ||
21788 | .rlen = 1008, | ||
21191 | .also_non_np = 1, | 21789 | .also_non_np = 1, |
21192 | .np = 2, | 21790 | .np = 2, |
21193 | .tap = { 496 - 16, 16 }, | 21791 | .tap = { 1008 - 16, 16 }, |
21194 | }, | 21792 | }, |
21195 | }; | 21793 | }; |
21196 | 21794 | ||
@@ -21291,8 +21889,72 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | |||
21291 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" | 21889 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" |
21292 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" | 21890 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" |
21293 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" | 21891 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" |
21294 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20", | 21892 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20" |
21295 | .ilen = 496, | 21893 | "\x78\x1A\x7F\x18\x8C\xD9\xCD\xF5" |
21894 | "\x21\x41\x56\x72\x13\xE1\x86\x07" | ||
21895 | "\x07\x26\xF3\x4F\x7B\xEA\xB5\x18" | ||
21896 | "\xFE\x94\x2D\x9F\xE0\x72\x18\x65" | ||
21897 | "\xB2\xA5\x63\x48\xB4\x13\x22\xF7" | ||
21898 | "\x25\xF1\x80\xA8\x7F\x54\x86\x7B" | ||
21899 | "\x39\xAE\x95\x0C\x09\x32\x22\x2D" | ||
21900 | "\x4D\x73\x39\x0C\x09\x2C\x7C\x10" | ||
21901 | "\xD0\x4B\x53\xF6\x90\xC5\x99\x2F" | ||
21902 | "\x15\xE1\x7F\xC6\xC5\x7A\x52\x14" | ||
21903 | "\x65\xEE\x93\x54\xD0\x66\x15\x3C" | ||
21904 | "\x4C\x68\xFD\x64\x0F\xF9\x10\x39" | ||
21905 | "\x46\x7A\xDD\x97\x20\xEE\xC7\xD2" | ||
21906 | "\x98\x4A\xB6\xE6\xF5\xA8\x1F\x4F" | ||
21907 | "\xDB\xAB\x6D\xD5\x9B\x34\x16\x97" | ||
21908 | "\x2F\x64\xE5\x37\xEF\x0E\xA1\xE9" | ||
21909 | "\xBE\x31\x31\x96\x8B\x40\x18\x75" | ||
21910 | "\x11\x75\x14\x32\xA5\x2D\x1B\x6B" | ||
21911 | "\xDB\x59\xEB\xFA\x3D\x8E\x7C\xC4" | ||
21912 | "\xDE\x68\xC8\x9F\xC9\x99\xE3\xC6" | ||
21913 | "\x71\xB0\x12\x57\x89\x0D\xC0\x2B" | ||
21914 | "\x9F\x12\x6A\x04\x67\xF1\x95\x31" | ||
21915 | "\x59\xFD\x84\x95\x2C\x9C\x5B\xEC" | ||
21916 | "\x09\xB0\x43\x96\x4A\x64\x80\x40" | ||
21917 | "\xB9\x72\x19\xDD\x70\x42\xFA\xB1" | ||
21918 | "\x4A\x2C\x0C\x0A\x60\x6E\xE3\x7C" | ||
21919 | "\x37\x5A\xBE\xA4\x62\xCF\x29\xAB" | ||
21920 | "\x7F\x4D\xA6\xB3\xE2\xB6\x64\xC6" | ||
21921 | "\x33\x0B\xF3\xD5\x01\x38\x74\xA4" | ||
21922 | "\x67\x1E\x75\x68\xC3\xAD\x76\xE9" | ||
21923 | "\xE9\xBC\xF0\xEB\xD8\xFD\x31\x8A" | ||
21924 | "\x5F\xC9\x18\x94\x4B\x86\x66\xFC" | ||
21925 | "\xBD\x0B\x3D\xB3\x9F\xFA\x1F\xD9" | ||
21926 | "\x78\xC4\xE3\x24\x1C\x67\xA2\xF8" | ||
21927 | "\x43\xBC\x76\x75\xBF\x6C\x05\xB3" | ||
21928 | "\x32\xE8\x7C\x80\xDB\xC7\xB6\x61" | ||
21929 | "\x1A\x3E\x2B\xA7\x25\xED\x8F\xA0" | ||
21930 | "\x00\x4B\xF8\x90\xCA\xD8\xFB\x12" | ||
21931 | "\xAC\x1F\x18\xE9\xD2\x5E\xA2\x8E" | ||
21932 | "\xE4\x84\x6B\x9D\xEB\x1E\x6B\xA3" | ||
21933 | "\x7B\xDC\xCE\x15\x97\x27\xB2\x65" | ||
21934 | "\xBC\x0E\x47\xAB\x55\x13\x53\xAB" | ||
21935 | "\x0E\x34\x55\x02\x5F\x27\xC5\x89" | ||
21936 | "\xDF\xC5\x70\xC4\xDD\x76\x82\xEE" | ||
21937 | "\x68\xA6\x09\xB0\xE5\x5E\xF1\x0C" | ||
21938 | "\xE3\xF3\x09\x9B\xFE\x65\x4B\xB8" | ||
21939 | "\x30\xEC\xD5\x7C\x6A\xEC\x1D\xD2" | ||
21940 | "\x93\xB7\xA1\x1A\x02\xD4\xC0\xD6" | ||
21941 | "\x8D\x4D\x83\x9A\xED\x29\x4E\x14" | ||
21942 | "\x86\xD5\x3C\x1A\xD5\xB9\x0A\x6A" | ||
21943 | "\x72\x22\xD5\x92\x38\xF1\xA1\x86" | ||
21944 | "\xB2\x41\x51\xCA\x4E\xAB\x8F\xD3" | ||
21945 | "\x80\x56\xC3\xD7\x65\xE1\xB3\x86" | ||
21946 | "\xCB\xCE\x98\xA1\xD4\x59\x1C\x06" | ||
21947 | "\x01\xED\xF8\x29\x91\x19\x5C\x9A" | ||
21948 | "\xEE\x28\x1B\x48\xD7\x32\xEF\x9F" | ||
21949 | "\x6C\x2B\x66\x4E\x78\xD5\x8B\x72" | ||
21950 | "\x80\xE7\x29\xDC\x23\x55\x98\x54" | ||
21951 | "\xB1\xFF\x3E\x95\x56\xA8\x78\x78" | ||
21952 | "\xEF\xC4\xA5\x11\x2D\x2B\xD8\x93" | ||
21953 | "\x30\x6E\x7E\x51\xBB\x42\x5F\x03" | ||
21954 | "\x43\x94\x23\x7E\xEE\xF0\xA5\x79" | ||
21955 | "\x55\x01\xD4\x58\xB2\xF2\x85\x49" | ||
21956 | "\x70\xC5\xB9\x0B\x3B\x7A\x6E\x6C", | ||
21957 | .ilen = 1008, | ||
21296 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 21958 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
21297 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 21959 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
21298 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21960 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -21354,11 +22016,75 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | |||
21354 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 22016 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
21355 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 22017 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
21356 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 22018 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
21357 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 22019 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
21358 | .rlen = 496, | 22020 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
22021 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
22022 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
22023 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
22024 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
22025 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
22026 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
22027 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
22028 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
22029 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
22030 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
22031 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
22032 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
22033 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
22034 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
22035 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
22036 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
22037 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
22038 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
22039 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
22040 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
22041 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
22042 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
22043 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
22044 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
22045 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
22046 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
22047 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
22048 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
22049 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
22050 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
22051 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
22052 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
22053 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
22054 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
22055 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
22056 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
22057 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
22058 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
22059 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
22060 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
22061 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
22062 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
22063 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
22064 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
22065 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
22066 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
22067 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
22068 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
22069 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
22070 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
22071 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
22072 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
22073 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
22074 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
22075 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
22076 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
22077 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
22078 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
22079 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
22080 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
22081 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
22082 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
22083 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
22084 | .rlen = 1008, | ||
21359 | .also_non_np = 1, | 22085 | .also_non_np = 1, |
21360 | .np = 2, | 22086 | .np = 2, |
21361 | .tap = { 496 - 16, 16 }, | 22087 | .tap = { 1008 - 16, 16 }, |
21362 | }, | 22088 | }, |
21363 | }; | 22089 | }; |
21364 | 22090 | ||
@@ -21567,8 +22293,72 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
21567 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 22293 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
21568 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 22294 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
21569 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | 22295 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
21570 | "\x2B\xC2\x59", | 22296 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
21571 | .ilen = 499, | 22297 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" |
22298 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
22299 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
22300 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
22301 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
22302 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
22303 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
22304 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
22305 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
22306 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
22307 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
22308 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
22309 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
22310 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
22311 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
22312 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
22313 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
22314 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
22315 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
22316 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
22317 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
22318 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
22319 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
22320 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
22321 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
22322 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
22323 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
22324 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
22325 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
22326 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
22327 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
22328 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
22329 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
22330 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
22331 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
22332 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
22333 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
22334 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
22335 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
22336 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
22337 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
22338 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
22339 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
22340 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
22341 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
22342 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
22343 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
22344 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
22345 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
22346 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
22347 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
22348 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
22349 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
22350 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
22351 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
22352 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
22353 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
22354 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
22355 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
22356 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
22357 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
22358 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
22359 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D" | ||
22360 | "\xE4\x7B\x12", | ||
22361 | .ilen = 1011, | ||
21572 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | 22362 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" |
21573 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | 22363 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" |
21574 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | 22364 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" |
@@ -21631,11 +22421,75 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
21631 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | 22421 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" |
21632 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | 22422 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" |
21633 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" | 22423 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" |
21634 | "\x93\x11\x1C", | 22424 | "\x93\x11\x1C\xE9\xD2\x9F\x6E\x90" |
21635 | .rlen = 499, | 22425 | "\xE5\x41\x4A\xE2\x3C\x45\x29\x35" |
22426 | "\xEC\xD6\x47\x50\xCB\x7B\xA2\x32" | ||
22427 | "\xF7\x8B\x62\xF1\xE3\x9A\xFE\xC7" | ||
22428 | "\x1D\x8C\x02\x72\x68\x09\xE9\xB6" | ||
22429 | "\x4A\x80\xE6\xB1\x56\xDF\x90\xD4" | ||
22430 | "\x93\x74\xA4\xCE\x20\x23\xBF\x48" | ||
22431 | "\xA5\xDE\x1B\xFA\x40\x69\x31\x98" | ||
22432 | "\x62\x6E\xA5\xC7\xBF\x0C\x62\xE5" | ||
22433 | "\x6D\xE1\x93\xF1\x83\x10\x1C\xCA" | ||
22434 | "\xF6\x5C\x19\xF8\x90\x78\xCB\xE4" | ||
22435 | "\x0B\x3A\xB5\xF8\x43\x86\xD3\x3F" | ||
22436 | "\xBA\x83\x34\x3C\x42\xCC\x7D\x28" | ||
22437 | "\x29\x63\x4F\xD8\x02\x17\xC5\x07" | ||
22438 | "\x2C\xA4\xAC\x79\xCB\xC3\xA9\x09" | ||
22439 | "\x81\x45\x18\xED\xE4\xCB\x42\x3B" | ||
22440 | "\x87\x2D\x23\xDC\xC5\xBA\x45\xBD" | ||
22441 | "\x92\xE5\x02\x97\x96\xCE\xAD\xEC" | ||
22442 | "\xBA\xD8\x76\xF8\xCA\xC1\x31\xEC" | ||
22443 | "\x1E\x4F\x3F\x83\xF8\x33\xE8\x6E" | ||
22444 | "\xCC\xF8\x5F\xDD\x65\x50\x99\x69" | ||
22445 | "\xAF\x48\xCE\xA5\xBA\xB6\x14\x9F" | ||
22446 | "\x05\x93\xB2\xE6\x59\xC8\x28\xFE" | ||
22447 | "\x8F\x37\xF9\x64\xB9\xA5\x56\x8F" | ||
22448 | "\xF1\x1B\x90\xEF\xAE\xEB\xFC\x09" | ||
22449 | "\x11\x7A\xF2\x19\x0A\x0A\x9A\x3C" | ||
22450 | "\xE2\x5E\x29\xFA\x31\x9B\xC1\x74" | ||
22451 | "\x1E\x10\x3E\x07\xA9\x31\x6D\xF8" | ||
22452 | "\x81\xF5\xD5\x8A\x04\x23\x51\xAC" | ||
22453 | "\xA2\xE2\x63\xFD\x27\x1F\x79\x5B" | ||
22454 | "\x1F\xE8\xDA\x11\x49\x4D\x1C\xBA" | ||
22455 | "\x54\xCC\x0F\xBA\x92\x69\xE5\xCB" | ||
22456 | "\x41\x1A\x67\xA6\x40\x82\x70\x8C" | ||
22457 | "\x19\x79\x08\xA4\x51\x20\x7D\xC9" | ||
22458 | "\x12\x27\xAE\x20\x0D\x2C\xA1\x6D" | ||
22459 | "\xF4\x55\xD4\xE7\xE6\xD4\x28\x08" | ||
22460 | "\x00\x70\x12\x56\x56\x50\xAD\x14" | ||
22461 | "\x5C\x3E\xA2\xD1\x36\x3F\x36\x48" | ||
22462 | "\xED\xB1\x57\x3E\x5D\x15\xF6\x1E" | ||
22463 | "\x53\xE9\xA4\x3E\xED\x7D\xCF\x7D" | ||
22464 | "\x29\xAF\xF3\x1E\x51\xA8\x9F\x85" | ||
22465 | "\x8B\xF0\xBB\xCE\xCC\x39\xC3\x64" | ||
22466 | "\x4B\xF2\xAD\x70\x19\xD4\x44\x8F" | ||
22467 | "\x91\x76\xE8\x15\x66\x34\x9F\xF6" | ||
22468 | "\x0F\x15\xA4\xA8\x24\xF8\x58\xB1" | ||
22469 | "\x38\x46\x47\xC7\x9B\xCA\xE9\x42" | ||
22470 | "\x44\xAA\xE6\xB5\x9C\x91\xA4\xD3" | ||
22471 | "\x16\xA0\xED\x42\xBE\xB5\x06\x19" | ||
22472 | "\xBE\x67\xE8\xBC\x22\x32\xA4\x1E" | ||
22473 | "\x93\xEB\xBE\xE9\xE1\x93\xE5\x31" | ||
22474 | "\x3A\xA2\x75\xDF\xE3\x6B\xE7\xCC" | ||
22475 | "\xB4\x70\x20\xE0\x6D\x82\x7C\xC8" | ||
22476 | "\x94\x5C\x5E\x37\x18\xAD\xED\x8B" | ||
22477 | "\x44\x86\xCA\x5E\x07\xB7\x70\x8D" | ||
22478 | "\x40\x48\x19\x73\x7C\x78\x64\x0B" | ||
22479 | "\xDB\x01\xCA\xAE\x63\x19\xE9\xD1" | ||
22480 | "\x6B\x2C\x84\x10\x45\x42\x2E\xC3" | ||
22481 | "\xDF\x7F\xAA\xE8\x87\x1B\x63\x46" | ||
22482 | "\x74\x28\x9D\x05\x30\x20\x62\x41" | ||
22483 | "\xC0\x9F\x2C\x36\x2B\x78\xD7\x26" | ||
22484 | "\xDF\x58\x51\xED\xFA\xDC\x87\x79" | ||
22485 | "\xBF\x8C\xBF\xC4\x0F\xE5\x05\xDA" | ||
22486 | "\x45\xE3\x35\x0D\x69\x91\x54\x1C" | ||
22487 | "\xE7\x2C\x49\x08\x8B\x72\xFA\x5C" | ||
22488 | "\xF1\x6B\xD9", | ||
22489 | .rlen = 1011, | ||
21636 | .also_non_np = 1, | 22490 | .also_non_np = 1, |
21637 | .np = 2, | 22491 | .np = 2, |
21638 | .tap = { 499 - 16, 16 }, | 22492 | .tap = { 1011 - 16, 16 }, |
21639 | }, { /* Generated with Crypto++ */ | 22493 | }, { /* Generated with Crypto++ */ |
21640 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 22494 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
21641 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 22495 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -21705,8 +22559,72 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
21705 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 22559 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
21706 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 22560 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
21707 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 22561 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
21708 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 22562 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
21709 | .ilen = 496, | 22563 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
22564 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
22565 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
22566 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
22567 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
22568 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
22569 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
22570 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
22571 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
22572 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
22573 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
22574 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
22575 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
22576 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
22577 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
22578 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
22579 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
22580 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
22581 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
22582 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
22583 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
22584 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
22585 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
22586 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
22587 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
22588 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
22589 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
22590 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
22591 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
22592 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
22593 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
22594 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
22595 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
22596 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
22597 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
22598 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
22599 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
22600 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
22601 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
22602 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
22603 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
22604 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
22605 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
22606 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
22607 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
22608 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
22609 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
22610 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
22611 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
22612 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
22613 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
22614 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
22615 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
22616 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
22617 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
22618 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
22619 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
22620 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
22621 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
22622 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
22623 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
22624 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
22625 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
22626 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
22627 | .ilen = 1008, | ||
21710 | .result = "\x85\x79\x6C\x8B\x2B\x6D\x14\xF9" | 22628 | .result = "\x85\x79\x6C\x8B\x2B\x6D\x14\xF9" |
21711 | "\xA6\x83\xB6\x80\x5B\x3A\xF3\x7E" | 22629 | "\xA6\x83\xB6\x80\x5B\x3A\xF3\x7E" |
21712 | "\x30\x29\xEB\x1F\xDC\x19\x5F\xEB" | 22630 | "\x30\x29\xEB\x1F\xDC\x19\x5F\xEB" |
@@ -21768,8 +22686,72 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
21768 | "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22" | 22686 | "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22" |
21769 | "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E" | 22687 | "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E" |
21770 | "\x12\xA8\x01\x64\x16\x0B\x26\x5A" | 22688 | "\x12\xA8\x01\x64\x16\x0B\x26\x5A" |
21771 | "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C", | 22689 | "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C" |
21772 | .rlen = 496, | 22690 | "\xCF\xF5\xD5\xB7\x7A\x34\x23\xB6" |
22691 | "\xAA\x9E\xA8\x98\xA2\xF8\x3D\xD3" | ||
22692 | "\x3F\x23\x69\x63\x56\x96\x45\xD6" | ||
22693 | "\x74\x23\x1D\x5C\x63\xCC\xD8\x78" | ||
22694 | "\x16\xE2\x9C\xD2\x80\x02\xF2\x28" | ||
22695 | "\x69\x2F\xC4\xA8\x15\x15\x24\x3B" | ||
22696 | "\xCB\xF0\x14\xE4\x62\xC8\xF3\xD1" | ||
22697 | "\x03\x58\x1B\x33\x77\x74\x1F\xB4" | ||
22698 | "\x07\x86\xF2\x21\xB7\x41\xAE\xBF" | ||
22699 | "\x25\xC2\xFF\x51\xEF\xEA\xCE\xC4" | ||
22700 | "\x5F\xD9\xB8\x18\x6A\xF0\x0F\x0D" | ||
22701 | "\xF8\x04\xBB\x6D\x62\x33\x87\x26" | ||
22702 | "\x4F\x2F\x14\x6E\xDC\xDB\x66\x09" | ||
22703 | "\x2A\xEF\x7D\x84\x10\xAC\x82\x5E" | ||
22704 | "\xD2\xE4\xAD\x74\x7A\x6D\xCC\x3A" | ||
22705 | "\x7B\x62\xD8\xD6\x07\x2D\xF7\xDF" | ||
22706 | "\x9B\xB3\x82\xCF\x9C\x1D\x76\x5C" | ||
22707 | "\xAC\x7B\xD4\x9B\x45\xA1\x64\x11" | ||
22708 | "\x66\xF1\xA7\x0B\xF9\xDD\x00\xDD" | ||
22709 | "\xA4\x45\x3D\x3E\x03\xC9\x2E\xCB" | ||
22710 | "\xC3\x14\x84\x72\xFD\x41\xDC\xBD" | ||
22711 | "\x75\xBE\xA8\xE5\x16\x48\x64\x39" | ||
22712 | "\xCA\xF3\xE6\xDC\x25\x24\xF1\x6D" | ||
22713 | "\xB2\x8D\xC5\x38\x54\xD3\x5D\x6D" | ||
22714 | "\x0B\x29\x10\x15\x0E\x13\x3B\xAC" | ||
22715 | "\x7E\xCC\x9E\x3E\x18\x48\xA6\x02" | ||
22716 | "\xEF\x03\xB2\x2E\xE3\xD2\x70\x21" | ||
22717 | "\xB4\x19\x26\xBE\x3A\x3D\x05\xE0" | ||
22718 | "\xF8\x09\xAF\xE4\x31\x26\x92\x2F" | ||
22719 | "\x8F\x55\xAC\xED\x0B\xB2\xA5\x34" | ||
22720 | "\xBE\x50\xB1\x02\x22\x96\xE3\x40" | ||
22721 | "\x7B\x70\x50\x6E\x3B\xD5\xE5\xA0" | ||
22722 | "\x8E\xA2\xAD\x14\x60\x5C\x7A\x2B" | ||
22723 | "\x3D\x1B\x7F\xC1\xC0\x2C\x56\x36" | ||
22724 | "\xD2\x0A\x32\x06\x97\x34\xB9\xF4" | ||
22725 | "\x6F\x9F\x7E\x80\xD0\x9D\xF7\x6A" | ||
22726 | "\x21\xC1\xA2\x6A\xB1\x96\x5B\x4D" | ||
22727 | "\x7A\x15\x6C\xC4\x4E\xB8\xE0\x9E" | ||
22728 | "\x6C\x50\xF3\x9C\xC9\xB5\x23\xB7" | ||
22729 | "\xF1\xD4\x29\x4A\x23\xC4\xAD\x1E" | ||
22730 | "\x2C\x07\xD2\x43\x5F\x57\x93\xCA" | ||
22731 | "\x85\xF9\x9F\xAD\x4C\xF1\xE4\xB1" | ||
22732 | "\x1A\x8E\x28\xA4\xB6\x52\x77\x7E" | ||
22733 | "\x68\xC6\x47\xB9\x76\xCC\x65\x5F" | ||
22734 | "\x0B\xF9\x67\x93\xD8\x0E\x9A\x37" | ||
22735 | "\x5F\x41\xED\x64\x6C\xAD\x5F\xED" | ||
22736 | "\x3F\x8D\xFB\x8E\x1E\xA0\xE4\x1F" | ||
22737 | "\xC2\xC7\xED\x18\x43\xE1\x20\x86" | ||
22738 | "\x5D\xBC\x30\x70\x22\xA1\xDC\x53" | ||
22739 | "\x10\x3A\x8D\x47\x82\xCD\x7F\x59" | ||
22740 | "\x03\x2D\x6D\xF5\xE7\x79\xD4\x07" | ||
22741 | "\x68\x2A\xA5\x42\x19\x4D\xAF\xF5" | ||
22742 | "\xED\x47\x83\xBC\x5F\x62\x84\xDA" | ||
22743 | "\xDA\x41\xFF\xB0\x1D\x64\xA3\xC8" | ||
22744 | "\xBD\x4E\xE0\xB8\x7F\xEE\x55\x0A" | ||
22745 | "\x4E\x61\xB2\x51\xF6\x9C\x95\xF6" | ||
22746 | "\x92\xBB\xF6\xC5\xF0\x09\x86\xDE" | ||
22747 | "\x37\x9E\x29\xF9\x2A\x18\x73\x0D" | ||
22748 | "\xDC\x7E\x6B\x7B\x1B\x43\x8C\xEA" | ||
22749 | "\x13\xC8\x1A\x47\x0A\x2D\x6D\x56" | ||
22750 | "\xCD\xD2\xE7\x53\x1A\xAB\x1C\x3C" | ||
22751 | "\xC5\x9B\x03\x70\x29\x2A\x49\x09" | ||
22752 | "\x67\xA1\xEA\xD6\x3A\x5B\xBF\x71" | ||
22753 | "\x1D\x48\x64\x6C\xFB\xC0\x9E\x36", | ||
22754 | .rlen = 1008, | ||
21773 | }, | 22755 | }, |
21774 | }; | 22756 | }; |
21775 | 22757 | ||
@@ -21978,8 +22960,72 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
21978 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | 22960 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" |
21979 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | 22961 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" |
21980 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" | 22962 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" |
21981 | "\x93\x11\x1C", | 22963 | "\x93\x11\x1C\xE9\xD2\x9F\x6E\x90" |
21982 | .ilen = 499, | 22964 | "\xE5\x41\x4A\xE2\x3C\x45\x29\x35" |
22965 | "\xEC\xD6\x47\x50\xCB\x7B\xA2\x32" | ||
22966 | "\xF7\x8B\x62\xF1\xE3\x9A\xFE\xC7" | ||
22967 | "\x1D\x8C\x02\x72\x68\x09\xE9\xB6" | ||
22968 | "\x4A\x80\xE6\xB1\x56\xDF\x90\xD4" | ||
22969 | "\x93\x74\xA4\xCE\x20\x23\xBF\x48" | ||
22970 | "\xA5\xDE\x1B\xFA\x40\x69\x31\x98" | ||
22971 | "\x62\x6E\xA5\xC7\xBF\x0C\x62\xE5" | ||
22972 | "\x6D\xE1\x93\xF1\x83\x10\x1C\xCA" | ||
22973 | "\xF6\x5C\x19\xF8\x90\x78\xCB\xE4" | ||
22974 | "\x0B\x3A\xB5\xF8\x43\x86\xD3\x3F" | ||
22975 | "\xBA\x83\x34\x3C\x42\xCC\x7D\x28" | ||
22976 | "\x29\x63\x4F\xD8\x02\x17\xC5\x07" | ||
22977 | "\x2C\xA4\xAC\x79\xCB\xC3\xA9\x09" | ||
22978 | "\x81\x45\x18\xED\xE4\xCB\x42\x3B" | ||
22979 | "\x87\x2D\x23\xDC\xC5\xBA\x45\xBD" | ||
22980 | "\x92\xE5\x02\x97\x96\xCE\xAD\xEC" | ||
22981 | "\xBA\xD8\x76\xF8\xCA\xC1\x31\xEC" | ||
22982 | "\x1E\x4F\x3F\x83\xF8\x33\xE8\x6E" | ||
22983 | "\xCC\xF8\x5F\xDD\x65\x50\x99\x69" | ||
22984 | "\xAF\x48\xCE\xA5\xBA\xB6\x14\x9F" | ||
22985 | "\x05\x93\xB2\xE6\x59\xC8\x28\xFE" | ||
22986 | "\x8F\x37\xF9\x64\xB9\xA5\x56\x8F" | ||
22987 | "\xF1\x1B\x90\xEF\xAE\xEB\xFC\x09" | ||
22988 | "\x11\x7A\xF2\x19\x0A\x0A\x9A\x3C" | ||
22989 | "\xE2\x5E\x29\xFA\x31\x9B\xC1\x74" | ||
22990 | "\x1E\x10\x3E\x07\xA9\x31\x6D\xF8" | ||
22991 | "\x81\xF5\xD5\x8A\x04\x23\x51\xAC" | ||
22992 | "\xA2\xE2\x63\xFD\x27\x1F\x79\x5B" | ||
22993 | "\x1F\xE8\xDA\x11\x49\x4D\x1C\xBA" | ||
22994 | "\x54\xCC\x0F\xBA\x92\x69\xE5\xCB" | ||
22995 | "\x41\x1A\x67\xA6\x40\x82\x70\x8C" | ||
22996 | "\x19\x79\x08\xA4\x51\x20\x7D\xC9" | ||
22997 | "\x12\x27\xAE\x20\x0D\x2C\xA1\x6D" | ||
22998 | "\xF4\x55\xD4\xE7\xE6\xD4\x28\x08" | ||
22999 | "\x00\x70\x12\x56\x56\x50\xAD\x14" | ||
23000 | "\x5C\x3E\xA2\xD1\x36\x3F\x36\x48" | ||
23001 | "\xED\xB1\x57\x3E\x5D\x15\xF6\x1E" | ||
23002 | "\x53\xE9\xA4\x3E\xED\x7D\xCF\x7D" | ||
23003 | "\x29\xAF\xF3\x1E\x51\xA8\x9F\x85" | ||
23004 | "\x8B\xF0\xBB\xCE\xCC\x39\xC3\x64" | ||
23005 | "\x4B\xF2\xAD\x70\x19\xD4\x44\x8F" | ||
23006 | "\x91\x76\xE8\x15\x66\x34\x9F\xF6" | ||
23007 | "\x0F\x15\xA4\xA8\x24\xF8\x58\xB1" | ||
23008 | "\x38\x46\x47\xC7\x9B\xCA\xE9\x42" | ||
23009 | "\x44\xAA\xE6\xB5\x9C\x91\xA4\xD3" | ||
23010 | "\x16\xA0\xED\x42\xBE\xB5\x06\x19" | ||
23011 | "\xBE\x67\xE8\xBC\x22\x32\xA4\x1E" | ||
23012 | "\x93\xEB\xBE\xE9\xE1\x93\xE5\x31" | ||
23013 | "\x3A\xA2\x75\xDF\xE3\x6B\xE7\xCC" | ||
23014 | "\xB4\x70\x20\xE0\x6D\x82\x7C\xC8" | ||
23015 | "\x94\x5C\x5E\x37\x18\xAD\xED\x8B" | ||
23016 | "\x44\x86\xCA\x5E\x07\xB7\x70\x8D" | ||
23017 | "\x40\x48\x19\x73\x7C\x78\x64\x0B" | ||
23018 | "\xDB\x01\xCA\xAE\x63\x19\xE9\xD1" | ||
23019 | "\x6B\x2C\x84\x10\x45\x42\x2E\xC3" | ||
23020 | "\xDF\x7F\xAA\xE8\x87\x1B\x63\x46" | ||
23021 | "\x74\x28\x9D\x05\x30\x20\x62\x41" | ||
23022 | "\xC0\x9F\x2C\x36\x2B\x78\xD7\x26" | ||
23023 | "\xDF\x58\x51\xED\xFA\xDC\x87\x79" | ||
23024 | "\xBF\x8C\xBF\xC4\x0F\xE5\x05\xDA" | ||
23025 | "\x45\xE3\x35\x0D\x69\x91\x54\x1C" | ||
23026 | "\xE7\x2C\x49\x08\x8B\x72\xFA\x5C" | ||
23027 | "\xF1\x6B\xD9", | ||
23028 | .ilen = 1011, | ||
21983 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 23029 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
21984 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 23030 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
21985 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 23031 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -22042,11 +23088,75 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
22042 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 23088 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
22043 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 23089 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
22044 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | 23090 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
22045 | "\x2B\xC2\x59", | 23091 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
22046 | .rlen = 499, | 23092 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" |
23093 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
23094 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
23095 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
23096 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
23097 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
23098 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
23099 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
23100 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
23101 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
23102 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
23103 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
23104 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
23105 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
23106 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
23107 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
23108 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
23109 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
23110 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
23111 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
23112 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
23113 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
23114 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
23115 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
23116 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
23117 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
23118 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
23119 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
23120 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
23121 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
23122 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
23123 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
23124 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
23125 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
23126 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
23127 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
23128 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
23129 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
23130 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
23131 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
23132 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
23133 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
23134 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
23135 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
23136 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
23137 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
23138 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
23139 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
23140 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
23141 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
23142 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
23143 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
23144 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
23145 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
23146 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
23147 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
23148 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
23149 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
23150 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
23151 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
23152 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
23153 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
23154 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D" | ||
23155 | "\xE4\x7B\x12", | ||
23156 | .rlen = 1011, | ||
22047 | .also_non_np = 1, | 23157 | .also_non_np = 1, |
22048 | .np = 2, | 23158 | .np = 2, |
22049 | .tap = { 499 - 16, 16 }, | 23159 | .tap = { 1011 - 16, 16 }, |
22050 | }, { /* Generated with Crypto++ */ | 23160 | }, { /* Generated with Crypto++ */ |
22051 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 23161 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
22052 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 23162 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -22116,8 +23226,72 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
22116 | "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22" | 23226 | "\xB4\x3A\x5F\x19\xCF\x42\x1B\x22" |
22117 | "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E" | 23227 | "\x0B\x2D\x7B\xF1\xC5\x43\xF7\x5E" |
22118 | "\x12\xA8\x01\x64\x16\x0B\x26\x5A" | 23228 | "\x12\xA8\x01\x64\x16\x0B\x26\x5A" |
22119 | "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C", | 23229 | "\x0C\x95\x0F\x40\xC5\x5A\x06\x7C" |
22120 | .ilen = 496, | 23230 | "\xCF\xF5\xD5\xB7\x7A\x34\x23\xB6" |
23231 | "\xAA\x9E\xA8\x98\xA2\xF8\x3D\xD3" | ||
23232 | "\x3F\x23\x69\x63\x56\x96\x45\xD6" | ||
23233 | "\x74\x23\x1D\x5C\x63\xCC\xD8\x78" | ||
23234 | "\x16\xE2\x9C\xD2\x80\x02\xF2\x28" | ||
23235 | "\x69\x2F\xC4\xA8\x15\x15\x24\x3B" | ||
23236 | "\xCB\xF0\x14\xE4\x62\xC8\xF3\xD1" | ||
23237 | "\x03\x58\x1B\x33\x77\x74\x1F\xB4" | ||
23238 | "\x07\x86\xF2\x21\xB7\x41\xAE\xBF" | ||
23239 | "\x25\xC2\xFF\x51\xEF\xEA\xCE\xC4" | ||
23240 | "\x5F\xD9\xB8\x18\x6A\xF0\x0F\x0D" | ||
23241 | "\xF8\x04\xBB\x6D\x62\x33\x87\x26" | ||
23242 | "\x4F\x2F\x14\x6E\xDC\xDB\x66\x09" | ||
23243 | "\x2A\xEF\x7D\x84\x10\xAC\x82\x5E" | ||
23244 | "\xD2\xE4\xAD\x74\x7A\x6D\xCC\x3A" | ||
23245 | "\x7B\x62\xD8\xD6\x07\x2D\xF7\xDF" | ||
23246 | "\x9B\xB3\x82\xCF\x9C\x1D\x76\x5C" | ||
23247 | "\xAC\x7B\xD4\x9B\x45\xA1\x64\x11" | ||
23248 | "\x66\xF1\xA7\x0B\xF9\xDD\x00\xDD" | ||
23249 | "\xA4\x45\x3D\x3E\x03\xC9\x2E\xCB" | ||
23250 | "\xC3\x14\x84\x72\xFD\x41\xDC\xBD" | ||
23251 | "\x75\xBE\xA8\xE5\x16\x48\x64\x39" | ||
23252 | "\xCA\xF3\xE6\xDC\x25\x24\xF1\x6D" | ||
23253 | "\xB2\x8D\xC5\x38\x54\xD3\x5D\x6D" | ||
23254 | "\x0B\x29\x10\x15\x0E\x13\x3B\xAC" | ||
23255 | "\x7E\xCC\x9E\x3E\x18\x48\xA6\x02" | ||
23256 | "\xEF\x03\xB2\x2E\xE3\xD2\x70\x21" | ||
23257 | "\xB4\x19\x26\xBE\x3A\x3D\x05\xE0" | ||
23258 | "\xF8\x09\xAF\xE4\x31\x26\x92\x2F" | ||
23259 | "\x8F\x55\xAC\xED\x0B\xB2\xA5\x34" | ||
23260 | "\xBE\x50\xB1\x02\x22\x96\xE3\x40" | ||
23261 | "\x7B\x70\x50\x6E\x3B\xD5\xE5\xA0" | ||
23262 | "\x8E\xA2\xAD\x14\x60\x5C\x7A\x2B" | ||
23263 | "\x3D\x1B\x7F\xC1\xC0\x2C\x56\x36" | ||
23264 | "\xD2\x0A\x32\x06\x97\x34\xB9\xF4" | ||
23265 | "\x6F\x9F\x7E\x80\xD0\x9D\xF7\x6A" | ||
23266 | "\x21\xC1\xA2\x6A\xB1\x96\x5B\x4D" | ||
23267 | "\x7A\x15\x6C\xC4\x4E\xB8\xE0\x9E" | ||
23268 | "\x6C\x50\xF3\x9C\xC9\xB5\x23\xB7" | ||
23269 | "\xF1\xD4\x29\x4A\x23\xC4\xAD\x1E" | ||
23270 | "\x2C\x07\xD2\x43\x5F\x57\x93\xCA" | ||
23271 | "\x85\xF9\x9F\xAD\x4C\xF1\xE4\xB1" | ||
23272 | "\x1A\x8E\x28\xA4\xB6\x52\x77\x7E" | ||
23273 | "\x68\xC6\x47\xB9\x76\xCC\x65\x5F" | ||
23274 | "\x0B\xF9\x67\x93\xD8\x0E\x9A\x37" | ||
23275 | "\x5F\x41\xED\x64\x6C\xAD\x5F\xED" | ||
23276 | "\x3F\x8D\xFB\x8E\x1E\xA0\xE4\x1F" | ||
23277 | "\xC2\xC7\xED\x18\x43\xE1\x20\x86" | ||
23278 | "\x5D\xBC\x30\x70\x22\xA1\xDC\x53" | ||
23279 | "\x10\x3A\x8D\x47\x82\xCD\x7F\x59" | ||
23280 | "\x03\x2D\x6D\xF5\xE7\x79\xD4\x07" | ||
23281 | "\x68\x2A\xA5\x42\x19\x4D\xAF\xF5" | ||
23282 | "\xED\x47\x83\xBC\x5F\x62\x84\xDA" | ||
23283 | "\xDA\x41\xFF\xB0\x1D\x64\xA3\xC8" | ||
23284 | "\xBD\x4E\xE0\xB8\x7F\xEE\x55\x0A" | ||
23285 | "\x4E\x61\xB2\x51\xF6\x9C\x95\xF6" | ||
23286 | "\x92\xBB\xF6\xC5\xF0\x09\x86\xDE" | ||
23287 | "\x37\x9E\x29\xF9\x2A\x18\x73\x0D" | ||
23288 | "\xDC\x7E\x6B\x7B\x1B\x43\x8C\xEA" | ||
23289 | "\x13\xC8\x1A\x47\x0A\x2D\x6D\x56" | ||
23290 | "\xCD\xD2\xE7\x53\x1A\xAB\x1C\x3C" | ||
23291 | "\xC5\x9B\x03\x70\x29\x2A\x49\x09" | ||
23292 | "\x67\xA1\xEA\xD6\x3A\x5B\xBF\x71" | ||
23293 | "\x1D\x48\x64\x6C\xFB\xC0\x9E\x36", | ||
23294 | .ilen = 1008, | ||
22121 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 23295 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
22122 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 23296 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
22123 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 23297 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -22179,8 +23353,72 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
22179 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | 23353 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" |
22180 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | 23354 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" |
22181 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | 23355 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" |
22182 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | 23356 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" |
22183 | .rlen = 496, | 23357 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06" |
23358 | "\x9D\x34\xCB\x3F\xD6\x6D\x04\x78" | ||
23359 | "\x0F\xA6\x1A\xB1\x48\xDF\x53\xEA" | ||
23360 | "\x81\x18\x8C\x23\xBA\x2E\xC5\x5C" | ||
23361 | "\xF3\x67\xFE\x95\x09\xA0\x37\xCE" | ||
23362 | "\x42\xD9\x70\x07\x7B\x12\xA9\x1D" | ||
23363 | "\xB4\x4B\xE2\x56\xED\x84\x1B\x8F" | ||
23364 | "\x26\xBD\x31\xC8\x5F\xF6\x6A\x01" | ||
23365 | "\x98\x0C\xA3\x3A\xD1\x45\xDC\x73" | ||
23366 | "\x0A\x7E\x15\xAC\x20\xB7\x4E\xE5" | ||
23367 | "\x59\xF0\x87\x1E\x92\x29\xC0\x34" | ||
23368 | "\xCB\x62\xF9\x6D\x04\x9B\x0F\xA6" | ||
23369 | "\x3D\xD4\x48\xDF\x76\x0D\x81\x18" | ||
23370 | "\xAF\x23\xBA\x51\xE8\x5C\xF3\x8A" | ||
23371 | "\x21\x95\x2C\xC3\x37\xCE\x65\xFC" | ||
23372 | "\x70\x07\x9E\x12\xA9\x40\xD7\x4B" | ||
23373 | "\xE2\x79\x10\x84\x1B\xB2\x26\xBD" | ||
23374 | "\x54\xEB\x5F\xF6\x8D\x01\x98\x2F" | ||
23375 | "\xC6\x3A\xD1\x68\xFF\x73\x0A\xA1" | ||
23376 | "\x15\xAC\x43\xDA\x4E\xE5\x7C\x13" | ||
23377 | "\x87\x1E\xB5\x29\xC0\x57\xEE\x62" | ||
23378 | "\xF9\x90\x04\x9B\x32\xC9\x3D\xD4" | ||
23379 | "\x6B\x02\x76\x0D\xA4\x18\xAF\x46" | ||
23380 | "\xDD\x51\xE8\x7F\x16\x8A\x21\xB8" | ||
23381 | "\x2C\xC3\x5A\xF1\x65\xFC\x93\x07" | ||
23382 | "\x9E\x35\xCC\x40\xD7\x6E\x05\x79" | ||
23383 | "\x10\xA7\x1B\xB2\x49\xE0\x54\xEB" | ||
23384 | "\x82\x19\x8D\x24\xBB\x2F\xC6\x5D" | ||
23385 | "\xF4\x68\xFF\x96\x0A\xA1\x38\xCF" | ||
23386 | "\x43\xDA\x71\x08\x7C\x13\xAA\x1E" | ||
23387 | "\xB5\x4C\xE3\x57\xEE\x85\x1C\x90" | ||
23388 | "\x27\xBE\x32\xC9\x60\xF7\x6B\x02" | ||
23389 | "\x99\x0D\xA4\x3B\xD2\x46\xDD\x74" | ||
23390 | "\x0B\x7F\x16\xAD\x21\xB8\x4F\xE6" | ||
23391 | "\x5A\xF1\x88\x1F\x93\x2A\xC1\x35" | ||
23392 | "\xCC\x63\xFA\x6E\x05\x9C\x10\xA7" | ||
23393 | "\x3E\xD5\x49\xE0\x77\x0E\x82\x19" | ||
23394 | "\xB0\x24\xBB\x52\xE9\x5D\xF4\x8B" | ||
23395 | "\x22\x96\x2D\xC4\x38\xCF\x66\xFD" | ||
23396 | "\x71\x08\x9F\x13\xAA\x41\xD8\x4C" | ||
23397 | "\xE3\x7A\x11\x85\x1C\xB3\x27\xBE" | ||
23398 | "\x55\xEC\x60\xF7\x8E\x02\x99\x30" | ||
23399 | "\xC7\x3B\xD2\x69\x00\x74\x0B\xA2" | ||
23400 | "\x16\xAD\x44\xDB\x4F\xE6\x7D\x14" | ||
23401 | "\x88\x1F\xB6\x2A\xC1\x58\xEF\x63" | ||
23402 | "\xFA\x91\x05\x9C\x33\xCA\x3E\xD5" | ||
23403 | "\x6C\x03\x77\x0E\xA5\x19\xB0\x47" | ||
23404 | "\xDE\x52\xE9\x80\x17\x8B\x22\xB9" | ||
23405 | "\x2D\xC4\x5B\xF2\x66\xFD\x94\x08" | ||
23406 | "\x9F\x36\xCD\x41\xD8\x6F\x06\x7A" | ||
23407 | "\x11\xA8\x1C\xB3\x4A\xE1\x55\xEC" | ||
23408 | "\x83\x1A\x8E\x25\xBC\x30\xC7\x5E" | ||
23409 | "\xF5\x69\x00\x97\x0B\xA2\x39\xD0" | ||
23410 | "\x44\xDB\x72\x09\x7D\x14\xAB\x1F" | ||
23411 | "\xB6\x4D\xE4\x58\xEF\x86\x1D\x91" | ||
23412 | "\x28\xBF\x33\xCA\x61\xF8\x6C\x03" | ||
23413 | "\x9A\x0E\xA5\x3C\xD3\x47\xDE\x75" | ||
23414 | "\x0C\x80\x17\xAE\x22\xB9\x50\xE7" | ||
23415 | "\x5B\xF2\x89\x20\x94\x2B\xC2\x36" | ||
23416 | "\xCD\x64\xFB\x6F\x06\x9D\x11\xA8" | ||
23417 | "\x3F\xD6\x4A\xE1\x78\x0F\x83\x1A" | ||
23418 | "\xB1\x25\xBC\x53\xEA\x5E\xF5\x8C" | ||
23419 | "\x00\x97\x2E\xC5\x39\xD0\x67\xFE" | ||
23420 | "\x72\x09\xA0\x14\xAB\x42\xD9\x4D", | ||
23421 | .rlen = 1008, | ||
22184 | }, | 23422 | }, |
22185 | }; | 23423 | }; |
22186 | 23424 | ||