diff options
42 files changed, 9373 insertions, 1668 deletions
diff --git a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt index bd7ce120bc13..fc9ce6f1688c 100644 --- a/Documentation/devicetree/bindings/crypto/fsl-sec4.txt +++ b/Documentation/devicetree/bindings/crypto/fsl-sec4.txt | |||
@@ -54,7 +54,8 @@ PROPERTIES | |||
54 | - compatible | 54 | - compatible |
55 | Usage: required | 55 | Usage: required |
56 | Value type: <string> | 56 | Value type: <string> |
57 | Definition: Must include "fsl,sec-v4.0" | 57 | Definition: Must include "fsl,sec-v4.0". Also includes SEC |
58 | ERA versions (optional) with which the device is compatible. | ||
58 | 59 | ||
59 | - #address-cells | 60 | - #address-cells |
60 | Usage: required | 61 | Usage: required |
@@ -106,7 +107,7 @@ PROPERTIES | |||
106 | 107 | ||
107 | EXAMPLE | 108 | EXAMPLE |
108 | crypto@300000 { | 109 | crypto@300000 { |
109 | compatible = "fsl,sec-v4.0"; | 110 | compatible = "fsl,sec-v4.0", "fsl,sec-era-v2.0"; |
110 | #address-cells = <1>; | 111 | #address-cells = <1>; |
111 | #size-cells = <1>; | 112 | #size-cells = <1>; |
112 | reg = <0x300000 0x10000>; | 113 | reg = <0x300000 0x10000>; |
diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile index 5bacb4a226ac..e0ca7c9ac383 100644 --- a/arch/x86/crypto/Makefile +++ b/arch/x86/crypto/Makefile | |||
@@ -12,6 +12,7 @@ obj-$(CONFIG_CRYPTO_SERPENT_SSE2_586) += serpent-sse2-i586.o | |||
12 | 12 | ||
13 | obj-$(CONFIG_CRYPTO_AES_X86_64) += aes-x86_64.o | 13 | obj-$(CONFIG_CRYPTO_AES_X86_64) += aes-x86_64.o |
14 | obj-$(CONFIG_CRYPTO_CAMELLIA_X86_64) += camellia-x86_64.o | 14 | obj-$(CONFIG_CRYPTO_CAMELLIA_X86_64) += camellia-x86_64.o |
15 | obj-$(CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64) += camellia-aesni-avx-x86_64.o | ||
15 | obj-$(CONFIG_CRYPTO_CAST5_AVX_X86_64) += cast5-avx-x86_64.o | 16 | obj-$(CONFIG_CRYPTO_CAST5_AVX_X86_64) += cast5-avx-x86_64.o |
16 | obj-$(CONFIG_CRYPTO_CAST6_AVX_X86_64) += cast6-avx-x86_64.o | 17 | obj-$(CONFIG_CRYPTO_CAST6_AVX_X86_64) += cast6-avx-x86_64.o |
17 | obj-$(CONFIG_CRYPTO_BLOWFISH_X86_64) += blowfish-x86_64.o | 18 | obj-$(CONFIG_CRYPTO_BLOWFISH_X86_64) += blowfish-x86_64.o |
@@ -34,6 +35,8 @@ serpent-sse2-i586-y := serpent-sse2-i586-asm_32.o serpent_sse2_glue.o | |||
34 | 35 | ||
35 | aes-x86_64-y := aes-x86_64-asm_64.o aes_glue.o | 36 | aes-x86_64-y := aes-x86_64-asm_64.o aes_glue.o |
36 | camellia-x86_64-y := camellia-x86_64-asm_64.o camellia_glue.o | 37 | camellia-x86_64-y := camellia-x86_64-asm_64.o camellia_glue.o |
38 | camellia-aesni-avx-x86_64-y := camellia-aesni-avx-asm_64.o \ | ||
39 | camellia_aesni_avx_glue.o | ||
37 | cast5-avx-x86_64-y := cast5-avx-x86_64-asm_64.o cast5_avx_glue.o | 40 | cast5-avx-x86_64-y := cast5-avx-x86_64-asm_64.o cast5_avx_glue.o |
38 | cast6-avx-x86_64-y := cast6-avx-x86_64-asm_64.o cast6_avx_glue.o | 41 | cast6-avx-x86_64-y := cast6-avx-x86_64-asm_64.o cast6_avx_glue.o |
39 | blowfish-x86_64-y := blowfish-x86_64-asm_64.o blowfish_glue.o | 42 | blowfish-x86_64-y := blowfish-x86_64-asm_64.o blowfish_glue.o |
@@ -47,3 +50,5 @@ serpent-avx-x86_64-y := serpent-avx-x86_64-asm_64.o serpent_avx_glue.o | |||
47 | aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o fpu.o | 50 | aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o fpu.o |
48 | ghash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o | 51 | ghash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o |
49 | sha1-ssse3-y := sha1_ssse3_asm.o sha1_ssse3_glue.o | 52 | sha1-ssse3-y := sha1_ssse3_asm.o sha1_ssse3_glue.o |
53 | crc32c-intel-y := crc32c-intel_glue.o | ||
54 | crc32c-intel-$(CONFIG_CRYPTO_CRC32C_X86_64) += crc32c-pcl-intel-asm_64.o | ||
diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S new file mode 100644 index 000000000000..2306d2e4816f --- /dev/null +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S | |||
@@ -0,0 +1,1102 @@ | |||
1 | /* | ||
2 | * x86_64/AVX/AES-NI assembler implementation of Camellia | ||
3 | * | ||
4 | * Copyright © 2012 Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | */ | ||
12 | |||
13 | /* | ||
14 | * Version licensed under 2-clause BSD License is available at: | ||
15 | * http://koti.mbnet.fi/axh/crypto/camellia-BSD-1.2.0-aesni1.tar.xz | ||
16 | */ | ||
17 | |||
18 | #define CAMELLIA_TABLE_BYTE_LEN 272 | ||
19 | |||
20 | /* struct camellia_ctx: */ | ||
21 | #define key_table 0 | ||
22 | #define key_length CAMELLIA_TABLE_BYTE_LEN | ||
23 | |||
24 | /* register macros */ | ||
25 | #define CTX %rdi | ||
26 | |||
27 | /********************************************************************** | ||
28 | 16-way camellia | ||
29 | **********************************************************************/ | ||
30 | #define filter_8bit(x, lo_t, hi_t, mask4bit, tmp0) \ | ||
31 | vpand x, mask4bit, tmp0; \ | ||
32 | vpandn x, mask4bit, x; \ | ||
33 | vpsrld $4, x, x; \ | ||
34 | \ | ||
35 | vpshufb tmp0, lo_t, tmp0; \ | ||
36 | vpshufb x, hi_t, x; \ | ||
37 | vpxor tmp0, x, x; | ||
38 | |||
39 | /* | ||
40 | * IN: | ||
41 | * x0..x7: byte-sliced AB state | ||
42 | * mem_cd: register pointer storing CD state | ||
43 | * key: index for key material | ||
44 | * OUT: | ||
45 | * x0..x7: new byte-sliced CD state | ||
46 | */ | ||
47 | #define roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, t4, t5, t6, \ | ||
48 | t7, mem_cd, key) \ | ||
49 | /* \ | ||
50 | * S-function with AES subbytes \ | ||
51 | */ \ | ||
52 | vmovdqa .Linv_shift_row, t4; \ | ||
53 | vbroadcastss .L0f0f0f0f, t7; \ | ||
54 | vmovdqa .Lpre_tf_lo_s1, t0; \ | ||
55 | vmovdqa .Lpre_tf_hi_s1, t1; \ | ||
56 | \ | ||
57 | /* AES inverse shift rows */ \ | ||
58 | vpshufb t4, x0, x0; \ | ||
59 | vpshufb t4, x7, x7; \ | ||
60 | vpshufb t4, x1, x1; \ | ||
61 | vpshufb t4, x4, x4; \ | ||
62 | vpshufb t4, x2, x2; \ | ||
63 | vpshufb t4, x5, x5; \ | ||
64 | vpshufb t4, x3, x3; \ | ||
65 | vpshufb t4, x6, x6; \ | ||
66 | \ | ||
67 | /* prefilter sboxes 1, 2 and 3 */ \ | ||
68 | vmovdqa .Lpre_tf_lo_s4, t2; \ | ||
69 | vmovdqa .Lpre_tf_hi_s4, t3; \ | ||
70 | filter_8bit(x0, t0, t1, t7, t6); \ | ||
71 | filter_8bit(x7, t0, t1, t7, t6); \ | ||
72 | filter_8bit(x1, t0, t1, t7, t6); \ | ||
73 | filter_8bit(x4, t0, t1, t7, t6); \ | ||
74 | filter_8bit(x2, t0, t1, t7, t6); \ | ||
75 | filter_8bit(x5, t0, t1, t7, t6); \ | ||
76 | \ | ||
77 | /* prefilter sbox 4 */ \ | ||
78 | vpxor t4, t4, t4; \ | ||
79 | filter_8bit(x3, t2, t3, t7, t6); \ | ||
80 | filter_8bit(x6, t2, t3, t7, t6); \ | ||
81 | \ | ||
82 | /* AES subbytes + AES shift rows */ \ | ||
83 | vmovdqa .Lpost_tf_lo_s1, t0; \ | ||
84 | vmovdqa .Lpost_tf_hi_s1, t1; \ | ||
85 | vaesenclast t4, x0, x0; \ | ||
86 | vaesenclast t4, x7, x7; \ | ||
87 | vaesenclast t4, x1, x1; \ | ||
88 | vaesenclast t4, x4, x4; \ | ||
89 | vaesenclast t4, x2, x2; \ | ||
90 | vaesenclast t4, x5, x5; \ | ||
91 | vaesenclast t4, x3, x3; \ | ||
92 | vaesenclast t4, x6, x6; \ | ||
93 | \ | ||
94 | /* postfilter sboxes 1 and 4 */ \ | ||
95 | vmovdqa .Lpost_tf_lo_s3, t2; \ | ||
96 | vmovdqa .Lpost_tf_hi_s3, t3; \ | ||
97 | filter_8bit(x0, t0, t1, t7, t6); \ | ||
98 | filter_8bit(x7, t0, t1, t7, t6); \ | ||
99 | filter_8bit(x3, t0, t1, t7, t6); \ | ||
100 | filter_8bit(x6, t0, t1, t7, t6); \ | ||
101 | \ | ||
102 | /* postfilter sbox 3 */ \ | ||
103 | vmovdqa .Lpost_tf_lo_s2, t4; \ | ||
104 | vmovdqa .Lpost_tf_hi_s2, t5; \ | ||
105 | filter_8bit(x2, t2, t3, t7, t6); \ | ||
106 | filter_8bit(x5, t2, t3, t7, t6); \ | ||
107 | \ | ||
108 | vpxor t6, t6, t6; \ | ||
109 | vmovq key, t0; \ | ||
110 | \ | ||
111 | /* postfilter sbox 2 */ \ | ||
112 | filter_8bit(x1, t4, t5, t7, t2); \ | ||
113 | filter_8bit(x4, t4, t5, t7, t2); \ | ||
114 | \ | ||
115 | vpsrldq $5, t0, t5; \ | ||
116 | vpsrldq $1, t0, t1; \ | ||
117 | vpsrldq $2, t0, t2; \ | ||
118 | vpsrldq $3, t0, t3; \ | ||
119 | vpsrldq $4, t0, t4; \ | ||
120 | vpshufb t6, t0, t0; \ | ||
121 | vpshufb t6, t1, t1; \ | ||
122 | vpshufb t6, t2, t2; \ | ||
123 | vpshufb t6, t3, t3; \ | ||
124 | vpshufb t6, t4, t4; \ | ||
125 | vpsrldq $2, t5, t7; \ | ||
126 | vpshufb t6, t7, t7; \ | ||
127 | \ | ||
128 | /* \ | ||
129 | * P-function \ | ||
130 | */ \ | ||
131 | vpxor x5, x0, x0; \ | ||
132 | vpxor x6, x1, x1; \ | ||
133 | vpxor x7, x2, x2; \ | ||
134 | vpxor x4, x3, x3; \ | ||
135 | \ | ||
136 | vpxor x2, x4, x4; \ | ||
137 | vpxor x3, x5, x5; \ | ||
138 | vpxor x0, x6, x6; \ | ||
139 | vpxor x1, x7, x7; \ | ||
140 | \ | ||
141 | vpxor x7, x0, x0; \ | ||
142 | vpxor x4, x1, x1; \ | ||
143 | vpxor x5, x2, x2; \ | ||
144 | vpxor x6, x3, x3; \ | ||
145 | \ | ||
146 | vpxor x3, x4, x4; \ | ||
147 | vpxor x0, x5, x5; \ | ||
148 | vpxor x1, x6, x6; \ | ||
149 | vpxor x2, x7, x7; /* note: high and low parts swapped */ \ | ||
150 | \ | ||
151 | /* \ | ||
152 | * Add key material and result to CD (x becomes new CD) \ | ||
153 | */ \ | ||
154 | \ | ||
155 | vpxor t3, x4, x4; \ | ||
156 | vpxor 0 * 16(mem_cd), x4, x4; \ | ||
157 | \ | ||
158 | vpxor t2, x5, x5; \ | ||
159 | vpxor 1 * 16(mem_cd), x5, x5; \ | ||
160 | \ | ||
161 | vpsrldq $1, t5, t3; \ | ||
162 | vpshufb t6, t5, t5; \ | ||
163 | vpshufb t6, t3, t6; \ | ||
164 | \ | ||
165 | vpxor t1, x6, x6; \ | ||
166 | vpxor 2 * 16(mem_cd), x6, x6; \ | ||
167 | \ | ||
168 | vpxor t0, x7, x7; \ | ||
169 | vpxor 3 * 16(mem_cd), x7, x7; \ | ||
170 | \ | ||
171 | vpxor t7, x0, x0; \ | ||
172 | vpxor 4 * 16(mem_cd), x0, x0; \ | ||
173 | \ | ||
174 | vpxor t6, x1, x1; \ | ||
175 | vpxor 5 * 16(mem_cd), x1, x1; \ | ||
176 | \ | ||
177 | vpxor t5, x2, x2; \ | ||
178 | vpxor 6 * 16(mem_cd), x2, x2; \ | ||
179 | \ | ||
180 | vpxor t4, x3, x3; \ | ||
181 | vpxor 7 * 16(mem_cd), x3, x3; | ||
182 | |||
183 | /* | ||
184 | * Size optimization... with inlined roundsm16, binary would be over 5 times | ||
185 | * larger and would only be 0.5% faster (on sandy-bridge). | ||
186 | */ | ||
187 | .align 8 | ||
188 | roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd: | ||
189 | roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
190 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15, | ||
191 | %rcx, (%r9)); | ||
192 | ret; | ||
193 | |||
194 | .align 8 | ||
195 | roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab: | ||
196 | roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3, | ||
197 | %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11, | ||
198 | %rax, (%r9)); | ||
199 | ret; | ||
200 | |||
201 | /* | ||
202 | * IN/OUT: | ||
203 | * x0..x7: byte-sliced AB state preloaded | ||
204 | * mem_ab: byte-sliced AB state in memory | ||
205 | * mem_cb: byte-sliced CD state in memory | ||
206 | */ | ||
207 | #define two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
208 | y6, y7, mem_ab, mem_cd, i, dir, store_ab) \ | ||
209 | leaq (key_table + (i) * 8)(CTX), %r9; \ | ||
210 | call roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd; \ | ||
211 | \ | ||
212 | vmovdqu x4, 0 * 16(mem_cd); \ | ||
213 | vmovdqu x5, 1 * 16(mem_cd); \ | ||
214 | vmovdqu x6, 2 * 16(mem_cd); \ | ||
215 | vmovdqu x7, 3 * 16(mem_cd); \ | ||
216 | vmovdqu x0, 4 * 16(mem_cd); \ | ||
217 | vmovdqu x1, 5 * 16(mem_cd); \ | ||
218 | vmovdqu x2, 6 * 16(mem_cd); \ | ||
219 | vmovdqu x3, 7 * 16(mem_cd); \ | ||
220 | \ | ||
221 | leaq (key_table + ((i) + (dir)) * 8)(CTX), %r9; \ | ||
222 | call roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab; \ | ||
223 | \ | ||
224 | store_ab(x0, x1, x2, x3, x4, x5, x6, x7, mem_ab); | ||
225 | |||
226 | #define dummy_store(x0, x1, x2, x3, x4, x5, x6, x7, mem_ab) /* do nothing */ | ||
227 | |||
228 | #define store_ab_state(x0, x1, x2, x3, x4, x5, x6, x7, mem_ab) \ | ||
229 | /* Store new AB state */ \ | ||
230 | vmovdqu x0, 0 * 16(mem_ab); \ | ||
231 | vmovdqu x1, 1 * 16(mem_ab); \ | ||
232 | vmovdqu x2, 2 * 16(mem_ab); \ | ||
233 | vmovdqu x3, 3 * 16(mem_ab); \ | ||
234 | vmovdqu x4, 4 * 16(mem_ab); \ | ||
235 | vmovdqu x5, 5 * 16(mem_ab); \ | ||
236 | vmovdqu x6, 6 * 16(mem_ab); \ | ||
237 | vmovdqu x7, 7 * 16(mem_ab); | ||
238 | |||
239 | #define enc_rounds16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
240 | y6, y7, mem_ab, mem_cd, i) \ | ||
241 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
242 | y6, y7, mem_ab, mem_cd, (i) + 2, 1, store_ab_state); \ | ||
243 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
244 | y6, y7, mem_ab, mem_cd, (i) + 4, 1, store_ab_state); \ | ||
245 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
246 | y6, y7, mem_ab, mem_cd, (i) + 6, 1, dummy_store); | ||
247 | |||
248 | #define dec_rounds16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
249 | y6, y7, mem_ab, mem_cd, i) \ | ||
250 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
251 | y6, y7, mem_ab, mem_cd, (i) + 7, -1, store_ab_state); \ | ||
252 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
253 | y6, y7, mem_ab, mem_cd, (i) + 5, -1, store_ab_state); \ | ||
254 | two_roundsm16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
255 | y6, y7, mem_ab, mem_cd, (i) + 3, -1, dummy_store); | ||
256 | |||
257 | /* | ||
258 | * IN: | ||
259 | * v0..3: byte-sliced 32-bit integers | ||
260 | * OUT: | ||
261 | * v0..3: (IN <<< 1) | ||
262 | */ | ||
263 | #define rol32_1_16(v0, v1, v2, v3, t0, t1, t2, zero) \ | ||
264 | vpcmpgtb v0, zero, t0; \ | ||
265 | vpaddb v0, v0, v0; \ | ||
266 | vpabsb t0, t0; \ | ||
267 | \ | ||
268 | vpcmpgtb v1, zero, t1; \ | ||
269 | vpaddb v1, v1, v1; \ | ||
270 | vpabsb t1, t1; \ | ||
271 | \ | ||
272 | vpcmpgtb v2, zero, t2; \ | ||
273 | vpaddb v2, v2, v2; \ | ||
274 | vpabsb t2, t2; \ | ||
275 | \ | ||
276 | vpor t0, v1, v1; \ | ||
277 | \ | ||
278 | vpcmpgtb v3, zero, t0; \ | ||
279 | vpaddb v3, v3, v3; \ | ||
280 | vpabsb t0, t0; \ | ||
281 | \ | ||
282 | vpor t1, v2, v2; \ | ||
283 | vpor t2, v3, v3; \ | ||
284 | vpor t0, v0, v0; | ||
285 | |||
286 | /* | ||
287 | * IN: | ||
288 | * r: byte-sliced AB state in memory | ||
289 | * l: byte-sliced CD state in memory | ||
290 | * OUT: | ||
291 | * x0..x7: new byte-sliced CD state | ||
292 | */ | ||
293 | #define fls16(l, l0, l1, l2, l3, l4, l5, l6, l7, r, t0, t1, t2, t3, tt0, \ | ||
294 | tt1, tt2, tt3, kll, klr, krl, krr) \ | ||
295 | /* \ | ||
296 | * t0 = kll; \ | ||
297 | * t0 &= ll; \ | ||
298 | * lr ^= rol32(t0, 1); \ | ||
299 | */ \ | ||
300 | vpxor tt0, tt0, tt0; \ | ||
301 | vmovd kll, t0; \ | ||
302 | vpshufb tt0, t0, t3; \ | ||
303 | vpsrldq $1, t0, t0; \ | ||
304 | vpshufb tt0, t0, t2; \ | ||
305 | vpsrldq $1, t0, t0; \ | ||
306 | vpshufb tt0, t0, t1; \ | ||
307 | vpsrldq $1, t0, t0; \ | ||
308 | vpshufb tt0, t0, t0; \ | ||
309 | \ | ||
310 | vpand l0, t0, t0; \ | ||
311 | vpand l1, t1, t1; \ | ||
312 | vpand l2, t2, t2; \ | ||
313 | vpand l3, t3, t3; \ | ||
314 | \ | ||
315 | rol32_1_16(t3, t2, t1, t0, tt1, tt2, tt3, tt0); \ | ||
316 | \ | ||
317 | vpxor l4, t0, l4; \ | ||
318 | vmovdqu l4, 4 * 16(l); \ | ||
319 | vpxor l5, t1, l5; \ | ||
320 | vmovdqu l5, 5 * 16(l); \ | ||
321 | vpxor l6, t2, l6; \ | ||
322 | vmovdqu l6, 6 * 16(l); \ | ||
323 | vpxor l7, t3, l7; \ | ||
324 | vmovdqu l7, 7 * 16(l); \ | ||
325 | \ | ||
326 | /* \ | ||
327 | * t2 = krr; \ | ||
328 | * t2 |= rr; \ | ||
329 | * rl ^= t2; \ | ||
330 | */ \ | ||
331 | \ | ||
332 | vmovd krr, t0; \ | ||
333 | vpshufb tt0, t0, t3; \ | ||
334 | vpsrldq $1, t0, t0; \ | ||
335 | vpshufb tt0, t0, t2; \ | ||
336 | vpsrldq $1, t0, t0; \ | ||
337 | vpshufb tt0, t0, t1; \ | ||
338 | vpsrldq $1, t0, t0; \ | ||
339 | vpshufb tt0, t0, t0; \ | ||
340 | \ | ||
341 | vpor 4 * 16(r), t0, t0; \ | ||
342 | vpor 5 * 16(r), t1, t1; \ | ||
343 | vpor 6 * 16(r), t2, t2; \ | ||
344 | vpor 7 * 16(r), t3, t3; \ | ||
345 | \ | ||
346 | vpxor 0 * 16(r), t0, t0; \ | ||
347 | vpxor 1 * 16(r), t1, t1; \ | ||
348 | vpxor 2 * 16(r), t2, t2; \ | ||
349 | vpxor 3 * 16(r), t3, t3; \ | ||
350 | vmovdqu t0, 0 * 16(r); \ | ||
351 | vmovdqu t1, 1 * 16(r); \ | ||
352 | vmovdqu t2, 2 * 16(r); \ | ||
353 | vmovdqu t3, 3 * 16(r); \ | ||
354 | \ | ||
355 | /* \ | ||
356 | * t2 = krl; \ | ||
357 | * t2 &= rl; \ | ||
358 | * rr ^= rol32(t2, 1); \ | ||
359 | */ \ | ||
360 | vmovd krl, t0; \ | ||
361 | vpshufb tt0, t0, t3; \ | ||
362 | vpsrldq $1, t0, t0; \ | ||
363 | vpshufb tt0, t0, t2; \ | ||
364 | vpsrldq $1, t0, t0; \ | ||
365 | vpshufb tt0, t0, t1; \ | ||
366 | vpsrldq $1, t0, t0; \ | ||
367 | vpshufb tt0, t0, t0; \ | ||
368 | \ | ||
369 | vpand 0 * 16(r), t0, t0; \ | ||
370 | vpand 1 * 16(r), t1, t1; \ | ||
371 | vpand 2 * 16(r), t2, t2; \ | ||
372 | vpand 3 * 16(r), t3, t3; \ | ||
373 | \ | ||
374 | rol32_1_16(t3, t2, t1, t0, tt1, tt2, tt3, tt0); \ | ||
375 | \ | ||
376 | vpxor 4 * 16(r), t0, t0; \ | ||
377 | vpxor 5 * 16(r), t1, t1; \ | ||
378 | vpxor 6 * 16(r), t2, t2; \ | ||
379 | vpxor 7 * 16(r), t3, t3; \ | ||
380 | vmovdqu t0, 4 * 16(r); \ | ||
381 | vmovdqu t1, 5 * 16(r); \ | ||
382 | vmovdqu t2, 6 * 16(r); \ | ||
383 | vmovdqu t3, 7 * 16(r); \ | ||
384 | \ | ||
385 | /* \ | ||
386 | * t0 = klr; \ | ||
387 | * t0 |= lr; \ | ||
388 | * ll ^= t0; \ | ||
389 | */ \ | ||
390 | \ | ||
391 | vmovd klr, t0; \ | ||
392 | vpshufb tt0, t0, t3; \ | ||
393 | vpsrldq $1, t0, t0; \ | ||
394 | vpshufb tt0, t0, t2; \ | ||
395 | vpsrldq $1, t0, t0; \ | ||
396 | vpshufb tt0, t0, t1; \ | ||
397 | vpsrldq $1, t0, t0; \ | ||
398 | vpshufb tt0, t0, t0; \ | ||
399 | \ | ||
400 | vpor l4, t0, t0; \ | ||
401 | vpor l5, t1, t1; \ | ||
402 | vpor l6, t2, t2; \ | ||
403 | vpor l7, t3, t3; \ | ||
404 | \ | ||
405 | vpxor l0, t0, l0; \ | ||
406 | vmovdqu l0, 0 * 16(l); \ | ||
407 | vpxor l1, t1, l1; \ | ||
408 | vmovdqu l1, 1 * 16(l); \ | ||
409 | vpxor l2, t2, l2; \ | ||
410 | vmovdqu l2, 2 * 16(l); \ | ||
411 | vpxor l3, t3, l3; \ | ||
412 | vmovdqu l3, 3 * 16(l); | ||
413 | |||
414 | #define transpose_4x4(x0, x1, x2, x3, t1, t2) \ | ||
415 | vpunpckhdq x1, x0, t2; \ | ||
416 | vpunpckldq x1, x0, x0; \ | ||
417 | \ | ||
418 | vpunpckldq x3, x2, t1; \ | ||
419 | vpunpckhdq x3, x2, x2; \ | ||
420 | \ | ||
421 | vpunpckhqdq t1, x0, x1; \ | ||
422 | vpunpcklqdq t1, x0, x0; \ | ||
423 | \ | ||
424 | vpunpckhqdq x2, t2, x3; \ | ||
425 | vpunpcklqdq x2, t2, x2; | ||
426 | |||
427 | #define byteslice_16x16b(a0, b0, c0, d0, a1, b1, c1, d1, a2, b2, c2, d2, a3, \ | ||
428 | b3, c3, d3, st0, st1) \ | ||
429 | vmovdqu d2, st0; \ | ||
430 | vmovdqu d3, st1; \ | ||
431 | transpose_4x4(a0, a1, a2, a3, d2, d3); \ | ||
432 | transpose_4x4(b0, b1, b2, b3, d2, d3); \ | ||
433 | vmovdqu st0, d2; \ | ||
434 | vmovdqu st1, d3; \ | ||
435 | \ | ||
436 | vmovdqu a0, st0; \ | ||
437 | vmovdqu a1, st1; \ | ||
438 | transpose_4x4(c0, c1, c2, c3, a0, a1); \ | ||
439 | transpose_4x4(d0, d1, d2, d3, a0, a1); \ | ||
440 | \ | ||
441 | vmovdqu .Lshufb_16x16b, a0; \ | ||
442 | vmovdqu st1, a1; \ | ||
443 | vpshufb a0, a2, a2; \ | ||
444 | vpshufb a0, a3, a3; \ | ||
445 | vpshufb a0, b0, b0; \ | ||
446 | vpshufb a0, b1, b1; \ | ||
447 | vpshufb a0, b2, b2; \ | ||
448 | vpshufb a0, b3, b3; \ | ||
449 | vpshufb a0, a1, a1; \ | ||
450 | vpshufb a0, c0, c0; \ | ||
451 | vpshufb a0, c1, c1; \ | ||
452 | vpshufb a0, c2, c2; \ | ||
453 | vpshufb a0, c3, c3; \ | ||
454 | vpshufb a0, d0, d0; \ | ||
455 | vpshufb a0, d1, d1; \ | ||
456 | vpshufb a0, d2, d2; \ | ||
457 | vpshufb a0, d3, d3; \ | ||
458 | vmovdqu d3, st1; \ | ||
459 | vmovdqu st0, d3; \ | ||
460 | vpshufb a0, d3, a0; \ | ||
461 | vmovdqu d2, st0; \ | ||
462 | \ | ||
463 | transpose_4x4(a0, b0, c0, d0, d2, d3); \ | ||
464 | transpose_4x4(a1, b1, c1, d1, d2, d3); \ | ||
465 | vmovdqu st0, d2; \ | ||
466 | vmovdqu st1, d3; \ | ||
467 | \ | ||
468 | vmovdqu b0, st0; \ | ||
469 | vmovdqu b1, st1; \ | ||
470 | transpose_4x4(a2, b2, c2, d2, b0, b1); \ | ||
471 | transpose_4x4(a3, b3, c3, d3, b0, b1); \ | ||
472 | vmovdqu st0, b0; \ | ||
473 | vmovdqu st1, b1; \ | ||
474 | /* does not adjust output bytes inside vectors */ | ||
475 | |||
476 | /* load blocks to registers and apply pre-whitening */ | ||
477 | #define inpack16_pre(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
478 | y6, y7, rio, key) \ | ||
479 | vmovq key, x0; \ | ||
480 | vpshufb .Lpack_bswap, x0, x0; \ | ||
481 | \ | ||
482 | vpxor 0 * 16(rio), x0, y7; \ | ||
483 | vpxor 1 * 16(rio), x0, y6; \ | ||
484 | vpxor 2 * 16(rio), x0, y5; \ | ||
485 | vpxor 3 * 16(rio), x0, y4; \ | ||
486 | vpxor 4 * 16(rio), x0, y3; \ | ||
487 | vpxor 5 * 16(rio), x0, y2; \ | ||
488 | vpxor 6 * 16(rio), x0, y1; \ | ||
489 | vpxor 7 * 16(rio), x0, y0; \ | ||
490 | vpxor 8 * 16(rio), x0, x7; \ | ||
491 | vpxor 9 * 16(rio), x0, x6; \ | ||
492 | vpxor 10 * 16(rio), x0, x5; \ | ||
493 | vpxor 11 * 16(rio), x0, x4; \ | ||
494 | vpxor 12 * 16(rio), x0, x3; \ | ||
495 | vpxor 13 * 16(rio), x0, x2; \ | ||
496 | vpxor 14 * 16(rio), x0, x1; \ | ||
497 | vpxor 15 * 16(rio), x0, x0; | ||
498 | |||
499 | /* byteslice pre-whitened blocks and store to temporary memory */ | ||
500 | #define inpack16_post(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
501 | y6, y7, mem_ab, mem_cd) \ | ||
502 | byteslice_16x16b(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, \ | ||
503 | y5, y6, y7, (mem_ab), (mem_cd)); \ | ||
504 | \ | ||
505 | vmovdqu x0, 0 * 16(mem_ab); \ | ||
506 | vmovdqu x1, 1 * 16(mem_ab); \ | ||
507 | vmovdqu x2, 2 * 16(mem_ab); \ | ||
508 | vmovdqu x3, 3 * 16(mem_ab); \ | ||
509 | vmovdqu x4, 4 * 16(mem_ab); \ | ||
510 | vmovdqu x5, 5 * 16(mem_ab); \ | ||
511 | vmovdqu x6, 6 * 16(mem_ab); \ | ||
512 | vmovdqu x7, 7 * 16(mem_ab); \ | ||
513 | vmovdqu y0, 0 * 16(mem_cd); \ | ||
514 | vmovdqu y1, 1 * 16(mem_cd); \ | ||
515 | vmovdqu y2, 2 * 16(mem_cd); \ | ||
516 | vmovdqu y3, 3 * 16(mem_cd); \ | ||
517 | vmovdqu y4, 4 * 16(mem_cd); \ | ||
518 | vmovdqu y5, 5 * 16(mem_cd); \ | ||
519 | vmovdqu y6, 6 * 16(mem_cd); \ | ||
520 | vmovdqu y7, 7 * 16(mem_cd); | ||
521 | |||
522 | /* de-byteslice, apply post-whitening and store blocks */ | ||
523 | #define outunpack16(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, \ | ||
524 | y5, y6, y7, key, stack_tmp0, stack_tmp1) \ | ||
525 | byteslice_16x16b(y0, y4, x0, x4, y1, y5, x1, x5, y2, y6, x2, x6, y3, \ | ||
526 | y7, x3, x7, stack_tmp0, stack_tmp1); \ | ||
527 | \ | ||
528 | vmovdqu x0, stack_tmp0; \ | ||
529 | \ | ||
530 | vmovq key, x0; \ | ||
531 | vpshufb .Lpack_bswap, x0, x0; \ | ||
532 | \ | ||
533 | vpxor x0, y7, y7; \ | ||
534 | vpxor x0, y6, y6; \ | ||
535 | vpxor x0, y5, y5; \ | ||
536 | vpxor x0, y4, y4; \ | ||
537 | vpxor x0, y3, y3; \ | ||
538 | vpxor x0, y2, y2; \ | ||
539 | vpxor x0, y1, y1; \ | ||
540 | vpxor x0, y0, y0; \ | ||
541 | vpxor x0, x7, x7; \ | ||
542 | vpxor x0, x6, x6; \ | ||
543 | vpxor x0, x5, x5; \ | ||
544 | vpxor x0, x4, x4; \ | ||
545 | vpxor x0, x3, x3; \ | ||
546 | vpxor x0, x2, x2; \ | ||
547 | vpxor x0, x1, x1; \ | ||
548 | vpxor stack_tmp0, x0, x0; | ||
549 | |||
550 | #define write_output(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, y4, y5, \ | ||
551 | y6, y7, rio) \ | ||
552 | vmovdqu x0, 0 * 16(rio); \ | ||
553 | vmovdqu x1, 1 * 16(rio); \ | ||
554 | vmovdqu x2, 2 * 16(rio); \ | ||
555 | vmovdqu x3, 3 * 16(rio); \ | ||
556 | vmovdqu x4, 4 * 16(rio); \ | ||
557 | vmovdqu x5, 5 * 16(rio); \ | ||
558 | vmovdqu x6, 6 * 16(rio); \ | ||
559 | vmovdqu x7, 7 * 16(rio); \ | ||
560 | vmovdqu y0, 8 * 16(rio); \ | ||
561 | vmovdqu y1, 9 * 16(rio); \ | ||
562 | vmovdqu y2, 10 * 16(rio); \ | ||
563 | vmovdqu y3, 11 * 16(rio); \ | ||
564 | vmovdqu y4, 12 * 16(rio); \ | ||
565 | vmovdqu y5, 13 * 16(rio); \ | ||
566 | vmovdqu y6, 14 * 16(rio); \ | ||
567 | vmovdqu y7, 15 * 16(rio); | ||
568 | |||
569 | .data | ||
570 | .align 16 | ||
571 | |||
572 | #define SHUFB_BYTES(idx) \ | ||
573 | 0 + (idx), 4 + (idx), 8 + (idx), 12 + (idx) | ||
574 | |||
575 | .Lshufb_16x16b: | ||
576 | .byte SHUFB_BYTES(0), SHUFB_BYTES(1), SHUFB_BYTES(2), SHUFB_BYTES(3); | ||
577 | |||
578 | .Lpack_bswap: | ||
579 | .long 0x00010203 | ||
580 | .long 0x04050607 | ||
581 | .long 0x80808080 | ||
582 | .long 0x80808080 | ||
583 | |||
584 | /* For CTR-mode IV byteswap */ | ||
585 | .Lbswap128_mask: | ||
586 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | ||
587 | |||
588 | /* | ||
589 | * pre-SubByte transform | ||
590 | * | ||
591 | * pre-lookup for sbox1, sbox2, sbox3: | ||
592 | * swap_bitendianness( | ||
593 | * isom_map_camellia_to_aes( | ||
594 | * camellia_f( | ||
595 | * swap_bitendianess(in) | ||
596 | * ) | ||
597 | * ) | ||
598 | * ) | ||
599 | * | ||
600 | * (note: '⊕ 0xc5' inside camellia_f()) | ||
601 | */ | ||
602 | .Lpre_tf_lo_s1: | ||
603 | .byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86 | ||
604 | .byte 0x4b, 0xe6, 0x4e, 0xe3, 0x20, 0x8d, 0x25, 0x88 | ||
605 | .Lpre_tf_hi_s1: | ||
606 | .byte 0x00, 0x51, 0xf1, 0xa0, 0x8a, 0xdb, 0x7b, 0x2a | ||
607 | .byte 0x09, 0x58, 0xf8, 0xa9, 0x83, 0xd2, 0x72, 0x23 | ||
608 | |||
609 | /* | ||
610 | * pre-SubByte transform | ||
611 | * | ||
612 | * pre-lookup for sbox4: | ||
613 | * swap_bitendianness( | ||
614 | * isom_map_camellia_to_aes( | ||
615 | * camellia_f( | ||
616 | * swap_bitendianess(in <<< 1) | ||
617 | * ) | ||
618 | * ) | ||
619 | * ) | ||
620 | * | ||
621 | * (note: '⊕ 0xc5' inside camellia_f()) | ||
622 | */ | ||
623 | .Lpre_tf_lo_s4: | ||
624 | .byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25 | ||
625 | .byte 0x14, 0x11, 0x7f, 0x7a, 0x1a, 0x1f, 0x71, 0x74 | ||
626 | .Lpre_tf_hi_s4: | ||
627 | .byte 0x00, 0xf1, 0x8a, 0x7b, 0x09, 0xf8, 0x83, 0x72 | ||
628 | .byte 0xad, 0x5c, 0x27, 0xd6, 0xa4, 0x55, 0x2e, 0xdf | ||
629 | |||
630 | /* | ||
631 | * post-SubByte transform | ||
632 | * | ||
633 | * post-lookup for sbox1, sbox4: | ||
634 | * swap_bitendianness( | ||
635 | * camellia_h( | ||
636 | * isom_map_aes_to_camellia( | ||
637 | * swap_bitendianness( | ||
638 | * aes_inverse_affine_transform(in) | ||
639 | * ) | ||
640 | * ) | ||
641 | * ) | ||
642 | * ) | ||
643 | * | ||
644 | * (note: '⊕ 0x6e' inside camellia_h()) | ||
645 | */ | ||
646 | .Lpost_tf_lo_s1: | ||
647 | .byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31 | ||
648 | .byte 0xdc, 0x2c, 0x2f, 0xdf, 0xd2, 0x22, 0x21, 0xd1 | ||
649 | .Lpost_tf_hi_s1: | ||
650 | .byte 0x00, 0xf9, 0x86, 0x7f, 0xd7, 0x2e, 0x51, 0xa8 | ||
651 | .byte 0xa4, 0x5d, 0x22, 0xdb, 0x73, 0x8a, 0xf5, 0x0c | ||
652 | |||
653 | /* | ||
654 | * post-SubByte transform | ||
655 | * | ||
656 | * post-lookup for sbox2: | ||
657 | * swap_bitendianness( | ||
658 | * camellia_h( | ||
659 | * isom_map_aes_to_camellia( | ||
660 | * swap_bitendianness( | ||
661 | * aes_inverse_affine_transform(in) | ||
662 | * ) | ||
663 | * ) | ||
664 | * ) | ||
665 | * ) <<< 1 | ||
666 | * | ||
667 | * (note: '⊕ 0x6e' inside camellia_h()) | ||
668 | */ | ||
669 | .Lpost_tf_lo_s2: | ||
670 | .byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62 | ||
671 | .byte 0xb9, 0x58, 0x5e, 0xbf, 0xa5, 0x44, 0x42, 0xa3 | ||
672 | .Lpost_tf_hi_s2: | ||
673 | .byte 0x00, 0xf3, 0x0d, 0xfe, 0xaf, 0x5c, 0xa2, 0x51 | ||
674 | .byte 0x49, 0xba, 0x44, 0xb7, 0xe6, 0x15, 0xeb, 0x18 | ||
675 | |||
676 | /* | ||
677 | * post-SubByte transform | ||
678 | * | ||
679 | * post-lookup for sbox3: | ||
680 | * swap_bitendianness( | ||
681 | * camellia_h( | ||
682 | * isom_map_aes_to_camellia( | ||
683 | * swap_bitendianness( | ||
684 | * aes_inverse_affine_transform(in) | ||
685 | * ) | ||
686 | * ) | ||
687 | * ) | ||
688 | * ) >>> 1 | ||
689 | * | ||
690 | * (note: '⊕ 0x6e' inside camellia_h()) | ||
691 | */ | ||
692 | .Lpost_tf_lo_s3: | ||
693 | .byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98 | ||
694 | .byte 0x6e, 0x16, 0x97, 0xef, 0x69, 0x11, 0x90, 0xe8 | ||
695 | .Lpost_tf_hi_s3: | ||
696 | .byte 0x00, 0xfc, 0x43, 0xbf, 0xeb, 0x17, 0xa8, 0x54 | ||
697 | .byte 0x52, 0xae, 0x11, 0xed, 0xb9, 0x45, 0xfa, 0x06 | ||
698 | |||
699 | /* For isolating SubBytes from AESENCLAST, inverse shift row */ | ||
700 | .Linv_shift_row: | ||
701 | .byte 0x00, 0x0d, 0x0a, 0x07, 0x04, 0x01, 0x0e, 0x0b | ||
702 | .byte 0x08, 0x05, 0x02, 0x0f, 0x0c, 0x09, 0x06, 0x03 | ||
703 | |||
704 | /* 4-bit mask */ | ||
705 | .align 4 | ||
706 | .L0f0f0f0f: | ||
707 | .long 0x0f0f0f0f | ||
708 | |||
709 | .text | ||
710 | |||
711 | .align 8 | ||
712 | .type __camellia_enc_blk16,@function; | ||
713 | |||
714 | __camellia_enc_blk16: | ||
715 | /* input: | ||
716 | * %rdi: ctx, CTX | ||
717 | * %rax: temporary storage, 256 bytes | ||
718 | * %xmm0..%xmm15: 16 plaintext blocks | ||
719 | * output: | ||
720 | * %xmm0..%xmm15: 16 encrypted blocks, order swapped: | ||
721 | * 7, 8, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 | ||
722 | */ | ||
723 | |||
724 | leaq 8 * 16(%rax), %rcx; | ||
725 | |||
726 | inpack16_post(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
727 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
728 | %xmm15, %rax, %rcx); | ||
729 | |||
730 | enc_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
731 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
732 | %xmm15, %rax, %rcx, 0); | ||
733 | |||
734 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
735 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
736 | %xmm15, | ||
737 | ((key_table + (8) * 8) + 0)(CTX), | ||
738 | ((key_table + (8) * 8) + 4)(CTX), | ||
739 | ((key_table + (8) * 8) + 8)(CTX), | ||
740 | ((key_table + (8) * 8) + 12)(CTX)); | ||
741 | |||
742 | enc_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
743 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
744 | %xmm15, %rax, %rcx, 8); | ||
745 | |||
746 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
747 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
748 | %xmm15, | ||
749 | ((key_table + (16) * 8) + 0)(CTX), | ||
750 | ((key_table + (16) * 8) + 4)(CTX), | ||
751 | ((key_table + (16) * 8) + 8)(CTX), | ||
752 | ((key_table + (16) * 8) + 12)(CTX)); | ||
753 | |||
754 | enc_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
755 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
756 | %xmm15, %rax, %rcx, 16); | ||
757 | |||
758 | movl $24, %r8d; | ||
759 | cmpl $16, key_length(CTX); | ||
760 | jne .Lenc_max32; | ||
761 | |||
762 | .Lenc_done: | ||
763 | /* load CD for output */ | ||
764 | vmovdqu 0 * 16(%rcx), %xmm8; | ||
765 | vmovdqu 1 * 16(%rcx), %xmm9; | ||
766 | vmovdqu 2 * 16(%rcx), %xmm10; | ||
767 | vmovdqu 3 * 16(%rcx), %xmm11; | ||
768 | vmovdqu 4 * 16(%rcx), %xmm12; | ||
769 | vmovdqu 5 * 16(%rcx), %xmm13; | ||
770 | vmovdqu 6 * 16(%rcx), %xmm14; | ||
771 | vmovdqu 7 * 16(%rcx), %xmm15; | ||
772 | |||
773 | outunpack16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
774 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
775 | %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax)); | ||
776 | |||
777 | ret; | ||
778 | |||
779 | .align 8 | ||
780 | .Lenc_max32: | ||
781 | movl $32, %r8d; | ||
782 | |||
783 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
784 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
785 | %xmm15, | ||
786 | ((key_table + (24) * 8) + 0)(CTX), | ||
787 | ((key_table + (24) * 8) + 4)(CTX), | ||
788 | ((key_table + (24) * 8) + 8)(CTX), | ||
789 | ((key_table + (24) * 8) + 12)(CTX)); | ||
790 | |||
791 | enc_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
792 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
793 | %xmm15, %rax, %rcx, 24); | ||
794 | |||
795 | jmp .Lenc_done; | ||
796 | |||
797 | .align 8 | ||
798 | .type __camellia_dec_blk16,@function; | ||
799 | |||
800 | __camellia_dec_blk16: | ||
801 | /* input: | ||
802 | * %rdi: ctx, CTX | ||
803 | * %rax: temporary storage, 256 bytes | ||
804 | * %r8d: 24 for 16 byte key, 32 for larger | ||
805 | * %xmm0..%xmm15: 16 encrypted blocks | ||
806 | * output: | ||
807 | * %xmm0..%xmm15: 16 plaintext blocks, order swapped: | ||
808 | * 7, 8, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 | ||
809 | */ | ||
810 | |||
811 | leaq 8 * 16(%rax), %rcx; | ||
812 | |||
813 | inpack16_post(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
814 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
815 | %xmm15, %rax, %rcx); | ||
816 | |||
817 | cmpl $32, %r8d; | ||
818 | je .Ldec_max32; | ||
819 | |||
820 | .Ldec_max24: | ||
821 | dec_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
822 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
823 | %xmm15, %rax, %rcx, 16); | ||
824 | |||
825 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
826 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
827 | %xmm15, | ||
828 | ((key_table + (16) * 8) + 8)(CTX), | ||
829 | ((key_table + (16) * 8) + 12)(CTX), | ||
830 | ((key_table + (16) * 8) + 0)(CTX), | ||
831 | ((key_table + (16) * 8) + 4)(CTX)); | ||
832 | |||
833 | dec_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
834 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
835 | %xmm15, %rax, %rcx, 8); | ||
836 | |||
837 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
838 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
839 | %xmm15, | ||
840 | ((key_table + (8) * 8) + 8)(CTX), | ||
841 | ((key_table + (8) * 8) + 12)(CTX), | ||
842 | ((key_table + (8) * 8) + 0)(CTX), | ||
843 | ((key_table + (8) * 8) + 4)(CTX)); | ||
844 | |||
845 | dec_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
846 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
847 | %xmm15, %rax, %rcx, 0); | ||
848 | |||
849 | /* load CD for output */ | ||
850 | vmovdqu 0 * 16(%rcx), %xmm8; | ||
851 | vmovdqu 1 * 16(%rcx), %xmm9; | ||
852 | vmovdqu 2 * 16(%rcx), %xmm10; | ||
853 | vmovdqu 3 * 16(%rcx), %xmm11; | ||
854 | vmovdqu 4 * 16(%rcx), %xmm12; | ||
855 | vmovdqu 5 * 16(%rcx), %xmm13; | ||
856 | vmovdqu 6 * 16(%rcx), %xmm14; | ||
857 | vmovdqu 7 * 16(%rcx), %xmm15; | ||
858 | |||
859 | outunpack16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
860 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
861 | %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax)); | ||
862 | |||
863 | ret; | ||
864 | |||
865 | .align 8 | ||
866 | .Ldec_max32: | ||
867 | dec_rounds16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
868 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
869 | %xmm15, %rax, %rcx, 24); | ||
870 | |||
871 | fls16(%rax, %xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
872 | %rcx, %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
873 | %xmm15, | ||
874 | ((key_table + (24) * 8) + 8)(CTX), | ||
875 | ((key_table + (24) * 8) + 12)(CTX), | ||
876 | ((key_table + (24) * 8) + 0)(CTX), | ||
877 | ((key_table + (24) * 8) + 4)(CTX)); | ||
878 | |||
879 | jmp .Ldec_max24; | ||
880 | |||
881 | .align 8 | ||
882 | .global camellia_ecb_enc_16way | ||
883 | .type camellia_ecb_enc_16way,@function; | ||
884 | |||
885 | camellia_ecb_enc_16way: | ||
886 | /* input: | ||
887 | * %rdi: ctx, CTX | ||
888 | * %rsi: dst (16 blocks) | ||
889 | * %rdx: src (16 blocks) | ||
890 | */ | ||
891 | |||
892 | inpack16_pre(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
893 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
894 | %xmm15, %rdx, (key_table)(CTX)); | ||
895 | |||
896 | /* now dst can be used as temporary buffer (even in src == dst case) */ | ||
897 | movq %rsi, %rax; | ||
898 | |||
899 | call __camellia_enc_blk16; | ||
900 | |||
901 | write_output(%xmm7, %xmm6, %xmm5, %xmm4, %xmm3, %xmm2, %xmm1, %xmm0, | ||
902 | %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9, | ||
903 | %xmm8, %rsi); | ||
904 | |||
905 | ret; | ||
906 | |||
907 | .align 8 | ||
908 | .global camellia_ecb_dec_16way | ||
909 | .type camellia_ecb_dec_16way,@function; | ||
910 | |||
911 | camellia_ecb_dec_16way: | ||
912 | /* input: | ||
913 | * %rdi: ctx, CTX | ||
914 | * %rsi: dst (16 blocks) | ||
915 | * %rdx: src (16 blocks) | ||
916 | */ | ||
917 | |||
918 | cmpl $16, key_length(CTX); | ||
919 | movl $32, %r8d; | ||
920 | movl $24, %eax; | ||
921 | cmovel %eax, %r8d; /* max */ | ||
922 | |||
923 | inpack16_pre(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
924 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
925 | %xmm15, %rdx, (key_table)(CTX, %r8, 8)); | ||
926 | |||
927 | /* now dst can be used as temporary buffer (even in src == dst case) */ | ||
928 | movq %rsi, %rax; | ||
929 | |||
930 | call __camellia_dec_blk16; | ||
931 | |||
932 | write_output(%xmm7, %xmm6, %xmm5, %xmm4, %xmm3, %xmm2, %xmm1, %xmm0, | ||
933 | %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9, | ||
934 | %xmm8, %rsi); | ||
935 | |||
936 | ret; | ||
937 | |||
938 | .align 8 | ||
939 | .global camellia_cbc_dec_16way | ||
940 | .type camellia_cbc_dec_16way,@function; | ||
941 | |||
942 | camellia_cbc_dec_16way: | ||
943 | /* input: | ||
944 | * %rdi: ctx, CTX | ||
945 | * %rsi: dst (16 blocks) | ||
946 | * %rdx: src (16 blocks) | ||
947 | */ | ||
948 | |||
949 | cmpl $16, key_length(CTX); | ||
950 | movl $32, %r8d; | ||
951 | movl $24, %eax; | ||
952 | cmovel %eax, %r8d; /* max */ | ||
953 | |||
954 | inpack16_pre(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7, | ||
955 | %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, | ||
956 | %xmm15, %rdx, (key_table)(CTX, %r8, 8)); | ||
957 | |||
958 | /* | ||
959 | * dst might still be in-use (in case dst == src), so use stack for | ||
960 | * temporary storage. | ||
961 | */ | ||
962 | subq $(16 * 16), %rsp; | ||
963 | movq %rsp, %rax; | ||
964 | |||
965 | call __camellia_dec_blk16; | ||
966 | |||
967 | addq $(16 * 16), %rsp; | ||
968 | |||
969 | vpxor (0 * 16)(%rdx), %xmm6, %xmm6; | ||
970 | vpxor (1 * 16)(%rdx), %xmm5, %xmm5; | ||
971 | vpxor (2 * 16)(%rdx), %xmm4, %xmm4; | ||
972 | vpxor (3 * 16)(%rdx), %xmm3, %xmm3; | ||
973 | vpxor (4 * 16)(%rdx), %xmm2, %xmm2; | ||
974 | vpxor (5 * 16)(%rdx), %xmm1, %xmm1; | ||
975 | vpxor (6 * 16)(%rdx), %xmm0, %xmm0; | ||
976 | vpxor (7 * 16)(%rdx), %xmm15, %xmm15; | ||
977 | vpxor (8 * 16)(%rdx), %xmm14, %xmm14; | ||
978 | vpxor (9 * 16)(%rdx), %xmm13, %xmm13; | ||
979 | vpxor (10 * 16)(%rdx), %xmm12, %xmm12; | ||
980 | vpxor (11 * 16)(%rdx), %xmm11, %xmm11; | ||
981 | vpxor (12 * 16)(%rdx), %xmm10, %xmm10; | ||
982 | vpxor (13 * 16)(%rdx), %xmm9, %xmm9; | ||
983 | vpxor (14 * 16)(%rdx), %xmm8, %xmm8; | ||
984 | write_output(%xmm7, %xmm6, %xmm5, %xmm4, %xmm3, %xmm2, %xmm1, %xmm0, | ||
985 | %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9, | ||
986 | %xmm8, %rsi); | ||
987 | |||
988 | ret; | ||
989 | |||
990 | #define inc_le128(x, minus_one, tmp) \ | ||
991 | vpcmpeqq minus_one, x, tmp; \ | ||
992 | vpsubq minus_one, x, x; \ | ||
993 | vpslldq $8, tmp, tmp; \ | ||
994 | vpsubq tmp, x, x; | ||
995 | |||
996 | .align 8 | ||
997 | .global camellia_ctr_16way | ||
998 | .type camellia_ctr_16way,@function; | ||
999 | |||
1000 | camellia_ctr_16way: | ||
1001 | /* input: | ||
1002 | * %rdi: ctx, CTX | ||
1003 | * %rsi: dst (16 blocks) | ||
1004 | * %rdx: src (16 blocks) | ||
1005 | * %rcx: iv (little endian, 128bit) | ||
1006 | */ | ||
1007 | |||
1008 | subq $(16 * 16), %rsp; | ||
1009 | movq %rsp, %rax; | ||
1010 | |||
1011 | vmovdqa .Lbswap128_mask, %xmm14; | ||
1012 | |||
1013 | /* load IV and byteswap */ | ||
1014 | vmovdqu (%rcx), %xmm0; | ||
1015 | vpshufb %xmm14, %xmm0, %xmm15; | ||
1016 | vmovdqu %xmm15, 15 * 16(%rax); | ||
1017 | |||
1018 | vpcmpeqd %xmm15, %xmm15, %xmm15; | ||
1019 | vpsrldq $8, %xmm15, %xmm15; /* low: -1, high: 0 */ | ||
1020 | |||
1021 | /* construct IVs */ | ||
1022 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1023 | vpshufb %xmm14, %xmm0, %xmm13; | ||
1024 | vmovdqu %xmm13, 14 * 16(%rax); | ||
1025 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1026 | vpshufb %xmm14, %xmm0, %xmm13; | ||
1027 | vmovdqu %xmm13, 13 * 16(%rax); | ||
1028 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1029 | vpshufb %xmm14, %xmm0, %xmm12; | ||
1030 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1031 | vpshufb %xmm14, %xmm0, %xmm11; | ||
1032 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1033 | vpshufb %xmm14, %xmm0, %xmm10; | ||
1034 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1035 | vpshufb %xmm14, %xmm0, %xmm9; | ||
1036 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1037 | vpshufb %xmm14, %xmm0, %xmm8; | ||
1038 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1039 | vpshufb %xmm14, %xmm0, %xmm7; | ||
1040 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1041 | vpshufb %xmm14, %xmm0, %xmm6; | ||
1042 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1043 | vpshufb %xmm14, %xmm0, %xmm5; | ||
1044 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1045 | vpshufb %xmm14, %xmm0, %xmm4; | ||
1046 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1047 | vpshufb %xmm14, %xmm0, %xmm3; | ||
1048 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1049 | vpshufb %xmm14, %xmm0, %xmm2; | ||
1050 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1051 | vpshufb %xmm14, %xmm0, %xmm1; | ||
1052 | inc_le128(%xmm0, %xmm15, %xmm13); | ||
1053 | vmovdqa %xmm0, %xmm13; | ||
1054 | vpshufb %xmm14, %xmm0, %xmm0; | ||
1055 | inc_le128(%xmm13, %xmm15, %xmm14); | ||
1056 | vmovdqu %xmm13, (%rcx); | ||
1057 | |||
1058 | /* inpack16_pre: */ | ||
1059 | vmovq (key_table)(CTX), %xmm15; | ||
1060 | vpshufb .Lpack_bswap, %xmm15, %xmm15; | ||
1061 | vpxor %xmm0, %xmm15, %xmm0; | ||
1062 | vpxor %xmm1, %xmm15, %xmm1; | ||
1063 | vpxor %xmm2, %xmm15, %xmm2; | ||
1064 | vpxor %xmm3, %xmm15, %xmm3; | ||
1065 | vpxor %xmm4, %xmm15, %xmm4; | ||
1066 | vpxor %xmm5, %xmm15, %xmm5; | ||
1067 | vpxor %xmm6, %xmm15, %xmm6; | ||
1068 | vpxor %xmm7, %xmm15, %xmm7; | ||
1069 | vpxor %xmm8, %xmm15, %xmm8; | ||
1070 | vpxor %xmm9, %xmm15, %xmm9; | ||
1071 | vpxor %xmm10, %xmm15, %xmm10; | ||
1072 | vpxor %xmm11, %xmm15, %xmm11; | ||
1073 | vpxor %xmm12, %xmm15, %xmm12; | ||
1074 | vpxor 13 * 16(%rax), %xmm15, %xmm13; | ||
1075 | vpxor 14 * 16(%rax), %xmm15, %xmm14; | ||
1076 | vpxor 15 * 16(%rax), %xmm15, %xmm15; | ||
1077 | |||
1078 | call __camellia_enc_blk16; | ||
1079 | |||
1080 | addq $(16 * 16), %rsp; | ||
1081 | |||
1082 | vpxor 0 * 16(%rdx), %xmm7, %xmm7; | ||
1083 | vpxor 1 * 16(%rdx), %xmm6, %xmm6; | ||
1084 | vpxor 2 * 16(%rdx), %xmm5, %xmm5; | ||
1085 | vpxor 3 * 16(%rdx), %xmm4, %xmm4; | ||
1086 | vpxor 4 * 16(%rdx), %xmm3, %xmm3; | ||
1087 | vpxor 5 * 16(%rdx), %xmm2, %xmm2; | ||
1088 | vpxor 6 * 16(%rdx), %xmm1, %xmm1; | ||
1089 | vpxor 7 * 16(%rdx), %xmm0, %xmm0; | ||
1090 | vpxor 8 * 16(%rdx), %xmm15, %xmm15; | ||
1091 | vpxor 9 * 16(%rdx), %xmm14, %xmm14; | ||
1092 | vpxor 10 * 16(%rdx), %xmm13, %xmm13; | ||
1093 | vpxor 11 * 16(%rdx), %xmm12, %xmm12; | ||
1094 | vpxor 12 * 16(%rdx), %xmm11, %xmm11; | ||
1095 | vpxor 13 * 16(%rdx), %xmm10, %xmm10; | ||
1096 | vpxor 14 * 16(%rdx), %xmm9, %xmm9; | ||
1097 | vpxor 15 * 16(%rdx), %xmm8, %xmm8; | ||
1098 | write_output(%xmm7, %xmm6, %xmm5, %xmm4, %xmm3, %xmm2, %xmm1, %xmm0, | ||
1099 | %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9, | ||
1100 | %xmm8, %rsi); | ||
1101 | |||
1102 | ret; | ||
diff --git a/arch/x86/crypto/camellia_aesni_avx_glue.c b/arch/x86/crypto/camellia_aesni_avx_glue.c new file mode 100644 index 000000000000..96cbb6068fce --- /dev/null +++ b/arch/x86/crypto/camellia_aesni_avx_glue.c | |||
@@ -0,0 +1,558 @@ | |||
1 | /* | ||
2 | * Glue Code for x86_64/AVX/AES-NI assembler optimized version of Camellia | ||
3 | * | ||
4 | * Copyright © 2012 Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | */ | ||
12 | |||
13 | #include <linux/module.h> | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/crypto.h> | ||
16 | #include <linux/err.h> | ||
17 | #include <crypto/algapi.h> | ||
18 | #include <crypto/ctr.h> | ||
19 | #include <crypto/lrw.h> | ||
20 | #include <crypto/xts.h> | ||
21 | #include <asm/xcr.h> | ||
22 | #include <asm/xsave.h> | ||
23 | #include <asm/crypto/camellia.h> | ||
24 | #include <asm/crypto/ablk_helper.h> | ||
25 | #include <asm/crypto/glue_helper.h> | ||
26 | |||
27 | #define CAMELLIA_AESNI_PARALLEL_BLOCKS 16 | ||
28 | |||
29 | /* 16-way AES-NI parallel cipher functions */ | ||
30 | asmlinkage void camellia_ecb_enc_16way(struct camellia_ctx *ctx, u8 *dst, | ||
31 | const u8 *src); | ||
32 | asmlinkage void camellia_ecb_dec_16way(struct camellia_ctx *ctx, u8 *dst, | ||
33 | const u8 *src); | ||
34 | |||
35 | asmlinkage void camellia_cbc_dec_16way(struct camellia_ctx *ctx, u8 *dst, | ||
36 | const u8 *src); | ||
37 | asmlinkage void camellia_ctr_16way(struct camellia_ctx *ctx, u8 *dst, | ||
38 | const u8 *src, le128 *iv); | ||
39 | |||
40 | static const struct common_glue_ctx camellia_enc = { | ||
41 | .num_funcs = 3, | ||
42 | .fpu_blocks_limit = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
43 | |||
44 | .funcs = { { | ||
45 | .num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
46 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_enc_16way) } | ||
47 | }, { | ||
48 | .num_blocks = 2, | ||
49 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk_2way) } | ||
50 | }, { | ||
51 | .num_blocks = 1, | ||
52 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_enc_blk) } | ||
53 | } } | ||
54 | }; | ||
55 | |||
56 | static const struct common_glue_ctx camellia_ctr = { | ||
57 | .num_funcs = 3, | ||
58 | .fpu_blocks_limit = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
59 | |||
60 | .funcs = { { | ||
61 | .num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
62 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_ctr_16way) } | ||
63 | }, { | ||
64 | .num_blocks = 2, | ||
65 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr_2way) } | ||
66 | }, { | ||
67 | .num_blocks = 1, | ||
68 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(camellia_crypt_ctr) } | ||
69 | } } | ||
70 | }; | ||
71 | |||
72 | static const struct common_glue_ctx camellia_dec = { | ||
73 | .num_funcs = 3, | ||
74 | .fpu_blocks_limit = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
75 | |||
76 | .funcs = { { | ||
77 | .num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
78 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_ecb_dec_16way) } | ||
79 | }, { | ||
80 | .num_blocks = 2, | ||
81 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk_2way) } | ||
82 | }, { | ||
83 | .num_blocks = 1, | ||
84 | .fn_u = { .ecb = GLUE_FUNC_CAST(camellia_dec_blk) } | ||
85 | } } | ||
86 | }; | ||
87 | |||
88 | static const struct common_glue_ctx camellia_dec_cbc = { | ||
89 | .num_funcs = 3, | ||
90 | .fpu_blocks_limit = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
91 | |||
92 | .funcs = { { | ||
93 | .num_blocks = CAMELLIA_AESNI_PARALLEL_BLOCKS, | ||
94 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_cbc_dec_16way) } | ||
95 | }, { | ||
96 | .num_blocks = 2, | ||
97 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_decrypt_cbc_2way) } | ||
98 | }, { | ||
99 | .num_blocks = 1, | ||
100 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(camellia_dec_blk) } | ||
101 | } } | ||
102 | }; | ||
103 | |||
104 | static int ecb_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
105 | struct scatterlist *src, unsigned int nbytes) | ||
106 | { | ||
107 | return glue_ecb_crypt_128bit(&camellia_enc, desc, dst, src, nbytes); | ||
108 | } | ||
109 | |||
110 | static int ecb_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
111 | struct scatterlist *src, unsigned int nbytes) | ||
112 | { | ||
113 | return glue_ecb_crypt_128bit(&camellia_dec, desc, dst, src, nbytes); | ||
114 | } | ||
115 | |||
116 | static int cbc_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
117 | struct scatterlist *src, unsigned int nbytes) | ||
118 | { | ||
119 | return glue_cbc_encrypt_128bit(GLUE_FUNC_CAST(camellia_enc_blk), desc, | ||
120 | dst, src, nbytes); | ||
121 | } | ||
122 | |||
123 | static int cbc_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
124 | struct scatterlist *src, unsigned int nbytes) | ||
125 | { | ||
126 | return glue_cbc_decrypt_128bit(&camellia_dec_cbc, desc, dst, src, | ||
127 | nbytes); | ||
128 | } | ||
129 | |||
130 | static int ctr_crypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
131 | struct scatterlist *src, unsigned int nbytes) | ||
132 | { | ||
133 | return glue_ctr_crypt_128bit(&camellia_ctr, desc, dst, src, nbytes); | ||
134 | } | ||
135 | |||
136 | static inline bool camellia_fpu_begin(bool fpu_enabled, unsigned int nbytes) | ||
137 | { | ||
138 | return glue_fpu_begin(CAMELLIA_BLOCK_SIZE, | ||
139 | CAMELLIA_AESNI_PARALLEL_BLOCKS, NULL, fpu_enabled, | ||
140 | nbytes); | ||
141 | } | ||
142 | |||
143 | static inline void camellia_fpu_end(bool fpu_enabled) | ||
144 | { | ||
145 | glue_fpu_end(fpu_enabled); | ||
146 | } | ||
147 | |||
148 | static int camellia_setkey(struct crypto_tfm *tfm, const u8 *in_key, | ||
149 | unsigned int key_len) | ||
150 | { | ||
151 | return __camellia_setkey(crypto_tfm_ctx(tfm), in_key, key_len, | ||
152 | &tfm->crt_flags); | ||
153 | } | ||
154 | |||
155 | struct crypt_priv { | ||
156 | struct camellia_ctx *ctx; | ||
157 | bool fpu_enabled; | ||
158 | }; | ||
159 | |||
160 | static void encrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | ||
161 | { | ||
162 | const unsigned int bsize = CAMELLIA_BLOCK_SIZE; | ||
163 | struct crypt_priv *ctx = priv; | ||
164 | int i; | ||
165 | |||
166 | ctx->fpu_enabled = camellia_fpu_begin(ctx->fpu_enabled, nbytes); | ||
167 | |||
168 | if (nbytes >= CAMELLIA_AESNI_PARALLEL_BLOCKS * bsize) { | ||
169 | camellia_ecb_enc_16way(ctx->ctx, srcdst, srcdst); | ||
170 | srcdst += bsize * CAMELLIA_AESNI_PARALLEL_BLOCKS; | ||
171 | nbytes -= bsize * CAMELLIA_AESNI_PARALLEL_BLOCKS; | ||
172 | } | ||
173 | |||
174 | while (nbytes >= CAMELLIA_PARALLEL_BLOCKS * bsize) { | ||
175 | camellia_enc_blk_2way(ctx->ctx, srcdst, srcdst); | ||
176 | srcdst += bsize * CAMELLIA_PARALLEL_BLOCKS; | ||
177 | nbytes -= bsize * CAMELLIA_PARALLEL_BLOCKS; | ||
178 | } | ||
179 | |||
180 | for (i = 0; i < nbytes / bsize; i++, srcdst += bsize) | ||
181 | camellia_enc_blk(ctx->ctx, srcdst, srcdst); | ||
182 | } | ||
183 | |||
184 | static void decrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | ||
185 | { | ||
186 | const unsigned int bsize = CAMELLIA_BLOCK_SIZE; | ||
187 | struct crypt_priv *ctx = priv; | ||
188 | int i; | ||
189 | |||
190 | ctx->fpu_enabled = camellia_fpu_begin(ctx->fpu_enabled, nbytes); | ||
191 | |||
192 | if (nbytes >= CAMELLIA_AESNI_PARALLEL_BLOCKS * bsize) { | ||
193 | camellia_ecb_dec_16way(ctx->ctx, srcdst, srcdst); | ||
194 | srcdst += bsize * CAMELLIA_AESNI_PARALLEL_BLOCKS; | ||
195 | nbytes -= bsize * CAMELLIA_AESNI_PARALLEL_BLOCKS; | ||
196 | } | ||
197 | |||
198 | while (nbytes >= CAMELLIA_PARALLEL_BLOCKS * bsize) { | ||
199 | camellia_dec_blk_2way(ctx->ctx, srcdst, srcdst); | ||
200 | srcdst += bsize * CAMELLIA_PARALLEL_BLOCKS; | ||
201 | nbytes -= bsize * CAMELLIA_PARALLEL_BLOCKS; | ||
202 | } | ||
203 | |||
204 | for (i = 0; i < nbytes / bsize; i++, srcdst += bsize) | ||
205 | camellia_dec_blk(ctx->ctx, srcdst, srcdst); | ||
206 | } | ||
207 | |||
208 | static int lrw_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
209 | struct scatterlist *src, unsigned int nbytes) | ||
210 | { | ||
211 | struct camellia_lrw_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); | ||
212 | be128 buf[CAMELLIA_AESNI_PARALLEL_BLOCKS]; | ||
213 | struct crypt_priv crypt_ctx = { | ||
214 | .ctx = &ctx->camellia_ctx, | ||
215 | .fpu_enabled = false, | ||
216 | }; | ||
217 | struct lrw_crypt_req req = { | ||
218 | .tbuf = buf, | ||
219 | .tbuflen = sizeof(buf), | ||
220 | |||
221 | .table_ctx = &ctx->lrw_table, | ||
222 | .crypt_ctx = &crypt_ctx, | ||
223 | .crypt_fn = encrypt_callback, | ||
224 | }; | ||
225 | int ret; | ||
226 | |||
227 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
228 | ret = lrw_crypt(desc, dst, src, nbytes, &req); | ||
229 | camellia_fpu_end(crypt_ctx.fpu_enabled); | ||
230 | |||
231 | return ret; | ||
232 | } | ||
233 | |||
234 | static int lrw_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
235 | struct scatterlist *src, unsigned int nbytes) | ||
236 | { | ||
237 | struct camellia_lrw_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); | ||
238 | be128 buf[CAMELLIA_AESNI_PARALLEL_BLOCKS]; | ||
239 | struct crypt_priv crypt_ctx = { | ||
240 | .ctx = &ctx->camellia_ctx, | ||
241 | .fpu_enabled = false, | ||
242 | }; | ||
243 | struct lrw_crypt_req req = { | ||
244 | .tbuf = buf, | ||
245 | .tbuflen = sizeof(buf), | ||
246 | |||
247 | .table_ctx = &ctx->lrw_table, | ||
248 | .crypt_ctx = &crypt_ctx, | ||
249 | .crypt_fn = decrypt_callback, | ||
250 | }; | ||
251 | int ret; | ||
252 | |||
253 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
254 | ret = lrw_crypt(desc, dst, src, nbytes, &req); | ||
255 | camellia_fpu_end(crypt_ctx.fpu_enabled); | ||
256 | |||
257 | return ret; | ||
258 | } | ||
259 | |||
260 | static int xts_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
261 | struct scatterlist *src, unsigned int nbytes) | ||
262 | { | ||
263 | struct camellia_xts_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); | ||
264 | be128 buf[CAMELLIA_AESNI_PARALLEL_BLOCKS]; | ||
265 | struct crypt_priv crypt_ctx = { | ||
266 | .ctx = &ctx->crypt_ctx, | ||
267 | .fpu_enabled = false, | ||
268 | }; | ||
269 | struct xts_crypt_req req = { | ||
270 | .tbuf = buf, | ||
271 | .tbuflen = sizeof(buf), | ||
272 | |||
273 | .tweak_ctx = &ctx->tweak_ctx, | ||
274 | .tweak_fn = XTS_TWEAK_CAST(camellia_enc_blk), | ||
275 | .crypt_ctx = &crypt_ctx, | ||
276 | .crypt_fn = encrypt_callback, | ||
277 | }; | ||
278 | int ret; | ||
279 | |||
280 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
281 | ret = xts_crypt(desc, dst, src, nbytes, &req); | ||
282 | camellia_fpu_end(crypt_ctx.fpu_enabled); | ||
283 | |||
284 | return ret; | ||
285 | } | ||
286 | |||
287 | static int xts_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | ||
288 | struct scatterlist *src, unsigned int nbytes) | ||
289 | { | ||
290 | struct camellia_xts_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); | ||
291 | be128 buf[CAMELLIA_AESNI_PARALLEL_BLOCKS]; | ||
292 | struct crypt_priv crypt_ctx = { | ||
293 | .ctx = &ctx->crypt_ctx, | ||
294 | .fpu_enabled = false, | ||
295 | }; | ||
296 | struct xts_crypt_req req = { | ||
297 | .tbuf = buf, | ||
298 | .tbuflen = sizeof(buf), | ||
299 | |||
300 | .tweak_ctx = &ctx->tweak_ctx, | ||
301 | .tweak_fn = XTS_TWEAK_CAST(camellia_enc_blk), | ||
302 | .crypt_ctx = &crypt_ctx, | ||
303 | .crypt_fn = decrypt_callback, | ||
304 | }; | ||
305 | int ret; | ||
306 | |||
307 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
308 | ret = xts_crypt(desc, dst, src, nbytes, &req); | ||
309 | camellia_fpu_end(crypt_ctx.fpu_enabled); | ||
310 | |||
311 | return ret; | ||
312 | } | ||
313 | |||
314 | static struct crypto_alg cmll_algs[10] = { { | ||
315 | .cra_name = "__ecb-camellia-aesni", | ||
316 | .cra_driver_name = "__driver-ecb-camellia-aesni", | ||
317 | .cra_priority = 0, | ||
318 | .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, | ||
319 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
320 | .cra_ctxsize = sizeof(struct camellia_ctx), | ||
321 | .cra_alignmask = 0, | ||
322 | .cra_type = &crypto_blkcipher_type, | ||
323 | .cra_module = THIS_MODULE, | ||
324 | .cra_u = { | ||
325 | .blkcipher = { | ||
326 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
327 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
328 | .setkey = camellia_setkey, | ||
329 | .encrypt = ecb_encrypt, | ||
330 | .decrypt = ecb_decrypt, | ||
331 | }, | ||
332 | }, | ||
333 | }, { | ||
334 | .cra_name = "__cbc-camellia-aesni", | ||
335 | .cra_driver_name = "__driver-cbc-camellia-aesni", | ||
336 | .cra_priority = 0, | ||
337 | .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, | ||
338 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
339 | .cra_ctxsize = sizeof(struct camellia_ctx), | ||
340 | .cra_alignmask = 0, | ||
341 | .cra_type = &crypto_blkcipher_type, | ||
342 | .cra_module = THIS_MODULE, | ||
343 | .cra_u = { | ||
344 | .blkcipher = { | ||
345 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
346 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
347 | .setkey = camellia_setkey, | ||
348 | .encrypt = cbc_encrypt, | ||
349 | .decrypt = cbc_decrypt, | ||
350 | }, | ||
351 | }, | ||
352 | }, { | ||
353 | .cra_name = "__ctr-camellia-aesni", | ||
354 | .cra_driver_name = "__driver-ctr-camellia-aesni", | ||
355 | .cra_priority = 0, | ||
356 | .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, | ||
357 | .cra_blocksize = 1, | ||
358 | .cra_ctxsize = sizeof(struct camellia_ctx), | ||
359 | .cra_alignmask = 0, | ||
360 | .cra_type = &crypto_blkcipher_type, | ||
361 | .cra_module = THIS_MODULE, | ||
362 | .cra_u = { | ||
363 | .blkcipher = { | ||
364 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
365 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
366 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
367 | .setkey = camellia_setkey, | ||
368 | .encrypt = ctr_crypt, | ||
369 | .decrypt = ctr_crypt, | ||
370 | }, | ||
371 | }, | ||
372 | }, { | ||
373 | .cra_name = "__lrw-camellia-aesni", | ||
374 | .cra_driver_name = "__driver-lrw-camellia-aesni", | ||
375 | .cra_priority = 0, | ||
376 | .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, | ||
377 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
378 | .cra_ctxsize = sizeof(struct camellia_lrw_ctx), | ||
379 | .cra_alignmask = 0, | ||
380 | .cra_type = &crypto_blkcipher_type, | ||
381 | .cra_module = THIS_MODULE, | ||
382 | .cra_exit = lrw_camellia_exit_tfm, | ||
383 | .cra_u = { | ||
384 | .blkcipher = { | ||
385 | .min_keysize = CAMELLIA_MIN_KEY_SIZE + | ||
386 | CAMELLIA_BLOCK_SIZE, | ||
387 | .max_keysize = CAMELLIA_MAX_KEY_SIZE + | ||
388 | CAMELLIA_BLOCK_SIZE, | ||
389 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
390 | .setkey = lrw_camellia_setkey, | ||
391 | .encrypt = lrw_encrypt, | ||
392 | .decrypt = lrw_decrypt, | ||
393 | }, | ||
394 | }, | ||
395 | }, { | ||
396 | .cra_name = "__xts-camellia-aesni", | ||
397 | .cra_driver_name = "__driver-xts-camellia-aesni", | ||
398 | .cra_priority = 0, | ||
399 | .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER, | ||
400 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
401 | .cra_ctxsize = sizeof(struct camellia_xts_ctx), | ||
402 | .cra_alignmask = 0, | ||
403 | .cra_type = &crypto_blkcipher_type, | ||
404 | .cra_module = THIS_MODULE, | ||
405 | .cra_u = { | ||
406 | .blkcipher = { | ||
407 | .min_keysize = CAMELLIA_MIN_KEY_SIZE * 2, | ||
408 | .max_keysize = CAMELLIA_MAX_KEY_SIZE * 2, | ||
409 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
410 | .setkey = xts_camellia_setkey, | ||
411 | .encrypt = xts_encrypt, | ||
412 | .decrypt = xts_decrypt, | ||
413 | }, | ||
414 | }, | ||
415 | }, { | ||
416 | .cra_name = "ecb(camellia)", | ||
417 | .cra_driver_name = "ecb-camellia-aesni", | ||
418 | .cra_priority = 400, | ||
419 | .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, | ||
420 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
421 | .cra_ctxsize = sizeof(struct async_helper_ctx), | ||
422 | .cra_alignmask = 0, | ||
423 | .cra_type = &crypto_ablkcipher_type, | ||
424 | .cra_module = THIS_MODULE, | ||
425 | .cra_init = ablk_init, | ||
426 | .cra_exit = ablk_exit, | ||
427 | .cra_u = { | ||
428 | .ablkcipher = { | ||
429 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
430 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
431 | .setkey = ablk_set_key, | ||
432 | .encrypt = ablk_encrypt, | ||
433 | .decrypt = ablk_decrypt, | ||
434 | }, | ||
435 | }, | ||
436 | }, { | ||
437 | .cra_name = "cbc(camellia)", | ||
438 | .cra_driver_name = "cbc-camellia-aesni", | ||
439 | .cra_priority = 400, | ||
440 | .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, | ||
441 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
442 | .cra_ctxsize = sizeof(struct async_helper_ctx), | ||
443 | .cra_alignmask = 0, | ||
444 | .cra_type = &crypto_ablkcipher_type, | ||
445 | .cra_module = THIS_MODULE, | ||
446 | .cra_init = ablk_init, | ||
447 | .cra_exit = ablk_exit, | ||
448 | .cra_u = { | ||
449 | .ablkcipher = { | ||
450 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
451 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
452 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
453 | .setkey = ablk_set_key, | ||
454 | .encrypt = __ablk_encrypt, | ||
455 | .decrypt = ablk_decrypt, | ||
456 | }, | ||
457 | }, | ||
458 | }, { | ||
459 | .cra_name = "ctr(camellia)", | ||
460 | .cra_driver_name = "ctr-camellia-aesni", | ||
461 | .cra_priority = 400, | ||
462 | .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, | ||
463 | .cra_blocksize = 1, | ||
464 | .cra_ctxsize = sizeof(struct async_helper_ctx), | ||
465 | .cra_alignmask = 0, | ||
466 | .cra_type = &crypto_ablkcipher_type, | ||
467 | .cra_module = THIS_MODULE, | ||
468 | .cra_init = ablk_init, | ||
469 | .cra_exit = ablk_exit, | ||
470 | .cra_u = { | ||
471 | .ablkcipher = { | ||
472 | .min_keysize = CAMELLIA_MIN_KEY_SIZE, | ||
473 | .max_keysize = CAMELLIA_MAX_KEY_SIZE, | ||
474 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
475 | .setkey = ablk_set_key, | ||
476 | .encrypt = ablk_encrypt, | ||
477 | .decrypt = ablk_encrypt, | ||
478 | .geniv = "chainiv", | ||
479 | }, | ||
480 | }, | ||
481 | }, { | ||
482 | .cra_name = "lrw(camellia)", | ||
483 | .cra_driver_name = "lrw-camellia-aesni", | ||
484 | .cra_priority = 400, | ||
485 | .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, | ||
486 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
487 | .cra_ctxsize = sizeof(struct async_helper_ctx), | ||
488 | .cra_alignmask = 0, | ||
489 | .cra_type = &crypto_ablkcipher_type, | ||
490 | .cra_module = THIS_MODULE, | ||
491 | .cra_init = ablk_init, | ||
492 | .cra_exit = ablk_exit, | ||
493 | .cra_u = { | ||
494 | .ablkcipher = { | ||
495 | .min_keysize = CAMELLIA_MIN_KEY_SIZE + | ||
496 | CAMELLIA_BLOCK_SIZE, | ||
497 | .max_keysize = CAMELLIA_MAX_KEY_SIZE + | ||
498 | CAMELLIA_BLOCK_SIZE, | ||
499 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
500 | .setkey = ablk_set_key, | ||
501 | .encrypt = ablk_encrypt, | ||
502 | .decrypt = ablk_decrypt, | ||
503 | }, | ||
504 | }, | ||
505 | }, { | ||
506 | .cra_name = "xts(camellia)", | ||
507 | .cra_driver_name = "xts-camellia-aesni", | ||
508 | .cra_priority = 400, | ||
509 | .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, | ||
510 | .cra_blocksize = CAMELLIA_BLOCK_SIZE, | ||
511 | .cra_ctxsize = sizeof(struct async_helper_ctx), | ||
512 | .cra_alignmask = 0, | ||
513 | .cra_type = &crypto_ablkcipher_type, | ||
514 | .cra_module = THIS_MODULE, | ||
515 | .cra_init = ablk_init, | ||
516 | .cra_exit = ablk_exit, | ||
517 | .cra_u = { | ||
518 | .ablkcipher = { | ||
519 | .min_keysize = CAMELLIA_MIN_KEY_SIZE * 2, | ||
520 | .max_keysize = CAMELLIA_MAX_KEY_SIZE * 2, | ||
521 | .ivsize = CAMELLIA_BLOCK_SIZE, | ||
522 | .setkey = ablk_set_key, | ||
523 | .encrypt = ablk_encrypt, | ||
524 | .decrypt = ablk_decrypt, | ||
525 | }, | ||
526 | }, | ||
527 | } }; | ||
528 | |||
529 | static int __init camellia_aesni_init(void) | ||
530 | { | ||
531 | u64 xcr0; | ||
532 | |||
533 | if (!cpu_has_avx || !cpu_has_aes || !cpu_has_osxsave) { | ||
534 | pr_info("AVX or AES-NI instructions are not detected.\n"); | ||
535 | return -ENODEV; | ||
536 | } | ||
537 | |||
538 | xcr0 = xgetbv(XCR_XFEATURE_ENABLED_MASK); | ||
539 | if ((xcr0 & (XSTATE_SSE | XSTATE_YMM)) != (XSTATE_SSE | XSTATE_YMM)) { | ||
540 | pr_info("AVX detected but unusable.\n"); | ||
541 | return -ENODEV; | ||
542 | } | ||
543 | |||
544 | return crypto_register_algs(cmll_algs, ARRAY_SIZE(cmll_algs)); | ||
545 | } | ||
546 | |||
547 | static void __exit camellia_aesni_fini(void) | ||
548 | { | ||
549 | crypto_unregister_algs(cmll_algs, ARRAY_SIZE(cmll_algs)); | ||
550 | } | ||
551 | |||
552 | module_init(camellia_aesni_init); | ||
553 | module_exit(camellia_aesni_fini); | ||
554 | |||
555 | MODULE_LICENSE("GPL"); | ||
556 | MODULE_DESCRIPTION("Camellia Cipher Algorithm, AES-NI/AVX optimized"); | ||
557 | MODULE_ALIAS("camellia"); | ||
558 | MODULE_ALIAS("camellia-asm"); | ||
diff --git a/arch/x86/crypto/camellia_glue.c b/arch/x86/crypto/camellia_glue.c index 42ffd2bbab5b..5cb86ccd4acb 100644 --- a/arch/x86/crypto/camellia_glue.c +++ b/arch/x86/crypto/camellia_glue.c | |||
@@ -32,53 +32,24 @@ | |||
32 | #include <crypto/algapi.h> | 32 | #include <crypto/algapi.h> |
33 | #include <crypto/lrw.h> | 33 | #include <crypto/lrw.h> |
34 | #include <crypto/xts.h> | 34 | #include <crypto/xts.h> |
35 | #include <asm/crypto/camellia.h> | ||
35 | #include <asm/crypto/glue_helper.h> | 36 | #include <asm/crypto/glue_helper.h> |
36 | 37 | ||
37 | #define CAMELLIA_MIN_KEY_SIZE 16 | ||
38 | #define CAMELLIA_MAX_KEY_SIZE 32 | ||
39 | #define CAMELLIA_BLOCK_SIZE 16 | ||
40 | #define CAMELLIA_TABLE_BYTE_LEN 272 | ||
41 | |||
42 | struct camellia_ctx { | ||
43 | u64 key_table[CAMELLIA_TABLE_BYTE_LEN / sizeof(u64)]; | ||
44 | u32 key_length; | ||
45 | }; | ||
46 | |||
47 | /* regular block cipher functions */ | 38 | /* regular block cipher functions */ |
48 | asmlinkage void __camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst, | 39 | asmlinkage void __camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst, |
49 | const u8 *src, bool xor); | 40 | const u8 *src, bool xor); |
41 | EXPORT_SYMBOL_GPL(__camellia_enc_blk); | ||
50 | asmlinkage void camellia_dec_blk(struct camellia_ctx *ctx, u8 *dst, | 42 | asmlinkage void camellia_dec_blk(struct camellia_ctx *ctx, u8 *dst, |
51 | const u8 *src); | 43 | const u8 *src); |
44 | EXPORT_SYMBOL_GPL(camellia_dec_blk); | ||
52 | 45 | ||
53 | /* 2-way parallel cipher functions */ | 46 | /* 2-way parallel cipher functions */ |
54 | asmlinkage void __camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst, | 47 | asmlinkage void __camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst, |
55 | const u8 *src, bool xor); | 48 | const u8 *src, bool xor); |
49 | EXPORT_SYMBOL_GPL(__camellia_enc_blk_2way); | ||
56 | asmlinkage void camellia_dec_blk_2way(struct camellia_ctx *ctx, u8 *dst, | 50 | asmlinkage void camellia_dec_blk_2way(struct camellia_ctx *ctx, u8 *dst, |
57 | const u8 *src); | 51 | const u8 *src); |
58 | 52 | EXPORT_SYMBOL_GPL(camellia_dec_blk_2way); | |
59 | static inline void camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst, | ||
60 | const u8 *src) | ||
61 | { | ||
62 | __camellia_enc_blk(ctx, dst, src, false); | ||
63 | } | ||
64 | |||
65 | static inline void camellia_enc_blk_xor(struct camellia_ctx *ctx, u8 *dst, | ||
66 | const u8 *src) | ||
67 | { | ||
68 | __camellia_enc_blk(ctx, dst, src, true); | ||
69 | } | ||
70 | |||
71 | static inline void camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst, | ||
72 | const u8 *src) | ||
73 | { | ||
74 | __camellia_enc_blk_2way(ctx, dst, src, false); | ||
75 | } | ||
76 | |||
77 | static inline void camellia_enc_blk_xor_2way(struct camellia_ctx *ctx, u8 *dst, | ||
78 | const u8 *src) | ||
79 | { | ||
80 | __camellia_enc_blk_2way(ctx, dst, src, true); | ||
81 | } | ||
82 | 53 | ||
83 | static void camellia_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) | 54 | static void camellia_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) |
84 | { | 55 | { |
@@ -1275,9 +1246,8 @@ static void camellia_setup192(const unsigned char *key, u64 *subkey) | |||
1275 | camellia_setup256(kk, subkey); | 1246 | camellia_setup256(kk, subkey); |
1276 | } | 1247 | } |
1277 | 1248 | ||
1278 | static int __camellia_setkey(struct camellia_ctx *cctx, | 1249 | int __camellia_setkey(struct camellia_ctx *cctx, const unsigned char *key, |
1279 | const unsigned char *key, | 1250 | unsigned int key_len, u32 *flags) |
1280 | unsigned int key_len, u32 *flags) | ||
1281 | { | 1251 | { |
1282 | if (key_len != 16 && key_len != 24 && key_len != 32) { | 1252 | if (key_len != 16 && key_len != 24 && key_len != 32) { |
1283 | *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; | 1253 | *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN; |
@@ -1300,6 +1270,7 @@ static int __camellia_setkey(struct camellia_ctx *cctx, | |||
1300 | 1270 | ||
1301 | return 0; | 1271 | return 0; |
1302 | } | 1272 | } |
1273 | EXPORT_SYMBOL_GPL(__camellia_setkey); | ||
1303 | 1274 | ||
1304 | static int camellia_setkey(struct crypto_tfm *tfm, const u8 *in_key, | 1275 | static int camellia_setkey(struct crypto_tfm *tfm, const u8 *in_key, |
1305 | unsigned int key_len) | 1276 | unsigned int key_len) |
@@ -1308,7 +1279,7 @@ static int camellia_setkey(struct crypto_tfm *tfm, const u8 *in_key, | |||
1308 | &tfm->crt_flags); | 1279 | &tfm->crt_flags); |
1309 | } | 1280 | } |
1310 | 1281 | ||
1311 | static void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src) | 1282 | void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src) |
1312 | { | 1283 | { |
1313 | u128 iv = *src; | 1284 | u128 iv = *src; |
1314 | 1285 | ||
@@ -1316,22 +1287,23 @@ static void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src) | |||
1316 | 1287 | ||
1317 | u128_xor(&dst[1], &dst[1], &iv); | 1288 | u128_xor(&dst[1], &dst[1], &iv); |
1318 | } | 1289 | } |
1290 | EXPORT_SYMBOL_GPL(camellia_decrypt_cbc_2way); | ||
1319 | 1291 | ||
1320 | static void camellia_crypt_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | 1292 | void camellia_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
1321 | { | 1293 | { |
1322 | be128 ctrblk; | 1294 | be128 ctrblk; |
1323 | 1295 | ||
1324 | if (dst != src) | 1296 | if (dst != src) |
1325 | *dst = *src; | 1297 | *dst = *src; |
1326 | 1298 | ||
1327 | u128_to_be128(&ctrblk, iv); | 1299 | le128_to_be128(&ctrblk, iv); |
1328 | u128_inc(iv); | 1300 | le128_inc(iv); |
1329 | 1301 | ||
1330 | camellia_enc_blk_xor(ctx, (u8 *)dst, (u8 *)&ctrblk); | 1302 | camellia_enc_blk_xor(ctx, (u8 *)dst, (u8 *)&ctrblk); |
1331 | } | 1303 | } |
1304 | EXPORT_SYMBOL_GPL(camellia_crypt_ctr); | ||
1332 | 1305 | ||
1333 | static void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src, | 1306 | void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
1334 | u128 *iv) | ||
1335 | { | 1307 | { |
1336 | be128 ctrblks[2]; | 1308 | be128 ctrblks[2]; |
1337 | 1309 | ||
@@ -1340,13 +1312,14 @@ static void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src, | |||
1340 | dst[1] = src[1]; | 1312 | dst[1] = src[1]; |
1341 | } | 1313 | } |
1342 | 1314 | ||
1343 | u128_to_be128(&ctrblks[0], iv); | 1315 | le128_to_be128(&ctrblks[0], iv); |
1344 | u128_inc(iv); | 1316 | le128_inc(iv); |
1345 | u128_to_be128(&ctrblks[1], iv); | 1317 | le128_to_be128(&ctrblks[1], iv); |
1346 | u128_inc(iv); | 1318 | le128_inc(iv); |
1347 | 1319 | ||
1348 | camellia_enc_blk_xor_2way(ctx, (u8 *)dst, (u8 *)ctrblks); | 1320 | camellia_enc_blk_xor_2way(ctx, (u8 *)dst, (u8 *)ctrblks); |
1349 | } | 1321 | } |
1322 | EXPORT_SYMBOL_GPL(camellia_crypt_ctr_2way); | ||
1350 | 1323 | ||
1351 | static const struct common_glue_ctx camellia_enc = { | 1324 | static const struct common_glue_ctx camellia_enc = { |
1352 | .num_funcs = 2, | 1325 | .num_funcs = 2, |
@@ -1464,13 +1437,8 @@ static void decrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
1464 | camellia_dec_blk(ctx, srcdst, srcdst); | 1437 | camellia_dec_blk(ctx, srcdst, srcdst); |
1465 | } | 1438 | } |
1466 | 1439 | ||
1467 | struct camellia_lrw_ctx { | 1440 | int lrw_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, |
1468 | struct lrw_table_ctx lrw_table; | 1441 | unsigned int keylen) |
1469 | struct camellia_ctx camellia_ctx; | ||
1470 | }; | ||
1471 | |||
1472 | static int lrw_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | ||
1473 | unsigned int keylen) | ||
1474 | { | 1442 | { |
1475 | struct camellia_lrw_ctx *ctx = crypto_tfm_ctx(tfm); | 1443 | struct camellia_lrw_ctx *ctx = crypto_tfm_ctx(tfm); |
1476 | int err; | 1444 | int err; |
@@ -1484,6 +1452,7 @@ static int lrw_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | |||
1484 | return lrw_init_table(&ctx->lrw_table, | 1452 | return lrw_init_table(&ctx->lrw_table, |
1485 | key + keylen - CAMELLIA_BLOCK_SIZE); | 1453 | key + keylen - CAMELLIA_BLOCK_SIZE); |
1486 | } | 1454 | } |
1455 | EXPORT_SYMBOL_GPL(lrw_camellia_setkey); | ||
1487 | 1456 | ||
1488 | static int lrw_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | 1457 | static int lrw_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, |
1489 | struct scatterlist *src, unsigned int nbytes) | 1458 | struct scatterlist *src, unsigned int nbytes) |
@@ -1519,20 +1488,16 @@ static int lrw_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | |||
1519 | return lrw_crypt(desc, dst, src, nbytes, &req); | 1488 | return lrw_crypt(desc, dst, src, nbytes, &req); |
1520 | } | 1489 | } |
1521 | 1490 | ||
1522 | static void lrw_exit_tfm(struct crypto_tfm *tfm) | 1491 | void lrw_camellia_exit_tfm(struct crypto_tfm *tfm) |
1523 | { | 1492 | { |
1524 | struct camellia_lrw_ctx *ctx = crypto_tfm_ctx(tfm); | 1493 | struct camellia_lrw_ctx *ctx = crypto_tfm_ctx(tfm); |
1525 | 1494 | ||
1526 | lrw_free_table(&ctx->lrw_table); | 1495 | lrw_free_table(&ctx->lrw_table); |
1527 | } | 1496 | } |
1497 | EXPORT_SYMBOL_GPL(lrw_camellia_exit_tfm); | ||
1528 | 1498 | ||
1529 | struct camellia_xts_ctx { | 1499 | int xts_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, |
1530 | struct camellia_ctx tweak_ctx; | 1500 | unsigned int keylen) |
1531 | struct camellia_ctx crypt_ctx; | ||
1532 | }; | ||
1533 | |||
1534 | static int xts_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | ||
1535 | unsigned int keylen) | ||
1536 | { | 1501 | { |
1537 | struct camellia_xts_ctx *ctx = crypto_tfm_ctx(tfm); | 1502 | struct camellia_xts_ctx *ctx = crypto_tfm_ctx(tfm); |
1538 | u32 *flags = &tfm->crt_flags; | 1503 | u32 *flags = &tfm->crt_flags; |
@@ -1555,6 +1520,7 @@ static int xts_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | |||
1555 | return __camellia_setkey(&ctx->tweak_ctx, key + keylen / 2, keylen / 2, | 1520 | return __camellia_setkey(&ctx->tweak_ctx, key + keylen / 2, keylen / 2, |
1556 | flags); | 1521 | flags); |
1557 | } | 1522 | } |
1523 | EXPORT_SYMBOL_GPL(xts_camellia_setkey); | ||
1558 | 1524 | ||
1559 | static int xts_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, | 1525 | static int xts_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst, |
1560 | struct scatterlist *src, unsigned int nbytes) | 1526 | struct scatterlist *src, unsigned int nbytes) |
@@ -1679,7 +1645,7 @@ static struct crypto_alg camellia_algs[6] = { { | |||
1679 | .cra_alignmask = 0, | 1645 | .cra_alignmask = 0, |
1680 | .cra_type = &crypto_blkcipher_type, | 1646 | .cra_type = &crypto_blkcipher_type, |
1681 | .cra_module = THIS_MODULE, | 1647 | .cra_module = THIS_MODULE, |
1682 | .cra_exit = lrw_exit_tfm, | 1648 | .cra_exit = lrw_camellia_exit_tfm, |
1683 | .cra_u = { | 1649 | .cra_u = { |
1684 | .blkcipher = { | 1650 | .blkcipher = { |
1685 | .min_keysize = CAMELLIA_MIN_KEY_SIZE + | 1651 | .min_keysize = CAMELLIA_MIN_KEY_SIZE + |
diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S index a41a3aaba220..15b00ac7cbd3 100644 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S | |||
@@ -25,10 +25,10 @@ | |||
25 | 25 | ||
26 | .file "cast5-avx-x86_64-asm_64.S" | 26 | .file "cast5-avx-x86_64-asm_64.S" |
27 | 27 | ||
28 | .extern cast5_s1 | 28 | .extern cast_s1 |
29 | .extern cast5_s2 | 29 | .extern cast_s2 |
30 | .extern cast5_s3 | 30 | .extern cast_s3 |
31 | .extern cast5_s4 | 31 | .extern cast_s4 |
32 | 32 | ||
33 | /* structure of crypto context */ | 33 | /* structure of crypto context */ |
34 | #define km 0 | 34 | #define km 0 |
@@ -36,10 +36,10 @@ | |||
36 | #define rr ((16*4)+16) | 36 | #define rr ((16*4)+16) |
37 | 37 | ||
38 | /* s-boxes */ | 38 | /* s-boxes */ |
39 | #define s1 cast5_s1 | 39 | #define s1 cast_s1 |
40 | #define s2 cast5_s2 | 40 | #define s2 cast_s2 |
41 | #define s3 cast5_s3 | 41 | #define s3 cast_s3 |
42 | #define s4 cast5_s4 | 42 | #define s4 cast_s4 |
43 | 43 | ||
44 | /********************************************************************** | 44 | /********************************************************************** |
45 | 16-way AVX cast5 | 45 | 16-way AVX cast5 |
@@ -180,31 +180,17 @@ | |||
180 | vpunpcklqdq t1, t0, x0; \ | 180 | vpunpcklqdq t1, t0, x0; \ |
181 | vpunpckhqdq t1, t0, x1; | 181 | vpunpckhqdq t1, t0, x1; |
182 | 182 | ||
183 | #define inpack_blocks(in, x0, x1, t0, t1, rmask) \ | 183 | #define inpack_blocks(x0, x1, t0, t1, rmask) \ |
184 | vmovdqu (0*4*4)(in), x0; \ | ||
185 | vmovdqu (1*4*4)(in), x1; \ | ||
186 | vpshufb rmask, x0, x0; \ | 184 | vpshufb rmask, x0, x0; \ |
187 | vpshufb rmask, x1, x1; \ | 185 | vpshufb rmask, x1, x1; \ |
188 | \ | 186 | \ |
189 | transpose_2x4(x0, x1, t0, t1) | 187 | transpose_2x4(x0, x1, t0, t1) |
190 | 188 | ||
191 | #define outunpack_blocks(out, x0, x1, t0, t1, rmask) \ | 189 | #define outunpack_blocks(x0, x1, t0, t1, rmask) \ |
192 | transpose_2x4(x0, x1, t0, t1) \ | 190 | transpose_2x4(x0, x1, t0, t1) \ |
193 | \ | 191 | \ |
194 | vpshufb rmask, x0, x0; \ | 192 | vpshufb rmask, x0, x0; \ |
195 | vpshufb rmask, x1, x1; \ | 193 | vpshufb rmask, x1, x1; |
196 | vmovdqu x0, (0*4*4)(out); \ | ||
197 | vmovdqu x1, (1*4*4)(out); | ||
198 | |||
199 | #define outunpack_xor_blocks(out, x0, x1, t0, t1, rmask) \ | ||
200 | transpose_2x4(x0, x1, t0, t1) \ | ||
201 | \ | ||
202 | vpshufb rmask, x0, x0; \ | ||
203 | vpshufb rmask, x1, x1; \ | ||
204 | vpxor (0*4*4)(out), x0, x0; \ | ||
205 | vmovdqu x0, (0*4*4)(out); \ | ||
206 | vpxor (1*4*4)(out), x1, x1; \ | ||
207 | vmovdqu x1, (1*4*4)(out); | ||
208 | 194 | ||
209 | .data | 195 | .data |
210 | 196 | ||
@@ -213,6 +199,8 @@ | |||
213 | .byte 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 | 199 | .byte 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 |
214 | .Lbswap128_mask: | 200 | .Lbswap128_mask: |
215 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | 201 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 |
202 | .Lbswap_iv_mask: | ||
203 | .byte 7, 6, 5, 4, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0 | ||
216 | .L16_mask: | 204 | .L16_mask: |
217 | .byte 16, 16, 16, 16 | 205 | .byte 16, 16, 16, 16 |
218 | .L32_mask: | 206 | .L32_mask: |
@@ -223,35 +211,42 @@ | |||
223 | .text | 211 | .text |
224 | 212 | ||
225 | .align 16 | 213 | .align 16 |
226 | .global __cast5_enc_blk_16way | 214 | .type __cast5_enc_blk16,@function; |
227 | .type __cast5_enc_blk_16way,@function; | ||
228 | 215 | ||
229 | __cast5_enc_blk_16way: | 216 | __cast5_enc_blk16: |
230 | /* input: | 217 | /* input: |
231 | * %rdi: ctx, CTX | 218 | * %rdi: ctx, CTX |
232 | * %rsi: dst | 219 | * RL1: blocks 1 and 2 |
233 | * %rdx: src | 220 | * RR1: blocks 3 and 4 |
234 | * %rcx: bool, if true: xor output | 221 | * RL2: blocks 5 and 6 |
222 | * RR2: blocks 7 and 8 | ||
223 | * RL3: blocks 9 and 10 | ||
224 | * RR3: blocks 11 and 12 | ||
225 | * RL4: blocks 13 and 14 | ||
226 | * RR4: blocks 15 and 16 | ||
227 | * output: | ||
228 | * RL1: encrypted blocks 1 and 2 | ||
229 | * RR1: encrypted blocks 3 and 4 | ||
230 | * RL2: encrypted blocks 5 and 6 | ||
231 | * RR2: encrypted blocks 7 and 8 | ||
232 | * RL3: encrypted blocks 9 and 10 | ||
233 | * RR3: encrypted blocks 11 and 12 | ||
234 | * RL4: encrypted blocks 13 and 14 | ||
235 | * RR4: encrypted blocks 15 and 16 | ||
235 | */ | 236 | */ |
236 | 237 | ||
237 | pushq %rbp; | 238 | pushq %rbp; |
238 | pushq %rbx; | 239 | pushq %rbx; |
239 | pushq %rcx; | ||
240 | 240 | ||
241 | vmovdqa .Lbswap_mask, RKM; | 241 | vmovdqa .Lbswap_mask, RKM; |
242 | vmovd .Lfirst_mask, R1ST; | 242 | vmovd .Lfirst_mask, R1ST; |
243 | vmovd .L32_mask, R32; | 243 | vmovd .L32_mask, R32; |
244 | enc_preload_rkr(); | 244 | enc_preload_rkr(); |
245 | 245 | ||
246 | leaq 1*(2*4*4)(%rdx), %rax; | 246 | inpack_blocks(RL1, RR1, RTMP, RX, RKM); |
247 | inpack_blocks(%rdx, RL1, RR1, RTMP, RX, RKM); | 247 | inpack_blocks(RL2, RR2, RTMP, RX, RKM); |
248 | inpack_blocks(%rax, RL2, RR2, RTMP, RX, RKM); | 248 | inpack_blocks(RL3, RR3, RTMP, RX, RKM); |
249 | leaq 2*(2*4*4)(%rdx), %rax; | 249 | inpack_blocks(RL4, RR4, RTMP, RX, RKM); |
250 | inpack_blocks(%rax, RL3, RR3, RTMP, RX, RKM); | ||
251 | leaq 3*(2*4*4)(%rdx), %rax; | ||
252 | inpack_blocks(%rax, RL4, RR4, RTMP, RX, RKM); | ||
253 | |||
254 | movq %rsi, %r11; | ||
255 | 250 | ||
256 | round(RL, RR, 0, 1); | 251 | round(RL, RR, 0, 1); |
257 | round(RR, RL, 1, 2); | 252 | round(RR, RL, 1, 2); |
@@ -276,44 +271,41 @@ __cast5_enc_blk_16way: | |||
276 | round(RR, RL, 15, 1); | 271 | round(RR, RL, 15, 1); |
277 | 272 | ||
278 | __skip_enc: | 273 | __skip_enc: |
279 | popq %rcx; | ||
280 | popq %rbx; | 274 | popq %rbx; |
281 | popq %rbp; | 275 | popq %rbp; |
282 | 276 | ||
283 | vmovdqa .Lbswap_mask, RKM; | 277 | vmovdqa .Lbswap_mask, RKM; |
284 | leaq 1*(2*4*4)(%r11), %rax; | ||
285 | 278 | ||
286 | testb %cl, %cl; | 279 | outunpack_blocks(RR1, RL1, RTMP, RX, RKM); |
287 | jnz __enc_xor16; | 280 | outunpack_blocks(RR2, RL2, RTMP, RX, RKM); |
288 | 281 | outunpack_blocks(RR3, RL3, RTMP, RX, RKM); | |
289 | outunpack_blocks(%r11, RR1, RL1, RTMP, RX, RKM); | 282 | outunpack_blocks(RR4, RL4, RTMP, RX, RKM); |
290 | outunpack_blocks(%rax, RR2, RL2, RTMP, RX, RKM); | ||
291 | leaq 2*(2*4*4)(%r11), %rax; | ||
292 | outunpack_blocks(%rax, RR3, RL3, RTMP, RX, RKM); | ||
293 | leaq 3*(2*4*4)(%r11), %rax; | ||
294 | outunpack_blocks(%rax, RR4, RL4, RTMP, RX, RKM); | ||
295 | |||
296 | ret; | ||
297 | |||
298 | __enc_xor16: | ||
299 | outunpack_xor_blocks(%r11, RR1, RL1, RTMP, RX, RKM); | ||
300 | outunpack_xor_blocks(%rax, RR2, RL2, RTMP, RX, RKM); | ||
301 | leaq 2*(2*4*4)(%r11), %rax; | ||
302 | outunpack_xor_blocks(%rax, RR3, RL3, RTMP, RX, RKM); | ||
303 | leaq 3*(2*4*4)(%r11), %rax; | ||
304 | outunpack_xor_blocks(%rax, RR4, RL4, RTMP, RX, RKM); | ||
305 | 283 | ||
306 | ret; | 284 | ret; |
307 | 285 | ||
308 | .align 16 | 286 | .align 16 |
309 | .global cast5_dec_blk_16way | 287 | .type __cast5_dec_blk16,@function; |
310 | .type cast5_dec_blk_16way,@function; | ||
311 | 288 | ||
312 | cast5_dec_blk_16way: | 289 | __cast5_dec_blk16: |
313 | /* input: | 290 | /* input: |
314 | * %rdi: ctx, CTX | 291 | * %rdi: ctx, CTX |
315 | * %rsi: dst | 292 | * RL1: encrypted blocks 1 and 2 |
316 | * %rdx: src | 293 | * RR1: encrypted blocks 3 and 4 |
294 | * RL2: encrypted blocks 5 and 6 | ||
295 | * RR2: encrypted blocks 7 and 8 | ||
296 | * RL3: encrypted blocks 9 and 10 | ||
297 | * RR3: encrypted blocks 11 and 12 | ||
298 | * RL4: encrypted blocks 13 and 14 | ||
299 | * RR4: encrypted blocks 15 and 16 | ||
300 | * output: | ||
301 | * RL1: decrypted blocks 1 and 2 | ||
302 | * RR1: decrypted blocks 3 and 4 | ||
303 | * RL2: decrypted blocks 5 and 6 | ||
304 | * RR2: decrypted blocks 7 and 8 | ||
305 | * RL3: decrypted blocks 9 and 10 | ||
306 | * RR3: decrypted blocks 11 and 12 | ||
307 | * RL4: decrypted blocks 13 and 14 | ||
308 | * RR4: decrypted blocks 15 and 16 | ||
317 | */ | 309 | */ |
318 | 310 | ||
319 | pushq %rbp; | 311 | pushq %rbp; |
@@ -324,15 +316,10 @@ cast5_dec_blk_16way: | |||
324 | vmovd .L32_mask, R32; | 316 | vmovd .L32_mask, R32; |
325 | dec_preload_rkr(); | 317 | dec_preload_rkr(); |
326 | 318 | ||
327 | leaq 1*(2*4*4)(%rdx), %rax; | 319 | inpack_blocks(RL1, RR1, RTMP, RX, RKM); |
328 | inpack_blocks(%rdx, RL1, RR1, RTMP, RX, RKM); | 320 | inpack_blocks(RL2, RR2, RTMP, RX, RKM); |
329 | inpack_blocks(%rax, RL2, RR2, RTMP, RX, RKM); | 321 | inpack_blocks(RL3, RR3, RTMP, RX, RKM); |
330 | leaq 2*(2*4*4)(%rdx), %rax; | 322 | inpack_blocks(RL4, RR4, RTMP, RX, RKM); |
331 | inpack_blocks(%rax, RL3, RR3, RTMP, RX, RKM); | ||
332 | leaq 3*(2*4*4)(%rdx), %rax; | ||
333 | inpack_blocks(%rax, RL4, RR4, RTMP, RX, RKM); | ||
334 | |||
335 | movq %rsi, %r11; | ||
336 | 323 | ||
337 | movzbl rr(CTX), %eax; | 324 | movzbl rr(CTX), %eax; |
338 | testl %eax, %eax; | 325 | testl %eax, %eax; |
@@ -361,16 +348,211 @@ __dec_tail: | |||
361 | popq %rbx; | 348 | popq %rbx; |
362 | popq %rbp; | 349 | popq %rbp; |
363 | 350 | ||
364 | leaq 1*(2*4*4)(%r11), %rax; | 351 | outunpack_blocks(RR1, RL1, RTMP, RX, RKM); |
365 | outunpack_blocks(%r11, RR1, RL1, RTMP, RX, RKM); | 352 | outunpack_blocks(RR2, RL2, RTMP, RX, RKM); |
366 | outunpack_blocks(%rax, RR2, RL2, RTMP, RX, RKM); | 353 | outunpack_blocks(RR3, RL3, RTMP, RX, RKM); |
367 | leaq 2*(2*4*4)(%r11), %rax; | 354 | outunpack_blocks(RR4, RL4, RTMP, RX, RKM); |
368 | outunpack_blocks(%rax, RR3, RL3, RTMP, RX, RKM); | ||
369 | leaq 3*(2*4*4)(%r11), %rax; | ||
370 | outunpack_blocks(%rax, RR4, RL4, RTMP, RX, RKM); | ||
371 | 355 | ||
372 | ret; | 356 | ret; |
373 | 357 | ||
374 | __skip_dec: | 358 | __skip_dec: |
375 | vpsrldq $4, RKR, RKR; | 359 | vpsrldq $4, RKR, RKR; |
376 | jmp __dec_tail; | 360 | jmp __dec_tail; |
361 | |||
362 | .align 16 | ||
363 | .global cast5_ecb_enc_16way | ||
364 | .type cast5_ecb_enc_16way,@function; | ||
365 | |||
366 | cast5_ecb_enc_16way: | ||
367 | /* input: | ||
368 | * %rdi: ctx, CTX | ||
369 | * %rsi: dst | ||
370 | * %rdx: src | ||
371 | */ | ||
372 | |||
373 | movq %rsi, %r11; | ||
374 | |||
375 | vmovdqu (0*4*4)(%rdx), RL1; | ||
376 | vmovdqu (1*4*4)(%rdx), RR1; | ||
377 | vmovdqu (2*4*4)(%rdx), RL2; | ||
378 | vmovdqu (3*4*4)(%rdx), RR2; | ||
379 | vmovdqu (4*4*4)(%rdx), RL3; | ||
380 | vmovdqu (5*4*4)(%rdx), RR3; | ||
381 | vmovdqu (6*4*4)(%rdx), RL4; | ||
382 | vmovdqu (7*4*4)(%rdx), RR4; | ||
383 | |||
384 | call __cast5_enc_blk16; | ||
385 | |||
386 | vmovdqu RR1, (0*4*4)(%r11); | ||
387 | vmovdqu RL1, (1*4*4)(%r11); | ||
388 | vmovdqu RR2, (2*4*4)(%r11); | ||
389 | vmovdqu RL2, (3*4*4)(%r11); | ||
390 | vmovdqu RR3, (4*4*4)(%r11); | ||
391 | vmovdqu RL3, (5*4*4)(%r11); | ||
392 | vmovdqu RR4, (6*4*4)(%r11); | ||
393 | vmovdqu RL4, (7*4*4)(%r11); | ||
394 | |||
395 | ret; | ||
396 | |||
397 | .align 16 | ||
398 | .global cast5_ecb_dec_16way | ||
399 | .type cast5_ecb_dec_16way,@function; | ||
400 | |||
401 | cast5_ecb_dec_16way: | ||
402 | /* input: | ||
403 | * %rdi: ctx, CTX | ||
404 | * %rsi: dst | ||
405 | * %rdx: src | ||
406 | */ | ||
407 | |||
408 | movq %rsi, %r11; | ||
409 | |||
410 | vmovdqu (0*4*4)(%rdx), RL1; | ||
411 | vmovdqu (1*4*4)(%rdx), RR1; | ||
412 | vmovdqu (2*4*4)(%rdx), RL2; | ||
413 | vmovdqu (3*4*4)(%rdx), RR2; | ||
414 | vmovdqu (4*4*4)(%rdx), RL3; | ||
415 | vmovdqu (5*4*4)(%rdx), RR3; | ||
416 | vmovdqu (6*4*4)(%rdx), RL4; | ||
417 | vmovdqu (7*4*4)(%rdx), RR4; | ||
418 | |||
419 | call __cast5_dec_blk16; | ||
420 | |||
421 | vmovdqu RR1, (0*4*4)(%r11); | ||
422 | vmovdqu RL1, (1*4*4)(%r11); | ||
423 | vmovdqu RR2, (2*4*4)(%r11); | ||
424 | vmovdqu RL2, (3*4*4)(%r11); | ||
425 | vmovdqu RR3, (4*4*4)(%r11); | ||
426 | vmovdqu RL3, (5*4*4)(%r11); | ||
427 | vmovdqu RR4, (6*4*4)(%r11); | ||
428 | vmovdqu RL4, (7*4*4)(%r11); | ||
429 | |||
430 | ret; | ||
431 | |||
432 | .align 16 | ||
433 | .global cast5_cbc_dec_16way | ||
434 | .type cast5_cbc_dec_16way,@function; | ||
435 | |||
436 | cast5_cbc_dec_16way: | ||
437 | /* input: | ||
438 | * %rdi: ctx, CTX | ||
439 | * %rsi: dst | ||
440 | * %rdx: src | ||
441 | */ | ||
442 | |||
443 | pushq %r12; | ||
444 | |||
445 | movq %rsi, %r11; | ||
446 | movq %rdx, %r12; | ||
447 | |||
448 | vmovdqu (0*16)(%rdx), RL1; | ||
449 | vmovdqu (1*16)(%rdx), RR1; | ||
450 | vmovdqu (2*16)(%rdx), RL2; | ||
451 | vmovdqu (3*16)(%rdx), RR2; | ||
452 | vmovdqu (4*16)(%rdx), RL3; | ||
453 | vmovdqu (5*16)(%rdx), RR3; | ||
454 | vmovdqu (6*16)(%rdx), RL4; | ||
455 | vmovdqu (7*16)(%rdx), RR4; | ||
456 | |||
457 | call __cast5_dec_blk16; | ||
458 | |||
459 | /* xor with src */ | ||
460 | vmovq (%r12), RX; | ||
461 | vpshufd $0x4f, RX, RX; | ||
462 | vpxor RX, RR1, RR1; | ||
463 | vpxor 0*16+8(%r12), RL1, RL1; | ||
464 | vpxor 1*16+8(%r12), RR2, RR2; | ||
465 | vpxor 2*16+8(%r12), RL2, RL2; | ||
466 | vpxor 3*16+8(%r12), RR3, RR3; | ||
467 | vpxor 4*16+8(%r12), RL3, RL3; | ||
468 | vpxor 5*16+8(%r12), RR4, RR4; | ||
469 | vpxor 6*16+8(%r12), RL4, RL4; | ||
470 | |||
471 | vmovdqu RR1, (0*16)(%r11); | ||
472 | vmovdqu RL1, (1*16)(%r11); | ||
473 | vmovdqu RR2, (2*16)(%r11); | ||
474 | vmovdqu RL2, (3*16)(%r11); | ||
475 | vmovdqu RR3, (4*16)(%r11); | ||
476 | vmovdqu RL3, (5*16)(%r11); | ||
477 | vmovdqu RR4, (6*16)(%r11); | ||
478 | vmovdqu RL4, (7*16)(%r11); | ||
479 | |||
480 | popq %r12; | ||
481 | |||
482 | ret; | ||
483 | |||
484 | .align 16 | ||
485 | .global cast5_ctr_16way | ||
486 | .type cast5_ctr_16way,@function; | ||
487 | |||
488 | cast5_ctr_16way: | ||
489 | /* input: | ||
490 | * %rdi: ctx, CTX | ||
491 | * %rsi: dst | ||
492 | * %rdx: src | ||
493 | * %rcx: iv (big endian, 64bit) | ||
494 | */ | ||
495 | |||
496 | pushq %r12; | ||
497 | |||
498 | movq %rsi, %r11; | ||
499 | movq %rdx, %r12; | ||
500 | |||
501 | vpcmpeqd RTMP, RTMP, RTMP; | ||
502 | vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */ | ||
503 | |||
504 | vpcmpeqd RKR, RKR, RKR; | ||
505 | vpaddq RKR, RKR, RKR; /* low: -2, high: -2 */ | ||
506 | vmovdqa .Lbswap_iv_mask, R1ST; | ||
507 | vmovdqa .Lbswap128_mask, RKM; | ||
508 | |||
509 | /* load IV and byteswap */ | ||
510 | vmovq (%rcx), RX; | ||
511 | vpshufb R1ST, RX, RX; | ||
512 | |||
513 | /* construct IVs */ | ||
514 | vpsubq RTMP, RX, RX; /* le: IV1, IV0 */ | ||
515 | vpshufb RKM, RX, RL1; /* be: IV0, IV1 */ | ||
516 | vpsubq RKR, RX, RX; | ||
517 | vpshufb RKM, RX, RR1; /* be: IV2, IV3 */ | ||
518 | vpsubq RKR, RX, RX; | ||
519 | vpshufb RKM, RX, RL2; /* be: IV4, IV5 */ | ||
520 | vpsubq RKR, RX, RX; | ||
521 | vpshufb RKM, RX, RR2; /* be: IV6, IV7 */ | ||
522 | vpsubq RKR, RX, RX; | ||
523 | vpshufb RKM, RX, RL3; /* be: IV8, IV9 */ | ||
524 | vpsubq RKR, RX, RX; | ||
525 | vpshufb RKM, RX, RR3; /* be: IV10, IV11 */ | ||
526 | vpsubq RKR, RX, RX; | ||
527 | vpshufb RKM, RX, RL4; /* be: IV12, IV13 */ | ||
528 | vpsubq RKR, RX, RX; | ||
529 | vpshufb RKM, RX, RR4; /* be: IV14, IV15 */ | ||
530 | |||
531 | /* store last IV */ | ||
532 | vpsubq RTMP, RX, RX; /* le: IV16, IV14 */ | ||
533 | vpshufb R1ST, RX, RX; /* be: IV16, IV16 */ | ||
534 | vmovq RX, (%rcx); | ||
535 | |||
536 | call __cast5_enc_blk16; | ||
537 | |||
538 | /* dst = src ^ iv */ | ||
539 | vpxor (0*16)(%r12), RR1, RR1; | ||
540 | vpxor (1*16)(%r12), RL1, RL1; | ||
541 | vpxor (2*16)(%r12), RR2, RR2; | ||
542 | vpxor (3*16)(%r12), RL2, RL2; | ||
543 | vpxor (4*16)(%r12), RR3, RR3; | ||
544 | vpxor (5*16)(%r12), RL3, RL3; | ||
545 | vpxor (6*16)(%r12), RR4, RR4; | ||
546 | vpxor (7*16)(%r12), RL4, RL4; | ||
547 | vmovdqu RR1, (0*16)(%r11); | ||
548 | vmovdqu RL1, (1*16)(%r11); | ||
549 | vmovdqu RR2, (2*16)(%r11); | ||
550 | vmovdqu RL2, (3*16)(%r11); | ||
551 | vmovdqu RR3, (4*16)(%r11); | ||
552 | vmovdqu RL3, (5*16)(%r11); | ||
553 | vmovdqu RR4, (6*16)(%r11); | ||
554 | vmovdqu RL4, (7*16)(%r11); | ||
555 | |||
556 | popq %r12; | ||
557 | |||
558 | ret; | ||
diff --git a/arch/x86/crypto/cast5_avx_glue.c b/arch/x86/crypto/cast5_avx_glue.c index e0ea14f9547f..c6631813dc11 100644 --- a/arch/x86/crypto/cast5_avx_glue.c +++ b/arch/x86/crypto/cast5_avx_glue.c | |||
@@ -37,29 +37,14 @@ | |||
37 | 37 | ||
38 | #define CAST5_PARALLEL_BLOCKS 16 | 38 | #define CAST5_PARALLEL_BLOCKS 16 |
39 | 39 | ||
40 | asmlinkage void __cast5_enc_blk_16way(struct cast5_ctx *ctx, u8 *dst, | 40 | asmlinkage void cast5_ecb_enc_16way(struct cast5_ctx *ctx, u8 *dst, |
41 | const u8 *src, bool xor); | ||
42 | asmlinkage void cast5_dec_blk_16way(struct cast5_ctx *ctx, u8 *dst, | ||
43 | const u8 *src); | 41 | const u8 *src); |
44 | 42 | asmlinkage void cast5_ecb_dec_16way(struct cast5_ctx *ctx, u8 *dst, | |
45 | static inline void cast5_enc_blk_xway(struct cast5_ctx *ctx, u8 *dst, | 43 | const u8 *src); |
46 | const u8 *src) | 44 | asmlinkage void cast5_cbc_dec_16way(struct cast5_ctx *ctx, u8 *dst, |
47 | { | 45 | const u8 *src); |
48 | __cast5_enc_blk_16way(ctx, dst, src, false); | 46 | asmlinkage void cast5_ctr_16way(struct cast5_ctx *ctx, u8 *dst, const u8 *src, |
49 | } | 47 | __be64 *iv); |
50 | |||
51 | static inline void cast5_enc_blk_xway_xor(struct cast5_ctx *ctx, u8 *dst, | ||
52 | const u8 *src) | ||
53 | { | ||
54 | __cast5_enc_blk_16way(ctx, dst, src, true); | ||
55 | } | ||
56 | |||
57 | static inline void cast5_dec_blk_xway(struct cast5_ctx *ctx, u8 *dst, | ||
58 | const u8 *src) | ||
59 | { | ||
60 | cast5_dec_blk_16way(ctx, dst, src); | ||
61 | } | ||
62 | |||
63 | 48 | ||
64 | static inline bool cast5_fpu_begin(bool fpu_enabled, unsigned int nbytes) | 49 | static inline bool cast5_fpu_begin(bool fpu_enabled, unsigned int nbytes) |
65 | { | 50 | { |
@@ -79,8 +64,11 @@ static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk, | |||
79 | struct cast5_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); | 64 | struct cast5_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); |
80 | const unsigned int bsize = CAST5_BLOCK_SIZE; | 65 | const unsigned int bsize = CAST5_BLOCK_SIZE; |
81 | unsigned int nbytes; | 66 | unsigned int nbytes; |
67 | void (*fn)(struct cast5_ctx *ctx, u8 *dst, const u8 *src); | ||
82 | int err; | 68 | int err; |
83 | 69 | ||
70 | fn = (enc) ? cast5_ecb_enc_16way : cast5_ecb_dec_16way; | ||
71 | |||
84 | err = blkcipher_walk_virt(desc, walk); | 72 | err = blkcipher_walk_virt(desc, walk); |
85 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | 73 | desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; |
86 | 74 | ||
@@ -93,10 +81,7 @@ static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk, | |||
93 | /* Process multi-block batch */ | 81 | /* Process multi-block batch */ |
94 | if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) { | 82 | if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) { |
95 | do { | 83 | do { |
96 | if (enc) | 84 | fn(ctx, wdst, wsrc); |
97 | cast5_enc_blk_xway(ctx, wdst, wsrc); | ||
98 | else | ||
99 | cast5_dec_blk_xway(ctx, wdst, wsrc); | ||
100 | 85 | ||
101 | wsrc += bsize * CAST5_PARALLEL_BLOCKS; | 86 | wsrc += bsize * CAST5_PARALLEL_BLOCKS; |
102 | wdst += bsize * CAST5_PARALLEL_BLOCKS; | 87 | wdst += bsize * CAST5_PARALLEL_BLOCKS; |
@@ -107,12 +92,11 @@ static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk, | |||
107 | goto done; | 92 | goto done; |
108 | } | 93 | } |
109 | 94 | ||
95 | fn = (enc) ? __cast5_encrypt : __cast5_decrypt; | ||
96 | |||
110 | /* Handle leftovers */ | 97 | /* Handle leftovers */ |
111 | do { | 98 | do { |
112 | if (enc) | 99 | fn(ctx, wdst, wsrc); |
113 | __cast5_encrypt(ctx, wdst, wsrc); | ||
114 | else | ||
115 | __cast5_decrypt(ctx, wdst, wsrc); | ||
116 | 100 | ||
117 | wsrc += bsize; | 101 | wsrc += bsize; |
118 | wdst += bsize; | 102 | wdst += bsize; |
@@ -194,9 +178,7 @@ static unsigned int __cbc_decrypt(struct blkcipher_desc *desc, | |||
194 | unsigned int nbytes = walk->nbytes; | 178 | unsigned int nbytes = walk->nbytes; |
195 | u64 *src = (u64 *)walk->src.virt.addr; | 179 | u64 *src = (u64 *)walk->src.virt.addr; |
196 | u64 *dst = (u64 *)walk->dst.virt.addr; | 180 | u64 *dst = (u64 *)walk->dst.virt.addr; |
197 | u64 ivs[CAST5_PARALLEL_BLOCKS - 1]; | ||
198 | u64 last_iv; | 181 | u64 last_iv; |
199 | int i; | ||
200 | 182 | ||
201 | /* Start of the last block. */ | 183 | /* Start of the last block. */ |
202 | src += nbytes / bsize - 1; | 184 | src += nbytes / bsize - 1; |
@@ -211,13 +193,7 @@ static unsigned int __cbc_decrypt(struct blkcipher_desc *desc, | |||
211 | src -= CAST5_PARALLEL_BLOCKS - 1; | 193 | src -= CAST5_PARALLEL_BLOCKS - 1; |
212 | dst -= CAST5_PARALLEL_BLOCKS - 1; | 194 | dst -= CAST5_PARALLEL_BLOCKS - 1; |
213 | 195 | ||
214 | for (i = 0; i < CAST5_PARALLEL_BLOCKS - 1; i++) | 196 | cast5_cbc_dec_16way(ctx, (u8 *)dst, (u8 *)src); |
215 | ivs[i] = src[i]; | ||
216 | |||
217 | cast5_dec_blk_xway(ctx, (u8 *)dst, (u8 *)src); | ||
218 | |||
219 | for (i = 0; i < CAST5_PARALLEL_BLOCKS - 1; i++) | ||
220 | *(dst + (i + 1)) ^= *(ivs + i); | ||
221 | 197 | ||
222 | nbytes -= bsize; | 198 | nbytes -= bsize; |
223 | if (nbytes < bsize) | 199 | if (nbytes < bsize) |
@@ -298,23 +274,12 @@ static unsigned int __ctr_crypt(struct blkcipher_desc *desc, | |||
298 | unsigned int nbytes = walk->nbytes; | 274 | unsigned int nbytes = walk->nbytes; |
299 | u64 *src = (u64 *)walk->src.virt.addr; | 275 | u64 *src = (u64 *)walk->src.virt.addr; |
300 | u64 *dst = (u64 *)walk->dst.virt.addr; | 276 | u64 *dst = (u64 *)walk->dst.virt.addr; |
301 | u64 ctrblk = be64_to_cpu(*(__be64 *)walk->iv); | ||
302 | __be64 ctrblocks[CAST5_PARALLEL_BLOCKS]; | ||
303 | int i; | ||
304 | 277 | ||
305 | /* Process multi-block batch */ | 278 | /* Process multi-block batch */ |
306 | if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) { | 279 | if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) { |
307 | do { | 280 | do { |
308 | /* create ctrblks for parallel encrypt */ | 281 | cast5_ctr_16way(ctx, (u8 *)dst, (u8 *)src, |
309 | for (i = 0; i < CAST5_PARALLEL_BLOCKS; i++) { | 282 | (__be64 *)walk->iv); |
310 | if (dst != src) | ||
311 | dst[i] = src[i]; | ||
312 | |||
313 | ctrblocks[i] = cpu_to_be64(ctrblk++); | ||
314 | } | ||
315 | |||
316 | cast5_enc_blk_xway_xor(ctx, (u8 *)dst, | ||
317 | (u8 *)ctrblocks); | ||
318 | 283 | ||
319 | src += CAST5_PARALLEL_BLOCKS; | 284 | src += CAST5_PARALLEL_BLOCKS; |
320 | dst += CAST5_PARALLEL_BLOCKS; | 285 | dst += CAST5_PARALLEL_BLOCKS; |
@@ -327,13 +292,16 @@ static unsigned int __ctr_crypt(struct blkcipher_desc *desc, | |||
327 | 292 | ||
328 | /* Handle leftovers */ | 293 | /* Handle leftovers */ |
329 | do { | 294 | do { |
295 | u64 ctrblk; | ||
296 | |||
330 | if (dst != src) | 297 | if (dst != src) |
331 | *dst = *src; | 298 | *dst = *src; |
332 | 299 | ||
333 | ctrblocks[0] = cpu_to_be64(ctrblk++); | 300 | ctrblk = *(u64 *)walk->iv; |
301 | be64_add_cpu((__be64 *)walk->iv, 1); | ||
334 | 302 | ||
335 | __cast5_encrypt(ctx, (u8 *)ctrblocks, (u8 *)ctrblocks); | 303 | __cast5_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); |
336 | *dst ^= ctrblocks[0]; | 304 | *dst ^= ctrblk; |
337 | 305 | ||
338 | src += 1; | 306 | src += 1; |
339 | dst += 1; | 307 | dst += 1; |
@@ -341,7 +309,6 @@ static unsigned int __ctr_crypt(struct blkcipher_desc *desc, | |||
341 | } while (nbytes >= bsize); | 309 | } while (nbytes >= bsize); |
342 | 310 | ||
343 | done: | 311 | done: |
344 | *(__be64 *)walk->iv = cpu_to_be64(ctrblk); | ||
345 | return nbytes; | 312 | return nbytes; |
346 | } | 313 | } |
347 | 314 | ||
diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S index 218d283772f4..2569d0da841f 100644 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S | |||
@@ -23,22 +23,24 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include "glue_helper-asm-avx.S" | ||
27 | |||
26 | .file "cast6-avx-x86_64-asm_64.S" | 28 | .file "cast6-avx-x86_64-asm_64.S" |
27 | 29 | ||
28 | .extern cast6_s1 | 30 | .extern cast_s1 |
29 | .extern cast6_s2 | 31 | .extern cast_s2 |
30 | .extern cast6_s3 | 32 | .extern cast_s3 |
31 | .extern cast6_s4 | 33 | .extern cast_s4 |
32 | 34 | ||
33 | /* structure of crypto context */ | 35 | /* structure of crypto context */ |
34 | #define km 0 | 36 | #define km 0 |
35 | #define kr (12*4*4) | 37 | #define kr (12*4*4) |
36 | 38 | ||
37 | /* s-boxes */ | 39 | /* s-boxes */ |
38 | #define s1 cast6_s1 | 40 | #define s1 cast_s1 |
39 | #define s2 cast6_s2 | 41 | #define s2 cast_s2 |
40 | #define s3 cast6_s3 | 42 | #define s3 cast_s3 |
41 | #define s4 cast6_s4 | 43 | #define s4 cast_s4 |
42 | 44 | ||
43 | /********************************************************************** | 45 | /********************************************************************** |
44 | 8-way AVX cast6 | 46 | 8-way AVX cast6 |
@@ -205,11 +207,7 @@ | |||
205 | vpunpcklqdq x3, t2, x2; \ | 207 | vpunpcklqdq x3, t2, x2; \ |
206 | vpunpckhqdq x3, t2, x3; | 208 | vpunpckhqdq x3, t2, x3; |
207 | 209 | ||
208 | #define inpack_blocks(in, x0, x1, x2, x3, t0, t1, t2, rmask) \ | 210 | #define inpack_blocks(x0, x1, x2, x3, t0, t1, t2, rmask) \ |
209 | vmovdqu (0*4*4)(in), x0; \ | ||
210 | vmovdqu (1*4*4)(in), x1; \ | ||
211 | vmovdqu (2*4*4)(in), x2; \ | ||
212 | vmovdqu (3*4*4)(in), x3; \ | ||
213 | vpshufb rmask, x0, x0; \ | 211 | vpshufb rmask, x0, x0; \ |
214 | vpshufb rmask, x1, x1; \ | 212 | vpshufb rmask, x1, x1; \ |
215 | vpshufb rmask, x2, x2; \ | 213 | vpshufb rmask, x2, x2; \ |
@@ -217,39 +215,21 @@ | |||
217 | \ | 215 | \ |
218 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) | 216 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) |
219 | 217 | ||
220 | #define outunpack_blocks(out, x0, x1, x2, x3, t0, t1, t2, rmask) \ | 218 | #define outunpack_blocks(x0, x1, x2, x3, t0, t1, t2, rmask) \ |
221 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | 219 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ |
222 | \ | 220 | \ |
223 | vpshufb rmask, x0, x0; \ | 221 | vpshufb rmask, x0, x0; \ |
224 | vpshufb rmask, x1, x1; \ | 222 | vpshufb rmask, x1, x1; \ |
225 | vpshufb rmask, x2, x2; \ | 223 | vpshufb rmask, x2, x2; \ |
226 | vpshufb rmask, x3, x3; \ | 224 | vpshufb rmask, x3, x3; |
227 | vmovdqu x0, (0*4*4)(out); \ | ||
228 | vmovdqu x1, (1*4*4)(out); \ | ||
229 | vmovdqu x2, (2*4*4)(out); \ | ||
230 | vmovdqu x3, (3*4*4)(out); | ||
231 | |||
232 | #define outunpack_xor_blocks(out, x0, x1, x2, x3, t0, t1, t2, rmask) \ | ||
233 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | ||
234 | \ | ||
235 | vpshufb rmask, x0, x0; \ | ||
236 | vpshufb rmask, x1, x1; \ | ||
237 | vpshufb rmask, x2, x2; \ | ||
238 | vpshufb rmask, x3, x3; \ | ||
239 | vpxor (0*4*4)(out), x0, x0; \ | ||
240 | vmovdqu x0, (0*4*4)(out); \ | ||
241 | vpxor (1*4*4)(out), x1, x1; \ | ||
242 | vmovdqu x1, (1*4*4)(out); \ | ||
243 | vpxor (2*4*4)(out), x2, x2; \ | ||
244 | vmovdqu x2, (2*4*4)(out); \ | ||
245 | vpxor (3*4*4)(out), x3, x3; \ | ||
246 | vmovdqu x3, (3*4*4)(out); | ||
247 | 225 | ||
248 | .data | 226 | .data |
249 | 227 | ||
250 | .align 16 | 228 | .align 16 |
251 | .Lbswap_mask: | 229 | .Lbswap_mask: |
252 | .byte 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 | 230 | .byte 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 |
231 | .Lbswap128_mask: | ||
232 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | ||
253 | .Lrkr_enc_Q_Q_QBAR_QBAR: | 233 | .Lrkr_enc_Q_Q_QBAR_QBAR: |
254 | .byte 0, 1, 2, 3, 4, 5, 6, 7, 11, 10, 9, 8, 15, 14, 13, 12 | 234 | .byte 0, 1, 2, 3, 4, 5, 6, 7, 11, 10, 9, 8, 15, 14, 13, 12 |
255 | .Lrkr_enc_QBAR_QBAR_QBAR_QBAR: | 235 | .Lrkr_enc_QBAR_QBAR_QBAR_QBAR: |
@@ -269,31 +249,26 @@ | |||
269 | 249 | ||
270 | .text | 250 | .text |
271 | 251 | ||
272 | .align 16 | 252 | .align 8 |
273 | .global __cast6_enc_blk_8way | 253 | .type __cast6_enc_blk8,@function; |
274 | .type __cast6_enc_blk_8way,@function; | ||
275 | 254 | ||
276 | __cast6_enc_blk_8way: | 255 | __cast6_enc_blk8: |
277 | /* input: | 256 | /* input: |
278 | * %rdi: ctx, CTX | 257 | * %rdi: ctx, CTX |
279 | * %rsi: dst | 258 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: blocks |
280 | * %rdx: src | 259 | * output: |
281 | * %rcx: bool, if true: xor output | 260 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: encrypted blocks |
282 | */ | 261 | */ |
283 | 262 | ||
284 | pushq %rbp; | 263 | pushq %rbp; |
285 | pushq %rbx; | 264 | pushq %rbx; |
286 | pushq %rcx; | ||
287 | 265 | ||
288 | vmovdqa .Lbswap_mask, RKM; | 266 | vmovdqa .Lbswap_mask, RKM; |
289 | vmovd .Lfirst_mask, R1ST; | 267 | vmovd .Lfirst_mask, R1ST; |
290 | vmovd .L32_mask, R32; | 268 | vmovd .L32_mask, R32; |
291 | 269 | ||
292 | leaq (4*4*4)(%rdx), %rax; | 270 | inpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); |
293 | inpack_blocks(%rdx, RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); | 271 | inpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); |
294 | inpack_blocks(%rax, RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); | ||
295 | |||
296 | movq %rsi, %r11; | ||
297 | 272 | ||
298 | preload_rkr(0, dummy, none); | 273 | preload_rkr(0, dummy, none); |
299 | Q(0); | 274 | Q(0); |
@@ -311,36 +286,25 @@ __cast6_enc_blk_8way: | |||
311 | QBAR(10); | 286 | QBAR(10); |
312 | QBAR(11); | 287 | QBAR(11); |
313 | 288 | ||
314 | popq %rcx; | ||
315 | popq %rbx; | 289 | popq %rbx; |
316 | popq %rbp; | 290 | popq %rbp; |
317 | 291 | ||
318 | vmovdqa .Lbswap_mask, RKM; | 292 | vmovdqa .Lbswap_mask, RKM; |
319 | leaq (4*4*4)(%r11), %rax; | ||
320 | |||
321 | testb %cl, %cl; | ||
322 | jnz __enc_xor8; | ||
323 | |||
324 | outunpack_blocks(%r11, RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); | ||
325 | outunpack_blocks(%rax, RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); | ||
326 | |||
327 | ret; | ||
328 | 293 | ||
329 | __enc_xor8: | 294 | outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); |
330 | outunpack_xor_blocks(%r11, RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); | 295 | outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); |
331 | outunpack_xor_blocks(%rax, RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); | ||
332 | 296 | ||
333 | ret; | 297 | ret; |
334 | 298 | ||
335 | .align 16 | 299 | .align 8 |
336 | .global cast6_dec_blk_8way | 300 | .type __cast6_dec_blk8,@function; |
337 | .type cast6_dec_blk_8way,@function; | ||
338 | 301 | ||
339 | cast6_dec_blk_8way: | 302 | __cast6_dec_blk8: |
340 | /* input: | 303 | /* input: |
341 | * %rdi: ctx, CTX | 304 | * %rdi: ctx, CTX |
342 | * %rsi: dst | 305 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: encrypted blocks |
343 | * %rdx: src | 306 | * output: |
307 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: decrypted blocks | ||
344 | */ | 308 | */ |
345 | 309 | ||
346 | pushq %rbp; | 310 | pushq %rbp; |
@@ -350,11 +314,8 @@ cast6_dec_blk_8way: | |||
350 | vmovd .Lfirst_mask, R1ST; | 314 | vmovd .Lfirst_mask, R1ST; |
351 | vmovd .L32_mask, R32; | 315 | vmovd .L32_mask, R32; |
352 | 316 | ||
353 | leaq (4*4*4)(%rdx), %rax; | 317 | inpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); |
354 | inpack_blocks(%rdx, RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); | 318 | inpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); |
355 | inpack_blocks(%rax, RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); | ||
356 | |||
357 | movq %rsi, %r11; | ||
358 | 319 | ||
359 | preload_rkr(2, shuffle, .Lrkr_dec_Q_Q_Q_Q); | 320 | preload_rkr(2, shuffle, .Lrkr_dec_Q_Q_Q_Q); |
360 | Q(11); | 321 | Q(11); |
@@ -376,8 +337,103 @@ cast6_dec_blk_8way: | |||
376 | popq %rbp; | 337 | popq %rbp; |
377 | 338 | ||
378 | vmovdqa .Lbswap_mask, RKM; | 339 | vmovdqa .Lbswap_mask, RKM; |
379 | leaq (4*4*4)(%r11), %rax; | 340 | outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); |
380 | outunpack_blocks(%r11, RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); | 341 | outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); |
381 | outunpack_blocks(%rax, RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); | 342 | |
343 | ret; | ||
344 | |||
345 | .align 8 | ||
346 | .global cast6_ecb_enc_8way | ||
347 | .type cast6_ecb_enc_8way,@function; | ||
348 | |||
349 | cast6_ecb_enc_8way: | ||
350 | /* input: | ||
351 | * %rdi: ctx, CTX | ||
352 | * %rsi: dst | ||
353 | * %rdx: src | ||
354 | */ | ||
355 | |||
356 | movq %rsi, %r11; | ||
357 | |||
358 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
359 | |||
360 | call __cast6_enc_blk8; | ||
361 | |||
362 | store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
363 | |||
364 | ret; | ||
365 | |||
366 | .align 8 | ||
367 | .global cast6_ecb_dec_8way | ||
368 | .type cast6_ecb_dec_8way,@function; | ||
369 | |||
370 | cast6_ecb_dec_8way: | ||
371 | /* input: | ||
372 | * %rdi: ctx, CTX | ||
373 | * %rsi: dst | ||
374 | * %rdx: src | ||
375 | */ | ||
376 | |||
377 | movq %rsi, %r11; | ||
378 | |||
379 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
380 | |||
381 | call __cast6_dec_blk8; | ||
382 | |||
383 | store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
384 | |||
385 | ret; | ||
386 | |||
387 | .align 8 | ||
388 | .global cast6_cbc_dec_8way | ||
389 | .type cast6_cbc_dec_8way,@function; | ||
390 | |||
391 | cast6_cbc_dec_8way: | ||
392 | /* input: | ||
393 | * %rdi: ctx, CTX | ||
394 | * %rsi: dst | ||
395 | * %rdx: src | ||
396 | */ | ||
397 | |||
398 | pushq %r12; | ||
399 | |||
400 | movq %rsi, %r11; | ||
401 | movq %rdx, %r12; | ||
402 | |||
403 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
404 | |||
405 | call __cast6_dec_blk8; | ||
406 | |||
407 | store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
408 | |||
409 | popq %r12; | ||
410 | |||
411 | ret; | ||
412 | |||
413 | .align 8 | ||
414 | .global cast6_ctr_8way | ||
415 | .type cast6_ctr_8way,@function; | ||
416 | |||
417 | cast6_ctr_8way: | ||
418 | /* input: | ||
419 | * %rdi: ctx, CTX | ||
420 | * %rsi: dst | ||
421 | * %rdx: src | ||
422 | * %rcx: iv (little endian, 128bit) | ||
423 | */ | ||
424 | |||
425 | pushq %r12; | ||
426 | |||
427 | movq %rsi, %r11; | ||
428 | movq %rdx, %r12; | ||
429 | |||
430 | load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2, | ||
431 | RD2, RX, RKR, RKM); | ||
432 | |||
433 | call __cast6_enc_blk8; | ||
434 | |||
435 | store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
436 | |||
437 | popq %r12; | ||
382 | 438 | ||
383 | ret; | 439 | ret; |
diff --git a/arch/x86/crypto/cast6_avx_glue.c b/arch/x86/crypto/cast6_avx_glue.c index 15e5f85a5011..92f7ca24790a 100644 --- a/arch/x86/crypto/cast6_avx_glue.c +++ b/arch/x86/crypto/cast6_avx_glue.c | |||
@@ -40,79 +40,34 @@ | |||
40 | 40 | ||
41 | #define CAST6_PARALLEL_BLOCKS 8 | 41 | #define CAST6_PARALLEL_BLOCKS 8 |
42 | 42 | ||
43 | asmlinkage void __cast6_enc_blk_8way(struct cast6_ctx *ctx, u8 *dst, | 43 | asmlinkage void cast6_ecb_enc_8way(struct cast6_ctx *ctx, u8 *dst, |
44 | const u8 *src, bool xor); | 44 | const u8 *src); |
45 | asmlinkage void cast6_dec_blk_8way(struct cast6_ctx *ctx, u8 *dst, | 45 | asmlinkage void cast6_ecb_dec_8way(struct cast6_ctx *ctx, u8 *dst, |
46 | const u8 *src); | 46 | const u8 *src); |
47 | 47 | ||
48 | static inline void cast6_enc_blk_xway(struct cast6_ctx *ctx, u8 *dst, | 48 | asmlinkage void cast6_cbc_dec_8way(struct cast6_ctx *ctx, u8 *dst, |
49 | const u8 *src) | 49 | const u8 *src); |
50 | { | 50 | asmlinkage void cast6_ctr_8way(struct cast6_ctx *ctx, u8 *dst, const u8 *src, |
51 | __cast6_enc_blk_8way(ctx, dst, src, false); | 51 | le128 *iv); |
52 | } | ||
53 | |||
54 | static inline void cast6_enc_blk_xway_xor(struct cast6_ctx *ctx, u8 *dst, | ||
55 | const u8 *src) | ||
56 | { | ||
57 | __cast6_enc_blk_8way(ctx, dst, src, true); | ||
58 | } | ||
59 | |||
60 | static inline void cast6_dec_blk_xway(struct cast6_ctx *ctx, u8 *dst, | ||
61 | const u8 *src) | ||
62 | { | ||
63 | cast6_dec_blk_8way(ctx, dst, src); | ||
64 | } | ||
65 | |||
66 | |||
67 | static void cast6_decrypt_cbc_xway(void *ctx, u128 *dst, const u128 *src) | ||
68 | { | ||
69 | u128 ivs[CAST6_PARALLEL_BLOCKS - 1]; | ||
70 | unsigned int j; | ||
71 | |||
72 | for (j = 0; j < CAST6_PARALLEL_BLOCKS - 1; j++) | ||
73 | ivs[j] = src[j]; | ||
74 | |||
75 | cast6_dec_blk_xway(ctx, (u8 *)dst, (u8 *)src); | ||
76 | |||
77 | for (j = 0; j < CAST6_PARALLEL_BLOCKS - 1; j++) | ||
78 | u128_xor(dst + (j + 1), dst + (j + 1), ivs + j); | ||
79 | } | ||
80 | 52 | ||
81 | static void cast6_crypt_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | 53 | static void cast6_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
82 | { | 54 | { |
83 | be128 ctrblk; | 55 | be128 ctrblk; |
84 | 56 | ||
85 | u128_to_be128(&ctrblk, iv); | 57 | le128_to_be128(&ctrblk, iv); |
86 | u128_inc(iv); | 58 | le128_inc(iv); |
87 | 59 | ||
88 | __cast6_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); | 60 | __cast6_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); |
89 | u128_xor(dst, src, (u128 *)&ctrblk); | 61 | u128_xor(dst, src, (u128 *)&ctrblk); |
90 | } | 62 | } |
91 | 63 | ||
92 | static void cast6_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src, | ||
93 | u128 *iv) | ||
94 | { | ||
95 | be128 ctrblks[CAST6_PARALLEL_BLOCKS]; | ||
96 | unsigned int i; | ||
97 | |||
98 | for (i = 0; i < CAST6_PARALLEL_BLOCKS; i++) { | ||
99 | if (dst != src) | ||
100 | dst[i] = src[i]; | ||
101 | |||
102 | u128_to_be128(&ctrblks[i], iv); | ||
103 | u128_inc(iv); | ||
104 | } | ||
105 | |||
106 | cast6_enc_blk_xway_xor(ctx, (u8 *)dst, (u8 *)ctrblks); | ||
107 | } | ||
108 | |||
109 | static const struct common_glue_ctx cast6_enc = { | 64 | static const struct common_glue_ctx cast6_enc = { |
110 | .num_funcs = 2, | 65 | .num_funcs = 2, |
111 | .fpu_blocks_limit = CAST6_PARALLEL_BLOCKS, | 66 | .fpu_blocks_limit = CAST6_PARALLEL_BLOCKS, |
112 | 67 | ||
113 | .funcs = { { | 68 | .funcs = { { |
114 | .num_blocks = CAST6_PARALLEL_BLOCKS, | 69 | .num_blocks = CAST6_PARALLEL_BLOCKS, |
115 | .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_enc_blk_xway) } | 70 | .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_enc_8way) } |
116 | }, { | 71 | }, { |
117 | .num_blocks = 1, | 72 | .num_blocks = 1, |
118 | .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_encrypt) } | 73 | .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_encrypt) } |
@@ -125,7 +80,7 @@ static const struct common_glue_ctx cast6_ctr = { | |||
125 | 80 | ||
126 | .funcs = { { | 81 | .funcs = { { |
127 | .num_blocks = CAST6_PARALLEL_BLOCKS, | 82 | .num_blocks = CAST6_PARALLEL_BLOCKS, |
128 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_crypt_ctr_xway) } | 83 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_ctr_8way) } |
129 | }, { | 84 | }, { |
130 | .num_blocks = 1, | 85 | .num_blocks = 1, |
131 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_crypt_ctr) } | 86 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(cast6_crypt_ctr) } |
@@ -138,7 +93,7 @@ static const struct common_glue_ctx cast6_dec = { | |||
138 | 93 | ||
139 | .funcs = { { | 94 | .funcs = { { |
140 | .num_blocks = CAST6_PARALLEL_BLOCKS, | 95 | .num_blocks = CAST6_PARALLEL_BLOCKS, |
141 | .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_dec_blk_xway) } | 96 | .fn_u = { .ecb = GLUE_FUNC_CAST(cast6_ecb_dec_8way) } |
142 | }, { | 97 | }, { |
143 | .num_blocks = 1, | 98 | .num_blocks = 1, |
144 | .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_decrypt) } | 99 | .fn_u = { .ecb = GLUE_FUNC_CAST(__cast6_decrypt) } |
@@ -151,7 +106,7 @@ static const struct common_glue_ctx cast6_dec_cbc = { | |||
151 | 106 | ||
152 | .funcs = { { | 107 | .funcs = { { |
153 | .num_blocks = CAST6_PARALLEL_BLOCKS, | 108 | .num_blocks = CAST6_PARALLEL_BLOCKS, |
154 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(cast6_decrypt_cbc_xway) } | 109 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(cast6_cbc_dec_8way) } |
155 | }, { | 110 | }, { |
156 | .num_blocks = 1, | 111 | .num_blocks = 1, |
157 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__cast6_decrypt) } | 112 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__cast6_decrypt) } |
@@ -215,7 +170,7 @@ static void encrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
215 | ctx->fpu_enabled = cast6_fpu_begin(ctx->fpu_enabled, nbytes); | 170 | ctx->fpu_enabled = cast6_fpu_begin(ctx->fpu_enabled, nbytes); |
216 | 171 | ||
217 | if (nbytes == bsize * CAST6_PARALLEL_BLOCKS) { | 172 | if (nbytes == bsize * CAST6_PARALLEL_BLOCKS) { |
218 | cast6_enc_blk_xway(ctx->ctx, srcdst, srcdst); | 173 | cast6_ecb_enc_8way(ctx->ctx, srcdst, srcdst); |
219 | return; | 174 | return; |
220 | } | 175 | } |
221 | 176 | ||
@@ -232,7 +187,7 @@ static void decrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
232 | ctx->fpu_enabled = cast6_fpu_begin(ctx->fpu_enabled, nbytes); | 187 | ctx->fpu_enabled = cast6_fpu_begin(ctx->fpu_enabled, nbytes); |
233 | 188 | ||
234 | if (nbytes == bsize * CAST6_PARALLEL_BLOCKS) { | 189 | if (nbytes == bsize * CAST6_PARALLEL_BLOCKS) { |
235 | cast6_dec_blk_xway(ctx->ctx, srcdst, srcdst); | 190 | cast6_ecb_dec_8way(ctx->ctx, srcdst, srcdst); |
236 | return; | 191 | return; |
237 | } | 192 | } |
238 | 193 | ||
diff --git a/arch/x86/crypto/crc32c-intel.c b/arch/x86/crypto/crc32c-intel_glue.c index 493f959261f7..6812ad98355c 100644 --- a/arch/x86/crypto/crc32c-intel.c +++ b/arch/x86/crypto/crc32c-intel_glue.c | |||
@@ -32,6 +32,8 @@ | |||
32 | 32 | ||
33 | #include <asm/cpufeature.h> | 33 | #include <asm/cpufeature.h> |
34 | #include <asm/cpu_device_id.h> | 34 | #include <asm/cpu_device_id.h> |
35 | #include <asm/i387.h> | ||
36 | #include <asm/fpu-internal.h> | ||
35 | 37 | ||
36 | #define CHKSUM_BLOCK_SIZE 1 | 38 | #define CHKSUM_BLOCK_SIZE 1 |
37 | #define CHKSUM_DIGEST_SIZE 4 | 39 | #define CHKSUM_DIGEST_SIZE 4 |
@@ -44,6 +46,31 @@ | |||
44 | #define REX_PRE | 46 | #define REX_PRE |
45 | #endif | 47 | #endif |
46 | 48 | ||
49 | #ifdef CONFIG_X86_64 | ||
50 | /* | ||
51 | * use carryless multiply version of crc32c when buffer | ||
52 | * size is >= 512 (when eager fpu is enabled) or | ||
53 | * >= 1024 (when eager fpu is disabled) to account | ||
54 | * for fpu state save/restore overhead. | ||
55 | */ | ||
56 | #define CRC32C_PCL_BREAKEVEN_EAGERFPU 512 | ||
57 | #define CRC32C_PCL_BREAKEVEN_NOEAGERFPU 1024 | ||
58 | |||
59 | asmlinkage unsigned int crc_pcl(const u8 *buffer, int len, | ||
60 | unsigned int crc_init); | ||
61 | static int crc32c_pcl_breakeven = CRC32C_PCL_BREAKEVEN_EAGERFPU; | ||
62 | #if defined(X86_FEATURE_EAGER_FPU) | ||
63 | #define set_pcl_breakeven_point() \ | ||
64 | do { \ | ||
65 | if (!use_eager_fpu()) \ | ||
66 | crc32c_pcl_breakeven = CRC32C_PCL_BREAKEVEN_NOEAGERFPU; \ | ||
67 | } while (0) | ||
68 | #else | ||
69 | #define set_pcl_breakeven_point() \ | ||
70 | (crc32c_pcl_breakeven = CRC32C_PCL_BREAKEVEN_NOEAGERFPU) | ||
71 | #endif | ||
72 | #endif /* CONFIG_X86_64 */ | ||
73 | |||
47 | static u32 crc32c_intel_le_hw_byte(u32 crc, unsigned char const *data, size_t length) | 74 | static u32 crc32c_intel_le_hw_byte(u32 crc, unsigned char const *data, size_t length) |
48 | { | 75 | { |
49 | while (length--) { | 76 | while (length--) { |
@@ -154,6 +181,52 @@ static int crc32c_intel_cra_init(struct crypto_tfm *tfm) | |||
154 | return 0; | 181 | return 0; |
155 | } | 182 | } |
156 | 183 | ||
184 | #ifdef CONFIG_X86_64 | ||
185 | static int crc32c_pcl_intel_update(struct shash_desc *desc, const u8 *data, | ||
186 | unsigned int len) | ||
187 | { | ||
188 | u32 *crcp = shash_desc_ctx(desc); | ||
189 | |||
190 | /* | ||
191 | * use faster PCL version if datasize is large enough to | ||
192 | * overcome kernel fpu state save/restore overhead | ||
193 | */ | ||
194 | if (len >= crc32c_pcl_breakeven && irq_fpu_usable()) { | ||
195 | kernel_fpu_begin(); | ||
196 | *crcp = crc_pcl(data, len, *crcp); | ||
197 | kernel_fpu_end(); | ||
198 | } else | ||
199 | *crcp = crc32c_intel_le_hw(*crcp, data, len); | ||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static int __crc32c_pcl_intel_finup(u32 *crcp, const u8 *data, unsigned int len, | ||
204 | u8 *out) | ||
205 | { | ||
206 | if (len >= crc32c_pcl_breakeven && irq_fpu_usable()) { | ||
207 | kernel_fpu_begin(); | ||
208 | *(__le32 *)out = ~cpu_to_le32(crc_pcl(data, len, *crcp)); | ||
209 | kernel_fpu_end(); | ||
210 | } else | ||
211 | *(__le32 *)out = | ||
212 | ~cpu_to_le32(crc32c_intel_le_hw(*crcp, data, len)); | ||
213 | return 0; | ||
214 | } | ||
215 | |||
216 | static int crc32c_pcl_intel_finup(struct shash_desc *desc, const u8 *data, | ||
217 | unsigned int len, u8 *out) | ||
218 | { | ||
219 | return __crc32c_pcl_intel_finup(shash_desc_ctx(desc), data, len, out); | ||
220 | } | ||
221 | |||
222 | static int crc32c_pcl_intel_digest(struct shash_desc *desc, const u8 *data, | ||
223 | unsigned int len, u8 *out) | ||
224 | { | ||
225 | return __crc32c_pcl_intel_finup(crypto_shash_ctx(desc->tfm), data, len, | ||
226 | out); | ||
227 | } | ||
228 | #endif /* CONFIG_X86_64 */ | ||
229 | |||
157 | static struct shash_alg alg = { | 230 | static struct shash_alg alg = { |
158 | .setkey = crc32c_intel_setkey, | 231 | .setkey = crc32c_intel_setkey, |
159 | .init = crc32c_intel_init, | 232 | .init = crc32c_intel_init, |
@@ -184,6 +257,14 @@ static int __init crc32c_intel_mod_init(void) | |||
184 | { | 257 | { |
185 | if (!x86_match_cpu(crc32c_cpu_id)) | 258 | if (!x86_match_cpu(crc32c_cpu_id)) |
186 | return -ENODEV; | 259 | return -ENODEV; |
260 | #ifdef CONFIG_X86_64 | ||
261 | if (cpu_has_pclmulqdq) { | ||
262 | alg.update = crc32c_pcl_intel_update; | ||
263 | alg.finup = crc32c_pcl_intel_finup; | ||
264 | alg.digest = crc32c_pcl_intel_digest; | ||
265 | set_pcl_breakeven_point(); | ||
266 | } | ||
267 | #endif | ||
187 | return crypto_register_shash(&alg); | 268 | return crypto_register_shash(&alg); |
188 | } | 269 | } |
189 | 270 | ||
diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S new file mode 100644 index 000000000000..93c6d39237ac --- /dev/null +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S | |||
@@ -0,0 +1,460 @@ | |||
1 | /* | ||
2 | * Implement fast CRC32C with PCLMULQDQ instructions. (x86_64) | ||
3 | * | ||
4 | * The white paper on CRC32C calculations with PCLMULQDQ instruction can be | ||
5 | * downloaded from: | ||
6 | * http://download.intel.com/design/intarch/papers/323405.pdf | ||
7 | * | ||
8 | * Copyright (C) 2012 Intel Corporation. | ||
9 | * | ||
10 | * Authors: | ||
11 | * Wajdi Feghali <wajdi.k.feghali@intel.com> | ||
12 | * James Guilford <james.guilford@intel.com> | ||
13 | * David Cote <david.m.cote@intel.com> | ||
14 | * Tim Chen <tim.c.chen@linux.intel.com> | ||
15 | * | ||
16 | * This software is available to you under a choice of one of two | ||
17 | * licenses. You may choose to be licensed under the terms of the GNU | ||
18 | * General Public License (GPL) Version 2, available from the file | ||
19 | * COPYING in the main directory of this source tree, or the | ||
20 | * OpenIB.org BSD license below: | ||
21 | * | ||
22 | * Redistribution and use in source and binary forms, with or | ||
23 | * without modification, are permitted provided that the following | ||
24 | * conditions are met: | ||
25 | * | ||
26 | * - Redistributions of source code must retain the above | ||
27 | * copyright notice, this list of conditions and the following | ||
28 | * disclaimer. | ||
29 | * | ||
30 | * - Redistributions in binary form must reproduce the above | ||
31 | * copyright notice, this list of conditions and the following | ||
32 | * disclaimer in the documentation and/or other materials | ||
33 | * provided with the distribution. | ||
34 | * | ||
35 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
36 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
37 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
38 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
39 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
40 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
41 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
42 | * SOFTWARE. | ||
43 | */ | ||
44 | |||
45 | ## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction | ||
46 | |||
47 | .macro LABEL prefix n | ||
48 | \prefix\n\(): | ||
49 | .endm | ||
50 | |||
51 | .macro JMPTBL_ENTRY i | ||
52 | .word crc_\i - crc_array | ||
53 | .endm | ||
54 | |||
55 | .macro JNC_LESS_THAN j | ||
56 | jnc less_than_\j | ||
57 | .endm | ||
58 | |||
59 | # Define threshold where buffers are considered "small" and routed to more | ||
60 | # efficient "by-1" code. This "by-1" code only handles up to 255 bytes, so | ||
61 | # SMALL_SIZE can be no larger than 255. | ||
62 | |||
63 | #define SMALL_SIZE 200 | ||
64 | |||
65 | .if (SMALL_SIZE > 255) | ||
66 | .error "SMALL_ SIZE must be < 256" | ||
67 | .endif | ||
68 | |||
69 | # unsigned int crc_pcl(u8 *buffer, int len, unsigned int crc_init); | ||
70 | |||
71 | .global crc_pcl | ||
72 | crc_pcl: | ||
73 | #define bufp %rdi | ||
74 | #define bufp_dw %edi | ||
75 | #define bufp_w %di | ||
76 | #define bufp_b %dil | ||
77 | #define bufptmp %rcx | ||
78 | #define block_0 %rcx | ||
79 | #define block_1 %rdx | ||
80 | #define block_2 %r11 | ||
81 | #define len %rsi | ||
82 | #define len_dw %esi | ||
83 | #define len_w %si | ||
84 | #define len_b %sil | ||
85 | #define crc_init_arg %rdx | ||
86 | #define tmp %rbx | ||
87 | #define crc_init %r8 | ||
88 | #define crc_init_dw %r8d | ||
89 | #define crc1 %r9 | ||
90 | #define crc2 %r10 | ||
91 | |||
92 | pushq %rbx | ||
93 | pushq %rdi | ||
94 | pushq %rsi | ||
95 | |||
96 | ## Move crc_init for Linux to a different | ||
97 | mov crc_init_arg, crc_init | ||
98 | |||
99 | ################################################################ | ||
100 | ## 1) ALIGN: | ||
101 | ################################################################ | ||
102 | |||
103 | mov bufp, bufptmp # rdi = *buf | ||
104 | neg bufp | ||
105 | and $7, bufp # calculate the unalignment amount of | ||
106 | # the address | ||
107 | je proc_block # Skip if aligned | ||
108 | |||
109 | ## If len is less than 8 and we're unaligned, we need to jump | ||
110 | ## to special code to avoid reading beyond the end of the buffer | ||
111 | cmp $8, len | ||
112 | jae do_align | ||
113 | # less_than_8 expects length in upper 3 bits of len_dw | ||
114 | # less_than_8_post_shl1 expects length = carryflag * 8 + len_dw[31:30] | ||
115 | shl $32-3+1, len_dw | ||
116 | jmp less_than_8_post_shl1 | ||
117 | |||
118 | do_align: | ||
119 | #### Calculate CRC of unaligned bytes of the buffer (if any) | ||
120 | movq (bufptmp), tmp # load a quadward from the buffer | ||
121 | add bufp, bufptmp # align buffer pointer for quadword | ||
122 | # processing | ||
123 | sub bufp, len # update buffer length | ||
124 | align_loop: | ||
125 | crc32b %bl, crc_init_dw # compute crc32 of 1-byte | ||
126 | shr $8, tmp # get next byte | ||
127 | dec bufp | ||
128 | jne align_loop | ||
129 | |||
130 | proc_block: | ||
131 | |||
132 | ################################################################ | ||
133 | ## 2) PROCESS BLOCKS: | ||
134 | ################################################################ | ||
135 | |||
136 | ## compute num of bytes to be processed | ||
137 | movq len, tmp # save num bytes in tmp | ||
138 | |||
139 | cmpq $128*24, len | ||
140 | jae full_block | ||
141 | |||
142 | continue_block: | ||
143 | cmpq $SMALL_SIZE, len | ||
144 | jb small | ||
145 | |||
146 | ## len < 128*24 | ||
147 | movq $2731, %rax # 2731 = ceil(2^16 / 24) | ||
148 | mul len_dw | ||
149 | shrq $16, %rax | ||
150 | |||
151 | ## eax contains floor(bytes / 24) = num 24-byte chunks to do | ||
152 | |||
153 | ## process rax 24-byte chunks (128 >= rax >= 0) | ||
154 | |||
155 | ## compute end address of each block | ||
156 | ## block 0 (base addr + RAX * 8) | ||
157 | ## block 1 (base addr + RAX * 16) | ||
158 | ## block 2 (base addr + RAX * 24) | ||
159 | lea (bufptmp, %rax, 8), block_0 | ||
160 | lea (block_0, %rax, 8), block_1 | ||
161 | lea (block_1, %rax, 8), block_2 | ||
162 | |||
163 | xor crc1, crc1 | ||
164 | xor crc2, crc2 | ||
165 | |||
166 | ## branch into array | ||
167 | lea jump_table(%rip), bufp | ||
168 | movzxw (bufp, %rax, 2), len | ||
169 | offset=crc_array-jump_table | ||
170 | lea offset(bufp, len, 1), bufp | ||
171 | jmp *bufp | ||
172 | |||
173 | ################################################################ | ||
174 | ## 2a) PROCESS FULL BLOCKS: | ||
175 | ################################################################ | ||
176 | full_block: | ||
177 | movq $128,%rax | ||
178 | lea 128*8*2(block_0), block_1 | ||
179 | lea 128*8*3(block_0), block_2 | ||
180 | add $128*8*1, block_0 | ||
181 | |||
182 | xor crc1,crc1 | ||
183 | xor crc2,crc2 | ||
184 | |||
185 | # Fall thruogh into top of crc array (crc_128) | ||
186 | |||
187 | ################################################################ | ||
188 | ## 3) CRC Array: | ||
189 | ################################################################ | ||
190 | |||
191 | crc_array: | ||
192 | i=128 | ||
193 | .rept 128-1 | ||
194 | .altmacro | ||
195 | LABEL crc_ %i | ||
196 | .noaltmacro | ||
197 | crc32q -i*8(block_0), crc_init | ||
198 | crc32q -i*8(block_1), crc1 | ||
199 | crc32q -i*8(block_2), crc2 | ||
200 | i=(i-1) | ||
201 | .endr | ||
202 | |||
203 | .altmacro | ||
204 | LABEL crc_ %i | ||
205 | .noaltmacro | ||
206 | crc32q -i*8(block_0), crc_init | ||
207 | crc32q -i*8(block_1), crc1 | ||
208 | # SKIP crc32 -i*8(block_2), crc2 ; Don't do this one yet | ||
209 | |||
210 | mov block_2, block_0 | ||
211 | |||
212 | ################################################################ | ||
213 | ## 4) Combine three results: | ||
214 | ################################################################ | ||
215 | |||
216 | lea (K_table-16)(%rip), bufp # first entry is for idx 1 | ||
217 | shlq $3, %rax # rax *= 8 | ||
218 | subq %rax, tmp # tmp -= rax*8 | ||
219 | shlq $1, %rax | ||
220 | subq %rax, tmp # tmp -= rax*16 | ||
221 | # (total tmp -= rax*24) | ||
222 | addq %rax, bufp | ||
223 | |||
224 | movdqa (bufp), %xmm0 # 2 consts: K1:K2 | ||
225 | |||
226 | movq crc_init, %xmm1 # CRC for block 1 | ||
227 | pclmulqdq $0x00,%xmm0,%xmm1 # Multiply by K2 | ||
228 | |||
229 | movq crc1, %xmm2 # CRC for block 2 | ||
230 | pclmulqdq $0x10, %xmm0, %xmm2 # Multiply by K1 | ||
231 | |||
232 | pxor %xmm2,%xmm1 | ||
233 | movq %xmm1, %rax | ||
234 | xor -i*8(block_2), %rax | ||
235 | mov crc2, crc_init | ||
236 | crc32 %rax, crc_init | ||
237 | |||
238 | ################################################################ | ||
239 | ## 5) Check for end: | ||
240 | ################################################################ | ||
241 | |||
242 | LABEL crc_ 0 | ||
243 | mov tmp, len | ||
244 | cmp $128*24, tmp | ||
245 | jae full_block | ||
246 | cmp $24, tmp | ||
247 | jae continue_block | ||
248 | |||
249 | less_than_24: | ||
250 | shl $32-4, len_dw # less_than_16 expects length | ||
251 | # in upper 4 bits of len_dw | ||
252 | jnc less_than_16 | ||
253 | crc32q (bufptmp), crc_init | ||
254 | crc32q 8(bufptmp), crc_init | ||
255 | jz do_return | ||
256 | add $16, bufptmp | ||
257 | # len is less than 8 if we got here | ||
258 | # less_than_8 expects length in upper 3 bits of len_dw | ||
259 | # less_than_8_post_shl1 expects length = carryflag * 8 + len_dw[31:30] | ||
260 | shl $2, len_dw | ||
261 | jmp less_than_8_post_shl1 | ||
262 | |||
263 | ####################################################################### | ||
264 | ## 6) LESS THAN 256-bytes REMAIN AT THIS POINT (8-bits of len are full) | ||
265 | ####################################################################### | ||
266 | small: | ||
267 | shl $32-8, len_dw # Prepare len_dw for less_than_256 | ||
268 | j=256 | ||
269 | .rept 5 # j = {256, 128, 64, 32, 16} | ||
270 | .altmacro | ||
271 | LABEL less_than_ %j # less_than_j: Length should be in | ||
272 | # upper lg(j) bits of len_dw | ||
273 | j=(j/2) | ||
274 | shl $1, len_dw # Get next MSB | ||
275 | JNC_LESS_THAN %j | ||
276 | .noaltmacro | ||
277 | i=0 | ||
278 | .rept (j/8) | ||
279 | crc32q i(bufptmp), crc_init # Compute crc32 of 8-byte data | ||
280 | i=i+8 | ||
281 | .endr | ||
282 | jz do_return # Return if remaining length is zero | ||
283 | add $j, bufptmp # Advance buf | ||
284 | .endr | ||
285 | |||
286 | less_than_8: # Length should be stored in | ||
287 | # upper 3 bits of len_dw | ||
288 | shl $1, len_dw | ||
289 | less_than_8_post_shl1: | ||
290 | jnc less_than_4 | ||
291 | crc32l (bufptmp), crc_init_dw # CRC of 4 bytes | ||
292 | jz do_return # return if remaining data is zero | ||
293 | add $4, bufptmp | ||
294 | less_than_4: # Length should be stored in | ||
295 | # upper 2 bits of len_dw | ||
296 | shl $1, len_dw | ||
297 | jnc less_than_2 | ||
298 | crc32w (bufptmp), crc_init_dw # CRC of 2 bytes | ||
299 | jz do_return # return if remaining data is zero | ||
300 | add $2, bufptmp | ||
301 | less_than_2: # Length should be stored in the MSB | ||
302 | # of len_dw | ||
303 | shl $1, len_dw | ||
304 | jnc less_than_1 | ||
305 | crc32b (bufptmp), crc_init_dw # CRC of 1 byte | ||
306 | less_than_1: # Length should be zero | ||
307 | do_return: | ||
308 | movq crc_init, %rax | ||
309 | popq %rsi | ||
310 | popq %rdi | ||
311 | popq %rbx | ||
312 | ret | ||
313 | |||
314 | ################################################################ | ||
315 | ## jump table Table is 129 entries x 2 bytes each | ||
316 | ################################################################ | ||
317 | .align 4 | ||
318 | jump_table: | ||
319 | i=0 | ||
320 | .rept 129 | ||
321 | .altmacro | ||
322 | JMPTBL_ENTRY %i | ||
323 | .noaltmacro | ||
324 | i=i+1 | ||
325 | .endr | ||
326 | ################################################################ | ||
327 | ## PCLMULQDQ tables | ||
328 | ## Table is 128 entries x 2 quad words each | ||
329 | ################################################################ | ||
330 | .data | ||
331 | .align 64 | ||
332 | K_table: | ||
333 | .quad 0x14cd00bd6,0x105ec76f0 | ||
334 | .quad 0x0ba4fc28e,0x14cd00bd6 | ||
335 | .quad 0x1d82c63da,0x0f20c0dfe | ||
336 | .quad 0x09e4addf8,0x0ba4fc28e | ||
337 | .quad 0x039d3b296,0x1384aa63a | ||
338 | .quad 0x102f9b8a2,0x1d82c63da | ||
339 | .quad 0x14237f5e6,0x01c291d04 | ||
340 | .quad 0x00d3b6092,0x09e4addf8 | ||
341 | .quad 0x0c96cfdc0,0x0740eef02 | ||
342 | .quad 0x18266e456,0x039d3b296 | ||
343 | .quad 0x0daece73e,0x0083a6eec | ||
344 | .quad 0x0ab7aff2a,0x102f9b8a2 | ||
345 | .quad 0x1248ea574,0x1c1733996 | ||
346 | .quad 0x083348832,0x14237f5e6 | ||
347 | .quad 0x12c743124,0x02ad91c30 | ||
348 | .quad 0x0b9e02b86,0x00d3b6092 | ||
349 | .quad 0x018b33a4e,0x06992cea2 | ||
350 | .quad 0x1b331e26a,0x0c96cfdc0 | ||
351 | .quad 0x17d35ba46,0x07e908048 | ||
352 | .quad 0x1bf2e8b8a,0x18266e456 | ||
353 | .quad 0x1a3e0968a,0x11ed1f9d8 | ||
354 | .quad 0x0ce7f39f4,0x0daece73e | ||
355 | .quad 0x061d82e56,0x0f1d0f55e | ||
356 | .quad 0x0d270f1a2,0x0ab7aff2a | ||
357 | .quad 0x1c3f5f66c,0x0a87ab8a8 | ||
358 | .quad 0x12ed0daac,0x1248ea574 | ||
359 | .quad 0x065863b64,0x08462d800 | ||
360 | .quad 0x11eef4f8e,0x083348832 | ||
361 | .quad 0x1ee54f54c,0x071d111a8 | ||
362 | .quad 0x0b3e32c28,0x12c743124 | ||
363 | .quad 0x0064f7f26,0x0ffd852c6 | ||
364 | .quad 0x0dd7e3b0c,0x0b9e02b86 | ||
365 | .quad 0x0f285651c,0x0dcb17aa4 | ||
366 | .quad 0x010746f3c,0x018b33a4e | ||
367 | .quad 0x1c24afea4,0x0f37c5aee | ||
368 | .quad 0x0271d9844,0x1b331e26a | ||
369 | .quad 0x08e766a0c,0x06051d5a2 | ||
370 | .quad 0x093a5f730,0x17d35ba46 | ||
371 | .quad 0x06cb08e5c,0x11d5ca20e | ||
372 | .quad 0x06b749fb2,0x1bf2e8b8a | ||
373 | .quad 0x1167f94f2,0x021f3d99c | ||
374 | .quad 0x0cec3662e,0x1a3e0968a | ||
375 | .quad 0x19329634a,0x08f158014 | ||
376 | .quad 0x0e6fc4e6a,0x0ce7f39f4 | ||
377 | .quad 0x08227bb8a,0x1a5e82106 | ||
378 | .quad 0x0b0cd4768,0x061d82e56 | ||
379 | .quad 0x13c2b89c4,0x188815ab2 | ||
380 | .quad 0x0d7a4825c,0x0d270f1a2 | ||
381 | .quad 0x10f5ff2ba,0x105405f3e | ||
382 | .quad 0x00167d312,0x1c3f5f66c | ||
383 | .quad 0x0f6076544,0x0e9adf796 | ||
384 | .quad 0x026f6a60a,0x12ed0daac | ||
385 | .quad 0x1a2adb74e,0x096638b34 | ||
386 | .quad 0x19d34af3a,0x065863b64 | ||
387 | .quad 0x049c3cc9c,0x1e50585a0 | ||
388 | .quad 0x068bce87a,0x11eef4f8e | ||
389 | .quad 0x1524fa6c6,0x19f1c69dc | ||
390 | .quad 0x16cba8aca,0x1ee54f54c | ||
391 | .quad 0x042d98888,0x12913343e | ||
392 | .quad 0x1329d9f7e,0x0b3e32c28 | ||
393 | .quad 0x1b1c69528,0x088f25a3a | ||
394 | .quad 0x02178513a,0x0064f7f26 | ||
395 | .quad 0x0e0ac139e,0x04e36f0b0 | ||
396 | .quad 0x0170076fa,0x0dd7e3b0c | ||
397 | .quad 0x141a1a2e2,0x0bd6f81f8 | ||
398 | .quad 0x16ad828b4,0x0f285651c | ||
399 | .quad 0x041d17b64,0x19425cbba | ||
400 | .quad 0x1fae1cc66,0x010746f3c | ||
401 | .quad 0x1a75b4b00,0x18db37e8a | ||
402 | .quad 0x0f872e54c,0x1c24afea4 | ||
403 | .quad 0x01e41e9fc,0x04c144932 | ||
404 | .quad 0x086d8e4d2,0x0271d9844 | ||
405 | .quad 0x160f7af7a,0x052148f02 | ||
406 | .quad 0x05bb8f1bc,0x08e766a0c | ||
407 | .quad 0x0a90fd27a,0x0a3c6f37a | ||
408 | .quad 0x0b3af077a,0x093a5f730 | ||
409 | .quad 0x04984d782,0x1d22c238e | ||
410 | .quad 0x0ca6ef3ac,0x06cb08e5c | ||
411 | .quad 0x0234e0b26,0x063ded06a | ||
412 | .quad 0x1d88abd4a,0x06b749fb2 | ||
413 | .quad 0x04597456a,0x04d56973c | ||
414 | .quad 0x0e9e28eb4,0x1167f94f2 | ||
415 | .quad 0x07b3ff57a,0x19385bf2e | ||
416 | .quad 0x0c9c8b782,0x0cec3662e | ||
417 | .quad 0x13a9cba9e,0x0e417f38a | ||
418 | .quad 0x093e106a4,0x19329634a | ||
419 | .quad 0x167001a9c,0x14e727980 | ||
420 | .quad 0x1ddffc5d4,0x0e6fc4e6a | ||
421 | .quad 0x00df04680,0x0d104b8fc | ||
422 | .quad 0x02342001e,0x08227bb8a | ||
423 | .quad 0x00a2a8d7e,0x05b397730 | ||
424 | .quad 0x168763fa6,0x0b0cd4768 | ||
425 | .quad 0x1ed5a407a,0x0e78eb416 | ||
426 | .quad 0x0d2c3ed1a,0x13c2b89c4 | ||
427 | .quad 0x0995a5724,0x1641378f0 | ||
428 | .quad 0x19b1afbc4,0x0d7a4825c | ||
429 | .quad 0x109ffedc0,0x08d96551c | ||
430 | .quad 0x0f2271e60,0x10f5ff2ba | ||
431 | .quad 0x00b0bf8ca,0x00bf80dd2 | ||
432 | .quad 0x123888b7a,0x00167d312 | ||
433 | .quad 0x1e888f7dc,0x18dcddd1c | ||
434 | .quad 0x002ee03b2,0x0f6076544 | ||
435 | .quad 0x183e8d8fe,0x06a45d2b2 | ||
436 | .quad 0x133d7a042,0x026f6a60a | ||
437 | .quad 0x116b0f50c,0x1dd3e10e8 | ||
438 | .quad 0x05fabe670,0x1a2adb74e | ||
439 | .quad 0x130004488,0x0de87806c | ||
440 | .quad 0x000bcf5f6,0x19d34af3a | ||
441 | .quad 0x18f0c7078,0x014338754 | ||
442 | .quad 0x017f27698,0x049c3cc9c | ||
443 | .quad 0x058ca5f00,0x15e3e77ee | ||
444 | .quad 0x1af900c24,0x068bce87a | ||
445 | .quad 0x0b5cfca28,0x0dd07448e | ||
446 | .quad 0x0ded288f8,0x1524fa6c6 | ||
447 | .quad 0x059f229bc,0x1d8048348 | ||
448 | .quad 0x06d390dec,0x16cba8aca | ||
449 | .quad 0x037170390,0x0a3e3e02c | ||
450 | .quad 0x06353c1cc,0x042d98888 | ||
451 | .quad 0x0c4584f5c,0x0d73c7bea | ||
452 | .quad 0x1f16a3418,0x1329d9f7e | ||
453 | .quad 0x0531377e2,0x185137662 | ||
454 | .quad 0x1d8d9ca7c,0x1b1c69528 | ||
455 | .quad 0x0b25b29f2,0x18a08b5bc | ||
456 | .quad 0x19fb2a8b0,0x02178513a | ||
457 | .quad 0x1a08fe6ac,0x1da758ae0 | ||
458 | .quad 0x045cddf4e,0x0e0ac139e | ||
459 | .quad 0x1a91647f2,0x169cf9eb0 | ||
460 | .quad 0x1a0f717c4,0x0170076fa | ||
diff --git a/arch/x86/crypto/glue_helper-asm-avx.S b/arch/x86/crypto/glue_helper-asm-avx.S new file mode 100644 index 000000000000..f7b6ea2ddfdb --- /dev/null +++ b/arch/x86/crypto/glue_helper-asm-avx.S | |||
@@ -0,0 +1,91 @@ | |||
1 | /* | ||
2 | * Shared glue code for 128bit block ciphers, AVX assembler macros | ||
3 | * | ||
4 | * Copyright (c) 2012 Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | |||
18 | #define load_8way(src, x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
19 | vmovdqu (0*16)(src), x0; \ | ||
20 | vmovdqu (1*16)(src), x1; \ | ||
21 | vmovdqu (2*16)(src), x2; \ | ||
22 | vmovdqu (3*16)(src), x3; \ | ||
23 | vmovdqu (4*16)(src), x4; \ | ||
24 | vmovdqu (5*16)(src), x5; \ | ||
25 | vmovdqu (6*16)(src), x6; \ | ||
26 | vmovdqu (7*16)(src), x7; | ||
27 | |||
28 | #define store_8way(dst, x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
29 | vmovdqu x0, (0*16)(dst); \ | ||
30 | vmovdqu x1, (1*16)(dst); \ | ||
31 | vmovdqu x2, (2*16)(dst); \ | ||
32 | vmovdqu x3, (3*16)(dst); \ | ||
33 | vmovdqu x4, (4*16)(dst); \ | ||
34 | vmovdqu x5, (5*16)(dst); \ | ||
35 | vmovdqu x6, (6*16)(dst); \ | ||
36 | vmovdqu x7, (7*16)(dst); | ||
37 | |||
38 | #define store_cbc_8way(src, dst, x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
39 | vpxor (0*16)(src), x1, x1; \ | ||
40 | vpxor (1*16)(src), x2, x2; \ | ||
41 | vpxor (2*16)(src), x3, x3; \ | ||
42 | vpxor (3*16)(src), x4, x4; \ | ||
43 | vpxor (4*16)(src), x5, x5; \ | ||
44 | vpxor (5*16)(src), x6, x6; \ | ||
45 | vpxor (6*16)(src), x7, x7; \ | ||
46 | store_8way(dst, x0, x1, x2, x3, x4, x5, x6, x7); | ||
47 | |||
48 | #define inc_le128(x, minus_one, tmp) \ | ||
49 | vpcmpeqq minus_one, x, tmp; \ | ||
50 | vpsubq minus_one, x, x; \ | ||
51 | vpslldq $8, tmp, tmp; \ | ||
52 | vpsubq tmp, x, x; | ||
53 | |||
54 | #define load_ctr_8way(iv, bswap, x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2) \ | ||
55 | vpcmpeqd t0, t0, t0; \ | ||
56 | vpsrldq $8, t0, t0; /* low: -1, high: 0 */ \ | ||
57 | vmovdqa bswap, t1; \ | ||
58 | \ | ||
59 | /* load IV and byteswap */ \ | ||
60 | vmovdqu (iv), x7; \ | ||
61 | vpshufb t1, x7, x0; \ | ||
62 | \ | ||
63 | /* construct IVs */ \ | ||
64 | inc_le128(x7, t0, t2); \ | ||
65 | vpshufb t1, x7, x1; \ | ||
66 | inc_le128(x7, t0, t2); \ | ||
67 | vpshufb t1, x7, x2; \ | ||
68 | inc_le128(x7, t0, t2); \ | ||
69 | vpshufb t1, x7, x3; \ | ||
70 | inc_le128(x7, t0, t2); \ | ||
71 | vpshufb t1, x7, x4; \ | ||
72 | inc_le128(x7, t0, t2); \ | ||
73 | vpshufb t1, x7, x5; \ | ||
74 | inc_le128(x7, t0, t2); \ | ||
75 | vpshufb t1, x7, x6; \ | ||
76 | inc_le128(x7, t0, t2); \ | ||
77 | vmovdqa x7, t2; \ | ||
78 | vpshufb t1, x7, x7; \ | ||
79 | inc_le128(t2, t0, t1); \ | ||
80 | vmovdqu t2, (iv); | ||
81 | |||
82 | #define store_ctr_8way(src, dst, x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
83 | vpxor (0*16)(src), x0, x0; \ | ||
84 | vpxor (1*16)(src), x1, x1; \ | ||
85 | vpxor (2*16)(src), x2, x2; \ | ||
86 | vpxor (3*16)(src), x3, x3; \ | ||
87 | vpxor (4*16)(src), x4, x4; \ | ||
88 | vpxor (5*16)(src), x5, x5; \ | ||
89 | vpxor (6*16)(src), x6, x6; \ | ||
90 | vpxor (7*16)(src), x7, x7; \ | ||
91 | store_8way(dst, x0, x1, x2, x3, x4, x5, x6, x7); | ||
diff --git a/arch/x86/crypto/glue_helper.c b/arch/x86/crypto/glue_helper.c index 30b3927bd733..22ce4f683e55 100644 --- a/arch/x86/crypto/glue_helper.c +++ b/arch/x86/crypto/glue_helper.c | |||
@@ -221,16 +221,16 @@ static void glue_ctr_crypt_final_128bit(const common_glue_ctr_func_t fn_ctr, | |||
221 | u8 *src = (u8 *)walk->src.virt.addr; | 221 | u8 *src = (u8 *)walk->src.virt.addr; |
222 | u8 *dst = (u8 *)walk->dst.virt.addr; | 222 | u8 *dst = (u8 *)walk->dst.virt.addr; |
223 | unsigned int nbytes = walk->nbytes; | 223 | unsigned int nbytes = walk->nbytes; |
224 | u128 ctrblk; | 224 | le128 ctrblk; |
225 | u128 tmp; | 225 | u128 tmp; |
226 | 226 | ||
227 | be128_to_u128(&ctrblk, (be128 *)walk->iv); | 227 | be128_to_le128(&ctrblk, (be128 *)walk->iv); |
228 | 228 | ||
229 | memcpy(&tmp, src, nbytes); | 229 | memcpy(&tmp, src, nbytes); |
230 | fn_ctr(ctx, &tmp, &tmp, &ctrblk); | 230 | fn_ctr(ctx, &tmp, &tmp, &ctrblk); |
231 | memcpy(dst, &tmp, nbytes); | 231 | memcpy(dst, &tmp, nbytes); |
232 | 232 | ||
233 | u128_to_be128((be128 *)walk->iv, &ctrblk); | 233 | le128_to_be128((be128 *)walk->iv, &ctrblk); |
234 | } | 234 | } |
235 | EXPORT_SYMBOL_GPL(glue_ctr_crypt_final_128bit); | 235 | EXPORT_SYMBOL_GPL(glue_ctr_crypt_final_128bit); |
236 | 236 | ||
@@ -243,11 +243,11 @@ static unsigned int __glue_ctr_crypt_128bit(const struct common_glue_ctx *gctx, | |||
243 | unsigned int nbytes = walk->nbytes; | 243 | unsigned int nbytes = walk->nbytes; |
244 | u128 *src = (u128 *)walk->src.virt.addr; | 244 | u128 *src = (u128 *)walk->src.virt.addr; |
245 | u128 *dst = (u128 *)walk->dst.virt.addr; | 245 | u128 *dst = (u128 *)walk->dst.virt.addr; |
246 | u128 ctrblk; | 246 | le128 ctrblk; |
247 | unsigned int num_blocks, func_bytes; | 247 | unsigned int num_blocks, func_bytes; |
248 | unsigned int i; | 248 | unsigned int i; |
249 | 249 | ||
250 | be128_to_u128(&ctrblk, (be128 *)walk->iv); | 250 | be128_to_le128(&ctrblk, (be128 *)walk->iv); |
251 | 251 | ||
252 | /* Process multi-block batch */ | 252 | /* Process multi-block batch */ |
253 | for (i = 0; i < gctx->num_funcs; i++) { | 253 | for (i = 0; i < gctx->num_funcs; i++) { |
@@ -269,7 +269,7 @@ static unsigned int __glue_ctr_crypt_128bit(const struct common_glue_ctx *gctx, | |||
269 | } | 269 | } |
270 | 270 | ||
271 | done: | 271 | done: |
272 | u128_to_be128((be128 *)walk->iv, &ctrblk); | 272 | le128_to_be128((be128 *)walk->iv, &ctrblk); |
273 | return nbytes; | 273 | return nbytes; |
274 | } | 274 | } |
275 | 275 | ||
diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S index 504106bf04a2..02b0e9fe997c 100644 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S | |||
@@ -24,7 +24,16 @@ | |||
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "glue_helper-asm-avx.S" | ||
28 | |||
27 | .file "serpent-avx-x86_64-asm_64.S" | 29 | .file "serpent-avx-x86_64-asm_64.S" |
30 | |||
31 | .data | ||
32 | .align 16 | ||
33 | |||
34 | .Lbswap128_mask: | ||
35 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | ||
36 | |||
28 | .text | 37 | .text |
29 | 38 | ||
30 | #define CTX %rdi | 39 | #define CTX %rdi |
@@ -550,51 +559,27 @@ | |||
550 | vpunpcklqdq x3, t2, x2; \ | 559 | vpunpcklqdq x3, t2, x2; \ |
551 | vpunpckhqdq x3, t2, x3; | 560 | vpunpckhqdq x3, t2, x3; |
552 | 561 | ||
553 | #define read_blocks(in, x0, x1, x2, x3, t0, t1, t2) \ | 562 | #define read_blocks(x0, x1, x2, x3, t0, t1, t2) \ |
554 | vmovdqu (0*4*4)(in), x0; \ | ||
555 | vmovdqu (1*4*4)(in), x1; \ | ||
556 | vmovdqu (2*4*4)(in), x2; \ | ||
557 | vmovdqu (3*4*4)(in), x3; \ | ||
558 | \ | ||
559 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) | 563 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) |
560 | 564 | ||
561 | #define write_blocks(out, x0, x1, x2, x3, t0, t1, t2) \ | 565 | #define write_blocks(x0, x1, x2, x3, t0, t1, t2) \ |
562 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | 566 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) |
563 | \ | ||
564 | vmovdqu x0, (0*4*4)(out); \ | ||
565 | vmovdqu x1, (1*4*4)(out); \ | ||
566 | vmovdqu x2, (2*4*4)(out); \ | ||
567 | vmovdqu x3, (3*4*4)(out); | ||
568 | |||
569 | #define xor_blocks(out, x0, x1, x2, x3, t0, t1, t2) \ | ||
570 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | ||
571 | \ | ||
572 | vpxor (0*4*4)(out), x0, x0; \ | ||
573 | vmovdqu x0, (0*4*4)(out); \ | ||
574 | vpxor (1*4*4)(out), x1, x1; \ | ||
575 | vmovdqu x1, (1*4*4)(out); \ | ||
576 | vpxor (2*4*4)(out), x2, x2; \ | ||
577 | vmovdqu x2, (2*4*4)(out); \ | ||
578 | vpxor (3*4*4)(out), x3, x3; \ | ||
579 | vmovdqu x3, (3*4*4)(out); | ||
580 | 567 | ||
581 | .align 8 | 568 | .align 8 |
582 | .global __serpent_enc_blk_8way_avx | 569 | .type __serpent_enc_blk8_avx,@function; |
583 | .type __serpent_enc_blk_8way_avx,@function; | ||
584 | 570 | ||
585 | __serpent_enc_blk_8way_avx: | 571 | __serpent_enc_blk8_avx: |
586 | /* input: | 572 | /* input: |
587 | * %rdi: ctx, CTX | 573 | * %rdi: ctx, CTX |
588 | * %rsi: dst | 574 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: blocks |
589 | * %rdx: src | 575 | * output: |
590 | * %rcx: bool, if true: xor output | 576 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: encrypted blocks |
591 | */ | 577 | */ |
592 | 578 | ||
593 | vpcmpeqd RNOT, RNOT, RNOT; | 579 | vpcmpeqd RNOT, RNOT, RNOT; |
594 | 580 | ||
595 | leaq (4*4*4)(%rdx), %rax; | 581 | read_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2); |
596 | read_blocks(%rdx, RA1, RB1, RC1, RD1, RK0, RK1, RK2); | 582 | read_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2); |
597 | read_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); | ||
598 | 583 | ||
599 | K2(RA, RB, RC, RD, RE, 0); | 584 | K2(RA, RB, RC, RD, RE, 0); |
600 | S(S0, RA, RB, RC, RD, RE); LK2(RC, RB, RD, RA, RE, 1); | 585 | S(S0, RA, RB, RC, RD, RE); LK2(RC, RB, RD, RA, RE, 1); |
@@ -630,38 +615,26 @@ __serpent_enc_blk_8way_avx: | |||
630 | S(S6, RA, RB, RD, RC, RE); LK2(RD, RE, RB, RC, RA, 31); | 615 | S(S6, RA, RB, RD, RC, RE); LK2(RD, RE, RB, RC, RA, 31); |
631 | S(S7, RD, RE, RB, RC, RA); K2(RA, RB, RC, RD, RE, 32); | 616 | S(S7, RD, RE, RB, RC, RA); K2(RA, RB, RC, RD, RE, 32); |
632 | 617 | ||
633 | leaq (4*4*4)(%rsi), %rax; | 618 | write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2); |
634 | 619 | write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2); | |
635 | testb %cl, %cl; | ||
636 | jnz __enc_xor8; | ||
637 | |||
638 | write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2); | ||
639 | write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); | ||
640 | |||
641 | ret; | ||
642 | |||
643 | __enc_xor8: | ||
644 | xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2); | ||
645 | xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); | ||
646 | 620 | ||
647 | ret; | 621 | ret; |
648 | 622 | ||
649 | .align 8 | 623 | .align 8 |
650 | .global serpent_dec_blk_8way_avx | 624 | .type __serpent_dec_blk8_avx,@function; |
651 | .type serpent_dec_blk_8way_avx,@function; | ||
652 | 625 | ||
653 | serpent_dec_blk_8way_avx: | 626 | __serpent_dec_blk8_avx: |
654 | /* input: | 627 | /* input: |
655 | * %rdi: ctx, CTX | 628 | * %rdi: ctx, CTX |
656 | * %rsi: dst | 629 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: encrypted blocks |
657 | * %rdx: src | 630 | * output: |
631 | * RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2: decrypted blocks | ||
658 | */ | 632 | */ |
659 | 633 | ||
660 | vpcmpeqd RNOT, RNOT, RNOT; | 634 | vpcmpeqd RNOT, RNOT, RNOT; |
661 | 635 | ||
662 | leaq (4*4*4)(%rdx), %rax; | 636 | read_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2); |
663 | read_blocks(%rdx, RA1, RB1, RC1, RD1, RK0, RK1, RK2); | 637 | read_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2); |
664 | read_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2); | ||
665 | 638 | ||
666 | K2(RA, RB, RC, RD, RE, 32); | 639 | K2(RA, RB, RC, RD, RE, 32); |
667 | SP(SI7, RA, RB, RC, RD, RE, 31); KL2(RB, RD, RA, RE, RC, 31); | 640 | SP(SI7, RA, RB, RC, RD, RE, 31); KL2(RB, RD, RA, RE, RC, 31); |
@@ -697,8 +670,85 @@ serpent_dec_blk_8way_avx: | |||
697 | SP(SI1, RD, RB, RC, RA, RE, 1); KL2(RE, RB, RC, RA, RD, 1); | 670 | SP(SI1, RD, RB, RC, RA, RE, 1); KL2(RE, RB, RC, RA, RD, 1); |
698 | S(SI0, RE, RB, RC, RA, RD); K2(RC, RD, RB, RE, RA, 0); | 671 | S(SI0, RE, RB, RC, RA, RD); K2(RC, RD, RB, RE, RA, 0); |
699 | 672 | ||
700 | leaq (4*4*4)(%rsi), %rax; | 673 | write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2); |
701 | write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2); | 674 | write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2); |
702 | write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2); | 675 | |
676 | ret; | ||
677 | |||
678 | .align 8 | ||
679 | .global serpent_ecb_enc_8way_avx | ||
680 | .type serpent_ecb_enc_8way_avx,@function; | ||
681 | |||
682 | serpent_ecb_enc_8way_avx: | ||
683 | /* input: | ||
684 | * %rdi: ctx, CTX | ||
685 | * %rsi: dst | ||
686 | * %rdx: src | ||
687 | */ | ||
688 | |||
689 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
690 | |||
691 | call __serpent_enc_blk8_avx; | ||
692 | |||
693 | store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
694 | |||
695 | ret; | ||
696 | |||
697 | .align 8 | ||
698 | .global serpent_ecb_dec_8way_avx | ||
699 | .type serpent_ecb_dec_8way_avx,@function; | ||
700 | |||
701 | serpent_ecb_dec_8way_avx: | ||
702 | /* input: | ||
703 | * %rdi: ctx, CTX | ||
704 | * %rsi: dst | ||
705 | * %rdx: src | ||
706 | */ | ||
707 | |||
708 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
709 | |||
710 | call __serpent_dec_blk8_avx; | ||
711 | |||
712 | store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2); | ||
713 | |||
714 | ret; | ||
715 | |||
716 | .align 8 | ||
717 | .global serpent_cbc_dec_8way_avx | ||
718 | .type serpent_cbc_dec_8way_avx,@function; | ||
719 | |||
720 | serpent_cbc_dec_8way_avx: | ||
721 | /* input: | ||
722 | * %rdi: ctx, CTX | ||
723 | * %rsi: dst | ||
724 | * %rdx: src | ||
725 | */ | ||
726 | |||
727 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
728 | |||
729 | call __serpent_dec_blk8_avx; | ||
730 | |||
731 | store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2); | ||
732 | |||
733 | ret; | ||
734 | |||
735 | .align 8 | ||
736 | .global serpent_ctr_8way_avx | ||
737 | .type serpent_ctr_8way_avx,@function; | ||
738 | |||
739 | serpent_ctr_8way_avx: | ||
740 | /* input: | ||
741 | * %rdi: ctx, CTX | ||
742 | * %rsi: dst | ||
743 | * %rdx: src | ||
744 | * %rcx: iv (little endian, 128bit) | ||
745 | */ | ||
746 | |||
747 | load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2, | ||
748 | RD2, RK0, RK1, RK2); | ||
749 | |||
750 | call __serpent_enc_blk8_avx; | ||
751 | |||
752 | store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
703 | 753 | ||
704 | ret; | 754 | ret; |
diff --git a/arch/x86/crypto/serpent_avx_glue.c b/arch/x86/crypto/serpent_avx_glue.c index 3f543a04cf1e..52abaaf28e7f 100644 --- a/arch/x86/crypto/serpent_avx_glue.c +++ b/arch/x86/crypto/serpent_avx_glue.c | |||
@@ -42,55 +42,24 @@ | |||
42 | #include <asm/crypto/ablk_helper.h> | 42 | #include <asm/crypto/ablk_helper.h> |
43 | #include <asm/crypto/glue_helper.h> | 43 | #include <asm/crypto/glue_helper.h> |
44 | 44 | ||
45 | static void serpent_decrypt_cbc_xway(void *ctx, u128 *dst, const u128 *src) | 45 | static void serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
46 | { | ||
47 | u128 ivs[SERPENT_PARALLEL_BLOCKS - 1]; | ||
48 | unsigned int j; | ||
49 | |||
50 | for (j = 0; j < SERPENT_PARALLEL_BLOCKS - 1; j++) | ||
51 | ivs[j] = src[j]; | ||
52 | |||
53 | serpent_dec_blk_xway(ctx, (u8 *)dst, (u8 *)src); | ||
54 | |||
55 | for (j = 0; j < SERPENT_PARALLEL_BLOCKS - 1; j++) | ||
56 | u128_xor(dst + (j + 1), dst + (j + 1), ivs + j); | ||
57 | } | ||
58 | |||
59 | static void serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | ||
60 | { | 46 | { |
61 | be128 ctrblk; | 47 | be128 ctrblk; |
62 | 48 | ||
63 | u128_to_be128(&ctrblk, iv); | 49 | le128_to_be128(&ctrblk, iv); |
64 | u128_inc(iv); | 50 | le128_inc(iv); |
65 | 51 | ||
66 | __serpent_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); | 52 | __serpent_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); |
67 | u128_xor(dst, src, (u128 *)&ctrblk); | 53 | u128_xor(dst, src, (u128 *)&ctrblk); |
68 | } | 54 | } |
69 | 55 | ||
70 | static void serpent_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src, | ||
71 | u128 *iv) | ||
72 | { | ||
73 | be128 ctrblks[SERPENT_PARALLEL_BLOCKS]; | ||
74 | unsigned int i; | ||
75 | |||
76 | for (i = 0; i < SERPENT_PARALLEL_BLOCKS; i++) { | ||
77 | if (dst != src) | ||
78 | dst[i] = src[i]; | ||
79 | |||
80 | u128_to_be128(&ctrblks[i], iv); | ||
81 | u128_inc(iv); | ||
82 | } | ||
83 | |||
84 | serpent_enc_blk_xway_xor(ctx, (u8 *)dst, (u8 *)ctrblks); | ||
85 | } | ||
86 | |||
87 | static const struct common_glue_ctx serpent_enc = { | 56 | static const struct common_glue_ctx serpent_enc = { |
88 | .num_funcs = 2, | 57 | .num_funcs = 2, |
89 | .fpu_blocks_limit = SERPENT_PARALLEL_BLOCKS, | 58 | .fpu_blocks_limit = SERPENT_PARALLEL_BLOCKS, |
90 | 59 | ||
91 | .funcs = { { | 60 | .funcs = { { |
92 | .num_blocks = SERPENT_PARALLEL_BLOCKS, | 61 | .num_blocks = SERPENT_PARALLEL_BLOCKS, |
93 | .fn_u = { .ecb = GLUE_FUNC_CAST(serpent_enc_blk_xway) } | 62 | .fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_enc_8way_avx) } |
94 | }, { | 63 | }, { |
95 | .num_blocks = 1, | 64 | .num_blocks = 1, |
96 | .fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_encrypt) } | 65 | .fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_encrypt) } |
@@ -103,7 +72,7 @@ static const struct common_glue_ctx serpent_ctr = { | |||
103 | 72 | ||
104 | .funcs = { { | 73 | .funcs = { { |
105 | .num_blocks = SERPENT_PARALLEL_BLOCKS, | 74 | .num_blocks = SERPENT_PARALLEL_BLOCKS, |
106 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_crypt_ctr_xway) } | 75 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_ctr_8way_avx) } |
107 | }, { | 76 | }, { |
108 | .num_blocks = 1, | 77 | .num_blocks = 1, |
109 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_crypt_ctr) } | 78 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(serpent_crypt_ctr) } |
@@ -116,7 +85,7 @@ static const struct common_glue_ctx serpent_dec = { | |||
116 | 85 | ||
117 | .funcs = { { | 86 | .funcs = { { |
118 | .num_blocks = SERPENT_PARALLEL_BLOCKS, | 87 | .num_blocks = SERPENT_PARALLEL_BLOCKS, |
119 | .fn_u = { .ecb = GLUE_FUNC_CAST(serpent_dec_blk_xway) } | 88 | .fn_u = { .ecb = GLUE_FUNC_CAST(serpent_ecb_dec_8way_avx) } |
120 | }, { | 89 | }, { |
121 | .num_blocks = 1, | 90 | .num_blocks = 1, |
122 | .fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_decrypt) } | 91 | .fn_u = { .ecb = GLUE_FUNC_CAST(__serpent_decrypt) } |
@@ -129,7 +98,7 @@ static const struct common_glue_ctx serpent_dec_cbc = { | |||
129 | 98 | ||
130 | .funcs = { { | 99 | .funcs = { { |
131 | .num_blocks = SERPENT_PARALLEL_BLOCKS, | 100 | .num_blocks = SERPENT_PARALLEL_BLOCKS, |
132 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_decrypt_cbc_xway) } | 101 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(serpent_cbc_dec_8way_avx) } |
133 | }, { | 102 | }, { |
134 | .num_blocks = 1, | 103 | .num_blocks = 1, |
135 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__serpent_decrypt) } | 104 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(__serpent_decrypt) } |
@@ -193,7 +162,7 @@ static void encrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
193 | ctx->fpu_enabled = serpent_fpu_begin(ctx->fpu_enabled, nbytes); | 162 | ctx->fpu_enabled = serpent_fpu_begin(ctx->fpu_enabled, nbytes); |
194 | 163 | ||
195 | if (nbytes == bsize * SERPENT_PARALLEL_BLOCKS) { | 164 | if (nbytes == bsize * SERPENT_PARALLEL_BLOCKS) { |
196 | serpent_enc_blk_xway(ctx->ctx, srcdst, srcdst); | 165 | serpent_ecb_enc_8way_avx(ctx->ctx, srcdst, srcdst); |
197 | return; | 166 | return; |
198 | } | 167 | } |
199 | 168 | ||
@@ -210,7 +179,7 @@ static void decrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
210 | ctx->fpu_enabled = serpent_fpu_begin(ctx->fpu_enabled, nbytes); | 179 | ctx->fpu_enabled = serpent_fpu_begin(ctx->fpu_enabled, nbytes); |
211 | 180 | ||
212 | if (nbytes == bsize * SERPENT_PARALLEL_BLOCKS) { | 181 | if (nbytes == bsize * SERPENT_PARALLEL_BLOCKS) { |
213 | serpent_dec_blk_xway(ctx->ctx, srcdst, srcdst); | 182 | serpent_ecb_dec_8way_avx(ctx->ctx, srcdst, srcdst); |
214 | return; | 183 | return; |
215 | } | 184 | } |
216 | 185 | ||
diff --git a/arch/x86/crypto/serpent_sse2_glue.c b/arch/x86/crypto/serpent_sse2_glue.c index 9107a9908c41..97a356ece24d 100644 --- a/arch/x86/crypto/serpent_sse2_glue.c +++ b/arch/x86/crypto/serpent_sse2_glue.c | |||
@@ -59,19 +59,19 @@ static void serpent_decrypt_cbc_xway(void *ctx, u128 *dst, const u128 *src) | |||
59 | u128_xor(dst + (j + 1), dst + (j + 1), ivs + j); | 59 | u128_xor(dst + (j + 1), dst + (j + 1), ivs + j); |
60 | } | 60 | } |
61 | 61 | ||
62 | static void serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | 62 | static void serpent_crypt_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
63 | { | 63 | { |
64 | be128 ctrblk; | 64 | be128 ctrblk; |
65 | 65 | ||
66 | u128_to_be128(&ctrblk, iv); | 66 | le128_to_be128(&ctrblk, iv); |
67 | u128_inc(iv); | 67 | le128_inc(iv); |
68 | 68 | ||
69 | __serpent_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); | 69 | __serpent_encrypt(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); |
70 | u128_xor(dst, src, (u128 *)&ctrblk); | 70 | u128_xor(dst, src, (u128 *)&ctrblk); |
71 | } | 71 | } |
72 | 72 | ||
73 | static void serpent_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src, | 73 | static void serpent_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src, |
74 | u128 *iv) | 74 | le128 *iv) |
75 | { | 75 | { |
76 | be128 ctrblks[SERPENT_PARALLEL_BLOCKS]; | 76 | be128 ctrblks[SERPENT_PARALLEL_BLOCKS]; |
77 | unsigned int i; | 77 | unsigned int i; |
@@ -80,8 +80,8 @@ static void serpent_crypt_ctr_xway(void *ctx, u128 *dst, const u128 *src, | |||
80 | if (dst != src) | 80 | if (dst != src) |
81 | dst[i] = src[i]; | 81 | dst[i] = src[i]; |
82 | 82 | ||
83 | u128_to_be128(&ctrblks[i], iv); | 83 | le128_to_be128(&ctrblks[i], iv); |
84 | u128_inc(iv); | 84 | le128_inc(iv); |
85 | } | 85 | } |
86 | 86 | ||
87 | serpent_enc_blk_xway_xor(ctx, (u8 *)dst, (u8 *)ctrblks); | 87 | serpent_enc_blk_xway_xor(ctx, (u8 *)dst, (u8 *)ctrblks); |
diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S index 1585abb13dde..ebac16bfa830 100644 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S | |||
@@ -23,7 +23,16 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include "glue_helper-asm-avx.S" | ||
27 | |||
26 | .file "twofish-avx-x86_64-asm_64.S" | 28 | .file "twofish-avx-x86_64-asm_64.S" |
29 | |||
30 | .data | ||
31 | .align 16 | ||
32 | |||
33 | .Lbswap128_mask: | ||
34 | .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | ||
35 | |||
27 | .text | 36 | .text |
28 | 37 | ||
29 | /* structure of crypto context */ | 38 | /* structure of crypto context */ |
@@ -217,69 +226,45 @@ | |||
217 | vpunpcklqdq x3, t2, x2; \ | 226 | vpunpcklqdq x3, t2, x2; \ |
218 | vpunpckhqdq x3, t2, x3; | 227 | vpunpckhqdq x3, t2, x3; |
219 | 228 | ||
220 | #define inpack_blocks(in, x0, x1, x2, x3, wkey, t0, t1, t2) \ | 229 | #define inpack_blocks(x0, x1, x2, x3, wkey, t0, t1, t2) \ |
221 | vpxor (0*4*4)(in), wkey, x0; \ | 230 | vpxor x0, wkey, x0; \ |
222 | vpxor (1*4*4)(in), wkey, x1; \ | 231 | vpxor x1, wkey, x1; \ |
223 | vpxor (2*4*4)(in), wkey, x2; \ | 232 | vpxor x2, wkey, x2; \ |
224 | vpxor (3*4*4)(in), wkey, x3; \ | 233 | vpxor x3, wkey, x3; \ |
225 | \ | 234 | \ |
226 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) | 235 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) |
227 | 236 | ||
228 | #define outunpack_blocks(out, x0, x1, x2, x3, wkey, t0, t1, t2) \ | 237 | #define outunpack_blocks(x0, x1, x2, x3, wkey, t0, t1, t2) \ |
229 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | ||
230 | \ | ||
231 | vpxor x0, wkey, x0; \ | ||
232 | vmovdqu x0, (0*4*4)(out); \ | ||
233 | vpxor x1, wkey, x1; \ | ||
234 | vmovdqu x1, (1*4*4)(out); \ | ||
235 | vpxor x2, wkey, x2; \ | ||
236 | vmovdqu x2, (2*4*4)(out); \ | ||
237 | vpxor x3, wkey, x3; \ | ||
238 | vmovdqu x3, (3*4*4)(out); | ||
239 | |||
240 | #define outunpack_xor_blocks(out, x0, x1, x2, x3, wkey, t0, t1, t2) \ | ||
241 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ | 238 | transpose_4x4(x0, x1, x2, x3, t0, t1, t2) \ |
242 | \ | 239 | \ |
243 | vpxor x0, wkey, x0; \ | 240 | vpxor x0, wkey, x0; \ |
244 | vpxor (0*4*4)(out), x0, x0; \ | 241 | vpxor x1, wkey, x1; \ |
245 | vmovdqu x0, (0*4*4)(out); \ | 242 | vpxor x2, wkey, x2; \ |
246 | vpxor x1, wkey, x1; \ | 243 | vpxor x3, wkey, x3; |
247 | vpxor (1*4*4)(out), x1, x1; \ | ||
248 | vmovdqu x1, (1*4*4)(out); \ | ||
249 | vpxor x2, wkey, x2; \ | ||
250 | vpxor (2*4*4)(out), x2, x2; \ | ||
251 | vmovdqu x2, (2*4*4)(out); \ | ||
252 | vpxor x3, wkey, x3; \ | ||
253 | vpxor (3*4*4)(out), x3, x3; \ | ||
254 | vmovdqu x3, (3*4*4)(out); | ||
255 | 244 | ||
256 | .align 8 | 245 | .align 8 |
257 | .global __twofish_enc_blk_8way | 246 | .type __twofish_enc_blk8,@function; |
258 | .type __twofish_enc_blk_8way,@function; | ||
259 | 247 | ||
260 | __twofish_enc_blk_8way: | 248 | __twofish_enc_blk8: |
261 | /* input: | 249 | /* input: |
262 | * %rdi: ctx, CTX | 250 | * %rdi: ctx, CTX |
263 | * %rsi: dst | 251 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: blocks |
264 | * %rdx: src | 252 | * output: |
265 | * %rcx: bool, if true: xor output | 253 | * RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2: encrypted blocks |
266 | */ | 254 | */ |
267 | 255 | ||
256 | vmovdqu w(CTX), RK1; | ||
257 | |||
268 | pushq %rbp; | 258 | pushq %rbp; |
269 | pushq %rbx; | 259 | pushq %rbx; |
270 | pushq %rcx; | 260 | pushq %rcx; |
271 | 261 | ||
272 | vmovdqu w(CTX), RK1; | 262 | inpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); |
273 | |||
274 | leaq (4*4*4)(%rdx), %rax; | ||
275 | inpack_blocks(%rdx, RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); | ||
276 | preload_rgi(RA1); | 263 | preload_rgi(RA1); |
277 | rotate_1l(RD1); | 264 | rotate_1l(RD1); |
278 | inpack_blocks(%rax, RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); | 265 | inpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); |
279 | rotate_1l(RD2); | 266 | rotate_1l(RD2); |
280 | 267 | ||
281 | movq %rsi, %r11; | ||
282 | |||
283 | encrypt_cycle(0); | 268 | encrypt_cycle(0); |
284 | encrypt_cycle(1); | 269 | encrypt_cycle(1); |
285 | encrypt_cycle(2); | 270 | encrypt_cycle(2); |
@@ -295,47 +280,33 @@ __twofish_enc_blk_8way: | |||
295 | popq %rbx; | 280 | popq %rbx; |
296 | popq %rbp; | 281 | popq %rbp; |
297 | 282 | ||
298 | leaq (4*4*4)(%r11), %rax; | 283 | outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); |
299 | 284 | outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); | |
300 | testb %cl, %cl; | ||
301 | jnz __enc_xor8; | ||
302 | |||
303 | outunpack_blocks(%r11, RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); | ||
304 | outunpack_blocks(%rax, RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); | ||
305 | |||
306 | ret; | ||
307 | |||
308 | __enc_xor8: | ||
309 | outunpack_xor_blocks(%r11, RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); | ||
310 | outunpack_xor_blocks(%rax, RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); | ||
311 | 285 | ||
312 | ret; | 286 | ret; |
313 | 287 | ||
314 | .align 8 | 288 | .align 8 |
315 | .global twofish_dec_blk_8way | 289 | .type __twofish_dec_blk8,@function; |
316 | .type twofish_dec_blk_8way,@function; | ||
317 | 290 | ||
318 | twofish_dec_blk_8way: | 291 | __twofish_dec_blk8: |
319 | /* input: | 292 | /* input: |
320 | * %rdi: ctx, CTX | 293 | * %rdi: ctx, CTX |
321 | * %rsi: dst | 294 | * RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2: encrypted blocks |
322 | * %rdx: src | 295 | * output: |
296 | * RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2: decrypted blocks | ||
323 | */ | 297 | */ |
324 | 298 | ||
299 | vmovdqu (w+4*4)(CTX), RK1; | ||
300 | |||
325 | pushq %rbp; | 301 | pushq %rbp; |
326 | pushq %rbx; | 302 | pushq %rbx; |
327 | 303 | ||
328 | vmovdqu (w+4*4)(CTX), RK1; | 304 | inpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); |
329 | |||
330 | leaq (4*4*4)(%rdx), %rax; | ||
331 | inpack_blocks(%rdx, RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); | ||
332 | preload_rgi(RC1); | 305 | preload_rgi(RC1); |
333 | rotate_1l(RA1); | 306 | rotate_1l(RA1); |
334 | inpack_blocks(%rax, RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); | 307 | inpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); |
335 | rotate_1l(RA2); | 308 | rotate_1l(RA2); |
336 | 309 | ||
337 | movq %rsi, %r11; | ||
338 | |||
339 | decrypt_cycle(7); | 310 | decrypt_cycle(7); |
340 | decrypt_cycle(6); | 311 | decrypt_cycle(6); |
341 | decrypt_cycle(5); | 312 | decrypt_cycle(5); |
@@ -350,8 +321,103 @@ twofish_dec_blk_8way: | |||
350 | popq %rbx; | 321 | popq %rbx; |
351 | popq %rbp; | 322 | popq %rbp; |
352 | 323 | ||
353 | leaq (4*4*4)(%r11), %rax; | 324 | outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); |
354 | outunpack_blocks(%r11, RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); | 325 | outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); |
355 | outunpack_blocks(%rax, RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); | 326 | |
327 | ret; | ||
328 | |||
329 | .align 8 | ||
330 | .global twofish_ecb_enc_8way | ||
331 | .type twofish_ecb_enc_8way,@function; | ||
332 | |||
333 | twofish_ecb_enc_8way: | ||
334 | /* input: | ||
335 | * %rdi: ctx, CTX | ||
336 | * %rsi: dst | ||
337 | * %rdx: src | ||
338 | */ | ||
339 | |||
340 | movq %rsi, %r11; | ||
341 | |||
342 | load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
343 | |||
344 | call __twofish_enc_blk8; | ||
345 | |||
346 | store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); | ||
347 | |||
348 | ret; | ||
349 | |||
350 | .align 8 | ||
351 | .global twofish_ecb_dec_8way | ||
352 | .type twofish_ecb_dec_8way,@function; | ||
353 | |||
354 | twofish_ecb_dec_8way: | ||
355 | /* input: | ||
356 | * %rdi: ctx, CTX | ||
357 | * %rsi: dst | ||
358 | * %rdx: src | ||
359 | */ | ||
360 | |||
361 | movq %rsi, %r11; | ||
362 | |||
363 | load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); | ||
364 | |||
365 | call __twofish_dec_blk8; | ||
366 | |||
367 | store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
368 | |||
369 | ret; | ||
370 | |||
371 | .align 8 | ||
372 | .global twofish_cbc_dec_8way | ||
373 | .type twofish_cbc_dec_8way,@function; | ||
374 | |||
375 | twofish_cbc_dec_8way: | ||
376 | /* input: | ||
377 | * %rdi: ctx, CTX | ||
378 | * %rsi: dst | ||
379 | * %rdx: src | ||
380 | */ | ||
381 | |||
382 | pushq %r12; | ||
383 | |||
384 | movq %rsi, %r11; | ||
385 | movq %rdx, %r12; | ||
386 | |||
387 | load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); | ||
388 | |||
389 | call __twofish_dec_blk8; | ||
390 | |||
391 | store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); | ||
392 | |||
393 | popq %r12; | ||
394 | |||
395 | ret; | ||
396 | |||
397 | .align 8 | ||
398 | .global twofish_ctr_8way | ||
399 | .type twofish_ctr_8way,@function; | ||
400 | |||
401 | twofish_ctr_8way: | ||
402 | /* input: | ||
403 | * %rdi: ctx, CTX | ||
404 | * %rsi: dst | ||
405 | * %rdx: src | ||
406 | * %rcx: iv (little endian, 128bit) | ||
407 | */ | ||
408 | |||
409 | pushq %r12; | ||
410 | |||
411 | movq %rsi, %r11; | ||
412 | movq %rdx, %r12; | ||
413 | |||
414 | load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2, | ||
415 | RD2, RX0, RX1, RY0); | ||
416 | |||
417 | call __twofish_enc_blk8; | ||
418 | |||
419 | store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); | ||
420 | |||
421 | popq %r12; | ||
356 | 422 | ||
357 | ret; | 423 | ret; |
diff --git a/arch/x86/crypto/twofish_avx_glue.c b/arch/x86/crypto/twofish_avx_glue.c index e7708b5442e0..94ac91d26e47 100644 --- a/arch/x86/crypto/twofish_avx_glue.c +++ b/arch/x86/crypto/twofish_avx_glue.c | |||
@@ -45,66 +45,23 @@ | |||
45 | 45 | ||
46 | #define TWOFISH_PARALLEL_BLOCKS 8 | 46 | #define TWOFISH_PARALLEL_BLOCKS 8 |
47 | 47 | ||
48 | static inline void twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst, | ||
49 | const u8 *src) | ||
50 | { | ||
51 | __twofish_enc_blk_3way(ctx, dst, src, false); | ||
52 | } | ||
53 | |||
54 | /* 8-way parallel cipher functions */ | 48 | /* 8-way parallel cipher functions */ |
55 | asmlinkage void __twofish_enc_blk_8way(struct twofish_ctx *ctx, u8 *dst, | 49 | asmlinkage void twofish_ecb_enc_8way(struct twofish_ctx *ctx, u8 *dst, |
56 | const u8 *src, bool xor); | 50 | const u8 *src); |
57 | asmlinkage void twofish_dec_blk_8way(struct twofish_ctx *ctx, u8 *dst, | 51 | asmlinkage void twofish_ecb_dec_8way(struct twofish_ctx *ctx, u8 *dst, |
58 | const u8 *src); | 52 | const u8 *src); |
59 | 53 | ||
60 | static inline void twofish_enc_blk_xway(struct twofish_ctx *ctx, u8 *dst, | 54 | asmlinkage void twofish_cbc_dec_8way(struct twofish_ctx *ctx, u8 *dst, |
61 | const u8 *src) | 55 | const u8 *src); |
62 | { | 56 | asmlinkage void twofish_ctr_8way(struct twofish_ctx *ctx, u8 *dst, |
63 | __twofish_enc_blk_8way(ctx, dst, src, false); | 57 | const u8 *src, le128 *iv); |
64 | } | ||
65 | |||
66 | static inline void twofish_enc_blk_xway_xor(struct twofish_ctx *ctx, u8 *dst, | ||
67 | const u8 *src) | ||
68 | { | ||
69 | __twofish_enc_blk_8way(ctx, dst, src, true); | ||
70 | } | ||
71 | 58 | ||
72 | static inline void twofish_dec_blk_xway(struct twofish_ctx *ctx, u8 *dst, | 59 | static inline void twofish_enc_blk_3way(struct twofish_ctx *ctx, u8 *dst, |
73 | const u8 *src) | 60 | const u8 *src) |
74 | { | 61 | { |
75 | twofish_dec_blk_8way(ctx, dst, src); | 62 | __twofish_enc_blk_3way(ctx, dst, src, false); |
76 | } | ||
77 | |||
78 | static void twofish_dec_blk_cbc_xway(void *ctx, u128 *dst, const u128 *src) | ||
79 | { | ||
80 | u128 ivs[TWOFISH_PARALLEL_BLOCKS - 1]; | ||
81 | unsigned int j; | ||
82 | |||
83 | for (j = 0; j < TWOFISH_PARALLEL_BLOCKS - 1; j++) | ||
84 | ivs[j] = src[j]; | ||
85 | |||
86 | twofish_dec_blk_xway(ctx, (u8 *)dst, (u8 *)src); | ||
87 | |||
88 | for (j = 0; j < TWOFISH_PARALLEL_BLOCKS - 1; j++) | ||
89 | u128_xor(dst + (j + 1), dst + (j + 1), ivs + j); | ||
90 | } | 63 | } |
91 | 64 | ||
92 | static void twofish_enc_blk_ctr_xway(void *ctx, u128 *dst, const u128 *src, | ||
93 | u128 *iv) | ||
94 | { | ||
95 | be128 ctrblks[TWOFISH_PARALLEL_BLOCKS]; | ||
96 | unsigned int i; | ||
97 | |||
98 | for (i = 0; i < TWOFISH_PARALLEL_BLOCKS; i++) { | ||
99 | if (dst != src) | ||
100 | dst[i] = src[i]; | ||
101 | |||
102 | u128_to_be128(&ctrblks[i], iv); | ||
103 | u128_inc(iv); | ||
104 | } | ||
105 | |||
106 | twofish_enc_blk_xway_xor(ctx, (u8 *)dst, (u8 *)ctrblks); | ||
107 | } | ||
108 | 65 | ||
109 | static const struct common_glue_ctx twofish_enc = { | 66 | static const struct common_glue_ctx twofish_enc = { |
110 | .num_funcs = 3, | 67 | .num_funcs = 3, |
@@ -112,7 +69,7 @@ static const struct common_glue_ctx twofish_enc = { | |||
112 | 69 | ||
113 | .funcs = { { | 70 | .funcs = { { |
114 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, | 71 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, |
115 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_xway) } | 72 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_ecb_enc_8way) } |
116 | }, { | 73 | }, { |
117 | .num_blocks = 3, | 74 | .num_blocks = 3, |
118 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_3way) } | 75 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_enc_blk_3way) } |
@@ -128,7 +85,7 @@ static const struct common_glue_ctx twofish_ctr = { | |||
128 | 85 | ||
129 | .funcs = { { | 86 | .funcs = { { |
130 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, | 87 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, |
131 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_enc_blk_ctr_xway) } | 88 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_ctr_8way) } |
132 | }, { | 89 | }, { |
133 | .num_blocks = 3, | 90 | .num_blocks = 3, |
134 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_enc_blk_ctr_3way) } | 91 | .fn_u = { .ctr = GLUE_CTR_FUNC_CAST(twofish_enc_blk_ctr_3way) } |
@@ -144,7 +101,7 @@ static const struct common_glue_ctx twofish_dec = { | |||
144 | 101 | ||
145 | .funcs = { { | 102 | .funcs = { { |
146 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, | 103 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, |
147 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk_xway) } | 104 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_ecb_dec_8way) } |
148 | }, { | 105 | }, { |
149 | .num_blocks = 3, | 106 | .num_blocks = 3, |
150 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk_3way) } | 107 | .fn_u = { .ecb = GLUE_FUNC_CAST(twofish_dec_blk_3way) } |
@@ -160,7 +117,7 @@ static const struct common_glue_ctx twofish_dec_cbc = { | |||
160 | 117 | ||
161 | .funcs = { { | 118 | .funcs = { { |
162 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, | 119 | .num_blocks = TWOFISH_PARALLEL_BLOCKS, |
163 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk_cbc_xway) } | 120 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_cbc_dec_8way) } |
164 | }, { | 121 | }, { |
165 | .num_blocks = 3, | 122 | .num_blocks = 3, |
166 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk_cbc_3way) } | 123 | .fn_u = { .cbc = GLUE_CBC_FUNC_CAST(twofish_dec_blk_cbc_3way) } |
@@ -227,7 +184,7 @@ static void encrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
227 | ctx->fpu_enabled = twofish_fpu_begin(ctx->fpu_enabled, nbytes); | 184 | ctx->fpu_enabled = twofish_fpu_begin(ctx->fpu_enabled, nbytes); |
228 | 185 | ||
229 | if (nbytes == bsize * TWOFISH_PARALLEL_BLOCKS) { | 186 | if (nbytes == bsize * TWOFISH_PARALLEL_BLOCKS) { |
230 | twofish_enc_blk_xway(ctx->ctx, srcdst, srcdst); | 187 | twofish_ecb_enc_8way(ctx->ctx, srcdst, srcdst); |
231 | return; | 188 | return; |
232 | } | 189 | } |
233 | 190 | ||
@@ -249,7 +206,7 @@ static void decrypt_callback(void *priv, u8 *srcdst, unsigned int nbytes) | |||
249 | ctx->fpu_enabled = twofish_fpu_begin(ctx->fpu_enabled, nbytes); | 206 | ctx->fpu_enabled = twofish_fpu_begin(ctx->fpu_enabled, nbytes); |
250 | 207 | ||
251 | if (nbytes == bsize * TWOFISH_PARALLEL_BLOCKS) { | 208 | if (nbytes == bsize * TWOFISH_PARALLEL_BLOCKS) { |
252 | twofish_dec_blk_xway(ctx->ctx, srcdst, srcdst); | 209 | twofish_ecb_dec_8way(ctx->ctx, srcdst, srcdst); |
253 | return; | 210 | return; |
254 | } | 211 | } |
255 | 212 | ||
diff --git a/arch/x86/crypto/twofish_glue_3way.c b/arch/x86/crypto/twofish_glue_3way.c index aa3eb358b7e8..13e63b3e1dfb 100644 --- a/arch/x86/crypto/twofish_glue_3way.c +++ b/arch/x86/crypto/twofish_glue_3way.c | |||
@@ -62,15 +62,15 @@ void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src) | |||
62 | } | 62 | } |
63 | EXPORT_SYMBOL_GPL(twofish_dec_blk_cbc_3way); | 63 | EXPORT_SYMBOL_GPL(twofish_dec_blk_cbc_3way); |
64 | 64 | ||
65 | void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | 65 | void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, le128 *iv) |
66 | { | 66 | { |
67 | be128 ctrblk; | 67 | be128 ctrblk; |
68 | 68 | ||
69 | if (dst != src) | 69 | if (dst != src) |
70 | *dst = *src; | 70 | *dst = *src; |
71 | 71 | ||
72 | u128_to_be128(&ctrblk, iv); | 72 | le128_to_be128(&ctrblk, iv); |
73 | u128_inc(iv); | 73 | le128_inc(iv); |
74 | 74 | ||
75 | twofish_enc_blk(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); | 75 | twofish_enc_blk(ctx, (u8 *)&ctrblk, (u8 *)&ctrblk); |
76 | u128_xor(dst, dst, (u128 *)&ctrblk); | 76 | u128_xor(dst, dst, (u128 *)&ctrblk); |
@@ -78,7 +78,7 @@ void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, u128 *iv) | |||
78 | EXPORT_SYMBOL_GPL(twofish_enc_blk_ctr); | 78 | EXPORT_SYMBOL_GPL(twofish_enc_blk_ctr); |
79 | 79 | ||
80 | void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, | 80 | void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, |
81 | u128 *iv) | 81 | le128 *iv) |
82 | { | 82 | { |
83 | be128 ctrblks[3]; | 83 | be128 ctrblks[3]; |
84 | 84 | ||
@@ -88,12 +88,12 @@ void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, | |||
88 | dst[2] = src[2]; | 88 | dst[2] = src[2]; |
89 | } | 89 | } |
90 | 90 | ||
91 | u128_to_be128(&ctrblks[0], iv); | 91 | le128_to_be128(&ctrblks[0], iv); |
92 | u128_inc(iv); | 92 | le128_inc(iv); |
93 | u128_to_be128(&ctrblks[1], iv); | 93 | le128_to_be128(&ctrblks[1], iv); |
94 | u128_inc(iv); | 94 | le128_inc(iv); |
95 | u128_to_be128(&ctrblks[2], iv); | 95 | le128_to_be128(&ctrblks[2], iv); |
96 | u128_inc(iv); | 96 | le128_inc(iv); |
97 | 97 | ||
98 | twofish_enc_blk_xor_3way(ctx, (u8 *)dst, (u8 *)ctrblks); | 98 | twofish_enc_blk_xor_3way(ctx, (u8 *)dst, (u8 *)ctrblks); |
99 | } | 99 | } |
diff --git a/arch/x86/include/asm/crypto/camellia.h b/arch/x86/include/asm/crypto/camellia.h new file mode 100644 index 000000000000..98038add801e --- /dev/null +++ b/arch/x86/include/asm/crypto/camellia.h | |||
@@ -0,0 +1,82 @@ | |||
1 | #ifndef ASM_X86_CAMELLIA_H | ||
2 | #define ASM_X86_CAMELLIA_H | ||
3 | |||
4 | #include <linux/kernel.h> | ||
5 | #include <linux/crypto.h> | ||
6 | |||
7 | #define CAMELLIA_MIN_KEY_SIZE 16 | ||
8 | #define CAMELLIA_MAX_KEY_SIZE 32 | ||
9 | #define CAMELLIA_BLOCK_SIZE 16 | ||
10 | #define CAMELLIA_TABLE_BYTE_LEN 272 | ||
11 | #define CAMELLIA_PARALLEL_BLOCKS 2 | ||
12 | |||
13 | struct camellia_ctx { | ||
14 | u64 key_table[CAMELLIA_TABLE_BYTE_LEN / sizeof(u64)]; | ||
15 | u32 key_length; | ||
16 | }; | ||
17 | |||
18 | struct camellia_lrw_ctx { | ||
19 | struct lrw_table_ctx lrw_table; | ||
20 | struct camellia_ctx camellia_ctx; | ||
21 | }; | ||
22 | |||
23 | struct camellia_xts_ctx { | ||
24 | struct camellia_ctx tweak_ctx; | ||
25 | struct camellia_ctx crypt_ctx; | ||
26 | }; | ||
27 | |||
28 | extern int __camellia_setkey(struct camellia_ctx *cctx, | ||
29 | const unsigned char *key, | ||
30 | unsigned int key_len, u32 *flags); | ||
31 | |||
32 | extern int lrw_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | ||
33 | unsigned int keylen); | ||
34 | extern void lrw_camellia_exit_tfm(struct crypto_tfm *tfm); | ||
35 | |||
36 | extern int xts_camellia_setkey(struct crypto_tfm *tfm, const u8 *key, | ||
37 | unsigned int keylen); | ||
38 | |||
39 | /* regular block cipher functions */ | ||
40 | asmlinkage void __camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst, | ||
41 | const u8 *src, bool xor); | ||
42 | asmlinkage void camellia_dec_blk(struct camellia_ctx *ctx, u8 *dst, | ||
43 | const u8 *src); | ||
44 | |||
45 | /* 2-way parallel cipher functions */ | ||
46 | asmlinkage void __camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst, | ||
47 | const u8 *src, bool xor); | ||
48 | asmlinkage void camellia_dec_blk_2way(struct camellia_ctx *ctx, u8 *dst, | ||
49 | const u8 *src); | ||
50 | |||
51 | static inline void camellia_enc_blk(struct camellia_ctx *ctx, u8 *dst, | ||
52 | const u8 *src) | ||
53 | { | ||
54 | __camellia_enc_blk(ctx, dst, src, false); | ||
55 | } | ||
56 | |||
57 | static inline void camellia_enc_blk_xor(struct camellia_ctx *ctx, u8 *dst, | ||
58 | const u8 *src) | ||
59 | { | ||
60 | __camellia_enc_blk(ctx, dst, src, true); | ||
61 | } | ||
62 | |||
63 | static inline void camellia_enc_blk_2way(struct camellia_ctx *ctx, u8 *dst, | ||
64 | const u8 *src) | ||
65 | { | ||
66 | __camellia_enc_blk_2way(ctx, dst, src, false); | ||
67 | } | ||
68 | |||
69 | static inline void camellia_enc_blk_xor_2way(struct camellia_ctx *ctx, u8 *dst, | ||
70 | const u8 *src) | ||
71 | { | ||
72 | __camellia_enc_blk_2way(ctx, dst, src, true); | ||
73 | } | ||
74 | |||
75 | /* glue helpers */ | ||
76 | extern void camellia_decrypt_cbc_2way(void *ctx, u128 *dst, const u128 *src); | ||
77 | extern void camellia_crypt_ctr(void *ctx, u128 *dst, const u128 *src, | ||
78 | le128 *iv); | ||
79 | extern void camellia_crypt_ctr_2way(void *ctx, u128 *dst, const u128 *src, | ||
80 | le128 *iv); | ||
81 | |||
82 | #endif /* ASM_X86_CAMELLIA_H */ | ||
diff --git a/arch/x86/include/asm/crypto/glue_helper.h b/arch/x86/include/asm/crypto/glue_helper.h index 3e408bddc96f..e2d65b061d27 100644 --- a/arch/x86/include/asm/crypto/glue_helper.h +++ b/arch/x86/include/asm/crypto/glue_helper.h | |||
@@ -13,7 +13,7 @@ | |||
13 | typedef void (*common_glue_func_t)(void *ctx, u8 *dst, const u8 *src); | 13 | typedef void (*common_glue_func_t)(void *ctx, u8 *dst, const u8 *src); |
14 | typedef void (*common_glue_cbc_func_t)(void *ctx, u128 *dst, const u128 *src); | 14 | typedef void (*common_glue_cbc_func_t)(void *ctx, u128 *dst, const u128 *src); |
15 | typedef void (*common_glue_ctr_func_t)(void *ctx, u128 *dst, const u128 *src, | 15 | typedef void (*common_glue_ctr_func_t)(void *ctx, u128 *dst, const u128 *src, |
16 | u128 *iv); | 16 | le128 *iv); |
17 | 17 | ||
18 | #define GLUE_FUNC_CAST(fn) ((common_glue_func_t)(fn)) | 18 | #define GLUE_FUNC_CAST(fn) ((common_glue_func_t)(fn)) |
19 | #define GLUE_CBC_FUNC_CAST(fn) ((common_glue_cbc_func_t)(fn)) | 19 | #define GLUE_CBC_FUNC_CAST(fn) ((common_glue_cbc_func_t)(fn)) |
@@ -71,23 +71,29 @@ static inline void glue_fpu_end(bool fpu_enabled) | |||
71 | kernel_fpu_end(); | 71 | kernel_fpu_end(); |
72 | } | 72 | } |
73 | 73 | ||
74 | static inline void u128_to_be128(be128 *dst, const u128 *src) | 74 | static inline void le128_to_be128(be128 *dst, const le128 *src) |
75 | { | 75 | { |
76 | dst->a = cpu_to_be64(src->a); | 76 | dst->a = cpu_to_be64(le64_to_cpu(src->a)); |
77 | dst->b = cpu_to_be64(src->b); | 77 | dst->b = cpu_to_be64(le64_to_cpu(src->b)); |
78 | } | 78 | } |
79 | 79 | ||
80 | static inline void be128_to_u128(u128 *dst, const be128 *src) | 80 | static inline void be128_to_le128(le128 *dst, const be128 *src) |
81 | { | 81 | { |
82 | dst->a = be64_to_cpu(src->a); | 82 | dst->a = cpu_to_le64(be64_to_cpu(src->a)); |
83 | dst->b = be64_to_cpu(src->b); | 83 | dst->b = cpu_to_le64(be64_to_cpu(src->b)); |
84 | } | 84 | } |
85 | 85 | ||
86 | static inline void u128_inc(u128 *i) | 86 | static inline void le128_inc(le128 *i) |
87 | { | 87 | { |
88 | i->b++; | 88 | u64 a = le64_to_cpu(i->a); |
89 | if (!i->b) | 89 | u64 b = le64_to_cpu(i->b); |
90 | i->a++; | 90 | |
91 | b++; | ||
92 | if (!b) | ||
93 | a++; | ||
94 | |||
95 | i->a = cpu_to_le64(a); | ||
96 | i->b = cpu_to_le64(b); | ||
91 | } | 97 | } |
92 | 98 | ||
93 | extern int glue_ecb_crypt_128bit(const struct common_glue_ctx *gctx, | 99 | extern int glue_ecb_crypt_128bit(const struct common_glue_ctx *gctx, |
diff --git a/arch/x86/include/asm/crypto/serpent-avx.h b/arch/x86/include/asm/crypto/serpent-avx.h index 432deedd2945..0da1d3e2a55c 100644 --- a/arch/x86/include/asm/crypto/serpent-avx.h +++ b/arch/x86/include/asm/crypto/serpent-avx.h | |||
@@ -6,27 +6,14 @@ | |||
6 | 6 | ||
7 | #define SERPENT_PARALLEL_BLOCKS 8 | 7 | #define SERPENT_PARALLEL_BLOCKS 8 |
8 | 8 | ||
9 | asmlinkage void __serpent_enc_blk_8way_avx(struct serpent_ctx *ctx, u8 *dst, | 9 | asmlinkage void serpent_ecb_enc_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
10 | const u8 *src, bool xor); | 10 | const u8 *src); |
11 | asmlinkage void serpent_dec_blk_8way_avx(struct serpent_ctx *ctx, u8 *dst, | 11 | asmlinkage void serpent_ecb_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
12 | const u8 *src); | 12 | const u8 *src); |
13 | 13 | ||
14 | static inline void serpent_enc_blk_xway(struct serpent_ctx *ctx, u8 *dst, | 14 | asmlinkage void serpent_cbc_dec_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
15 | const u8 *src) | 15 | const u8 *src); |
16 | { | 16 | asmlinkage void serpent_ctr_8way_avx(struct serpent_ctx *ctx, u8 *dst, |
17 | __serpent_enc_blk_8way_avx(ctx, dst, src, false); | 17 | const u8 *src, le128 *iv); |
18 | } | ||
19 | |||
20 | static inline void serpent_enc_blk_xway_xor(struct serpent_ctx *ctx, u8 *dst, | ||
21 | const u8 *src) | ||
22 | { | ||
23 | __serpent_enc_blk_8way_avx(ctx, dst, src, true); | ||
24 | } | ||
25 | |||
26 | static inline void serpent_dec_blk_xway(struct serpent_ctx *ctx, u8 *dst, | ||
27 | const u8 *src) | ||
28 | { | ||
29 | serpent_dec_blk_8way_avx(ctx, dst, src); | ||
30 | } | ||
31 | 18 | ||
32 | #endif | 19 | #endif |
diff --git a/arch/x86/include/asm/crypto/twofish.h b/arch/x86/include/asm/crypto/twofish.h index 9d2c514bd5f9..878c51ceebb5 100644 --- a/arch/x86/include/asm/crypto/twofish.h +++ b/arch/x86/include/asm/crypto/twofish.h | |||
@@ -31,9 +31,9 @@ asmlinkage void twofish_dec_blk_3way(struct twofish_ctx *ctx, u8 *dst, | |||
31 | /* helpers from twofish_x86_64-3way module */ | 31 | /* helpers from twofish_x86_64-3way module */ |
32 | extern void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src); | 32 | extern void twofish_dec_blk_cbc_3way(void *ctx, u128 *dst, const u128 *src); |
33 | extern void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, | 33 | extern void twofish_enc_blk_ctr(void *ctx, u128 *dst, const u128 *src, |
34 | u128 *iv); | 34 | le128 *iv); |
35 | extern void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, | 35 | extern void twofish_enc_blk_ctr_3way(void *ctx, u128 *dst, const u128 *src, |
36 | u128 *iv); | 36 | le128 *iv); |
37 | 37 | ||
38 | extern int lrw_twofish_setkey(struct crypto_tfm *tfm, const u8 *key, | 38 | extern int lrw_twofish_setkey(struct crypto_tfm *tfm, const u8 *key, |
39 | unsigned int keylen); | 39 | unsigned int keylen); |
diff --git a/crypto/Kconfig b/crypto/Kconfig index 6563366bae80..4641d95651d3 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -324,9 +324,19 @@ config CRYPTO_CRC32C | |||
324 | by iSCSI for header and data digests and by others. | 324 | by iSCSI for header and data digests and by others. |
325 | See Castagnoli93. Module will be crc32c. | 325 | See Castagnoli93. Module will be crc32c. |
326 | 326 | ||
327 | config CRYPTO_CRC32C_X86_64 | ||
328 | bool | ||
329 | depends on X86 && 64BIT | ||
330 | select CRYPTO_HASH | ||
331 | help | ||
332 | In Intel processor with SSE4.2 supported, the processor will | ||
333 | support CRC32C calculation using hardware accelerated CRC32 | ||
334 | instruction optimized with PCLMULQDQ instruction when available. | ||
335 | |||
327 | config CRYPTO_CRC32C_INTEL | 336 | config CRYPTO_CRC32C_INTEL |
328 | tristate "CRC32c INTEL hardware acceleration" | 337 | tristate "CRC32c INTEL hardware acceleration" |
329 | depends on X86 | 338 | depends on X86 |
339 | select CRYPTO_CRC32C_X86_64 if 64BIT | ||
330 | select CRYPTO_HASH | 340 | select CRYPTO_HASH |
331 | help | 341 | help |
332 | In Intel processor with SSE4.2 supported, the processor will | 342 | In Intel processor with SSE4.2 supported, the processor will |
@@ -793,6 +803,28 @@ config CRYPTO_CAMELLIA_X86_64 | |||
793 | See also: | 803 | See also: |
794 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | 804 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> |
795 | 805 | ||
806 | config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 | ||
807 | tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" | ||
808 | depends on X86 && 64BIT | ||
809 | depends on CRYPTO | ||
810 | select CRYPTO_ALGAPI | ||
811 | select CRYPTO_CRYPTD | ||
812 | select CRYPTO_ABLK_HELPER_X86 | ||
813 | select CRYPTO_GLUE_HELPER_X86 | ||
814 | select CRYPTO_CAMELLIA_X86_64 | ||
815 | select CRYPTO_LRW | ||
816 | select CRYPTO_XTS | ||
817 | help | ||
818 | Camellia cipher algorithm module (x86_64/AES-NI/AVX). | ||
819 | |||
820 | Camellia is a symmetric key block cipher developed jointly | ||
821 | at NTT and Mitsubishi Electric Corporation. | ||
822 | |||
823 | The Camellia specifies three key sizes: 128, 192 and 256 bits. | ||
824 | |||
825 | See also: | ||
826 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | ||
827 | |||
796 | config CRYPTO_CAMELLIA_SPARC64 | 828 | config CRYPTO_CAMELLIA_SPARC64 |
797 | tristate "Camellia cipher algorithm (SPARC64)" | 829 | tristate "Camellia cipher algorithm (SPARC64)" |
798 | depends on SPARC64 | 830 | depends on SPARC64 |
@@ -809,9 +841,16 @@ config CRYPTO_CAMELLIA_SPARC64 | |||
809 | See also: | 841 | See also: |
810 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> | 842 | <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> |
811 | 843 | ||
844 | config CRYPTO_CAST_COMMON | ||
845 | tristate | ||
846 | help | ||
847 | Common parts of the CAST cipher algorithms shared by the | ||
848 | generic c and the assembler implementations. | ||
849 | |||
812 | config CRYPTO_CAST5 | 850 | config CRYPTO_CAST5 |
813 | tristate "CAST5 (CAST-128) cipher algorithm" | 851 | tristate "CAST5 (CAST-128) cipher algorithm" |
814 | select CRYPTO_ALGAPI | 852 | select CRYPTO_ALGAPI |
853 | select CRYPTO_CAST_COMMON | ||
815 | help | 854 | help |
816 | The CAST5 encryption algorithm (synonymous with CAST-128) is | 855 | The CAST5 encryption algorithm (synonymous with CAST-128) is |
817 | described in RFC2144. | 856 | described in RFC2144. |
@@ -822,6 +861,7 @@ config CRYPTO_CAST5_AVX_X86_64 | |||
822 | select CRYPTO_ALGAPI | 861 | select CRYPTO_ALGAPI |
823 | select CRYPTO_CRYPTD | 862 | select CRYPTO_CRYPTD |
824 | select CRYPTO_ABLK_HELPER_X86 | 863 | select CRYPTO_ABLK_HELPER_X86 |
864 | select CRYPTO_CAST_COMMON | ||
825 | select CRYPTO_CAST5 | 865 | select CRYPTO_CAST5 |
826 | help | 866 | help |
827 | The CAST5 encryption algorithm (synonymous with CAST-128) is | 867 | The CAST5 encryption algorithm (synonymous with CAST-128) is |
@@ -833,6 +873,7 @@ config CRYPTO_CAST5_AVX_X86_64 | |||
833 | config CRYPTO_CAST6 | 873 | config CRYPTO_CAST6 |
834 | tristate "CAST6 (CAST-256) cipher algorithm" | 874 | tristate "CAST6 (CAST-256) cipher algorithm" |
835 | select CRYPTO_ALGAPI | 875 | select CRYPTO_ALGAPI |
876 | select CRYPTO_CAST_COMMON | ||
836 | help | 877 | help |
837 | The CAST6 encryption algorithm (synonymous with CAST-256) is | 878 | The CAST6 encryption algorithm (synonymous with CAST-256) is |
838 | described in RFC2612. | 879 | described in RFC2612. |
@@ -844,6 +885,7 @@ config CRYPTO_CAST6_AVX_X86_64 | |||
844 | select CRYPTO_CRYPTD | 885 | select CRYPTO_CRYPTD |
845 | select CRYPTO_ABLK_HELPER_X86 | 886 | select CRYPTO_ABLK_HELPER_X86 |
846 | select CRYPTO_GLUE_HELPER_X86 | 887 | select CRYPTO_GLUE_HELPER_X86 |
888 | select CRYPTO_CAST_COMMON | ||
847 | select CRYPTO_CAST6 | 889 | select CRYPTO_CAST6 |
848 | select CRYPTO_LRW | 890 | select CRYPTO_LRW |
849 | select CRYPTO_XTS | 891 | select CRYPTO_XTS |
diff --git a/crypto/Makefile b/crypto/Makefile index 8cf61ffe3513..d59dec749804 100644 --- a/crypto/Makefile +++ b/crypto/Makefile | |||
@@ -68,6 +68,7 @@ obj-$(CONFIG_CRYPTO_TWOFISH_COMMON) += twofish_common.o | |||
68 | obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o | 68 | obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o |
69 | obj-$(CONFIG_CRYPTO_AES) += aes_generic.o | 69 | obj-$(CONFIG_CRYPTO_AES) += aes_generic.o |
70 | obj-$(CONFIG_CRYPTO_CAMELLIA) += camellia_generic.o | 70 | obj-$(CONFIG_CRYPTO_CAMELLIA) += camellia_generic.o |
71 | obj-$(CONFIG_CRYPTO_CAST_COMMON) += cast_common.o | ||
71 | obj-$(CONFIG_CRYPTO_CAST5) += cast5_generic.o | 72 | obj-$(CONFIG_CRYPTO_CAST5) += cast5_generic.o |
72 | obj-$(CONFIG_CRYPTO_CAST6) += cast6_generic.o | 73 | obj-$(CONFIG_CRYPTO_CAST6) += cast6_generic.o |
73 | obj-$(CONFIG_CRYPTO_ARC4) += arc4.o | 74 | obj-$(CONFIG_CRYPTO_ARC4) += arc4.o |
diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c index bc525dbd8a4b..5558f630a0eb 100644 --- a/crypto/cast5_generic.c +++ b/crypto/cast5_generic.c | |||
@@ -30,275 +30,6 @@ | |||
30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
31 | #include <crypto/cast5.h> | 31 | #include <crypto/cast5.h> |
32 | 32 | ||
33 | |||
34 | const u32 cast5_s1[256] = { | ||
35 | 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, | ||
36 | 0x9c004dd3, 0x6003e540, 0xcf9fc949, | ||
37 | 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, | ||
38 | 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, | ||
39 | 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, | ||
40 | 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, | ||
41 | 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, | ||
42 | 0xaa54166b, 0x22568e3a, 0xa2d341d0, | ||
43 | 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, | ||
44 | 0x4a97c1d8, 0x527644b7, 0xb5f437a7, | ||
45 | 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, | ||
46 | 0x90ecf52e, 0x22b0c054, 0xbc8e5935, | ||
47 | 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, | ||
48 | 0xe93b159f, 0xb48ee411, 0x4bff345d, | ||
49 | 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, | ||
50 | 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, | ||
51 | 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, | ||
52 | 0xc59c5319, 0xb949e354, 0xb04669fe, | ||
53 | 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, | ||
54 | 0x6a390493, 0xe63d37e0, 0x2a54f6b3, | ||
55 | 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, | ||
56 | 0xf61b1891, 0xbb72275e, 0xaa508167, | ||
57 | 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, | ||
58 | 0xa2d1936b, 0x2ad286af, 0xaa56d291, | ||
59 | 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, | ||
60 | 0x73e2bb14, 0xa0bebc3c, 0x54623779, | ||
61 | 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, | ||
62 | 0x89fe78e6, 0x3fab0950, 0x325ff6c2, | ||
63 | 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, | ||
64 | 0x380782d5, 0xc7fa5cf6, 0x8ac31511, | ||
65 | 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, | ||
66 | 0x051ef495, 0xaa573b04, 0x4a805d8d, | ||
67 | 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, | ||
68 | 0x50afd341, 0xa7c13275, 0x915a0bf5, | ||
69 | 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, | ||
70 | 0xab85c5f3, 0x1b55db94, 0xaad4e324, | ||
71 | 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, | ||
72 | 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, | ||
73 | 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, | ||
74 | 0x22513f1e, 0xaa51a79b, 0x2ad344cc, | ||
75 | 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, | ||
76 | 0x032268d4, 0xc9600acc, 0xce387e6d, | ||
77 | 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, | ||
78 | 0x4736f464, 0x5ad328d8, 0xb347cc96, | ||
79 | 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, | ||
80 | 0xbfc5fe4a, 0xa70aec10, 0xac39570a, | ||
81 | 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, | ||
82 | 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, | ||
83 | 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, | ||
84 | 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, | ||
85 | 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, | ||
86 | 0x51c85f4d, 0x56907596, 0xa5bb15e6, | ||
87 | 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, | ||
88 | 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, | ||
89 | 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, | ||
90 | 0x700b45e1, 0xd5ea50f1, 0x85a92872, | ||
91 | 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, | ||
92 | 0x0cd0ede7, 0x26470db8, 0xf881814c, | ||
93 | 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, | ||
94 | 0xab838653, 0x6e2f1e23, 0x83719c9e, | ||
95 | 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, | ||
96 | 0xe1e696ff, 0xb141ab08, 0x7cca89b9, | ||
97 | 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, | ||
98 | 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf | ||
99 | }; | ||
100 | EXPORT_SYMBOL_GPL(cast5_s1); | ||
101 | const u32 cast5_s2[256] = { | ||
102 | 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, | ||
103 | 0xeec5207a, 0x55889c94, 0x72fc0651, | ||
104 | 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, | ||
105 | 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, | ||
106 | 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, | ||
107 | 0xef944459, 0xba83ccb3, 0xe0c3cdfb, | ||
108 | 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, | ||
109 | 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, | ||
110 | 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, | ||
111 | 0x77e83f4e, 0x79929269, 0x24fa9f7b, | ||
112 | 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, | ||
113 | 0x0d554b63, 0x5d681121, 0xc866c359, | ||
114 | 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, | ||
115 | 0x39f7627f, 0x361e3084, 0xe4eb573b, | ||
116 | 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, | ||
117 | 0x99847ab4, 0xa0e3df79, 0xba6cf38c, | ||
118 | 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, | ||
119 | 0x8f458c74, 0xd9e0a227, 0x4ec73a34, | ||
120 | 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, | ||
121 | 0x1d804366, 0x721d9bfd, 0xa58684bb, | ||
122 | 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, | ||
123 | 0x27e19ba5, 0xd5a6c252, 0xe49754bd, | ||
124 | 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, | ||
125 | 0xe0b56714, 0x21f043b7, 0xe5d05860, | ||
126 | 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, | ||
127 | 0x68561be6, 0x83ca6b94, 0x2d6ed23b, | ||
128 | 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, | ||
129 | 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, | ||
130 | 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, | ||
131 | 0xb96726d1, 0x8049a7e8, 0x22b7da7b, | ||
132 | 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, | ||
133 | 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, | ||
134 | 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, | ||
135 | 0xe3214517, 0xb4542835, 0x9f63293c, | ||
136 | 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, | ||
137 | 0x30a22c95, 0x31a70850, 0x60930f13, | ||
138 | 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, | ||
139 | 0xa02b1741, 0x7cbad9a2, 0x2180036f, | ||
140 | 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, | ||
141 | 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, | ||
142 | 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, | ||
143 | 0x846a3bae, 0x8ff77888, 0xee5d60f6, | ||
144 | 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, | ||
145 | 0x157fd7fa, 0xef8579cc, 0xd152de58, | ||
146 | 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, | ||
147 | 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, | ||
148 | 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, | ||
149 | 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, | ||
150 | 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, | ||
151 | 0x301e16e6, 0x273be979, 0xb0ffeaa6, | ||
152 | 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, | ||
153 | 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, | ||
154 | 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, | ||
155 | 0x1a513742, 0xef6828bc, 0x520365d6, | ||
156 | 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, | ||
157 | 0x5eea29cb, 0x145892f5, 0x91584f7f, | ||
158 | 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, | ||
159 | 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, | ||
160 | 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, | ||
161 | 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, | ||
162 | 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, | ||
163 | 0xa345415e, 0x5c038323, 0x3e5d3bb9, | ||
164 | 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, | ||
165 | 0x73bfbe70, 0x83877605, 0x4523ecf1 | ||
166 | }; | ||
167 | EXPORT_SYMBOL_GPL(cast5_s2); | ||
168 | const u32 cast5_s3[256] = { | ||
169 | 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, | ||
170 | 0x369fe44b, 0x8c1fc644, 0xaececa90, | ||
171 | 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, | ||
172 | 0xf0ad0548, 0xe13c8d83, 0x927010d5, | ||
173 | 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, | ||
174 | 0xfade82e0, 0xa067268b, 0x8272792e, | ||
175 | 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, | ||
176 | 0x825b1bfd, 0x9255c5ed, 0x1257a240, | ||
177 | 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, | ||
178 | 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, | ||
179 | 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, | ||
180 | 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, | ||
181 | 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, | ||
182 | 0x4a012d6e, 0xc5884a28, 0xccc36f71, | ||
183 | 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, | ||
184 | 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, | ||
185 | 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, | ||
186 | 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, | ||
187 | 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, | ||
188 | 0x1eac5790, 0x796fb449, 0x8252dc15, | ||
189 | 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, | ||
190 | 0xe83ec305, 0x4f91751a, 0x925669c2, | ||
191 | 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, | ||
192 | 0x927985b2, 0x8276dbcb, 0x02778176, | ||
193 | 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, | ||
194 | 0x340ce5c8, 0x96bbb682, 0x93b4b148, | ||
195 | 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, | ||
196 | 0x8437aa88, 0x7d29dc96, 0x2756d3dc, | ||
197 | 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, | ||
198 | 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, | ||
199 | 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, | ||
200 | 0xbda8229c, 0x127dadaa, 0x438a074e, | ||
201 | 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, | ||
202 | 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, | ||
203 | 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, | ||
204 | 0x76a2e214, 0xb9a40368, 0x925d958f, | ||
205 | 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, | ||
206 | 0x193cbcfa, 0x27627545, 0x825cf47a, | ||
207 | 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, | ||
208 | 0x8272a972, 0x9270c4a8, 0x127de50b, | ||
209 | 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, | ||
210 | 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, | ||
211 | 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, | ||
212 | 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, | ||
213 | 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, | ||
214 | 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, | ||
215 | 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, | ||
216 | 0x7c34671c, 0x02717ef6, 0x4feb5536, | ||
217 | 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, | ||
218 | 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, | ||
219 | 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, | ||
220 | 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, | ||
221 | 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, | ||
222 | 0x856302e0, 0x72dbd92b, 0xee971b69, | ||
223 | 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, | ||
224 | 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, | ||
225 | 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, | ||
226 | 0x0ff0443d, 0x606e6dc6, 0x60543a49, | ||
227 | 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, | ||
228 | 0x68458425, 0x99833be5, 0x600d457d, | ||
229 | 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, | ||
230 | 0x9c305a00, 0x52bce688, 0x1b03588a, | ||
231 | 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, | ||
232 | 0xa133c501, 0xe9d3531c, 0xee353783 | ||
233 | }; | ||
234 | EXPORT_SYMBOL_GPL(cast5_s3); | ||
235 | const u32 cast5_s4[256] = { | ||
236 | 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, | ||
237 | 0x64ad8c57, 0x85510443, 0xfa020ed1, | ||
238 | 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, | ||
239 | 0x6497b7b1, 0xf3641f63, 0x241e4adf, | ||
240 | 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, | ||
241 | 0xc0a5374f, 0x1d2d00d9, 0x24147b15, | ||
242 | 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, | ||
243 | 0x0c13fefe, 0x081b08ca, 0x05170121, | ||
244 | 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, | ||
245 | 0x06df4261, 0xbb9e9b8a, 0x7293ea25, | ||
246 | 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, | ||
247 | 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, | ||
248 | 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, | ||
249 | 0x11b638e1, 0x72500e03, 0xf80eb2bb, | ||
250 | 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, | ||
251 | 0x6920318f, 0x081dbb99, 0xffc304a5, | ||
252 | 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, | ||
253 | 0x9f926f91, 0x9f46222f, 0x3991467d, | ||
254 | 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, | ||
255 | 0x3fb6180c, 0x18f8931e, 0x281658e6, | ||
256 | 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, | ||
257 | 0x79098b02, 0xe4eabb81, 0x28123b23, | ||
258 | 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, | ||
259 | 0x0014377b, 0x041e8ac8, 0x09114003, | ||
260 | 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, | ||
261 | 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, | ||
262 | 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, | ||
263 | 0x56c8c391, 0x6b65811c, 0x5e146119, | ||
264 | 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, | ||
265 | 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, | ||
266 | 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, | ||
267 | 0xeca1d7c7, 0x041afa32, 0x1d16625a, | ||
268 | 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, | ||
269 | 0xc70b8b46, 0xd9e66a48, 0x56e55a79, | ||
270 | 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, | ||
271 | 0xedda04eb, 0x17a9be04, 0x2c18f4df, | ||
272 | 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, | ||
273 | 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, | ||
274 | 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, | ||
275 | 0x0418f2c8, 0x001a96a6, 0x0d1526ab, | ||
276 | 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, | ||
277 | 0x311170a7, 0x3e9b640c, 0xcc3e10d7, | ||
278 | 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, | ||
279 | 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, | ||
280 | 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, | ||
281 | 0xb4be31cd, 0xd8782806, 0x12a3a4e2, | ||
282 | 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, | ||
283 | 0x9711aac5, 0x001d7b95, 0x82e5e7d2, | ||
284 | 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, | ||
285 | 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, | ||
286 | 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, | ||
287 | 0x0ce454a9, 0xd60acd86, 0x015f1919, | ||
288 | 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, | ||
289 | 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, | ||
290 | 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, | ||
291 | 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, | ||
292 | 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, | ||
293 | 0x296b299e, 0x492fc295, 0x9266beab, | ||
294 | 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, | ||
295 | 0xf65324e6, 0x6afce36c, 0x0316cc04, | ||
296 | 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, | ||
297 | 0x932bcdf6, 0xb657c34d, 0x4edfd282, | ||
298 | 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, | ||
299 | 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2 | ||
300 | }; | ||
301 | EXPORT_SYMBOL_GPL(cast5_s4); | ||
302 | static const u32 s5[256] = { | 33 | static const u32 s5[256] = { |
303 | 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, | 34 | 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, |
304 | 0x1dd358f5, 0x44dd9d44, 0x1731167f, | 35 | 0x1dd358f5, 0x44dd9d44, 0x1731167f, |
@@ -564,10 +295,10 @@ static const u32 sb8[256] = { | |||
564 | 0xeaee6801, 0x8db2a283, 0xea8bf59e | 295 | 0xeaee6801, 0x8db2a283, 0xea8bf59e |
565 | }; | 296 | }; |
566 | 297 | ||
567 | #define s1 cast5_s1 | 298 | #define s1 cast_s1 |
568 | #define s2 cast5_s2 | 299 | #define s2 cast_s2 |
569 | #define s3 cast5_s3 | 300 | #define s3 cast_s3 |
570 | #define s4 cast5_s4 | 301 | #define s4 cast_s4 |
571 | 302 | ||
572 | #define F1(D, m, r) ((I = ((m) + (D))), (I = rol32(I, (r))), \ | 303 | #define F1(D, m, r) ((I = ((m) + (D))), (I = rol32(I, (r))), \ |
573 | (((s1[I >> 24] ^ s2[(I>>16)&0xff]) - s3[(I>>8)&0xff]) + s4[I&0xff])) | 304 | (((s1[I >> 24] ^ s2[(I>>16)&0xff]) - s3[(I>>8)&0xff]) + s4[I&0xff])) |
diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c index 1acd2f1c48fc..de732528a430 100644 --- a/crypto/cast6_generic.c +++ b/crypto/cast6_generic.c | |||
@@ -27,10 +27,10 @@ | |||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | #include <crypto/cast6.h> | 28 | #include <crypto/cast6.h> |
29 | 29 | ||
30 | #define s1 cast6_s1 | 30 | #define s1 cast_s1 |
31 | #define s2 cast6_s2 | 31 | #define s2 cast_s2 |
32 | #define s3 cast6_s3 | 32 | #define s3 cast_s3 |
33 | #define s4 cast6_s4 | 33 | #define s4 cast_s4 |
34 | 34 | ||
35 | #define F1(D, r, m) ((I = ((m) + (D))), (I = rol32(I, (r))), \ | 35 | #define F1(D, r, m) ((I = ((m) + (D))), (I = rol32(I, (r))), \ |
36 | (((s1[I >> 24] ^ s2[(I>>16)&0xff]) - s3[(I>>8)&0xff]) + s4[I&0xff])) | 36 | (((s1[I >> 24] ^ s2[(I>>16)&0xff]) - s3[(I>>8)&0xff]) + s4[I&0xff])) |
@@ -39,278 +39,6 @@ | |||
39 | #define F3(D, r, m) ((I = ((m) - (D))), (I = rol32(I, (r))), \ | 39 | #define F3(D, r, m) ((I = ((m) - (D))), (I = rol32(I, (r))), \ |
40 | (((s1[I >> 24] + s2[(I>>16)&0xff]) ^ s3[(I>>8)&0xff]) - s4[I&0xff])) | 40 | (((s1[I >> 24] + s2[(I>>16)&0xff]) ^ s3[(I>>8)&0xff]) - s4[I&0xff])) |
41 | 41 | ||
42 | const u32 cast6_s1[256] = { | ||
43 | 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, | ||
44 | 0x9c004dd3, 0x6003e540, 0xcf9fc949, | ||
45 | 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, | ||
46 | 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, | ||
47 | 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, | ||
48 | 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, | ||
49 | 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, | ||
50 | 0xaa54166b, 0x22568e3a, 0xa2d341d0, | ||
51 | 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, | ||
52 | 0x4a97c1d8, 0x527644b7, 0xb5f437a7, | ||
53 | 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, | ||
54 | 0x90ecf52e, 0x22b0c054, 0xbc8e5935, | ||
55 | 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, | ||
56 | 0xe93b159f, 0xb48ee411, 0x4bff345d, | ||
57 | 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, | ||
58 | 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, | ||
59 | 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, | ||
60 | 0xc59c5319, 0xb949e354, 0xb04669fe, | ||
61 | 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, | ||
62 | 0x6a390493, 0xe63d37e0, 0x2a54f6b3, | ||
63 | 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, | ||
64 | 0xf61b1891, 0xbb72275e, 0xaa508167, | ||
65 | 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, | ||
66 | 0xa2d1936b, 0x2ad286af, 0xaa56d291, | ||
67 | 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, | ||
68 | 0x73e2bb14, 0xa0bebc3c, 0x54623779, | ||
69 | 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, | ||
70 | 0x89fe78e6, 0x3fab0950, 0x325ff6c2, | ||
71 | 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, | ||
72 | 0x380782d5, 0xc7fa5cf6, 0x8ac31511, | ||
73 | 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, | ||
74 | 0x051ef495, 0xaa573b04, 0x4a805d8d, | ||
75 | 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, | ||
76 | 0x50afd341, 0xa7c13275, 0x915a0bf5, | ||
77 | 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, | ||
78 | 0xab85c5f3, 0x1b55db94, 0xaad4e324, | ||
79 | 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, | ||
80 | 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, | ||
81 | 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, | ||
82 | 0x22513f1e, 0xaa51a79b, 0x2ad344cc, | ||
83 | 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, | ||
84 | 0x032268d4, 0xc9600acc, 0xce387e6d, | ||
85 | 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, | ||
86 | 0x4736f464, 0x5ad328d8, 0xb347cc96, | ||
87 | 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, | ||
88 | 0xbfc5fe4a, 0xa70aec10, 0xac39570a, | ||
89 | 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, | ||
90 | 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, | ||
91 | 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, | ||
92 | 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, | ||
93 | 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, | ||
94 | 0x51c85f4d, 0x56907596, 0xa5bb15e6, | ||
95 | 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, | ||
96 | 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, | ||
97 | 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, | ||
98 | 0x700b45e1, 0xd5ea50f1, 0x85a92872, | ||
99 | 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, | ||
100 | 0x0cd0ede7, 0x26470db8, 0xf881814c, | ||
101 | 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, | ||
102 | 0xab838653, 0x6e2f1e23, 0x83719c9e, | ||
103 | 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, | ||
104 | 0xe1e696ff, 0xb141ab08, 0x7cca89b9, | ||
105 | 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, | ||
106 | 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf | ||
107 | }; | ||
108 | EXPORT_SYMBOL_GPL(cast6_s1); | ||
109 | |||
110 | const u32 cast6_s2[256] = { | ||
111 | 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, | ||
112 | 0xeec5207a, 0x55889c94, 0x72fc0651, | ||
113 | 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, | ||
114 | 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, | ||
115 | 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, | ||
116 | 0xef944459, 0xba83ccb3, 0xe0c3cdfb, | ||
117 | 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, | ||
118 | 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, | ||
119 | 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, | ||
120 | 0x77e83f4e, 0x79929269, 0x24fa9f7b, | ||
121 | 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, | ||
122 | 0x0d554b63, 0x5d681121, 0xc866c359, | ||
123 | 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, | ||
124 | 0x39f7627f, 0x361e3084, 0xe4eb573b, | ||
125 | 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, | ||
126 | 0x99847ab4, 0xa0e3df79, 0xba6cf38c, | ||
127 | 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, | ||
128 | 0x8f458c74, 0xd9e0a227, 0x4ec73a34, | ||
129 | 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, | ||
130 | 0x1d804366, 0x721d9bfd, 0xa58684bb, | ||
131 | 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, | ||
132 | 0x27e19ba5, 0xd5a6c252, 0xe49754bd, | ||
133 | 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, | ||
134 | 0xe0b56714, 0x21f043b7, 0xe5d05860, | ||
135 | 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, | ||
136 | 0x68561be6, 0x83ca6b94, 0x2d6ed23b, | ||
137 | 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, | ||
138 | 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, | ||
139 | 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, | ||
140 | 0xb96726d1, 0x8049a7e8, 0x22b7da7b, | ||
141 | 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, | ||
142 | 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, | ||
143 | 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, | ||
144 | 0xe3214517, 0xb4542835, 0x9f63293c, | ||
145 | 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, | ||
146 | 0x30a22c95, 0x31a70850, 0x60930f13, | ||
147 | 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, | ||
148 | 0xa02b1741, 0x7cbad9a2, 0x2180036f, | ||
149 | 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, | ||
150 | 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, | ||
151 | 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, | ||
152 | 0x846a3bae, 0x8ff77888, 0xee5d60f6, | ||
153 | 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, | ||
154 | 0x157fd7fa, 0xef8579cc, 0xd152de58, | ||
155 | 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, | ||
156 | 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, | ||
157 | 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, | ||
158 | 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, | ||
159 | 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, | ||
160 | 0x301e16e6, 0x273be979, 0xb0ffeaa6, | ||
161 | 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, | ||
162 | 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, | ||
163 | 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, | ||
164 | 0x1a513742, 0xef6828bc, 0x520365d6, | ||
165 | 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, | ||
166 | 0x5eea29cb, 0x145892f5, 0x91584f7f, | ||
167 | 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, | ||
168 | 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, | ||
169 | 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, | ||
170 | 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, | ||
171 | 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, | ||
172 | 0xa345415e, 0x5c038323, 0x3e5d3bb9, | ||
173 | 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, | ||
174 | 0x73bfbe70, 0x83877605, 0x4523ecf1 | ||
175 | }; | ||
176 | EXPORT_SYMBOL_GPL(cast6_s2); | ||
177 | |||
178 | const u32 cast6_s3[256] = { | ||
179 | 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, | ||
180 | 0x369fe44b, 0x8c1fc644, 0xaececa90, | ||
181 | 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, | ||
182 | 0xf0ad0548, 0xe13c8d83, 0x927010d5, | ||
183 | 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, | ||
184 | 0xfade82e0, 0xa067268b, 0x8272792e, | ||
185 | 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, | ||
186 | 0x825b1bfd, 0x9255c5ed, 0x1257a240, | ||
187 | 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, | ||
188 | 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, | ||
189 | 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, | ||
190 | 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, | ||
191 | 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, | ||
192 | 0x4a012d6e, 0xc5884a28, 0xccc36f71, | ||
193 | 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, | ||
194 | 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, | ||
195 | 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, | ||
196 | 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, | ||
197 | 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, | ||
198 | 0x1eac5790, 0x796fb449, 0x8252dc15, | ||
199 | 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, | ||
200 | 0xe83ec305, 0x4f91751a, 0x925669c2, | ||
201 | 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, | ||
202 | 0x927985b2, 0x8276dbcb, 0x02778176, | ||
203 | 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, | ||
204 | 0x340ce5c8, 0x96bbb682, 0x93b4b148, | ||
205 | 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, | ||
206 | 0x8437aa88, 0x7d29dc96, 0x2756d3dc, | ||
207 | 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, | ||
208 | 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, | ||
209 | 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, | ||
210 | 0xbda8229c, 0x127dadaa, 0x438a074e, | ||
211 | 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, | ||
212 | 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, | ||
213 | 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, | ||
214 | 0x76a2e214, 0xb9a40368, 0x925d958f, | ||
215 | 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, | ||
216 | 0x193cbcfa, 0x27627545, 0x825cf47a, | ||
217 | 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, | ||
218 | 0x8272a972, 0x9270c4a8, 0x127de50b, | ||
219 | 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, | ||
220 | 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, | ||
221 | 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, | ||
222 | 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, | ||
223 | 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, | ||
224 | 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, | ||
225 | 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, | ||
226 | 0x7c34671c, 0x02717ef6, 0x4feb5536, | ||
227 | 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, | ||
228 | 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, | ||
229 | 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, | ||
230 | 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, | ||
231 | 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, | ||
232 | 0x856302e0, 0x72dbd92b, 0xee971b69, | ||
233 | 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, | ||
234 | 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, | ||
235 | 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, | ||
236 | 0x0ff0443d, 0x606e6dc6, 0x60543a49, | ||
237 | 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, | ||
238 | 0x68458425, 0x99833be5, 0x600d457d, | ||
239 | 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, | ||
240 | 0x9c305a00, 0x52bce688, 0x1b03588a, | ||
241 | 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, | ||
242 | 0xa133c501, 0xe9d3531c, 0xee353783 | ||
243 | }; | ||
244 | EXPORT_SYMBOL_GPL(cast6_s3); | ||
245 | |||
246 | const u32 cast6_s4[256] = { | ||
247 | 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, | ||
248 | 0x64ad8c57, 0x85510443, 0xfa020ed1, | ||
249 | 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, | ||
250 | 0x6497b7b1, 0xf3641f63, 0x241e4adf, | ||
251 | 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, | ||
252 | 0xc0a5374f, 0x1d2d00d9, 0x24147b15, | ||
253 | 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, | ||
254 | 0x0c13fefe, 0x081b08ca, 0x05170121, | ||
255 | 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, | ||
256 | 0x06df4261, 0xbb9e9b8a, 0x7293ea25, | ||
257 | 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, | ||
258 | 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, | ||
259 | 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, | ||
260 | 0x11b638e1, 0x72500e03, 0xf80eb2bb, | ||
261 | 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, | ||
262 | 0x6920318f, 0x081dbb99, 0xffc304a5, | ||
263 | 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, | ||
264 | 0x9f926f91, 0x9f46222f, 0x3991467d, | ||
265 | 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, | ||
266 | 0x3fb6180c, 0x18f8931e, 0x281658e6, | ||
267 | 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, | ||
268 | 0x79098b02, 0xe4eabb81, 0x28123b23, | ||
269 | 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, | ||
270 | 0x0014377b, 0x041e8ac8, 0x09114003, | ||
271 | 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, | ||
272 | 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, | ||
273 | 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, | ||
274 | 0x56c8c391, 0x6b65811c, 0x5e146119, | ||
275 | 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, | ||
276 | 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, | ||
277 | 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, | ||
278 | 0xeca1d7c7, 0x041afa32, 0x1d16625a, | ||
279 | 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, | ||
280 | 0xc70b8b46, 0xd9e66a48, 0x56e55a79, | ||
281 | 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, | ||
282 | 0xedda04eb, 0x17a9be04, 0x2c18f4df, | ||
283 | 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, | ||
284 | 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, | ||
285 | 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, | ||
286 | 0x0418f2c8, 0x001a96a6, 0x0d1526ab, | ||
287 | 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, | ||
288 | 0x311170a7, 0x3e9b640c, 0xcc3e10d7, | ||
289 | 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, | ||
290 | 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, | ||
291 | 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, | ||
292 | 0xb4be31cd, 0xd8782806, 0x12a3a4e2, | ||
293 | 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, | ||
294 | 0x9711aac5, 0x001d7b95, 0x82e5e7d2, | ||
295 | 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, | ||
296 | 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, | ||
297 | 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, | ||
298 | 0x0ce454a9, 0xd60acd86, 0x015f1919, | ||
299 | 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, | ||
300 | 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, | ||
301 | 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, | ||
302 | 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, | ||
303 | 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, | ||
304 | 0x296b299e, 0x492fc295, 0x9266beab, | ||
305 | 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, | ||
306 | 0xf65324e6, 0x6afce36c, 0x0316cc04, | ||
307 | 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, | ||
308 | 0x932bcdf6, 0xb657c34d, 0x4edfd282, | ||
309 | 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, | ||
310 | 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2 | ||
311 | }; | ||
312 | EXPORT_SYMBOL_GPL(cast6_s4); | ||
313 | |||
314 | static const u32 Tm[24][8] = { | 42 | static const u32 Tm[24][8] = { |
315 | { 0x5a827999, 0xc95c653a, 0x383650db, 0xa7103c7c, 0x15ea281d, | 43 | { 0x5a827999, 0xc95c653a, 0x383650db, 0xa7103c7c, 0x15ea281d, |
316 | 0x84c413be, 0xf39dff5f, 0x6277eb00 } , | 44 | 0x84c413be, 0xf39dff5f, 0x6277eb00 } , |
diff --git a/crypto/cast_common.c b/crypto/cast_common.c new file mode 100644 index 000000000000..a15f523d5f56 --- /dev/null +++ b/crypto/cast_common.c | |||
@@ -0,0 +1,290 @@ | |||
1 | /* | ||
2 | * Common lookup tables for CAST-128 (cast5) and CAST-256 (cast6) | ||
3 | * | ||
4 | * Copyright © 1998, 1999, 2000, 2001 Free Software Foundation, Inc. | ||
5 | * Copyright © 2003 Kartikey Mahendra Bhatt <kartik_me@hotmail.com> | ||
6 | * Copyright © 2012 Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of GNU General Public License as published by the Free | ||
10 | * Software Foundation; either version 2 of the License, or (at your option) | ||
11 | * any later version. | ||
12 | * | ||
13 | */ | ||
14 | |||
15 | #include <linux/module.h> | ||
16 | #include <crypto/cast_common.h> | ||
17 | |||
18 | const u32 cast_s1[256] = { | ||
19 | 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, | ||
20 | 0x9c004dd3, 0x6003e540, 0xcf9fc949, | ||
21 | 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, | ||
22 | 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, | ||
23 | 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, | ||
24 | 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, | ||
25 | 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, | ||
26 | 0xaa54166b, 0x22568e3a, 0xa2d341d0, | ||
27 | 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, | ||
28 | 0x4a97c1d8, 0x527644b7, 0xb5f437a7, | ||
29 | 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, | ||
30 | 0x90ecf52e, 0x22b0c054, 0xbc8e5935, | ||
31 | 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, | ||
32 | 0xe93b159f, 0xb48ee411, 0x4bff345d, | ||
33 | 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, | ||
34 | 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, | ||
35 | 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, | ||
36 | 0xc59c5319, 0xb949e354, 0xb04669fe, | ||
37 | 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, | ||
38 | 0x6a390493, 0xe63d37e0, 0x2a54f6b3, | ||
39 | 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, | ||
40 | 0xf61b1891, 0xbb72275e, 0xaa508167, | ||
41 | 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, | ||
42 | 0xa2d1936b, 0x2ad286af, 0xaa56d291, | ||
43 | 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, | ||
44 | 0x73e2bb14, 0xa0bebc3c, 0x54623779, | ||
45 | 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, | ||
46 | 0x89fe78e6, 0x3fab0950, 0x325ff6c2, | ||
47 | 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, | ||
48 | 0x380782d5, 0xc7fa5cf6, 0x8ac31511, | ||
49 | 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, | ||
50 | 0x051ef495, 0xaa573b04, 0x4a805d8d, | ||
51 | 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, | ||
52 | 0x50afd341, 0xa7c13275, 0x915a0bf5, | ||
53 | 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, | ||
54 | 0xab85c5f3, 0x1b55db94, 0xaad4e324, | ||
55 | 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, | ||
56 | 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, | ||
57 | 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, | ||
58 | 0x22513f1e, 0xaa51a79b, 0x2ad344cc, | ||
59 | 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, | ||
60 | 0x032268d4, 0xc9600acc, 0xce387e6d, | ||
61 | 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, | ||
62 | 0x4736f464, 0x5ad328d8, 0xb347cc96, | ||
63 | 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, | ||
64 | 0xbfc5fe4a, 0xa70aec10, 0xac39570a, | ||
65 | 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, | ||
66 | 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, | ||
67 | 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, | ||
68 | 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, | ||
69 | 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, | ||
70 | 0x51c85f4d, 0x56907596, 0xa5bb15e6, | ||
71 | 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, | ||
72 | 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, | ||
73 | 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, | ||
74 | 0x700b45e1, 0xd5ea50f1, 0x85a92872, | ||
75 | 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, | ||
76 | 0x0cd0ede7, 0x26470db8, 0xf881814c, | ||
77 | 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, | ||
78 | 0xab838653, 0x6e2f1e23, 0x83719c9e, | ||
79 | 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, | ||
80 | 0xe1e696ff, 0xb141ab08, 0x7cca89b9, | ||
81 | 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, | ||
82 | 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf | ||
83 | }; | ||
84 | EXPORT_SYMBOL_GPL(cast_s1); | ||
85 | |||
86 | const u32 cast_s2[256] = { | ||
87 | 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, | ||
88 | 0xeec5207a, 0x55889c94, 0x72fc0651, | ||
89 | 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, | ||
90 | 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, | ||
91 | 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, | ||
92 | 0xef944459, 0xba83ccb3, 0xe0c3cdfb, | ||
93 | 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, | ||
94 | 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, | ||
95 | 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, | ||
96 | 0x77e83f4e, 0x79929269, 0x24fa9f7b, | ||
97 | 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, | ||
98 | 0x0d554b63, 0x5d681121, 0xc866c359, | ||
99 | 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, | ||
100 | 0x39f7627f, 0x361e3084, 0xe4eb573b, | ||
101 | 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, | ||
102 | 0x99847ab4, 0xa0e3df79, 0xba6cf38c, | ||
103 | 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, | ||
104 | 0x8f458c74, 0xd9e0a227, 0x4ec73a34, | ||
105 | 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, | ||
106 | 0x1d804366, 0x721d9bfd, 0xa58684bb, | ||
107 | 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, | ||
108 | 0x27e19ba5, 0xd5a6c252, 0xe49754bd, | ||
109 | 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, | ||
110 | 0xe0b56714, 0x21f043b7, 0xe5d05860, | ||
111 | 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, | ||
112 | 0x68561be6, 0x83ca6b94, 0x2d6ed23b, | ||
113 | 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, | ||
114 | 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, | ||
115 | 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, | ||
116 | 0xb96726d1, 0x8049a7e8, 0x22b7da7b, | ||
117 | 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, | ||
118 | 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, | ||
119 | 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, | ||
120 | 0xe3214517, 0xb4542835, 0x9f63293c, | ||
121 | 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, | ||
122 | 0x30a22c95, 0x31a70850, 0x60930f13, | ||
123 | 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, | ||
124 | 0xa02b1741, 0x7cbad9a2, 0x2180036f, | ||
125 | 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, | ||
126 | 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, | ||
127 | 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, | ||
128 | 0x846a3bae, 0x8ff77888, 0xee5d60f6, | ||
129 | 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, | ||
130 | 0x157fd7fa, 0xef8579cc, 0xd152de58, | ||
131 | 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, | ||
132 | 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, | ||
133 | 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, | ||
134 | 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, | ||
135 | 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, | ||
136 | 0x301e16e6, 0x273be979, 0xb0ffeaa6, | ||
137 | 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, | ||
138 | 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, | ||
139 | 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, | ||
140 | 0x1a513742, 0xef6828bc, 0x520365d6, | ||
141 | 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, | ||
142 | 0x5eea29cb, 0x145892f5, 0x91584f7f, | ||
143 | 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, | ||
144 | 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, | ||
145 | 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, | ||
146 | 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, | ||
147 | 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, | ||
148 | 0xa345415e, 0x5c038323, 0x3e5d3bb9, | ||
149 | 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, | ||
150 | 0x73bfbe70, 0x83877605, 0x4523ecf1 | ||
151 | }; | ||
152 | EXPORT_SYMBOL_GPL(cast_s2); | ||
153 | |||
154 | const u32 cast_s3[256] = { | ||
155 | 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, | ||
156 | 0x369fe44b, 0x8c1fc644, 0xaececa90, | ||
157 | 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, | ||
158 | 0xf0ad0548, 0xe13c8d83, 0x927010d5, | ||
159 | 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, | ||
160 | 0xfade82e0, 0xa067268b, 0x8272792e, | ||
161 | 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, | ||
162 | 0x825b1bfd, 0x9255c5ed, 0x1257a240, | ||
163 | 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, | ||
164 | 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, | ||
165 | 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, | ||
166 | 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, | ||
167 | 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, | ||
168 | 0x4a012d6e, 0xc5884a28, 0xccc36f71, | ||
169 | 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, | ||
170 | 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, | ||
171 | 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, | ||
172 | 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, | ||
173 | 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, | ||
174 | 0x1eac5790, 0x796fb449, 0x8252dc15, | ||
175 | 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, | ||
176 | 0xe83ec305, 0x4f91751a, 0x925669c2, | ||
177 | 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, | ||
178 | 0x927985b2, 0x8276dbcb, 0x02778176, | ||
179 | 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, | ||
180 | 0x340ce5c8, 0x96bbb682, 0x93b4b148, | ||
181 | 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, | ||
182 | 0x8437aa88, 0x7d29dc96, 0x2756d3dc, | ||
183 | 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, | ||
184 | 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, | ||
185 | 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, | ||
186 | 0xbda8229c, 0x127dadaa, 0x438a074e, | ||
187 | 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, | ||
188 | 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, | ||
189 | 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, | ||
190 | 0x76a2e214, 0xb9a40368, 0x925d958f, | ||
191 | 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, | ||
192 | 0x193cbcfa, 0x27627545, 0x825cf47a, | ||
193 | 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, | ||
194 | 0x8272a972, 0x9270c4a8, 0x127de50b, | ||
195 | 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, | ||
196 | 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, | ||
197 | 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, | ||
198 | 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, | ||
199 | 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, | ||
200 | 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, | ||
201 | 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, | ||
202 | 0x7c34671c, 0x02717ef6, 0x4feb5536, | ||
203 | 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, | ||
204 | 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, | ||
205 | 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, | ||
206 | 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, | ||
207 | 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, | ||
208 | 0x856302e0, 0x72dbd92b, 0xee971b69, | ||
209 | 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, | ||
210 | 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, | ||
211 | 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, | ||
212 | 0x0ff0443d, 0x606e6dc6, 0x60543a49, | ||
213 | 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, | ||
214 | 0x68458425, 0x99833be5, 0x600d457d, | ||
215 | 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, | ||
216 | 0x9c305a00, 0x52bce688, 0x1b03588a, | ||
217 | 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, | ||
218 | 0xa133c501, 0xe9d3531c, 0xee353783 | ||
219 | }; | ||
220 | EXPORT_SYMBOL_GPL(cast_s3); | ||
221 | |||
222 | const u32 cast_s4[256] = { | ||
223 | 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, | ||
224 | 0x64ad8c57, 0x85510443, 0xfa020ed1, | ||
225 | 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, | ||
226 | 0x6497b7b1, 0xf3641f63, 0x241e4adf, | ||
227 | 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, | ||
228 | 0xc0a5374f, 0x1d2d00d9, 0x24147b15, | ||
229 | 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, | ||
230 | 0x0c13fefe, 0x081b08ca, 0x05170121, | ||
231 | 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, | ||
232 | 0x06df4261, 0xbb9e9b8a, 0x7293ea25, | ||
233 | 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, | ||
234 | 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, | ||
235 | 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, | ||
236 | 0x11b638e1, 0x72500e03, 0xf80eb2bb, | ||
237 | 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, | ||
238 | 0x6920318f, 0x081dbb99, 0xffc304a5, | ||
239 | 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, | ||
240 | 0x9f926f91, 0x9f46222f, 0x3991467d, | ||
241 | 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, | ||
242 | 0x3fb6180c, 0x18f8931e, 0x281658e6, | ||
243 | 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, | ||
244 | 0x79098b02, 0xe4eabb81, 0x28123b23, | ||
245 | 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, | ||
246 | 0x0014377b, 0x041e8ac8, 0x09114003, | ||
247 | 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, | ||
248 | 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, | ||
249 | 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, | ||
250 | 0x56c8c391, 0x6b65811c, 0x5e146119, | ||
251 | 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, | ||
252 | 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, | ||
253 | 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, | ||
254 | 0xeca1d7c7, 0x041afa32, 0x1d16625a, | ||
255 | 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, | ||
256 | 0xc70b8b46, 0xd9e66a48, 0x56e55a79, | ||
257 | 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, | ||
258 | 0xedda04eb, 0x17a9be04, 0x2c18f4df, | ||
259 | 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, | ||
260 | 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, | ||
261 | 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, | ||
262 | 0x0418f2c8, 0x001a96a6, 0x0d1526ab, | ||
263 | 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, | ||
264 | 0x311170a7, 0x3e9b640c, 0xcc3e10d7, | ||
265 | 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, | ||
266 | 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, | ||
267 | 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, | ||
268 | 0xb4be31cd, 0xd8782806, 0x12a3a4e2, | ||
269 | 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, | ||
270 | 0x9711aac5, 0x001d7b95, 0x82e5e7d2, | ||
271 | 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, | ||
272 | 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, | ||
273 | 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, | ||
274 | 0x0ce454a9, 0xd60acd86, 0x015f1919, | ||
275 | 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, | ||
276 | 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, | ||
277 | 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, | ||
278 | 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, | ||
279 | 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, | ||
280 | 0x296b299e, 0x492fc295, 0x9266beab, | ||
281 | 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, | ||
282 | 0xf65324e6, 0x6afce36c, 0x0316cc04, | ||
283 | 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, | ||
284 | 0x932bcdf6, 0xb657c34d, 0x4edfd282, | ||
285 | 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, | ||
286 | 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2 | ||
287 | }; | ||
288 | EXPORT_SYMBOL_GPL(cast_s4); | ||
289 | |||
290 | MODULE_LICENSE("GPL"); | ||
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index e87fa60f5831..7ae2130e1b00 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c | |||
@@ -971,11 +971,13 @@ static int do_test(int m) | |||
971 | case 3: | 971 | case 3: |
972 | ret += tcrypt_test("ecb(des)"); | 972 | ret += tcrypt_test("ecb(des)"); |
973 | ret += tcrypt_test("cbc(des)"); | 973 | ret += tcrypt_test("cbc(des)"); |
974 | ret += tcrypt_test("ctr(des)"); | ||
974 | break; | 975 | break; |
975 | 976 | ||
976 | case 4: | 977 | case 4: |
977 | ret += tcrypt_test("ecb(des3_ede)"); | 978 | ret += tcrypt_test("ecb(des3_ede)"); |
978 | ret += tcrypt_test("cbc(des3_ede)"); | 979 | ret += tcrypt_test("cbc(des3_ede)"); |
980 | ret += tcrypt_test("ctr(des3_ede)"); | ||
979 | break; | 981 | break; |
980 | 982 | ||
981 | case 5: | 983 | case 5: |
@@ -1479,6 +1481,10 @@ static int do_test(int m) | |||
1479 | test_hash_speed("ghash-generic", sec, hash_speed_template_16); | 1481 | test_hash_speed("ghash-generic", sec, hash_speed_template_16); |
1480 | if (mode > 300 && mode < 400) break; | 1482 | if (mode > 300 && mode < 400) break; |
1481 | 1483 | ||
1484 | case 319: | ||
1485 | test_hash_speed("crc32c", sec, generic_hash_speed_template); | ||
1486 | if (mode > 300 && mode < 400) break; | ||
1487 | |||
1482 | case 399: | 1488 | case 399: |
1483 | break; | 1489 | break; |
1484 | 1490 | ||
@@ -1722,6 +1728,29 @@ static int do_test(int m) | |||
1722 | speed_template_32_64); | 1728 | speed_template_32_64); |
1723 | break; | 1729 | break; |
1724 | 1730 | ||
1731 | case 508: | ||
1732 | test_acipher_speed("ecb(camellia)", ENCRYPT, sec, NULL, 0, | ||
1733 | speed_template_16_32); | ||
1734 | test_acipher_speed("ecb(camellia)", DECRYPT, sec, NULL, 0, | ||
1735 | speed_template_16_32); | ||
1736 | test_acipher_speed("cbc(camellia)", ENCRYPT, sec, NULL, 0, | ||
1737 | speed_template_16_32); | ||
1738 | test_acipher_speed("cbc(camellia)", DECRYPT, sec, NULL, 0, | ||
1739 | speed_template_16_32); | ||
1740 | test_acipher_speed("ctr(camellia)", ENCRYPT, sec, NULL, 0, | ||
1741 | speed_template_16_32); | ||
1742 | test_acipher_speed("ctr(camellia)", DECRYPT, sec, NULL, 0, | ||
1743 | speed_template_16_32); | ||
1744 | test_acipher_speed("lrw(camellia)", ENCRYPT, sec, NULL, 0, | ||
1745 | speed_template_32_48); | ||
1746 | test_acipher_speed("lrw(camellia)", DECRYPT, sec, NULL, 0, | ||
1747 | speed_template_32_48); | ||
1748 | test_acipher_speed("xts(camellia)", ENCRYPT, sec, NULL, 0, | ||
1749 | speed_template_32_64); | ||
1750 | test_acipher_speed("xts(camellia)", DECRYPT, sec, NULL, 0, | ||
1751 | speed_template_32_64); | ||
1752 | break; | ||
1753 | |||
1725 | case 1000: | 1754 | case 1000: |
1726 | test_available(); | 1755 | test_available(); |
1727 | break; | 1756 | break; |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 941d75cd1f7c..edf4a0818773 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c | |||
@@ -1638,270 +1638,66 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1638 | { | 1638 | { |
1639 | .alg = "__cbc-cast5-avx", | 1639 | .alg = "__cbc-cast5-avx", |
1640 | .test = alg_test_null, | 1640 | .test = alg_test_null, |
1641 | .suite = { | ||
1642 | .cipher = { | ||
1643 | .enc = { | ||
1644 | .vecs = NULL, | ||
1645 | .count = 0 | ||
1646 | }, | ||
1647 | .dec = { | ||
1648 | .vecs = NULL, | ||
1649 | .count = 0 | ||
1650 | } | ||
1651 | } | ||
1652 | } | ||
1653 | }, { | 1641 | }, { |
1654 | .alg = "__cbc-cast6-avx", | 1642 | .alg = "__cbc-cast6-avx", |
1655 | .test = alg_test_null, | 1643 | .test = alg_test_null, |
1656 | .suite = { | ||
1657 | .cipher = { | ||
1658 | .enc = { | ||
1659 | .vecs = NULL, | ||
1660 | .count = 0 | ||
1661 | }, | ||
1662 | .dec = { | ||
1663 | .vecs = NULL, | ||
1664 | .count = 0 | ||
1665 | } | ||
1666 | } | ||
1667 | } | ||
1668 | }, { | 1644 | }, { |
1669 | .alg = "__cbc-serpent-avx", | 1645 | .alg = "__cbc-serpent-avx", |
1670 | .test = alg_test_null, | 1646 | .test = alg_test_null, |
1671 | .suite = { | ||
1672 | .cipher = { | ||
1673 | .enc = { | ||
1674 | .vecs = NULL, | ||
1675 | .count = 0 | ||
1676 | }, | ||
1677 | .dec = { | ||
1678 | .vecs = NULL, | ||
1679 | .count = 0 | ||
1680 | } | ||
1681 | } | ||
1682 | } | ||
1683 | }, { | 1647 | }, { |
1684 | .alg = "__cbc-serpent-sse2", | 1648 | .alg = "__cbc-serpent-sse2", |
1685 | .test = alg_test_null, | 1649 | .test = alg_test_null, |
1686 | .suite = { | ||
1687 | .cipher = { | ||
1688 | .enc = { | ||
1689 | .vecs = NULL, | ||
1690 | .count = 0 | ||
1691 | }, | ||
1692 | .dec = { | ||
1693 | .vecs = NULL, | ||
1694 | .count = 0 | ||
1695 | } | ||
1696 | } | ||
1697 | } | ||
1698 | }, { | 1650 | }, { |
1699 | .alg = "__cbc-twofish-avx", | 1651 | .alg = "__cbc-twofish-avx", |
1700 | .test = alg_test_null, | 1652 | .test = alg_test_null, |
1701 | .suite = { | ||
1702 | .cipher = { | ||
1703 | .enc = { | ||
1704 | .vecs = NULL, | ||
1705 | .count = 0 | ||
1706 | }, | ||
1707 | .dec = { | ||
1708 | .vecs = NULL, | ||
1709 | .count = 0 | ||
1710 | } | ||
1711 | } | ||
1712 | } | ||
1713 | }, { | 1653 | }, { |
1714 | .alg = "__driver-cbc-aes-aesni", | 1654 | .alg = "__driver-cbc-aes-aesni", |
1715 | .test = alg_test_null, | 1655 | .test = alg_test_null, |
1716 | .fips_allowed = 1, | 1656 | .fips_allowed = 1, |
1717 | .suite = { | 1657 | }, { |
1718 | .cipher = { | 1658 | .alg = "__driver-cbc-camellia-aesni", |
1719 | .enc = { | 1659 | .test = alg_test_null, |
1720 | .vecs = NULL, | ||
1721 | .count = 0 | ||
1722 | }, | ||
1723 | .dec = { | ||
1724 | .vecs = NULL, | ||
1725 | .count = 0 | ||
1726 | } | ||
1727 | } | ||
1728 | } | ||
1729 | }, { | 1660 | }, { |
1730 | .alg = "__driver-cbc-cast5-avx", | 1661 | .alg = "__driver-cbc-cast5-avx", |
1731 | .test = alg_test_null, | 1662 | .test = alg_test_null, |
1732 | .suite = { | ||
1733 | .cipher = { | ||
1734 | .enc = { | ||
1735 | .vecs = NULL, | ||
1736 | .count = 0 | ||
1737 | }, | ||
1738 | .dec = { | ||
1739 | .vecs = NULL, | ||
1740 | .count = 0 | ||
1741 | } | ||
1742 | } | ||
1743 | } | ||
1744 | }, { | 1663 | }, { |
1745 | .alg = "__driver-cbc-cast6-avx", | 1664 | .alg = "__driver-cbc-cast6-avx", |
1746 | .test = alg_test_null, | 1665 | .test = alg_test_null, |
1747 | .suite = { | ||
1748 | .cipher = { | ||
1749 | .enc = { | ||
1750 | .vecs = NULL, | ||
1751 | .count = 0 | ||
1752 | }, | ||
1753 | .dec = { | ||
1754 | .vecs = NULL, | ||
1755 | .count = 0 | ||
1756 | } | ||
1757 | } | ||
1758 | } | ||
1759 | }, { | 1666 | }, { |
1760 | .alg = "__driver-cbc-serpent-avx", | 1667 | .alg = "__driver-cbc-serpent-avx", |
1761 | .test = alg_test_null, | 1668 | .test = alg_test_null, |
1762 | .suite = { | ||
1763 | .cipher = { | ||
1764 | .enc = { | ||
1765 | .vecs = NULL, | ||
1766 | .count = 0 | ||
1767 | }, | ||
1768 | .dec = { | ||
1769 | .vecs = NULL, | ||
1770 | .count = 0 | ||
1771 | } | ||
1772 | } | ||
1773 | } | ||
1774 | }, { | 1669 | }, { |
1775 | .alg = "__driver-cbc-serpent-sse2", | 1670 | .alg = "__driver-cbc-serpent-sse2", |
1776 | .test = alg_test_null, | 1671 | .test = alg_test_null, |
1777 | .suite = { | ||
1778 | .cipher = { | ||
1779 | .enc = { | ||
1780 | .vecs = NULL, | ||
1781 | .count = 0 | ||
1782 | }, | ||
1783 | .dec = { | ||
1784 | .vecs = NULL, | ||
1785 | .count = 0 | ||
1786 | } | ||
1787 | } | ||
1788 | } | ||
1789 | }, { | 1672 | }, { |
1790 | .alg = "__driver-cbc-twofish-avx", | 1673 | .alg = "__driver-cbc-twofish-avx", |
1791 | .test = alg_test_null, | 1674 | .test = alg_test_null, |
1792 | .suite = { | ||
1793 | .cipher = { | ||
1794 | .enc = { | ||
1795 | .vecs = NULL, | ||
1796 | .count = 0 | ||
1797 | }, | ||
1798 | .dec = { | ||
1799 | .vecs = NULL, | ||
1800 | .count = 0 | ||
1801 | } | ||
1802 | } | ||
1803 | } | ||
1804 | }, { | 1675 | }, { |
1805 | .alg = "__driver-ecb-aes-aesni", | 1676 | .alg = "__driver-ecb-aes-aesni", |
1806 | .test = alg_test_null, | 1677 | .test = alg_test_null, |
1807 | .fips_allowed = 1, | 1678 | .fips_allowed = 1, |
1808 | .suite = { | 1679 | }, { |
1809 | .cipher = { | 1680 | .alg = "__driver-ecb-camellia-aesni", |
1810 | .enc = { | 1681 | .test = alg_test_null, |
1811 | .vecs = NULL, | ||
1812 | .count = 0 | ||
1813 | }, | ||
1814 | .dec = { | ||
1815 | .vecs = NULL, | ||
1816 | .count = 0 | ||
1817 | } | ||
1818 | } | ||
1819 | } | ||
1820 | }, { | 1682 | }, { |
1821 | .alg = "__driver-ecb-cast5-avx", | 1683 | .alg = "__driver-ecb-cast5-avx", |
1822 | .test = alg_test_null, | 1684 | .test = alg_test_null, |
1823 | .suite = { | ||
1824 | .cipher = { | ||
1825 | .enc = { | ||
1826 | .vecs = NULL, | ||
1827 | .count = 0 | ||
1828 | }, | ||
1829 | .dec = { | ||
1830 | .vecs = NULL, | ||
1831 | .count = 0 | ||
1832 | } | ||
1833 | } | ||
1834 | } | ||
1835 | }, { | 1685 | }, { |
1836 | .alg = "__driver-ecb-cast6-avx", | 1686 | .alg = "__driver-ecb-cast6-avx", |
1837 | .test = alg_test_null, | 1687 | .test = alg_test_null, |
1838 | .suite = { | ||
1839 | .cipher = { | ||
1840 | .enc = { | ||
1841 | .vecs = NULL, | ||
1842 | .count = 0 | ||
1843 | }, | ||
1844 | .dec = { | ||
1845 | .vecs = NULL, | ||
1846 | .count = 0 | ||
1847 | } | ||
1848 | } | ||
1849 | } | ||
1850 | }, { | 1688 | }, { |
1851 | .alg = "__driver-ecb-serpent-avx", | 1689 | .alg = "__driver-ecb-serpent-avx", |
1852 | .test = alg_test_null, | 1690 | .test = alg_test_null, |
1853 | .suite = { | ||
1854 | .cipher = { | ||
1855 | .enc = { | ||
1856 | .vecs = NULL, | ||
1857 | .count = 0 | ||
1858 | }, | ||
1859 | .dec = { | ||
1860 | .vecs = NULL, | ||
1861 | .count = 0 | ||
1862 | } | ||
1863 | } | ||
1864 | } | ||
1865 | }, { | 1691 | }, { |
1866 | .alg = "__driver-ecb-serpent-sse2", | 1692 | .alg = "__driver-ecb-serpent-sse2", |
1867 | .test = alg_test_null, | 1693 | .test = alg_test_null, |
1868 | .suite = { | ||
1869 | .cipher = { | ||
1870 | .enc = { | ||
1871 | .vecs = NULL, | ||
1872 | .count = 0 | ||
1873 | }, | ||
1874 | .dec = { | ||
1875 | .vecs = NULL, | ||
1876 | .count = 0 | ||
1877 | } | ||
1878 | } | ||
1879 | } | ||
1880 | }, { | 1694 | }, { |
1881 | .alg = "__driver-ecb-twofish-avx", | 1695 | .alg = "__driver-ecb-twofish-avx", |
1882 | .test = alg_test_null, | 1696 | .test = alg_test_null, |
1883 | .suite = { | ||
1884 | .cipher = { | ||
1885 | .enc = { | ||
1886 | .vecs = NULL, | ||
1887 | .count = 0 | ||
1888 | }, | ||
1889 | .dec = { | ||
1890 | .vecs = NULL, | ||
1891 | .count = 0 | ||
1892 | } | ||
1893 | } | ||
1894 | } | ||
1895 | }, { | 1697 | }, { |
1896 | .alg = "__ghash-pclmulqdqni", | 1698 | .alg = "__ghash-pclmulqdqni", |
1897 | .test = alg_test_null, | 1699 | .test = alg_test_null, |
1898 | .fips_allowed = 1, | 1700 | .fips_allowed = 1, |
1899 | .suite = { | ||
1900 | .hash = { | ||
1901 | .vecs = NULL, | ||
1902 | .count = 0 | ||
1903 | } | ||
1904 | } | ||
1905 | }, { | 1701 | }, { |
1906 | .alg = "ansi_cprng", | 1702 | .alg = "ansi_cprng", |
1907 | .test = alg_test_cprng, | 1703 | .test = alg_test_cprng, |
@@ -2130,135 +1926,39 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2130 | .alg = "cryptd(__driver-cbc-aes-aesni)", | 1926 | .alg = "cryptd(__driver-cbc-aes-aesni)", |
2131 | .test = alg_test_null, | 1927 | .test = alg_test_null, |
2132 | .fips_allowed = 1, | 1928 | .fips_allowed = 1, |
2133 | .suite = { | 1929 | }, { |
2134 | .cipher = { | 1930 | .alg = "cryptd(__driver-cbc-camellia-aesni)", |
2135 | .enc = { | 1931 | .test = alg_test_null, |
2136 | .vecs = NULL, | ||
2137 | .count = 0 | ||
2138 | }, | ||
2139 | .dec = { | ||
2140 | .vecs = NULL, | ||
2141 | .count = 0 | ||
2142 | } | ||
2143 | } | ||
2144 | } | ||
2145 | }, { | 1932 | }, { |
2146 | .alg = "cryptd(__driver-ecb-aes-aesni)", | 1933 | .alg = "cryptd(__driver-ecb-aes-aesni)", |
2147 | .test = alg_test_null, | 1934 | .test = alg_test_null, |
2148 | .fips_allowed = 1, | 1935 | .fips_allowed = 1, |
2149 | .suite = { | 1936 | }, { |
2150 | .cipher = { | 1937 | .alg = "cryptd(__driver-ecb-camellia-aesni)", |
2151 | .enc = { | 1938 | .test = alg_test_null, |
2152 | .vecs = NULL, | ||
2153 | .count = 0 | ||
2154 | }, | ||
2155 | .dec = { | ||
2156 | .vecs = NULL, | ||
2157 | .count = 0 | ||
2158 | } | ||
2159 | } | ||
2160 | } | ||
2161 | }, { | 1939 | }, { |
2162 | .alg = "cryptd(__driver-ecb-cast5-avx)", | 1940 | .alg = "cryptd(__driver-ecb-cast5-avx)", |
2163 | .test = alg_test_null, | 1941 | .test = alg_test_null, |
2164 | .suite = { | ||
2165 | .cipher = { | ||
2166 | .enc = { | ||
2167 | .vecs = NULL, | ||
2168 | .count = 0 | ||
2169 | }, | ||
2170 | .dec = { | ||
2171 | .vecs = NULL, | ||
2172 | .count = 0 | ||
2173 | } | ||
2174 | } | ||
2175 | } | ||
2176 | }, { | 1942 | }, { |
2177 | .alg = "cryptd(__driver-ecb-cast6-avx)", | 1943 | .alg = "cryptd(__driver-ecb-cast6-avx)", |
2178 | .test = alg_test_null, | 1944 | .test = alg_test_null, |
2179 | .suite = { | ||
2180 | .cipher = { | ||
2181 | .enc = { | ||
2182 | .vecs = NULL, | ||
2183 | .count = 0 | ||
2184 | }, | ||
2185 | .dec = { | ||
2186 | .vecs = NULL, | ||
2187 | .count = 0 | ||
2188 | } | ||
2189 | } | ||
2190 | } | ||
2191 | }, { | 1945 | }, { |
2192 | .alg = "cryptd(__driver-ecb-serpent-avx)", | 1946 | .alg = "cryptd(__driver-ecb-serpent-avx)", |
2193 | .test = alg_test_null, | 1947 | .test = alg_test_null, |
2194 | .suite = { | ||
2195 | .cipher = { | ||
2196 | .enc = { | ||
2197 | .vecs = NULL, | ||
2198 | .count = 0 | ||
2199 | }, | ||
2200 | .dec = { | ||
2201 | .vecs = NULL, | ||
2202 | .count = 0 | ||
2203 | } | ||
2204 | } | ||
2205 | } | ||
2206 | }, { | 1948 | }, { |
2207 | .alg = "cryptd(__driver-ecb-serpent-sse2)", | 1949 | .alg = "cryptd(__driver-ecb-serpent-sse2)", |
2208 | .test = alg_test_null, | 1950 | .test = alg_test_null, |
2209 | .suite = { | ||
2210 | .cipher = { | ||
2211 | .enc = { | ||
2212 | .vecs = NULL, | ||
2213 | .count = 0 | ||
2214 | }, | ||
2215 | .dec = { | ||
2216 | .vecs = NULL, | ||
2217 | .count = 0 | ||
2218 | } | ||
2219 | } | ||
2220 | } | ||
2221 | }, { | 1951 | }, { |
2222 | .alg = "cryptd(__driver-ecb-twofish-avx)", | 1952 | .alg = "cryptd(__driver-ecb-twofish-avx)", |
2223 | .test = alg_test_null, | 1953 | .test = alg_test_null, |
2224 | .suite = { | ||
2225 | .cipher = { | ||
2226 | .enc = { | ||
2227 | .vecs = NULL, | ||
2228 | .count = 0 | ||
2229 | }, | ||
2230 | .dec = { | ||
2231 | .vecs = NULL, | ||
2232 | .count = 0 | ||
2233 | } | ||
2234 | } | ||
2235 | } | ||
2236 | }, { | 1954 | }, { |
2237 | .alg = "cryptd(__driver-gcm-aes-aesni)", | 1955 | .alg = "cryptd(__driver-gcm-aes-aesni)", |
2238 | .test = alg_test_null, | 1956 | .test = alg_test_null, |
2239 | .fips_allowed = 1, | 1957 | .fips_allowed = 1, |
2240 | .suite = { | ||
2241 | .cipher = { | ||
2242 | .enc = { | ||
2243 | .vecs = NULL, | ||
2244 | .count = 0 | ||
2245 | }, | ||
2246 | .dec = { | ||
2247 | .vecs = NULL, | ||
2248 | .count = 0 | ||
2249 | } | ||
2250 | } | ||
2251 | } | ||
2252 | }, { | 1958 | }, { |
2253 | .alg = "cryptd(__ghash-pclmulqdqni)", | 1959 | .alg = "cryptd(__ghash-pclmulqdqni)", |
2254 | .test = alg_test_null, | 1960 | .test = alg_test_null, |
2255 | .fips_allowed = 1, | 1961 | .fips_allowed = 1, |
2256 | .suite = { | ||
2257 | .hash = { | ||
2258 | .vecs = NULL, | ||
2259 | .count = 0 | ||
2260 | } | ||
2261 | } | ||
2262 | }, { | 1962 | }, { |
2263 | .alg = "ctr(aes)", | 1963 | .alg = "ctr(aes)", |
2264 | .test = alg_test_skcipher, | 1964 | .test = alg_test_skcipher, |
@@ -2336,6 +2036,36 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2336 | } | 2036 | } |
2337 | } | 2037 | } |
2338 | }, { | 2038 | }, { |
2039 | .alg = "ctr(des)", | ||
2040 | .test = alg_test_skcipher, | ||
2041 | .suite = { | ||
2042 | .cipher = { | ||
2043 | .enc = { | ||
2044 | .vecs = des_ctr_enc_tv_template, | ||
2045 | .count = DES_CTR_ENC_TEST_VECTORS | ||
2046 | }, | ||
2047 | .dec = { | ||
2048 | .vecs = des_ctr_dec_tv_template, | ||
2049 | .count = DES_CTR_DEC_TEST_VECTORS | ||
2050 | } | ||
2051 | } | ||
2052 | } | ||
2053 | }, { | ||
2054 | .alg = "ctr(des3_ede)", | ||
2055 | .test = alg_test_skcipher, | ||
2056 | .suite = { | ||
2057 | .cipher = { | ||
2058 | .enc = { | ||
2059 | .vecs = des3_ede_ctr_enc_tv_template, | ||
2060 | .count = DES3_EDE_CTR_ENC_TEST_VECTORS | ||
2061 | }, | ||
2062 | .dec = { | ||
2063 | .vecs = des3_ede_ctr_dec_tv_template, | ||
2064 | .count = DES3_EDE_CTR_DEC_TEST_VECTORS | ||
2065 | } | ||
2066 | } | ||
2067 | } | ||
2068 | }, { | ||
2339 | .alg = "ctr(serpent)", | 2069 | .alg = "ctr(serpent)", |
2340 | .test = alg_test_skcipher, | 2070 | .test = alg_test_skcipher, |
2341 | .suite = { | 2071 | .suite = { |
@@ -2383,6 +2113,7 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2383 | }, { | 2113 | }, { |
2384 | .alg = "deflate", | 2114 | .alg = "deflate", |
2385 | .test = alg_test_comp, | 2115 | .test = alg_test_comp, |
2116 | .fips_allowed = 1, | ||
2386 | .suite = { | 2117 | .suite = { |
2387 | .comp = { | 2118 | .comp = { |
2388 | .comp = { | 2119 | .comp = { |
@@ -2399,18 +2130,6 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2399 | .alg = "ecb(__aes-aesni)", | 2130 | .alg = "ecb(__aes-aesni)", |
2400 | .test = alg_test_null, | 2131 | .test = alg_test_null, |
2401 | .fips_allowed = 1, | 2132 | .fips_allowed = 1, |
2402 | .suite = { | ||
2403 | .cipher = { | ||
2404 | .enc = { | ||
2405 | .vecs = NULL, | ||
2406 | .count = 0 | ||
2407 | }, | ||
2408 | .dec = { | ||
2409 | .vecs = NULL, | ||
2410 | .count = 0 | ||
2411 | } | ||
2412 | } | ||
2413 | } | ||
2414 | }, { | 2133 | }, { |
2415 | .alg = "ecb(aes)", | 2134 | .alg = "ecb(aes)", |
2416 | .test = alg_test_skcipher, | 2135 | .test = alg_test_skcipher, |
@@ -2859,6 +2578,7 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
2859 | }, { | 2578 | }, { |
2860 | .alg = "lzo", | 2579 | .alg = "lzo", |
2861 | .test = alg_test_comp, | 2580 | .test = alg_test_comp, |
2581 | .fips_allowed = 1, | ||
2862 | .suite = { | 2582 | .suite = { |
2863 | .comp = { | 2583 | .comp = { |
2864 | .comp = { | 2584 | .comp = { |
@@ -3226,6 +2946,7 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
3226 | }, { | 2946 | }, { |
3227 | .alg = "zlib", | 2947 | .alg = "zlib", |
3228 | .test = alg_test_pcomp, | 2948 | .test = alg_test_pcomp, |
2949 | .fips_allowed = 1, | ||
3229 | .suite = { | 2950 | .suite = { |
3230 | .pcomp = { | 2951 | .pcomp = { |
3231 | .comp = { | 2952 | .comp = { |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 76d7f6cc82f5..b5721e0b979c 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h | |||
@@ -41,7 +41,7 @@ struct hash_testvec { | |||
41 | char *plaintext; | 41 | char *plaintext; |
42 | char *digest; | 42 | char *digest; |
43 | unsigned char tap[MAX_TAP]; | 43 | unsigned char tap[MAX_TAP]; |
44 | unsigned char psize; | 44 | unsigned short psize; |
45 | unsigned char np; | 45 | unsigned char np; |
46 | unsigned char ksize; | 46 | unsigned char ksize; |
47 | }; | 47 | }; |
@@ -1707,7 +1707,7 @@ static struct hash_testvec aes_xcbc128_tv_template[] = { | |||
1707 | } | 1707 | } |
1708 | }; | 1708 | }; |
1709 | 1709 | ||
1710 | #define VMAC_AES_TEST_VECTORS 8 | 1710 | #define VMAC_AES_TEST_VECTORS 11 |
1711 | static char vmac_string1[128] = {'\x01', '\x01', '\x01', '\x01', | 1711 | static char vmac_string1[128] = {'\x01', '\x01', '\x01', '\x01', |
1712 | '\x02', '\x03', '\x02', '\x02', | 1712 | '\x02', '\x03', '\x02', '\x02', |
1713 | '\x02', '\x04', '\x01', '\x07', | 1713 | '\x02', '\x04', '\x01', '\x07', |
@@ -1723,6 +1723,19 @@ static char vmac_string3[128] = {'a', 'b', 'c', 'a', 'b', 'c', | |||
1723 | 'a', 'b', 'c', 'a', 'b', 'c', | 1723 | 'a', 'b', 'c', 'a', 'b', 'c', |
1724 | }; | 1724 | }; |
1725 | 1725 | ||
1726 | static char vmac_string4[17] = {'b', 'c', 'e', 'f', | ||
1727 | 'i', 'j', 'l', 'm', | ||
1728 | 'o', 'p', 'r', 's', | ||
1729 | 't', 'u', 'w', 'x', 'z'}; | ||
1730 | |||
1731 | static char vmac_string5[127] = {'r', 'm', 'b', 't', 'c', | ||
1732 | 'o', 'l', 'k', ']', '%', | ||
1733 | '9', '2', '7', '!', 'A'}; | ||
1734 | |||
1735 | static char vmac_string6[129] = {'p', 't', '*', '7', 'l', | ||
1736 | 'i', '!', '#', 'w', '0', | ||
1737 | 'z', '/', '4', 'A', 'n'}; | ||
1738 | |||
1726 | static struct hash_testvec aes_vmac128_tv_template[] = { | 1739 | static struct hash_testvec aes_vmac128_tv_template[] = { |
1727 | { | 1740 | { |
1728 | .key = "\x00\x01\x02\x03\x04\x05\x06\x07" | 1741 | .key = "\x00\x01\x02\x03\x04\x05\x06\x07" |
@@ -1776,6 +1789,24 @@ static struct hash_testvec aes_vmac128_tv_template[] = { | |||
1776 | .digest = "\x8b\x32\x8f\xe1\xed\x8f\xfa\xd4", | 1789 | .digest = "\x8b\x32\x8f\xe1\xed\x8f\xfa\xd4", |
1777 | .psize = 128, | 1790 | .psize = 128, |
1778 | .ksize = 16, | 1791 | .ksize = 16, |
1792 | }, { | ||
1793 | .key = "a09b5cd!f#07K\x00\x00\x00", | ||
1794 | .plaintext = vmac_string4, | ||
1795 | .digest = "\xab\xa5\x0f\xea\x42\x4e\xa1\x5f", | ||
1796 | .psize = sizeof(vmac_string4), | ||
1797 | .ksize = 16, | ||
1798 | }, { | ||
1799 | .key = "a09b5cd!f#07K\x00\x00\x00", | ||
1800 | .plaintext = vmac_string5, | ||
1801 | .digest = "\x25\x31\x98\xbc\x1d\xe8\x67\x60", | ||
1802 | .psize = sizeof(vmac_string5), | ||
1803 | .ksize = 16, | ||
1804 | }, { | ||
1805 | .key = "a09b5cd!f#07K\x00\x00\x00", | ||
1806 | .plaintext = vmac_string6, | ||
1807 | .digest = "\xc4\xae\x9b\x47\x95\x65\xeb\x41", | ||
1808 | .psize = sizeof(vmac_string6), | ||
1809 | .ksize = 16, | ||
1779 | }, | 1810 | }, |
1780 | }; | 1811 | }; |
1781 | 1812 | ||
@@ -1993,14 +2024,18 @@ static struct hash_testvec hmac_sha512_tv_template[] = { | |||
1993 | /* | 2024 | /* |
1994 | * DES test vectors. | 2025 | * DES test vectors. |
1995 | */ | 2026 | */ |
1996 | #define DES_ENC_TEST_VECTORS 10 | 2027 | #define DES_ENC_TEST_VECTORS 11 |
1997 | #define DES_DEC_TEST_VECTORS 4 | 2028 | #define DES_DEC_TEST_VECTORS 5 |
1998 | #define DES_CBC_ENC_TEST_VECTORS 5 | 2029 | #define DES_CBC_ENC_TEST_VECTORS 6 |
1999 | #define DES_CBC_DEC_TEST_VECTORS 4 | 2030 | #define DES_CBC_DEC_TEST_VECTORS 5 |
2000 | #define DES3_EDE_ENC_TEST_VECTORS 3 | 2031 | #define DES_CTR_ENC_TEST_VECTORS 2 |
2001 | #define DES3_EDE_DEC_TEST_VECTORS 3 | 2032 | #define DES_CTR_DEC_TEST_VECTORS 2 |
2002 | #define DES3_EDE_CBC_ENC_TEST_VECTORS 1 | 2033 | #define DES3_EDE_ENC_TEST_VECTORS 4 |
2003 | #define DES3_EDE_CBC_DEC_TEST_VECTORS 1 | 2034 | #define DES3_EDE_DEC_TEST_VECTORS 4 |
2035 | #define DES3_EDE_CBC_ENC_TEST_VECTORS 2 | ||
2036 | #define DES3_EDE_CBC_DEC_TEST_VECTORS 2 | ||
2037 | #define DES3_EDE_CTR_ENC_TEST_VECTORS 2 | ||
2038 | #define DES3_EDE_CTR_DEC_TEST_VECTORS 2 | ||
2004 | 2039 | ||
2005 | static struct cipher_testvec des_enc_tv_template[] = { | 2040 | static struct cipher_testvec des_enc_tv_template[] = { |
2006 | { /* From Applied Cryptography */ | 2041 | { /* From Applied Cryptography */ |
@@ -2103,6 +2138,76 @@ static struct cipher_testvec des_enc_tv_template[] = { | |||
2103 | .rlen = 8, | 2138 | .rlen = 8, |
2104 | .np = 8, | 2139 | .np = 8, |
2105 | .tap = { 1, 1, 1, 1, 1, 1, 1, 1 } | 2140 | .tap = { 1, 1, 1, 1, 1, 1, 1, 1 } |
2141 | }, { /* Generated with Crypto++ */ | ||
2142 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2143 | .klen = 8, | ||
2144 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2145 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2146 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2147 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2148 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2149 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2150 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2151 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2152 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2153 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2154 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2155 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2156 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2157 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2158 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2159 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2160 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2161 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2162 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2163 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2164 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2165 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2166 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2167 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2168 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2169 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2170 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2171 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2172 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2173 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2174 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2175 | .ilen = 248, | ||
2176 | .result = "\x88\xCB\x1F\xAB\x2F\x2A\x49\x57" | ||
2177 | "\x92\xB9\x77\xFF\x2F\x47\x58\xDD" | ||
2178 | "\xD7\x8A\x91\x95\x26\x33\x78\xB2" | ||
2179 | "\x33\xBA\xB2\x3E\x02\xF5\x1F\xEF" | ||
2180 | "\x98\xC5\xA6\xD2\x7D\x79\xEC\xB3" | ||
2181 | "\x45\xF3\x4C\x61\xAC\x6C\xC2\x55" | ||
2182 | "\xE5\xD3\x06\x58\x8A\x42\x3E\xDD" | ||
2183 | "\x3D\x20\x45\xE9\x6F\x0D\x25\xA8" | ||
2184 | "\xA5\xC7\x69\xCE\xD5\x3B\x7B\xC9" | ||
2185 | "\x9E\x65\xE7\xA3\xF2\xE4\x18\x94" | ||
2186 | "\xD2\x81\xE9\x33\x2B\x2D\x49\xC4" | ||
2187 | "\xFE\xDA\x7F\xE2\xF2\x8C\x9C\xDC" | ||
2188 | "\x73\x58\x11\x1F\x81\xD7\x21\x1A" | ||
2189 | "\x80\xD0\x0D\xE8\x45\xD6\xD8\xD5" | ||
2190 | "\x2E\x51\x16\xCA\x09\x89\x54\x62" | ||
2191 | "\xF7\x04\x3D\x75\xB9\xA3\x84\xF4" | ||
2192 | "\x62\xF0\x02\x58\x83\xAF\x30\x87" | ||
2193 | "\x85\x3F\x01\xCD\x8E\x58\x42\xC4" | ||
2194 | "\x41\x73\xE0\x15\x0A\xE6\x2E\x80" | ||
2195 | "\x94\xF8\x5B\x3A\x4E\xDF\x51\xB2" | ||
2196 | "\x9D\xE4\xC4\x9D\xF7\x3F\xF8\x8E" | ||
2197 | "\x37\x22\x4D\x00\x2A\xEF\xC1\x0F" | ||
2198 | "\x14\xA0\x66\xAB\x79\x39\xD0\x8E" | ||
2199 | "\xE9\x95\x61\x74\x12\xED\x07\xD7" | ||
2200 | "\xDD\x95\xDC\x7B\x57\x25\x27\x9C" | ||
2201 | "\x51\x96\x16\xF7\x94\x61\xB8\x87" | ||
2202 | "\xF0\x21\x1B\x32\xFB\x07\x0F\x29" | ||
2203 | "\x56\xBD\x9D\x22\xA2\x9F\xA2\xB9" | ||
2204 | "\x46\x31\x4C\x5E\x2E\x95\x61\xEF" | ||
2205 | "\xE1\x58\x39\x09\xB4\x8B\x40\xAC" | ||
2206 | "\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A", | ||
2207 | .rlen = 248, | ||
2208 | .also_non_np = 1, | ||
2209 | .np = 2, | ||
2210 | .tap = { 248 - 8, 8 }, | ||
2106 | }, | 2211 | }, |
2107 | }; | 2212 | }; |
2108 | 2213 | ||
@@ -2143,6 +2248,76 @@ static struct cipher_testvec des_dec_tv_template[] = { | |||
2143 | .rlen = 16, | 2248 | .rlen = 16, |
2144 | .np = 3, | 2249 | .np = 3, |
2145 | .tap = { 3, 12, 1 } | 2250 | .tap = { 3, 12, 1 } |
2251 | }, { /* Generated with Crypto++ */ | ||
2252 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2253 | .klen = 8, | ||
2254 | .input = "\x88\xCB\x1F\xAB\x2F\x2A\x49\x57" | ||
2255 | "\x92\xB9\x77\xFF\x2F\x47\x58\xDD" | ||
2256 | "\xD7\x8A\x91\x95\x26\x33\x78\xB2" | ||
2257 | "\x33\xBA\xB2\x3E\x02\xF5\x1F\xEF" | ||
2258 | "\x98\xC5\xA6\xD2\x7D\x79\xEC\xB3" | ||
2259 | "\x45\xF3\x4C\x61\xAC\x6C\xC2\x55" | ||
2260 | "\xE5\xD3\x06\x58\x8A\x42\x3E\xDD" | ||
2261 | "\x3D\x20\x45\xE9\x6F\x0D\x25\xA8" | ||
2262 | "\xA5\xC7\x69\xCE\xD5\x3B\x7B\xC9" | ||
2263 | "\x9E\x65\xE7\xA3\xF2\xE4\x18\x94" | ||
2264 | "\xD2\x81\xE9\x33\x2B\x2D\x49\xC4" | ||
2265 | "\xFE\xDA\x7F\xE2\xF2\x8C\x9C\xDC" | ||
2266 | "\x73\x58\x11\x1F\x81\xD7\x21\x1A" | ||
2267 | "\x80\xD0\x0D\xE8\x45\xD6\xD8\xD5" | ||
2268 | "\x2E\x51\x16\xCA\x09\x89\x54\x62" | ||
2269 | "\xF7\x04\x3D\x75\xB9\xA3\x84\xF4" | ||
2270 | "\x62\xF0\x02\x58\x83\xAF\x30\x87" | ||
2271 | "\x85\x3F\x01\xCD\x8E\x58\x42\xC4" | ||
2272 | "\x41\x73\xE0\x15\x0A\xE6\x2E\x80" | ||
2273 | "\x94\xF8\x5B\x3A\x4E\xDF\x51\xB2" | ||
2274 | "\x9D\xE4\xC4\x9D\xF7\x3F\xF8\x8E" | ||
2275 | "\x37\x22\x4D\x00\x2A\xEF\xC1\x0F" | ||
2276 | "\x14\xA0\x66\xAB\x79\x39\xD0\x8E" | ||
2277 | "\xE9\x95\x61\x74\x12\xED\x07\xD7" | ||
2278 | "\xDD\x95\xDC\x7B\x57\x25\x27\x9C" | ||
2279 | "\x51\x96\x16\xF7\x94\x61\xB8\x87" | ||
2280 | "\xF0\x21\x1B\x32\xFB\x07\x0F\x29" | ||
2281 | "\x56\xBD\x9D\x22\xA2\x9F\xA2\xB9" | ||
2282 | "\x46\x31\x4C\x5E\x2E\x95\x61\xEF" | ||
2283 | "\xE1\x58\x39\x09\xB4\x8B\x40\xAC" | ||
2284 | "\x5F\x62\xC7\x72\xD9\xFC\xCB\x9A", | ||
2285 | .ilen = 248, | ||
2286 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2287 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2288 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2289 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2290 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2291 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2292 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2293 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2294 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2295 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2296 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2297 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2298 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2299 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2300 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2301 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2302 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2303 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2304 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2305 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2306 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2307 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2308 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2309 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2310 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2311 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2312 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2313 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2314 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2315 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2316 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2317 | .rlen = 248, | ||
2318 | .also_non_np = 1, | ||
2319 | .np = 2, | ||
2320 | .tap = { 248 - 8, 8 }, | ||
2146 | }, | 2321 | }, |
2147 | }; | 2322 | }; |
2148 | 2323 | ||
@@ -2198,6 +2373,77 @@ static struct cipher_testvec des_cbc_enc_tv_template[] = { | |||
2198 | .rlen = 24, | 2373 | .rlen = 24, |
2199 | .np = 2, | 2374 | .np = 2, |
2200 | .tap = { 13, 11 } | 2375 | .tap = { 13, 11 } |
2376 | }, { /* Generated with Crypto++ */ | ||
2377 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2378 | .klen = 8, | ||
2379 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47", | ||
2380 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2381 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2382 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2383 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2384 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2385 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2386 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2387 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2388 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2389 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2390 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2391 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2392 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2393 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2394 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2395 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2396 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2397 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2398 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2399 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2400 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2401 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2402 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2403 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2404 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2405 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2406 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2407 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2408 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2409 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2410 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2411 | .ilen = 248, | ||
2412 | .result = "\x71\xCC\x56\x1C\x87\x2C\x43\x20" | ||
2413 | "\x1C\x20\x13\x09\xF9\x2B\x40\x47" | ||
2414 | "\x99\x10\xD1\x1B\x65\x33\x33\xBA" | ||
2415 | "\x88\x0D\xA2\xD1\x86\xFF\x4D\xF4" | ||
2416 | "\x5A\x0C\x12\x96\x32\x57\xAA\x26" | ||
2417 | "\xA7\xF4\x32\x8D\xBC\x10\x31\x9E" | ||
2418 | "\x81\x72\x74\xDE\x30\x19\x69\x49" | ||
2419 | "\x54\x9C\xC3\xEB\x0B\x97\xDD\xD1" | ||
2420 | "\xE8\x6D\x0D\x05\x83\xA5\x12\x08" | ||
2421 | "\x47\xF8\x88\x03\x86\x51\x3C\xEF" | ||
2422 | "\xE7\x11\x73\x4D\x44\x2B\xE2\x16" | ||
2423 | "\xE8\xA5\x06\x50\x66\x70\x0E\x14" | ||
2424 | "\xBA\x21\x3B\xD5\x23\x5B\xA7\x8F" | ||
2425 | "\x56\xB6\xA7\x44\xDB\x86\xAB\x69" | ||
2426 | "\x33\x3C\xBE\x64\xC4\x22\xD3\xFE" | ||
2427 | "\x49\x90\x88\x6A\x09\x8F\x76\x59" | ||
2428 | "\xCB\xB7\xA0\x2D\x79\x75\x92\x8A" | ||
2429 | "\x82\x1D\xC2\xFE\x09\x1F\x78\x6B" | ||
2430 | "\x2F\xD6\xA4\x87\x1E\xC4\x53\x63" | ||
2431 | "\x80\x02\x61\x2F\xE3\x46\xB6\xB5" | ||
2432 | "\xAA\x95\xF4\xEE\xA7\x64\x2B\x4F" | ||
2433 | "\x20\xCF\xD2\x47\x4E\x39\x65\xB3" | ||
2434 | "\x11\x87\xA2\x6C\x49\x7E\x36\xC7" | ||
2435 | "\x62\x8B\x48\x0D\x6A\x64\x00\xBD" | ||
2436 | "\x71\x91\x8C\xE9\x70\x19\x01\x4F" | ||
2437 | "\x4E\x68\x23\xBA\xDA\x24\x2E\x45" | ||
2438 | "\x02\x14\x33\x21\xAE\x58\x4B\xCF" | ||
2439 | "\x3B\x4B\xE8\xF8\xF6\x4F\x34\x93" | ||
2440 | "\xD7\x07\x8A\xD7\x18\x92\x36\x8C" | ||
2441 | "\x82\xA9\xBD\x6A\x31\x91\x39\x11" | ||
2442 | "\xC6\x4A\xF3\x55\xC7\x29\x2E\x63", | ||
2443 | .rlen = 248, | ||
2444 | .also_non_np = 1, | ||
2445 | .np = 2, | ||
2446 | .tap = { 248 - 8, 8 }, | ||
2201 | }, | 2447 | }, |
2202 | }; | 2448 | }; |
2203 | 2449 | ||
@@ -2236,6 +2482,369 @@ static struct cipher_testvec des_cbc_dec_tv_template[] = { | |||
2236 | .rlen = 8, | 2482 | .rlen = 8, |
2237 | .np = 2, | 2483 | .np = 2, |
2238 | .tap = { 4, 4 } | 2484 | .tap = { 4, 4 } |
2485 | }, { /* Generated with Crypto++ */ | ||
2486 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2487 | .klen = 8, | ||
2488 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47", | ||
2489 | .input = "\x71\xCC\x56\x1C\x87\x2C\x43\x20" | ||
2490 | "\x1C\x20\x13\x09\xF9\x2B\x40\x47" | ||
2491 | "\x99\x10\xD1\x1B\x65\x33\x33\xBA" | ||
2492 | "\x88\x0D\xA2\xD1\x86\xFF\x4D\xF4" | ||
2493 | "\x5A\x0C\x12\x96\x32\x57\xAA\x26" | ||
2494 | "\xA7\xF4\x32\x8D\xBC\x10\x31\x9E" | ||
2495 | "\x81\x72\x74\xDE\x30\x19\x69\x49" | ||
2496 | "\x54\x9C\xC3\xEB\x0B\x97\xDD\xD1" | ||
2497 | "\xE8\x6D\x0D\x05\x83\xA5\x12\x08" | ||
2498 | "\x47\xF8\x88\x03\x86\x51\x3C\xEF" | ||
2499 | "\xE7\x11\x73\x4D\x44\x2B\xE2\x16" | ||
2500 | "\xE8\xA5\x06\x50\x66\x70\x0E\x14" | ||
2501 | "\xBA\x21\x3B\xD5\x23\x5B\xA7\x8F" | ||
2502 | "\x56\xB6\xA7\x44\xDB\x86\xAB\x69" | ||
2503 | "\x33\x3C\xBE\x64\xC4\x22\xD3\xFE" | ||
2504 | "\x49\x90\x88\x6A\x09\x8F\x76\x59" | ||
2505 | "\xCB\xB7\xA0\x2D\x79\x75\x92\x8A" | ||
2506 | "\x82\x1D\xC2\xFE\x09\x1F\x78\x6B" | ||
2507 | "\x2F\xD6\xA4\x87\x1E\xC4\x53\x63" | ||
2508 | "\x80\x02\x61\x2F\xE3\x46\xB6\xB5" | ||
2509 | "\xAA\x95\xF4\xEE\xA7\x64\x2B\x4F" | ||
2510 | "\x20\xCF\xD2\x47\x4E\x39\x65\xB3" | ||
2511 | "\x11\x87\xA2\x6C\x49\x7E\x36\xC7" | ||
2512 | "\x62\x8B\x48\x0D\x6A\x64\x00\xBD" | ||
2513 | "\x71\x91\x8C\xE9\x70\x19\x01\x4F" | ||
2514 | "\x4E\x68\x23\xBA\xDA\x24\x2E\x45" | ||
2515 | "\x02\x14\x33\x21\xAE\x58\x4B\xCF" | ||
2516 | "\x3B\x4B\xE8\xF8\xF6\x4F\x34\x93" | ||
2517 | "\xD7\x07\x8A\xD7\x18\x92\x36\x8C" | ||
2518 | "\x82\xA9\xBD\x6A\x31\x91\x39\x11" | ||
2519 | "\xC6\x4A\xF3\x55\xC7\x29\x2E\x63", | ||
2520 | .ilen = 248, | ||
2521 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2522 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2523 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2524 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2525 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2526 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2527 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2528 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2529 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2530 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2531 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2532 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2533 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2534 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2535 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2536 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2537 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2538 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2539 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2540 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2541 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2542 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2543 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2544 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2545 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2546 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2547 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2548 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2549 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2550 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2551 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2552 | .rlen = 248, | ||
2553 | .also_non_np = 1, | ||
2554 | .np = 2, | ||
2555 | .tap = { 248 - 8, 8 }, | ||
2556 | }, | ||
2557 | }; | ||
2558 | |||
2559 | static struct cipher_testvec des_ctr_enc_tv_template[] = { | ||
2560 | { /* Generated with Crypto++ */ | ||
2561 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2562 | .klen = 8, | ||
2563 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
2564 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2565 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2566 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2567 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2568 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2569 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2570 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2571 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2572 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2573 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2574 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2575 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2576 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2577 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2578 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2579 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2580 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2581 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2582 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2583 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2584 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2585 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2586 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2587 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2588 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2589 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2590 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2591 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2592 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2593 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2594 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2595 | .ilen = 248, | ||
2596 | .result = "\x2F\x96\x06\x0F\x50\xC9\x68\x03" | ||
2597 | "\x0F\x31\xD4\x64\xA5\x29\x77\x35" | ||
2598 | "\xBC\x7A\x9F\x19\xE7\x0D\x33\x3E" | ||
2599 | "\x12\x0B\x8C\xAE\x48\xAE\xD9\x02" | ||
2600 | "\x0A\xD4\xB0\xD6\x37\xB2\x65\x1C" | ||
2601 | "\x4B\x65\xEB\x24\xB5\x8E\xAD\x47" | ||
2602 | "\x0D\xDA\x79\x77\xA0\x29\xA0\x2B" | ||
2603 | "\xC8\x0F\x85\xDC\x03\x13\xA9\x04" | ||
2604 | "\x19\x40\xBE\xBE\x5C\x49\x4A\x69" | ||
2605 | "\xED\xE8\xE1\x9E\x14\x43\x74\xDE" | ||
2606 | "\xEC\x6E\x11\x3F\x36\xEF\x7B\xFB" | ||
2607 | "\xBE\x4C\x91\x43\x22\x65\x72\x48" | ||
2608 | "\xE2\x12\xED\x88\xAC\xA7\xC9\x91" | ||
2609 | "\x14\xA2\x36\x1C\x29\xFF\xC8\x4F" | ||
2610 | "\x72\x5C\x4B\xB0\x1E\x93\xC2\xFA" | ||
2611 | "\x9D\x53\x86\xA0\xAE\xC6\xB7\x3C" | ||
2612 | "\x59\x0C\xD0\x8F\xA6\xD8\xA4\x31" | ||
2613 | "\xB7\x30\x1C\x21\x38\xFB\x68\x8C" | ||
2614 | "\x2E\xF5\x6E\x73\xC3\x16\x5F\x12" | ||
2615 | "\x0C\x33\xB9\x1E\x7B\x70\xDE\x86" | ||
2616 | "\x32\xB3\xC1\x16\xAB\xD9\x49\x0B" | ||
2617 | "\x96\x28\x72\x6B\xF3\x30\xA9\xEB" | ||
2618 | "\x69\xE2\x1E\x58\x46\xA2\x8E\xC7" | ||
2619 | "\xC0\xEF\x07\xB7\x77\x2C\x00\x05" | ||
2620 | "\x46\xBD\xFE\x53\x81\x8B\xA4\x03" | ||
2621 | "\x20\x0F\xDB\x78\x0B\x1F\x53\x04" | ||
2622 | "\x4C\x60\x4C\xC3\x2A\x86\x86\x7E" | ||
2623 | "\x13\xD2\x26\xED\x5D\x3E\x9C\xF2" | ||
2624 | "\x5C\xC4\x15\xC9\x9A\x21\xC5\xCD" | ||
2625 | "\x19\x7F\x99\x19\x53\xCE\x1D\x14" | ||
2626 | "\x69\x74\xA1\x06\x46\x0F\x4E\x75", | ||
2627 | .rlen = 248, | ||
2628 | .also_non_np = 1, | ||
2629 | .np = 2, | ||
2630 | .tap = { 248 - 8, 8 }, | ||
2631 | }, { /* Generated with Crypto++ */ | ||
2632 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2633 | .klen = 8, | ||
2634 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47", | ||
2635 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2636 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2637 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2638 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2639 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2640 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2641 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2642 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2643 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2644 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2645 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2646 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2647 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2648 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2649 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2650 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2651 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2652 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2653 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2654 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2655 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2656 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2657 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2658 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2659 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2660 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2661 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2662 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2663 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2664 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2665 | "\xC6\x2F\xBB\x24\x8D\x19\x82", | ||
2666 | .ilen = 247, | ||
2667 | .result = "\x62\xE5\xF4\xDC\x99\xE7\x89\xE3" | ||
2668 | "\xF4\x10\xCC\x21\x99\xEB\xDC\x15" | ||
2669 | "\x19\x13\x93\x27\x9D\xB6\x6F\x45" | ||
2670 | "\x17\x55\x61\x72\xC8\xD3\x7F\xA5" | ||
2671 | "\x32\xD0\xD3\x02\x15\xA4\x05\x23" | ||
2672 | "\x9C\x23\x61\x60\x77\x7B\x6C\x95" | ||
2673 | "\x26\x49\x42\x2E\xF3\xC1\x8C\x6D" | ||
2674 | "\xC8\x47\xD5\x94\xE7\x53\xC8\x23" | ||
2675 | "\x1B\xA5\x0B\xCB\x12\xD3\x7A\x12" | ||
2676 | "\xA4\x42\x15\x34\xF7\x5F\xDC\x58" | ||
2677 | "\x5B\x58\x4C\xAD\xD1\x33\x8E\xE6" | ||
2678 | "\xE5\xA0\xDA\x4D\x94\x3D\x63\xA8" | ||
2679 | "\x02\x82\xBB\x16\xB8\xDC\xB5\x58" | ||
2680 | "\xC3\x2D\x79\xE4\x25\x79\x43\xF9" | ||
2681 | "\x6D\xD3\xCA\xC0\xE8\x12\xD4\x7E" | ||
2682 | "\x04\x25\x79\xFD\x27\xFB\xC4\xEA" | ||
2683 | "\x32\x94\x48\x92\xF3\x68\x1A\x7F" | ||
2684 | "\x36\x33\x43\x79\xF7\xCA\xC2\x38" | ||
2685 | "\xC0\x68\xD4\x53\xA9\xCC\x43\x0C" | ||
2686 | "\x40\x57\x3E\xED\x00\x9F\x22\x6E" | ||
2687 | "\x80\x99\x0B\xCC\x40\x63\x46\x8A" | ||
2688 | "\xE8\xC4\x9B\x6D\x7A\x08\x6E\xA9" | ||
2689 | "\x6F\x84\xBC\xB3\xF4\x95\x0B\x2D" | ||
2690 | "\x6A\xBA\x37\x50\xC3\xCF\x9F\x7C" | ||
2691 | "\x59\x5E\xDE\x0B\x30\xFA\x34\x8A" | ||
2692 | "\xF8\xD1\xA2\xF8\x4E\xBD\x5D\x5E" | ||
2693 | "\x7D\x71\x99\xE0\xF6\xE5\x7C\xE0" | ||
2694 | "\x6D\xEE\x82\x89\x92\xD4\xF5\xD7" | ||
2695 | "\xDF\x85\x2D\xE1\xB2\xD6\xAB\x94" | ||
2696 | "\xA5\xA6\xE7\xB0\x51\x36\x52\x37" | ||
2697 | "\x91\x45\x05\x3E\x58\xBF\x32", | ||
2698 | .rlen = 247, | ||
2699 | .also_non_np = 1, | ||
2700 | .np = 2, | ||
2701 | .tap = { 247 - 8, 8 }, | ||
2702 | }, | ||
2703 | }; | ||
2704 | |||
2705 | static struct cipher_testvec des_ctr_dec_tv_template[] = { | ||
2706 | { /* Generated with Crypto++ */ | ||
2707 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2708 | .klen = 8, | ||
2709 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
2710 | .input = "\x2F\x96\x06\x0F\x50\xC9\x68\x03" | ||
2711 | "\x0F\x31\xD4\x64\xA5\x29\x77\x35" | ||
2712 | "\xBC\x7A\x9F\x19\xE7\x0D\x33\x3E" | ||
2713 | "\x12\x0B\x8C\xAE\x48\xAE\xD9\x02" | ||
2714 | "\x0A\xD4\xB0\xD6\x37\xB2\x65\x1C" | ||
2715 | "\x4B\x65\xEB\x24\xB5\x8E\xAD\x47" | ||
2716 | "\x0D\xDA\x79\x77\xA0\x29\xA0\x2B" | ||
2717 | "\xC8\x0F\x85\xDC\x03\x13\xA9\x04" | ||
2718 | "\x19\x40\xBE\xBE\x5C\x49\x4A\x69" | ||
2719 | "\xED\xE8\xE1\x9E\x14\x43\x74\xDE" | ||
2720 | "\xEC\x6E\x11\x3F\x36\xEF\x7B\xFB" | ||
2721 | "\xBE\x4C\x91\x43\x22\x65\x72\x48" | ||
2722 | "\xE2\x12\xED\x88\xAC\xA7\xC9\x91" | ||
2723 | "\x14\xA2\x36\x1C\x29\xFF\xC8\x4F" | ||
2724 | "\x72\x5C\x4B\xB0\x1E\x93\xC2\xFA" | ||
2725 | "\x9D\x53\x86\xA0\xAE\xC6\xB7\x3C" | ||
2726 | "\x59\x0C\xD0\x8F\xA6\xD8\xA4\x31" | ||
2727 | "\xB7\x30\x1C\x21\x38\xFB\x68\x8C" | ||
2728 | "\x2E\xF5\x6E\x73\xC3\x16\x5F\x12" | ||
2729 | "\x0C\x33\xB9\x1E\x7B\x70\xDE\x86" | ||
2730 | "\x32\xB3\xC1\x16\xAB\xD9\x49\x0B" | ||
2731 | "\x96\x28\x72\x6B\xF3\x30\xA9\xEB" | ||
2732 | "\x69\xE2\x1E\x58\x46\xA2\x8E\xC7" | ||
2733 | "\xC0\xEF\x07\xB7\x77\x2C\x00\x05" | ||
2734 | "\x46\xBD\xFE\x53\x81\x8B\xA4\x03" | ||
2735 | "\x20\x0F\xDB\x78\x0B\x1F\x53\x04" | ||
2736 | "\x4C\x60\x4C\xC3\x2A\x86\x86\x7E" | ||
2737 | "\x13\xD2\x26\xED\x5D\x3E\x9C\xF2" | ||
2738 | "\x5C\xC4\x15\xC9\x9A\x21\xC5\xCD" | ||
2739 | "\x19\x7F\x99\x19\x53\xCE\x1D\x14" | ||
2740 | "\x69\x74\xA1\x06\x46\x0F\x4E\x75", | ||
2741 | .ilen = 248, | ||
2742 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2743 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2744 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2745 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2746 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2747 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2748 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2749 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2750 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2751 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2752 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2753 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2754 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2755 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2756 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2757 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2758 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2759 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2760 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2761 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2762 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2763 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2764 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2765 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2766 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2767 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2768 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2769 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2770 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2771 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2772 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB", | ||
2773 | .rlen = 248, | ||
2774 | .also_non_np = 1, | ||
2775 | .np = 2, | ||
2776 | .tap = { 248 - 8, 8 }, | ||
2777 | }, { /* Generated with Crypto++ */ | ||
2778 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55", | ||
2779 | .klen = 8, | ||
2780 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47", | ||
2781 | .input = "\x62\xE5\xF4\xDC\x99\xE7\x89\xE3" | ||
2782 | "\xF4\x10\xCC\x21\x99\xEB\xDC\x15" | ||
2783 | "\x19\x13\x93\x27\x9D\xB6\x6F\x45" | ||
2784 | "\x17\x55\x61\x72\xC8\xD3\x7F\xA5" | ||
2785 | "\x32\xD0\xD3\x02\x15\xA4\x05\x23" | ||
2786 | "\x9C\x23\x61\x60\x77\x7B\x6C\x95" | ||
2787 | "\x26\x49\x42\x2E\xF3\xC1\x8C\x6D" | ||
2788 | "\xC8\x47\xD5\x94\xE7\x53\xC8\x23" | ||
2789 | "\x1B\xA5\x0B\xCB\x12\xD3\x7A\x12" | ||
2790 | "\xA4\x42\x15\x34\xF7\x5F\xDC\x58" | ||
2791 | "\x5B\x58\x4C\xAD\xD1\x33\x8E\xE6" | ||
2792 | "\xE5\xA0\xDA\x4D\x94\x3D\x63\xA8" | ||
2793 | "\x02\x82\xBB\x16\xB8\xDC\xB5\x58" | ||
2794 | "\xC3\x2D\x79\xE4\x25\x79\x43\xF9" | ||
2795 | "\x6D\xD3\xCA\xC0\xE8\x12\xD4\x7E" | ||
2796 | "\x04\x25\x79\xFD\x27\xFB\xC4\xEA" | ||
2797 | "\x32\x94\x48\x92\xF3\x68\x1A\x7F" | ||
2798 | "\x36\x33\x43\x79\xF7\xCA\xC2\x38" | ||
2799 | "\xC0\x68\xD4\x53\xA9\xCC\x43\x0C" | ||
2800 | "\x40\x57\x3E\xED\x00\x9F\x22\x6E" | ||
2801 | "\x80\x99\x0B\xCC\x40\x63\x46\x8A" | ||
2802 | "\xE8\xC4\x9B\x6D\x7A\x08\x6E\xA9" | ||
2803 | "\x6F\x84\xBC\xB3\xF4\x95\x0B\x2D" | ||
2804 | "\x6A\xBA\x37\x50\xC3\xCF\x9F\x7C" | ||
2805 | "\x59\x5E\xDE\x0B\x30\xFA\x34\x8A" | ||
2806 | "\xF8\xD1\xA2\xF8\x4E\xBD\x5D\x5E" | ||
2807 | "\x7D\x71\x99\xE0\xF6\xE5\x7C\xE0" | ||
2808 | "\x6D\xEE\x82\x89\x92\xD4\xF5\xD7" | ||
2809 | "\xDF\x85\x2D\xE1\xB2\xD6\xAB\x94" | ||
2810 | "\xA5\xA6\xE7\xB0\x51\x36\x52\x37" | ||
2811 | "\x91\x45\x05\x3E\x58\xBF\x32", | ||
2812 | .ilen = 247, | ||
2813 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
2814 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
2815 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
2816 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
2817 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
2818 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
2819 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
2820 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
2821 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
2822 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
2823 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
2824 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
2825 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
2826 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
2827 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
2828 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
2829 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
2830 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
2831 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
2832 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
2833 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
2834 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
2835 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
2836 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
2837 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
2838 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
2839 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
2840 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
2841 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
2842 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
2843 | "\xC6\x2F\xBB\x24\x8D\x19\x82", | ||
2844 | .rlen = 247, | ||
2845 | .also_non_np = 1, | ||
2846 | .np = 2, | ||
2847 | .tap = { 247 - 8, 8 }, | ||
2239 | }, | 2848 | }, |
2240 | }; | 2849 | }; |
2241 | 2850 | ||
@@ -2267,6 +2876,140 @@ static struct cipher_testvec des3_ede_enc_tv_template[] = { | |||
2267 | .ilen = 8, | 2876 | .ilen = 8, |
2268 | .result = "\xe1\xef\x62\xc3\x32\xfe\x82\x5b", | 2877 | .result = "\xe1\xef\x62\xc3\x32\xfe\x82\x5b", |
2269 | .rlen = 8, | 2878 | .rlen = 8, |
2879 | }, { /* Generated with Crypto++ */ | ||
2880 | .key = "\xF3\x9C\xD6\xF3\x9C\xB9\x5A\x67" | ||
2881 | "\x00\x5A\x67\x00\x2D\xCE\xEB\x2D" | ||
2882 | "\xCE\xEB\xB4\x51\x72\xB4\x51\x72", | ||
2883 | .klen = 24, | ||
2884 | .input = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
2885 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
2886 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
2887 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
2888 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
2889 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
2890 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
2891 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
2892 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
2893 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
2894 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
2895 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
2896 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
2897 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
2898 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
2899 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
2900 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
2901 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
2902 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
2903 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
2904 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
2905 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
2906 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
2907 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
2908 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
2909 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
2910 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
2911 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
2912 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
2913 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
2914 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
2915 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
2916 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
2917 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
2918 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
2919 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
2920 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
2921 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
2922 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
2923 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
2924 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
2925 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
2926 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
2927 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
2928 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
2929 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
2930 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
2931 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
2932 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
2933 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
2934 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
2935 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
2936 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
2937 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
2938 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
2939 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
2940 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
2941 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
2942 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
2943 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
2944 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
2945 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
2946 | .ilen = 496, | ||
2947 | .result = "\x4E\x9A\x40\x3D\x61\x7D\x17\xFA" | ||
2948 | "\x16\x86\x88\x0B\xD8\xAE\xF8\xE4" | ||
2949 | "\x81\x01\x04\x00\x76\xFA\xED\xD3" | ||
2950 | "\x44\x7E\x21\x9D\xF0\xFB\x2B\x64" | ||
2951 | "\xCA\x4E\x90\xE0\xC0\x63\x28\x92" | ||
2952 | "\xF3\x1F\xA4\x53\x2C\x77\xCC\x77" | ||
2953 | "\x69\x56\xD0\x19\xAD\x00\x2D\x97" | ||
2954 | "\xBC\xDE\x49\x6A\x82\xBC\x16\xE2" | ||
2955 | "\x2F\x3E\x72\xEE\xD1\xCE\xFC\x1B" | ||
2956 | "\xEA\x32\x56\xE4\x0B\xAF\x27\x36" | ||
2957 | "\xAF\x08\xB9\x61\xB7\x48\x23\x27" | ||
2958 | "\xEE\x4D\xC8\x79\x56\x06\xEB\xC7" | ||
2959 | "\x5B\xCA\x0A\xC6\x5E\x5C\xCB\xB6" | ||
2960 | "\x9D\xDA\x04\x59\xE2\x09\x48\x7E" | ||
2961 | "\x6B\x37\xC6\xFE\x92\xA9\x1E\x6E" | ||
2962 | "\x0D\x19\xFA\x33\x0F\xEE\x36\x68" | ||
2963 | "\x11\xBB\xF9\x5A\x73\xAB\x3A\xEA" | ||
2964 | "\xAC\x28\xD8\xD5\x27\xE8\x6B\x16" | ||
2965 | "\x45\x86\x50\x01\x70\x35\x99\x92" | ||
2966 | "\xDF\x0C\x07\x88\x8B\x7F\x9E\x4B" | ||
2967 | "\xD2\x04\x84\x90\xC4\x27\xDF\x0A" | ||
2968 | "\x49\xA8\xA7\x1A\x6D\x78\x16\xCA" | ||
2969 | "\xB3\x18\x5C\xC3\x93\x63\x5A\x68" | ||
2970 | "\x77\x02\xBA\xED\x62\x71\xB1\xD9" | ||
2971 | "\x5E\xE5\x6F\x1A\xCC\x1D\xBE\x2E" | ||
2972 | "\x11\xF3\xA6\x97\xCA\x8E\xBF\xB4" | ||
2973 | "\x56\xA1\x36\x6B\xB1\x0A\x3E\x70" | ||
2974 | "\xEA\xD7\xCD\x72\x7B\x79\xC8\xAD" | ||
2975 | "\x6B\xFE\xFB\xBA\x64\xAE\x19\xC1" | ||
2976 | "\x82\xCF\x8A\xA1\x50\x17\x7F\xB2" | ||
2977 | "\x6F\x7B\x0F\x52\xC5\x3E\x4A\x52" | ||
2978 | "\x3F\xD9\x3F\x01\xA6\x41\x1A\xB3" | ||
2979 | "\xB3\x7A\x0E\x8E\x75\xB2\xB1\x5F" | ||
2980 | "\xDB\xEA\x84\x13\x26\x6C\x85\x4E" | ||
2981 | "\xAE\x6B\xDC\xE7\xE7\xAD\xB0\x06" | ||
2982 | "\x5C\xBA\x92\xD0\x30\xBB\x8D\xD2" | ||
2983 | "\xAE\x4C\x70\x85\xA0\x07\xE3\x2C" | ||
2984 | "\xD1\x27\x9C\xCF\xDB\x13\xB7\xE5" | ||
2985 | "\xF9\x6A\x02\xD0\x39\x9D\xB6\xE7" | ||
2986 | "\xD1\x17\x25\x08\xF9\xA9\xA6\x67" | ||
2987 | "\x38\x80\xD1\x22\xAB\x1A\xD7\x26" | ||
2988 | "\xAD\xCA\x19\x1B\xFA\x18\xA7\x57" | ||
2989 | "\x31\xEC\xC9\xED\xDB\x79\xC0\x48" | ||
2990 | "\xAC\x31\x9F\x03\x8B\x62\x5B\x7E" | ||
2991 | "\x0E\xA6\xD0\x64\xEE\xEA\x00\xFC" | ||
2992 | "\x58\xC8\xDE\x51\x4E\x17\x15\x11" | ||
2993 | "\x66\x58\xB6\x90\xDC\xDF\xA1\x49" | ||
2994 | "\xCA\x79\xE9\x31\x31\x42\xDC\x56" | ||
2995 | "\x0B\xCD\xB6\x0D\xC7\x64\xF7\x19" | ||
2996 | "\xD9\x42\x05\x7F\xBC\x2F\xFC\x90" | ||
2997 | "\xAE\x29\x86\xAA\x43\x7A\x4F\x6B" | ||
2998 | "\xCE\xEA\xBC\x31\x8D\x65\x9D\x46" | ||
2999 | "\xEA\x77\xB4\xF9\x58\xEA\x5D\x84" | ||
3000 | "\xE4\xDC\x14\xBB\xBD\x15\x0E\xDA" | ||
3001 | "\xD8\xE4\xA4\x5D\x61\xF9\x58\x0F" | ||
3002 | "\xE4\x82\x77\xCE\x87\xC0\x09\xF0" | ||
3003 | "\xD6\x10\x9E\x34\xE1\x0C\x67\x55" | ||
3004 | "\x7B\x6D\xD5\x51\x4B\x00\xEE\xBA" | ||
3005 | "\xF2\x7B\xBE\x75\x07\x42\x9D\x99" | ||
3006 | "\x12\xE1\x71\x4A\xF9\x2A\xF5\xF6" | ||
3007 | "\x93\x03\xD7\x51\x09\xFA\xBE\x68" | ||
3008 | "\xD8\x45\xFF\x33\xBA\xBB\x2B\x63", | ||
3009 | .rlen = 496, | ||
3010 | .also_non_np = 1, | ||
3011 | .np = 2, | ||
3012 | .tap = { 496 - 16, 16 }, | ||
2270 | }, | 3013 | }, |
2271 | }; | 3014 | }; |
2272 | 3015 | ||
@@ -2298,6 +3041,140 @@ static struct cipher_testvec des3_ede_dec_tv_template[] = { | |||
2298 | .ilen = 8, | 3041 | .ilen = 8, |
2299 | .result = "\x00\x00\x00\x00\x00\x00\x00\x00", | 3042 | .result = "\x00\x00\x00\x00\x00\x00\x00\x00", |
2300 | .rlen = 8, | 3043 | .rlen = 8, |
3044 | }, { /* Generated with Crypto++ */ | ||
3045 | .key = "\xF3\x9C\xD6\xF3\x9C\xB9\x5A\x67" | ||
3046 | "\x00\x5A\x67\x00\x2D\xCE\xEB\x2D" | ||
3047 | "\xCE\xEB\xB4\x51\x72\xB4\x51\x72", | ||
3048 | .klen = 24, | ||
3049 | .input = "\x4E\x9A\x40\x3D\x61\x7D\x17\xFA" | ||
3050 | "\x16\x86\x88\x0B\xD8\xAE\xF8\xE4" | ||
3051 | "\x81\x01\x04\x00\x76\xFA\xED\xD3" | ||
3052 | "\x44\x7E\x21\x9D\xF0\xFB\x2B\x64" | ||
3053 | "\xCA\x4E\x90\xE0\xC0\x63\x28\x92" | ||
3054 | "\xF3\x1F\xA4\x53\x2C\x77\xCC\x77" | ||
3055 | "\x69\x56\xD0\x19\xAD\x00\x2D\x97" | ||
3056 | "\xBC\xDE\x49\x6A\x82\xBC\x16\xE2" | ||
3057 | "\x2F\x3E\x72\xEE\xD1\xCE\xFC\x1B" | ||
3058 | "\xEA\x32\x56\xE4\x0B\xAF\x27\x36" | ||
3059 | "\xAF\x08\xB9\x61\xB7\x48\x23\x27" | ||
3060 | "\xEE\x4D\xC8\x79\x56\x06\xEB\xC7" | ||
3061 | "\x5B\xCA\x0A\xC6\x5E\x5C\xCB\xB6" | ||
3062 | "\x9D\xDA\x04\x59\xE2\x09\x48\x7E" | ||
3063 | "\x6B\x37\xC6\xFE\x92\xA9\x1E\x6E" | ||
3064 | "\x0D\x19\xFA\x33\x0F\xEE\x36\x68" | ||
3065 | "\x11\xBB\xF9\x5A\x73\xAB\x3A\xEA" | ||
3066 | "\xAC\x28\xD8\xD5\x27\xE8\x6B\x16" | ||
3067 | "\x45\x86\x50\x01\x70\x35\x99\x92" | ||
3068 | "\xDF\x0C\x07\x88\x8B\x7F\x9E\x4B" | ||
3069 | "\xD2\x04\x84\x90\xC4\x27\xDF\x0A" | ||
3070 | "\x49\xA8\xA7\x1A\x6D\x78\x16\xCA" | ||
3071 | "\xB3\x18\x5C\xC3\x93\x63\x5A\x68" | ||
3072 | "\x77\x02\xBA\xED\x62\x71\xB1\xD9" | ||
3073 | "\x5E\xE5\x6F\x1A\xCC\x1D\xBE\x2E" | ||
3074 | "\x11\xF3\xA6\x97\xCA\x8E\xBF\xB4" | ||
3075 | "\x56\xA1\x36\x6B\xB1\x0A\x3E\x70" | ||
3076 | "\xEA\xD7\xCD\x72\x7B\x79\xC8\xAD" | ||
3077 | "\x6B\xFE\xFB\xBA\x64\xAE\x19\xC1" | ||
3078 | "\x82\xCF\x8A\xA1\x50\x17\x7F\xB2" | ||
3079 | "\x6F\x7B\x0F\x52\xC5\x3E\x4A\x52" | ||
3080 | "\x3F\xD9\x3F\x01\xA6\x41\x1A\xB3" | ||
3081 | "\xB3\x7A\x0E\x8E\x75\xB2\xB1\x5F" | ||
3082 | "\xDB\xEA\x84\x13\x26\x6C\x85\x4E" | ||
3083 | "\xAE\x6B\xDC\xE7\xE7\xAD\xB0\x06" | ||
3084 | "\x5C\xBA\x92\xD0\x30\xBB\x8D\xD2" | ||
3085 | "\xAE\x4C\x70\x85\xA0\x07\xE3\x2C" | ||
3086 | "\xD1\x27\x9C\xCF\xDB\x13\xB7\xE5" | ||
3087 | "\xF9\x6A\x02\xD0\x39\x9D\xB6\xE7" | ||
3088 | "\xD1\x17\x25\x08\xF9\xA9\xA6\x67" | ||
3089 | "\x38\x80\xD1\x22\xAB\x1A\xD7\x26" | ||
3090 | "\xAD\xCA\x19\x1B\xFA\x18\xA7\x57" | ||
3091 | "\x31\xEC\xC9\xED\xDB\x79\xC0\x48" | ||
3092 | "\xAC\x31\x9F\x03\x8B\x62\x5B\x7E" | ||
3093 | "\x0E\xA6\xD0\x64\xEE\xEA\x00\xFC" | ||
3094 | "\x58\xC8\xDE\x51\x4E\x17\x15\x11" | ||
3095 | "\x66\x58\xB6\x90\xDC\xDF\xA1\x49" | ||
3096 | "\xCA\x79\xE9\x31\x31\x42\xDC\x56" | ||
3097 | "\x0B\xCD\xB6\x0D\xC7\x64\xF7\x19" | ||
3098 | "\xD9\x42\x05\x7F\xBC\x2F\xFC\x90" | ||
3099 | "\xAE\x29\x86\xAA\x43\x7A\x4F\x6B" | ||
3100 | "\xCE\xEA\xBC\x31\x8D\x65\x9D\x46" | ||
3101 | "\xEA\x77\xB4\xF9\x58\xEA\x5D\x84" | ||
3102 | "\xE4\xDC\x14\xBB\xBD\x15\x0E\xDA" | ||
3103 | "\xD8\xE4\xA4\x5D\x61\xF9\x58\x0F" | ||
3104 | "\xE4\x82\x77\xCE\x87\xC0\x09\xF0" | ||
3105 | "\xD6\x10\x9E\x34\xE1\x0C\x67\x55" | ||
3106 | "\x7B\x6D\xD5\x51\x4B\x00\xEE\xBA" | ||
3107 | "\xF2\x7B\xBE\x75\x07\x42\x9D\x99" | ||
3108 | "\x12\xE1\x71\x4A\xF9\x2A\xF5\xF6" | ||
3109 | "\x93\x03\xD7\x51\x09\xFA\xBE\x68" | ||
3110 | "\xD8\x45\xFF\x33\xBA\xBB\x2B\x63", | ||
3111 | .ilen = 496, | ||
3112 | .result = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3113 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3114 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3115 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3116 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3117 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3118 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3119 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3120 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3121 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3122 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3123 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3124 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3125 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3126 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3127 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3128 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3129 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3130 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3131 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3132 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3133 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3134 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3135 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3136 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3137 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3138 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3139 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3140 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3141 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3142 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3143 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3144 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3145 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3146 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3147 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3148 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3149 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3150 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3151 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3152 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3153 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3154 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3155 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3156 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3157 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3158 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3159 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3160 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3161 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3162 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3163 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3164 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3165 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3166 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3167 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3168 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3169 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3170 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3171 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3172 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3173 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
3174 | .rlen = 496, | ||
3175 | .also_non_np = 1, | ||
3176 | .np = 2, | ||
3177 | .tap = { 496 - 16, 16 }, | ||
2301 | }, | 3178 | }, |
2302 | }; | 3179 | }; |
2303 | 3180 | ||
@@ -2342,6 +3219,142 @@ static struct cipher_testvec des3_ede_cbc_enc_tv_template[] = { | |||
2342 | "\x9d\xde\xa5\x70\xe9\x42\x45\x8a" | 3219 | "\x9d\xde\xa5\x70\xe9\x42\x45\x8a" |
2343 | "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19", | 3220 | "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19", |
2344 | .rlen = 128, | 3221 | .rlen = 128, |
3222 | }, { /* Generated with Crypto++ */ | ||
3223 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3224 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3225 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3226 | .klen = 24, | ||
3227 | .iv = "\xB2\xD7\x48\xED\x06\x44\xF9\x12" | ||
3228 | "\xB7\x28\x4D\x83\x24\x59\xF2\x17", | ||
3229 | .input = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3230 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3231 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3232 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3233 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3234 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3235 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3236 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3237 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3238 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3239 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3240 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3241 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3242 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3243 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3244 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3245 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3246 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3247 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3248 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3249 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3250 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3251 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3252 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3253 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3254 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3255 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3256 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3257 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3258 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3259 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3260 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3261 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3262 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3263 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3264 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3265 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3266 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3267 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3268 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3269 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3270 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3271 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3272 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3273 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3274 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3275 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3276 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3277 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3278 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3279 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3280 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3281 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3282 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3283 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3284 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3285 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3286 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3287 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3288 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3289 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3290 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
3291 | .ilen = 496, | ||
3292 | .result = "\xF8\xF6\xB5\x60\x5C\x5A\x75\x84" | ||
3293 | "\x87\x81\x53\xBA\xC9\x6F\xEC\xD5" | ||
3294 | "\x1E\x68\x8E\x85\x12\x86\x1D\x38" | ||
3295 | "\x1C\x91\x40\xCC\x69\x6A\xD5\x35" | ||
3296 | "\x0D\x7C\xB5\x07\x7C\x7B\x2A\xAF" | ||
3297 | "\x32\xBC\xA1\xB3\x84\x31\x1B\x3C" | ||
3298 | "\x0A\x2B\xFA\xD3\x9F\xB0\x8C\x37" | ||
3299 | "\x8F\x9D\xA7\x6D\x6C\xFA\xD7\x90" | ||
3300 | "\xE3\x69\x54\xED\x3A\xC4\xF1\x6B" | ||
3301 | "\xB1\xCC\xFB\x7D\xD8\x8E\x17\x0B" | ||
3302 | "\x9C\xF6\x4C\xD6\xFF\x03\x4E\xD9" | ||
3303 | "\xE6\xA5\xAD\x25\xE6\x17\x69\x63" | ||
3304 | "\x11\x35\x61\x94\x88\x7B\x1C\x48" | ||
3305 | "\xF1\x24\x20\x29\x6B\x93\x1A\x8E" | ||
3306 | "\x43\x03\x89\xD8\xB1\xDA\x47\x7B" | ||
3307 | "\x79\x3A\x83\x76\xDA\xAE\xC6\xBB" | ||
3308 | "\x22\xF8\xE8\x3D\x9A\x65\x54\xD8" | ||
3309 | "\x4C\xE9\xE7\xE4\x63\x2F\x5C\x73" | ||
3310 | "\x5A\xC3\xAE\x46\xA8\xCD\x57\xE6" | ||
3311 | "\x67\x88\xA5\x20\x6F\x5F\x97\xC7" | ||
3312 | "\xCC\x15\xA2\x0A\x93\xEA\x33\xE7" | ||
3313 | "\x03\x5F\xEC\x64\x30\x6F\xEE\xD7" | ||
3314 | "\x7E\xDF\xD6\xE9\x6F\x3F\xD6\x1E" | ||
3315 | "\xBE\x67\x6C\x5B\x97\xA0\x09\xE6" | ||
3316 | "\xEE\xFE\x55\xA3\x29\x65\xE0\x12" | ||
3317 | "\xA1\x6A\x8A\x6F\xF2\xE6\xF1\x96" | ||
3318 | "\x87\xFB\x9C\x05\xDD\x80\xEC\xFF" | ||
3319 | "\xC5\xED\x50\xFE\xFC\x91\xCD\xCE" | ||
3320 | "\x25\x2C\x5F\xD9\xAD\x95\x7D\x99" | ||
3321 | "\xF0\x05\xC4\x71\x46\x5F\xF9\x0D" | ||
3322 | "\xD2\x63\xDF\x9B\x96\x2E\x2B\xA6" | ||
3323 | "\x2B\x1C\xD5\xFB\x96\x24\x60\x60" | ||
3324 | "\x54\x40\xB8\x62\xA4\xF8\x46\x95" | ||
3325 | "\x73\x28\xA3\xA6\x16\x2B\x17\xE7" | ||
3326 | "\x7A\xF8\x62\x54\x3B\x64\x69\xE1" | ||
3327 | "\x71\x34\x29\x5B\x4E\x05\x9B\xFA" | ||
3328 | "\x5E\xF1\x96\xB7\xCE\x16\x9B\x59" | ||
3329 | "\xF1\x1A\x4C\x51\x26\xFD\x79\xE2" | ||
3330 | "\x3B\x8E\x71\x69\x6A\x91\xB6\x65" | ||
3331 | "\x32\x09\xB8\xE4\x09\x1F\xEA\x39" | ||
3332 | "\xCE\x20\x65\x9F\xD6\xD1\xC7\xF0" | ||
3333 | "\x73\x50\x08\x56\x20\x9B\x94\x23" | ||
3334 | "\x14\x39\xB7\x2B\xB1\x2D\x6D\x6F" | ||
3335 | "\x41\x5B\xCC\xE2\x18\xAE\x62\x89" | ||
3336 | "\x78\x8E\x67\x23\xD0\xFB\x2B\xE5" | ||
3337 | "\x25\xC9\x48\x97\xB5\xD3\x17\xD5" | ||
3338 | "\x6A\x9F\xA7\x48\x0C\x2B\x73\x3B" | ||
3339 | "\x57\x08\xAE\x91\xF2\xB7\x57\x89" | ||
3340 | "\xF4\xD0\xB0\x07\xB0\x42\x6C\xAF" | ||
3341 | "\x98\x1A\xE7\xD1\xAC\x1E\xB5\x02" | ||
3342 | "\xD4\x56\x42\x79\x79\x7F\x2A\x77" | ||
3343 | "\x25\xE9\x7D\xC1\x88\x19\x2B\x49" | ||
3344 | "\x6F\x46\x59\xAB\x56\x1F\x61\xE0" | ||
3345 | "\x0C\x24\x9C\xC9\x5B\x63\xA9\x12" | ||
3346 | "\xCF\x88\x96\xB6\xA8\x24\xC6\xA8" | ||
3347 | "\x21\x85\x1A\x62\x7E\x34\xBB\xEB" | ||
3348 | "\xBD\x02\x2A\xC7\xD8\x89\x80\xC5" | ||
3349 | "\xB1\xBB\x60\xA5\x22\xFC\x6F\x38" | ||
3350 | "\x02\x80\xA3\x28\x22\x75\xE1\xE9" | ||
3351 | "\x90\xE9\xFA\x4B\x00\x10\xAC\x58" | ||
3352 | "\x83\x70\xFF\x86\xE6\xAA\x0F\x1F" | ||
3353 | "\x95\x63\x73\xA2\x44\xAC\xF8\xA5", | ||
3354 | .rlen = 496, | ||
3355 | .also_non_np = 1, | ||
3356 | .np = 2, | ||
3357 | .tap = { 496 - 16, 16 }, | ||
2345 | }, | 3358 | }, |
2346 | }; | 3359 | }; |
2347 | 3360 | ||
@@ -2386,6 +3399,698 @@ static struct cipher_testvec des3_ede_cbc_dec_tv_template[] = { | |||
2386 | "\x63\x65\x65\x72\x73\x74\x54\x20" | 3399 | "\x63\x65\x65\x72\x73\x74\x54\x20" |
2387 | "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79", | 3400 | "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79", |
2388 | .rlen = 128, | 3401 | .rlen = 128, |
3402 | }, { /* Generated with Crypto++ */ | ||
3403 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3404 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3405 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3406 | .klen = 24, | ||
3407 | .iv = "\xB2\xD7\x48\xED\x06\x44\xF9\x12" | ||
3408 | "\xB7\x28\x4D\x83\x24\x59\xF2\x17", | ||
3409 | .input = "\xF8\xF6\xB5\x60\x5C\x5A\x75\x84" | ||
3410 | "\x87\x81\x53\xBA\xC9\x6F\xEC\xD5" | ||
3411 | "\x1E\x68\x8E\x85\x12\x86\x1D\x38" | ||
3412 | "\x1C\x91\x40\xCC\x69\x6A\xD5\x35" | ||
3413 | "\x0D\x7C\xB5\x07\x7C\x7B\x2A\xAF" | ||
3414 | "\x32\xBC\xA1\xB3\x84\x31\x1B\x3C" | ||
3415 | "\x0A\x2B\xFA\xD3\x9F\xB0\x8C\x37" | ||
3416 | "\x8F\x9D\xA7\x6D\x6C\xFA\xD7\x90" | ||
3417 | "\xE3\x69\x54\xED\x3A\xC4\xF1\x6B" | ||
3418 | "\xB1\xCC\xFB\x7D\xD8\x8E\x17\x0B" | ||
3419 | "\x9C\xF6\x4C\xD6\xFF\x03\x4E\xD9" | ||
3420 | "\xE6\xA5\xAD\x25\xE6\x17\x69\x63" | ||
3421 | "\x11\x35\x61\x94\x88\x7B\x1C\x48" | ||
3422 | "\xF1\x24\x20\x29\x6B\x93\x1A\x8E" | ||
3423 | "\x43\x03\x89\xD8\xB1\xDA\x47\x7B" | ||
3424 | "\x79\x3A\x83\x76\xDA\xAE\xC6\xBB" | ||
3425 | "\x22\xF8\xE8\x3D\x9A\x65\x54\xD8" | ||
3426 | "\x4C\xE9\xE7\xE4\x63\x2F\x5C\x73" | ||
3427 | "\x5A\xC3\xAE\x46\xA8\xCD\x57\xE6" | ||
3428 | "\x67\x88\xA5\x20\x6F\x5F\x97\xC7" | ||
3429 | "\xCC\x15\xA2\x0A\x93\xEA\x33\xE7" | ||
3430 | "\x03\x5F\xEC\x64\x30\x6F\xEE\xD7" | ||
3431 | "\x7E\xDF\xD6\xE9\x6F\x3F\xD6\x1E" | ||
3432 | "\xBE\x67\x6C\x5B\x97\xA0\x09\xE6" | ||
3433 | "\xEE\xFE\x55\xA3\x29\x65\xE0\x12" | ||
3434 | "\xA1\x6A\x8A\x6F\xF2\xE6\xF1\x96" | ||
3435 | "\x87\xFB\x9C\x05\xDD\x80\xEC\xFF" | ||
3436 | "\xC5\xED\x50\xFE\xFC\x91\xCD\xCE" | ||
3437 | "\x25\x2C\x5F\xD9\xAD\x95\x7D\x99" | ||
3438 | "\xF0\x05\xC4\x71\x46\x5F\xF9\x0D" | ||
3439 | "\xD2\x63\xDF\x9B\x96\x2E\x2B\xA6" | ||
3440 | "\x2B\x1C\xD5\xFB\x96\x24\x60\x60" | ||
3441 | "\x54\x40\xB8\x62\xA4\xF8\x46\x95" | ||
3442 | "\x73\x28\xA3\xA6\x16\x2B\x17\xE7" | ||
3443 | "\x7A\xF8\x62\x54\x3B\x64\x69\xE1" | ||
3444 | "\x71\x34\x29\x5B\x4E\x05\x9B\xFA" | ||
3445 | "\x5E\xF1\x96\xB7\xCE\x16\x9B\x59" | ||
3446 | "\xF1\x1A\x4C\x51\x26\xFD\x79\xE2" | ||
3447 | "\x3B\x8E\x71\x69\x6A\x91\xB6\x65" | ||
3448 | "\x32\x09\xB8\xE4\x09\x1F\xEA\x39" | ||
3449 | "\xCE\x20\x65\x9F\xD6\xD1\xC7\xF0" | ||
3450 | "\x73\x50\x08\x56\x20\x9B\x94\x23" | ||
3451 | "\x14\x39\xB7\x2B\xB1\x2D\x6D\x6F" | ||
3452 | "\x41\x5B\xCC\xE2\x18\xAE\x62\x89" | ||
3453 | "\x78\x8E\x67\x23\xD0\xFB\x2B\xE5" | ||
3454 | "\x25\xC9\x48\x97\xB5\xD3\x17\xD5" | ||
3455 | "\x6A\x9F\xA7\x48\x0C\x2B\x73\x3B" | ||
3456 | "\x57\x08\xAE\x91\xF2\xB7\x57\x89" | ||
3457 | "\xF4\xD0\xB0\x07\xB0\x42\x6C\xAF" | ||
3458 | "\x98\x1A\xE7\xD1\xAC\x1E\xB5\x02" | ||
3459 | "\xD4\x56\x42\x79\x79\x7F\x2A\x77" | ||
3460 | "\x25\xE9\x7D\xC1\x88\x19\x2B\x49" | ||
3461 | "\x6F\x46\x59\xAB\x56\x1F\x61\xE0" | ||
3462 | "\x0C\x24\x9C\xC9\x5B\x63\xA9\x12" | ||
3463 | "\xCF\x88\x96\xB6\xA8\x24\xC6\xA8" | ||
3464 | "\x21\x85\x1A\x62\x7E\x34\xBB\xEB" | ||
3465 | "\xBD\x02\x2A\xC7\xD8\x89\x80\xC5" | ||
3466 | "\xB1\xBB\x60\xA5\x22\xFC\x6F\x38" | ||
3467 | "\x02\x80\xA3\x28\x22\x75\xE1\xE9" | ||
3468 | "\x90\xE9\xFA\x4B\x00\x10\xAC\x58" | ||
3469 | "\x83\x70\xFF\x86\xE6\xAA\x0F\x1F" | ||
3470 | "\x95\x63\x73\xA2\x44\xAC\xF8\xA5", | ||
3471 | .ilen = 496, | ||
3472 | .result = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3473 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3474 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3475 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3476 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3477 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3478 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3479 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3480 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3481 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3482 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3483 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3484 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3485 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3486 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3487 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3488 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3489 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3490 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3491 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3492 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3493 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3494 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3495 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3496 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3497 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3498 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3499 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3500 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3501 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3502 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3503 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3504 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3505 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3506 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3507 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3508 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3509 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3510 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3511 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3512 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3513 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3514 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3515 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3516 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3517 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3518 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3519 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3520 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3521 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3522 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3523 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3524 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3525 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3526 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3527 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3528 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3529 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3530 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3531 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3532 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3533 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
3534 | .rlen = 496, | ||
3535 | .also_non_np = 1, | ||
3536 | .np = 2, | ||
3537 | .tap = { 496 - 16, 16 }, | ||
3538 | }, | ||
3539 | }; | ||
3540 | |||
3541 | static struct cipher_testvec des3_ede_ctr_enc_tv_template[] = { | ||
3542 | { /* Generated with Crypto++ */ | ||
3543 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3544 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3545 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3546 | .klen = 24, | ||
3547 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" | ||
3548 | "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
3549 | .input = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3550 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3551 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3552 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3553 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3554 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3555 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3556 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3557 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3558 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3559 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3560 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3561 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3562 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3563 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3564 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3565 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3566 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3567 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3568 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3569 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3570 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3571 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3572 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3573 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3574 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3575 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3576 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3577 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3578 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3579 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3580 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3581 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3582 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3583 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3584 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3585 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3586 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3587 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3588 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3589 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3590 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3591 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3592 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3593 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3594 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3595 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3596 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3597 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3598 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3599 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3600 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3601 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3602 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3603 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3604 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3605 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3606 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3607 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3608 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3609 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3610 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
3611 | .ilen = 496, | ||
3612 | .result = "\x07\xC2\x08\x20\x72\x1F\x49\xEF" | ||
3613 | "\x19\xCD\x6F\x32\x53\x05\x22\x15" | ||
3614 | "\xA2\x85\x2B\xDB\x85\xD2\xD8\xB9" | ||
3615 | "\xDD\x0D\x1B\x45\xCB\x69\x11\xD4" | ||
3616 | "\xEA\xBE\xB2\x45\x5D\x0C\xAE\xBE" | ||
3617 | "\xA0\xC1\x27\xAC\x65\x9F\x53\x7E" | ||
3618 | "\xAF\xC2\x1B\xB5\xB8\x6D\x36\x0C" | ||
3619 | "\x25\xC0\xF8\x6D\x0B\x29\x01\xDA" | ||
3620 | "\x13\x78\xDC\x89\x12\x12\x43\xFA" | ||
3621 | "\xF6\x12\xEF\x8D\x87\x62\x78\x83" | ||
3622 | "\xE2\xBE\x41\x20\x4C\x6D\x35\x1B" | ||
3623 | "\xD1\x0C\x30\xCF\xE2\xDE\x2B\x03" | ||
3624 | "\xBF\x45\x73\xD4\xE5\x59\x95\xD1" | ||
3625 | "\xB3\x9B\x27\x62\x97\xBD\xDE\x7F" | ||
3626 | "\xA4\xD2\x39\x80\xAA\x50\x23\xF0" | ||
3627 | "\x74\x88\x3D\xA8\x6A\x18\x79\x3B" | ||
3628 | "\xC4\x96\x6C\x8D\x22\x40\x92\x6E" | ||
3629 | "\xD6\xAD\x2A\x1F\xDE\x63\xC0\xE7" | ||
3630 | "\x07\xF7\x2D\xF7\xB5\xF3\xF0\xCC" | ||
3631 | "\x01\x7C\x2A\x9B\xC2\x10\xCA\xAA" | ||
3632 | "\xFD\x2B\x3F\xC5\xF3\xF6\xFC\x9B" | ||
3633 | "\x45\xDB\x53\xE4\x5B\xF3\xC9\x7B" | ||
3634 | "\x8E\x52\xFF\xC8\x02\xB8\xAC\x9D" | ||
3635 | "\xA1\x00\x39\xDA\x3D\x2D\x0E\x01" | ||
3636 | "\x09\x7D\x8D\x5E\xBE\x53\xB9\xB0" | ||
3637 | "\x8E\xE7\xE2\x96\x6A\xB2\x78\xEA" | ||
3638 | "\xDE\x23\x8B\xA5\xFA\x5C\xE3\xDA" | ||
3639 | "\xBF\x8E\x31\x6A\x55\xD1\x6A\xB2" | ||
3640 | "\xB5\x46\x6F\xA5\xF0\xEE\xBA\x1F" | ||
3641 | "\x9F\x98\xB0\x66\x4F\xD0\x3F\xA9" | ||
3642 | "\xDF\x5F\x58\xC4\xF4\xFF\x75\x5C" | ||
3643 | "\x40\x3A\x09\x7E\x6E\x1C\x97\xD4" | ||
3644 | "\xCC\xE7\xE7\x71\xCF\x0B\x15\x08" | ||
3645 | "\x71\xFA\x07\x97\xCD\xE6\xCA\x1D" | ||
3646 | "\x14\x28\x0C\xCF\x99\x13\x7A\xF1" | ||
3647 | "\xEB\xFA\xFA\x92\x07\xDE\x1D\xA1" | ||
3648 | "\xD3\x36\x69\xFE\x51\x4D\x9F\x2E" | ||
3649 | "\x83\x37\x4F\x1F\x48\x30\xED\x04" | ||
3650 | "\x4D\xA4\xEF\x3A\xCA\x76\xF4\x1C" | ||
3651 | "\x41\x8F\x63\x37\x78\x2F\x86\xA6" | ||
3652 | "\xEF\x41\x7E\xD2\xAF\x88\xAB\x67" | ||
3653 | "\x52\x71\xC3\x8E\xF8\x26\x93\x72" | ||
3654 | "\xAA\xD6\x0E\xE7\x0B\x46\xB1\x3A" | ||
3655 | "\xB4\x08\xA9\xA8\xA0\xCF\x20\x0C" | ||
3656 | "\x52\xBC\x8B\x05\x56\xB2\xBC\x31" | ||
3657 | "\x9B\x74\xB9\x29\x29\x96\x9A\x50" | ||
3658 | "\xDC\x45\xDC\x1A\xEB\x0C\x64\xD4" | ||
3659 | "\xD3\x05\x7E\x59\x55\xC3\xF4\x90" | ||
3660 | "\xC2\xAB\xF8\x9B\x8A\xDA\xCE\xA1" | ||
3661 | "\xC3\xF4\xAD\x77\xDD\x44\xC8\xAC" | ||
3662 | "\xA3\xF1\xC9\xD2\x19\x5C\xB0\xCA" | ||
3663 | "\xA2\x34\xC1\xF7\x6C\xFD\xAC\x65" | ||
3664 | "\x32\xDC\x48\xC4\xF2\x00\x6B\x77" | ||
3665 | "\xF1\x7D\x76\xAC\xC0\x31\x63\x2A" | ||
3666 | "\xA5\x3A\x62\xC8\x91\xB1\x03\x65" | ||
3667 | "\xCB\x43\xD1\x06\xDF\xC3\x67\xBC" | ||
3668 | "\xDC\xE0\xCD\x35\xCE\x49\x65\xA0" | ||
3669 | "\x52\x7B\xA7\x0D\x07\xA9\x1B\xB0" | ||
3670 | "\x40\x77\x72\xC2\xEA\x0E\x3A\x78" | ||
3671 | "\x46\xB9\x91\xB6\xE7\x3D\x51\x42" | ||
3672 | "\xFD\x51\xB0\xC6\x2C\x63\x13\x78" | ||
3673 | "\x5C\xEE\xFC\xCF\xC4\x70\x00\x34", | ||
3674 | .rlen = 496, | ||
3675 | .also_non_np = 1, | ||
3676 | .np = 2, | ||
3677 | .tap = { 496 - 16, 16 }, | ||
3678 | }, { /* Generated with Crypto++ */ | ||
3679 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3680 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3681 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3682 | .klen = 24, | ||
3683 | .iv = "\xB2\xD7\x48\xED\x06\x44\xF9\x12" | ||
3684 | "\xB7\x28\x4D\x83\x24\x59\xF2\x17", | ||
3685 | .input = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3686 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3687 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3688 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3689 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3690 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3691 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3692 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3693 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3694 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3695 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3696 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3697 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3698 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3699 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3700 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3701 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3702 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3703 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3704 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3705 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3706 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3707 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3708 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3709 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3710 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3711 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3712 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3713 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3714 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3715 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3716 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3717 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3718 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3719 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3720 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3721 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3722 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3723 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3724 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3725 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3726 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3727 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3728 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3729 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3730 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3731 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3732 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3733 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3734 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3735 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3736 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3737 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3738 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3739 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3740 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3741 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3742 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3743 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3744 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3745 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3746 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47" | ||
3747 | "\x2E\xB1\x18", | ||
3748 | .ilen = 499, | ||
3749 | .result = "\x23\xFF\x5C\x99\x75\xBB\x1F\xD4" | ||
3750 | "\xBC\x27\x9D\x36\x60\xA9\xC9\xF7" | ||
3751 | "\x94\x9D\x1B\xFF\x8E\x95\x57\x89" | ||
3752 | "\x8C\x2E\x33\x70\x43\x61\xE6\xD2" | ||
3753 | "\x82\x33\x63\xB6\xC4\x34\x5E\xF8" | ||
3754 | "\x96\x07\xA7\xD2\x3B\x8E\xC9\xAA" | ||
3755 | "\x7C\xA0\x55\x89\x2E\xE1\x85\x25" | ||
3756 | "\x14\x04\xDA\x6B\xE0\xEE\x56\xCF" | ||
3757 | "\x08\x2E\x69\xD4\x54\xDE\x22\x84" | ||
3758 | "\x69\xA6\xA7\xD3\x3A\x9A\xE8\x05" | ||
3759 | "\x63\xDB\xBF\x46\x3A\x26\x2E\x0F" | ||
3760 | "\x58\x5C\x46\xEA\x07\x40\xDA\xE1" | ||
3761 | "\x14\x1D\xCD\x4F\x06\xC0\xCA\x54" | ||
3762 | "\x1E\xC9\x45\x85\x67\x7C\xC2\xB5" | ||
3763 | "\x97\x5D\x61\x78\x2E\x46\xEC\x6A" | ||
3764 | "\x53\xF4\xD0\xAE\xFA\xB4\x86\x29" | ||
3765 | "\x9F\x17\x33\x24\xD8\xB9\xB2\x05" | ||
3766 | "\x93\x88\xEA\xF7\xA0\x70\x69\x49" | ||
3767 | "\x88\x6B\x73\x40\x41\x8D\xD9\xD9" | ||
3768 | "\x7E\x78\xE9\xBE\x6C\x14\x22\x7A" | ||
3769 | "\x66\xE1\xDA\xED\x10\xFF\x69\x1D" | ||
3770 | "\xB9\xAA\xF2\x56\x72\x1B\x23\xE2" | ||
3771 | "\x45\x54\x8B\xA3\x70\x23\xB4\x5E" | ||
3772 | "\x8E\x96\xC9\x05\x00\xB3\xB6\xC2" | ||
3773 | "\x2A\x02\x43\x7A\x62\xD5\xC8\xD2" | ||
3774 | "\xC2\xD0\xE4\x78\xA1\x7B\x3E\xE8" | ||
3775 | "\x9F\x7F\x7D\x40\x54\x30\x3B\xC0" | ||
3776 | "\xA5\x54\xFD\xCA\x25\xEC\x44\x3E" | ||
3777 | "\x1A\x54\x7F\x88\xD0\xE1\xFE\x71" | ||
3778 | "\xCE\x05\x49\x89\xBA\xD6\x72\xE7" | ||
3779 | "\xD6\x5D\x3F\xA2\xD9\xAB\xC5\x02" | ||
3780 | "\xD6\x43\x22\xAF\xA2\xE4\x80\x85" | ||
3781 | "\xD7\x87\xB9\xEA\x43\xDB\xC8\xEF" | ||
3782 | "\x5C\x82\x2E\x98\x0D\x30\x41\x6B" | ||
3783 | "\x08\x48\x8D\xF0\xF8\x60\xD7\x9D" | ||
3784 | "\xE9\xDE\x40\xAD\x0D\xAD\x0D\x58" | ||
3785 | "\x2A\x98\x35\xFE\xF7\xDD\x4B\x40" | ||
3786 | "\xDE\xB0\x05\xD9\x7B\x09\x4D\xBC" | ||
3787 | "\x42\xC0\xF1\x15\x0B\xFA\x26\x6B" | ||
3788 | "\xC6\x12\x13\x4F\xCB\x35\xBA\x35" | ||
3789 | "\xDD\x7A\x36\x9C\x12\x57\x55\x83" | ||
3790 | "\x78\x58\x09\xD0\xB0\xCF\x7C\x5C" | ||
3791 | "\x38\xCF\xBD\x79\x5B\x13\x4D\x97" | ||
3792 | "\xC1\x85\x6F\x97\xC9\xE8\xC2\xA4" | ||
3793 | "\x98\xE2\xBD\x77\x6B\x53\x39\x1A" | ||
3794 | "\x28\x10\xE7\xE0\xE7\xDE\x9D\x69" | ||
3795 | "\x78\x6F\x8E\xD2\xD9\x5D\xD2\x15" | ||
3796 | "\x9E\xB5\x4D\x8C\xC0\x78\x22\x2F" | ||
3797 | "\x17\x11\x2E\x99\xD7\xE3\xA4\x4F" | ||
3798 | "\x65\xA5\x6B\x03\x2C\x35\x6F\xDA" | ||
3799 | "\x8A\x19\x08\xE1\x08\x48\x59\x51" | ||
3800 | "\x53\x4B\xD1\xDF\xDA\x14\x50\x5F" | ||
3801 | "\xDF\xB5\x8C\xDF\xC6\xFD\x85\xFA" | ||
3802 | "\xD4\xF9\x64\x45\x65\x0D\x7D\xF4" | ||
3803 | "\xC8\xCD\x3F\x32\xAF\xDD\x30\xED" | ||
3804 | "\x7B\xAA\xAC\xF0\xDA\x7F\xDF\x75" | ||
3805 | "\x1C\xA4\xF1\xCB\x5E\x4F\x0B\xB4" | ||
3806 | "\x97\x73\x28\xDE\xCF\xAF\x82\xBD" | ||
3807 | "\xC4\xBA\xB4\x9C\x0D\x16\x77\x42" | ||
3808 | "\x42\x39\x7C\x53\xA4\xD4\xDD\x40" | ||
3809 | "\x5C\x60\x1F\x6E\xA7\xE2\xDC\xE7" | ||
3810 | "\x32\x0F\x05\x2F\xF2\x4C\x95\x3B" | ||
3811 | "\xF2\x79\xD9", | ||
3812 | .rlen = 499, | ||
3813 | .also_non_np = 1, | ||
3814 | .np = 2, | ||
3815 | .tap = { 499 - 16, 16 }, | ||
3816 | }, | ||
3817 | }; | ||
3818 | |||
3819 | static struct cipher_testvec des3_ede_ctr_dec_tv_template[] = { | ||
3820 | { /* Generated with Crypto++ */ | ||
3821 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3822 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3823 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3824 | .klen = 24, | ||
3825 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" | ||
3826 | "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
3827 | .input = "\x07\xC2\x08\x20\x72\x1F\x49\xEF" | ||
3828 | "\x19\xCD\x6F\x32\x53\x05\x22\x15" | ||
3829 | "\xA2\x85\x2B\xDB\x85\xD2\xD8\xB9" | ||
3830 | "\xDD\x0D\x1B\x45\xCB\x69\x11\xD4" | ||
3831 | "\xEA\xBE\xB2\x45\x5D\x0C\xAE\xBE" | ||
3832 | "\xA0\xC1\x27\xAC\x65\x9F\x53\x7E" | ||
3833 | "\xAF\xC2\x1B\xB5\xB8\x6D\x36\x0C" | ||
3834 | "\x25\xC0\xF8\x6D\x0B\x29\x01\xDA" | ||
3835 | "\x13\x78\xDC\x89\x12\x12\x43\xFA" | ||
3836 | "\xF6\x12\xEF\x8D\x87\x62\x78\x83" | ||
3837 | "\xE2\xBE\x41\x20\x4C\x6D\x35\x1B" | ||
3838 | "\xD1\x0C\x30\xCF\xE2\xDE\x2B\x03" | ||
3839 | "\xBF\x45\x73\xD4\xE5\x59\x95\xD1" | ||
3840 | "\xB3\x9B\x27\x62\x97\xBD\xDE\x7F" | ||
3841 | "\xA4\xD2\x39\x80\xAA\x50\x23\xF0" | ||
3842 | "\x74\x88\x3D\xA8\x6A\x18\x79\x3B" | ||
3843 | "\xC4\x96\x6C\x8D\x22\x40\x92\x6E" | ||
3844 | "\xD6\xAD\x2A\x1F\xDE\x63\xC0\xE7" | ||
3845 | "\x07\xF7\x2D\xF7\xB5\xF3\xF0\xCC" | ||
3846 | "\x01\x7C\x2A\x9B\xC2\x10\xCA\xAA" | ||
3847 | "\xFD\x2B\x3F\xC5\xF3\xF6\xFC\x9B" | ||
3848 | "\x45\xDB\x53\xE4\x5B\xF3\xC9\x7B" | ||
3849 | "\x8E\x52\xFF\xC8\x02\xB8\xAC\x9D" | ||
3850 | "\xA1\x00\x39\xDA\x3D\x2D\x0E\x01" | ||
3851 | "\x09\x7D\x8D\x5E\xBE\x53\xB9\xB0" | ||
3852 | "\x8E\xE7\xE2\x96\x6A\xB2\x78\xEA" | ||
3853 | "\xDE\x23\x8B\xA5\xFA\x5C\xE3\xDA" | ||
3854 | "\xBF\x8E\x31\x6A\x55\xD1\x6A\xB2" | ||
3855 | "\xB5\x46\x6F\xA5\xF0\xEE\xBA\x1F" | ||
3856 | "\x9F\x98\xB0\x66\x4F\xD0\x3F\xA9" | ||
3857 | "\xDF\x5F\x58\xC4\xF4\xFF\x75\x5C" | ||
3858 | "\x40\x3A\x09\x7E\x6E\x1C\x97\xD4" | ||
3859 | "\xCC\xE7\xE7\x71\xCF\x0B\x15\x08" | ||
3860 | "\x71\xFA\x07\x97\xCD\xE6\xCA\x1D" | ||
3861 | "\x14\x28\x0C\xCF\x99\x13\x7A\xF1" | ||
3862 | "\xEB\xFA\xFA\x92\x07\xDE\x1D\xA1" | ||
3863 | "\xD3\x36\x69\xFE\x51\x4D\x9F\x2E" | ||
3864 | "\x83\x37\x4F\x1F\x48\x30\xED\x04" | ||
3865 | "\x4D\xA4\xEF\x3A\xCA\x76\xF4\x1C" | ||
3866 | "\x41\x8F\x63\x37\x78\x2F\x86\xA6" | ||
3867 | "\xEF\x41\x7E\xD2\xAF\x88\xAB\x67" | ||
3868 | "\x52\x71\xC3\x8E\xF8\x26\x93\x72" | ||
3869 | "\xAA\xD6\x0E\xE7\x0B\x46\xB1\x3A" | ||
3870 | "\xB4\x08\xA9\xA8\xA0\xCF\x20\x0C" | ||
3871 | "\x52\xBC\x8B\x05\x56\xB2\xBC\x31" | ||
3872 | "\x9B\x74\xB9\x29\x29\x96\x9A\x50" | ||
3873 | "\xDC\x45\xDC\x1A\xEB\x0C\x64\xD4" | ||
3874 | "\xD3\x05\x7E\x59\x55\xC3\xF4\x90" | ||
3875 | "\xC2\xAB\xF8\x9B\x8A\xDA\xCE\xA1" | ||
3876 | "\xC3\xF4\xAD\x77\xDD\x44\xC8\xAC" | ||
3877 | "\xA3\xF1\xC9\xD2\x19\x5C\xB0\xCA" | ||
3878 | "\xA2\x34\xC1\xF7\x6C\xFD\xAC\x65" | ||
3879 | "\x32\xDC\x48\xC4\xF2\x00\x6B\x77" | ||
3880 | "\xF1\x7D\x76\xAC\xC0\x31\x63\x2A" | ||
3881 | "\xA5\x3A\x62\xC8\x91\xB1\x03\x65" | ||
3882 | "\xCB\x43\xD1\x06\xDF\xC3\x67\xBC" | ||
3883 | "\xDC\xE0\xCD\x35\xCE\x49\x65\xA0" | ||
3884 | "\x52\x7B\xA7\x0D\x07\xA9\x1B\xB0" | ||
3885 | "\x40\x77\x72\xC2\xEA\x0E\x3A\x78" | ||
3886 | "\x46\xB9\x91\xB6\xE7\x3D\x51\x42" | ||
3887 | "\xFD\x51\xB0\xC6\x2C\x63\x13\x78" | ||
3888 | "\x5C\xEE\xFC\xCF\xC4\x70\x00\x34", | ||
3889 | .ilen = 496, | ||
3890 | .result = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
3891 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
3892 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
3893 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
3894 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
3895 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
3896 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
3897 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
3898 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
3899 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
3900 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
3901 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
3902 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
3903 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
3904 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
3905 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
3906 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
3907 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
3908 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
3909 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
3910 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
3911 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
3912 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
3913 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
3914 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
3915 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
3916 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
3917 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
3918 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
3919 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
3920 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
3921 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
3922 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
3923 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
3924 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
3925 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
3926 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
3927 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
3928 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
3929 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
3930 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
3931 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
3932 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
3933 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
3934 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
3935 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
3936 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
3937 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
3938 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
3939 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
3940 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
3941 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
3942 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
3943 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
3944 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
3945 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
3946 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
3947 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
3948 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
3949 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
3950 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
3951 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47", | ||
3952 | .rlen = 496, | ||
3953 | .also_non_np = 1, | ||
3954 | .np = 2, | ||
3955 | .tap = { 496 - 16, 16 }, | ||
3956 | }, { /* Generated with Crypto++ */ | ||
3957 | .key = "\x9C\xD6\xF3\x9C\xB9\x5A\x67\x00" | ||
3958 | "\x5A\x67\x00\x2D\xCE\xEB\x2D\xCE" | ||
3959 | "\xEB\xB4\x51\x72\xB4\x51\x72\x1F", | ||
3960 | .klen = 24, | ||
3961 | .iv = "\xB2\xD7\x48\xED\x06\x44\xF9\x12" | ||
3962 | "\xB7\x28\x4D\x83\x24\x59\xF2\x17", | ||
3963 | .input = "\x23\xFF\x5C\x99\x75\xBB\x1F\xD4" | ||
3964 | "\xBC\x27\x9D\x36\x60\xA9\xC9\xF7" | ||
3965 | "\x94\x9D\x1B\xFF\x8E\x95\x57\x89" | ||
3966 | "\x8C\x2E\x33\x70\x43\x61\xE6\xD2" | ||
3967 | "\x82\x33\x63\xB6\xC4\x34\x5E\xF8" | ||
3968 | "\x96\x07\xA7\xD2\x3B\x8E\xC9\xAA" | ||
3969 | "\x7C\xA0\x55\x89\x2E\xE1\x85\x25" | ||
3970 | "\x14\x04\xDA\x6B\xE0\xEE\x56\xCF" | ||
3971 | "\x08\x2E\x69\xD4\x54\xDE\x22\x84" | ||
3972 | "\x69\xA6\xA7\xD3\x3A\x9A\xE8\x05" | ||
3973 | "\x63\xDB\xBF\x46\x3A\x26\x2E\x0F" | ||
3974 | "\x58\x5C\x46\xEA\x07\x40\xDA\xE1" | ||
3975 | "\x14\x1D\xCD\x4F\x06\xC0\xCA\x54" | ||
3976 | "\x1E\xC9\x45\x85\x67\x7C\xC2\xB5" | ||
3977 | "\x97\x5D\x61\x78\x2E\x46\xEC\x6A" | ||
3978 | "\x53\xF4\xD0\xAE\xFA\xB4\x86\x29" | ||
3979 | "\x9F\x17\x33\x24\xD8\xB9\xB2\x05" | ||
3980 | "\x93\x88\xEA\xF7\xA0\x70\x69\x49" | ||
3981 | "\x88\x6B\x73\x40\x41\x8D\xD9\xD9" | ||
3982 | "\x7E\x78\xE9\xBE\x6C\x14\x22\x7A" | ||
3983 | "\x66\xE1\xDA\xED\x10\xFF\x69\x1D" | ||
3984 | "\xB9\xAA\xF2\x56\x72\x1B\x23\xE2" | ||
3985 | "\x45\x54\x8B\xA3\x70\x23\xB4\x5E" | ||
3986 | "\x8E\x96\xC9\x05\x00\xB3\xB6\xC2" | ||
3987 | "\x2A\x02\x43\x7A\x62\xD5\xC8\xD2" | ||
3988 | "\xC2\xD0\xE4\x78\xA1\x7B\x3E\xE8" | ||
3989 | "\x9F\x7F\x7D\x40\x54\x30\x3B\xC0" | ||
3990 | "\xA5\x54\xFD\xCA\x25\xEC\x44\x3E" | ||
3991 | "\x1A\x54\x7F\x88\xD0\xE1\xFE\x71" | ||
3992 | "\xCE\x05\x49\x89\xBA\xD6\x72\xE7" | ||
3993 | "\xD6\x5D\x3F\xA2\xD9\xAB\xC5\x02" | ||
3994 | "\xD6\x43\x22\xAF\xA2\xE4\x80\x85" | ||
3995 | "\xD7\x87\xB9\xEA\x43\xDB\xC8\xEF" | ||
3996 | "\x5C\x82\x2E\x98\x0D\x30\x41\x6B" | ||
3997 | "\x08\x48\x8D\xF0\xF8\x60\xD7\x9D" | ||
3998 | "\xE9\xDE\x40\xAD\x0D\xAD\x0D\x58" | ||
3999 | "\x2A\x98\x35\xFE\xF7\xDD\x4B\x40" | ||
4000 | "\xDE\xB0\x05\xD9\x7B\x09\x4D\xBC" | ||
4001 | "\x42\xC0\xF1\x15\x0B\xFA\x26\x6B" | ||
4002 | "\xC6\x12\x13\x4F\xCB\x35\xBA\x35" | ||
4003 | "\xDD\x7A\x36\x9C\x12\x57\x55\x83" | ||
4004 | "\x78\x58\x09\xD0\xB0\xCF\x7C\x5C" | ||
4005 | "\x38\xCF\xBD\x79\x5B\x13\x4D\x97" | ||
4006 | "\xC1\x85\x6F\x97\xC9\xE8\xC2\xA4" | ||
4007 | "\x98\xE2\xBD\x77\x6B\x53\x39\x1A" | ||
4008 | "\x28\x10\xE7\xE0\xE7\xDE\x9D\x69" | ||
4009 | "\x78\x6F\x8E\xD2\xD9\x5D\xD2\x15" | ||
4010 | "\x9E\xB5\x4D\x8C\xC0\x78\x22\x2F" | ||
4011 | "\x17\x11\x2E\x99\xD7\xE3\xA4\x4F" | ||
4012 | "\x65\xA5\x6B\x03\x2C\x35\x6F\xDA" | ||
4013 | "\x8A\x19\x08\xE1\x08\x48\x59\x51" | ||
4014 | "\x53\x4B\xD1\xDF\xDA\x14\x50\x5F" | ||
4015 | "\xDF\xB5\x8C\xDF\xC6\xFD\x85\xFA" | ||
4016 | "\xD4\xF9\x64\x45\x65\x0D\x7D\xF4" | ||
4017 | "\xC8\xCD\x3F\x32\xAF\xDD\x30\xED" | ||
4018 | "\x7B\xAA\xAC\xF0\xDA\x7F\xDF\x75" | ||
4019 | "\x1C\xA4\xF1\xCB\x5E\x4F\x0B\xB4" | ||
4020 | "\x97\x73\x28\xDE\xCF\xAF\x82\xBD" | ||
4021 | "\xC4\xBA\xB4\x9C\x0D\x16\x77\x42" | ||
4022 | "\x42\x39\x7C\x53\xA4\xD4\xDD\x40" | ||
4023 | "\x5C\x60\x1F\x6E\xA7\xE2\xDC\xE7" | ||
4024 | "\x32\x0F\x05\x2F\xF2\x4C\x95\x3B" | ||
4025 | "\xF2\x79\xD9", | ||
4026 | .ilen = 499, | ||
4027 | .result = "\x05\xEC\x77\xFB\x42\xD5\x59\x20" | ||
4028 | "\x8B\x12\x86\x69\xF0\x5B\xCF\x56" | ||
4029 | "\x39\xAD\x34\x9F\x66\xEA\x7D\xC4" | ||
4030 | "\x48\xD3\xBA\x0D\xB1\x18\xE3\x4A" | ||
4031 | "\xFE\x41\x28\x5C\x27\x8E\x11\x85" | ||
4032 | "\x6C\xF7\x5E\xC2\x55\x3C\xA0\x0B" | ||
4033 | "\x92\x65\xE9\x70\xDB\x4F\xD6\xB9" | ||
4034 | "\x00\xB4\x1F\xE6\x49\xFD\x44\x2F" | ||
4035 | "\x53\x3A\x8D\x14\x98\x63\xCA\x5D" | ||
4036 | "\xC1\xA8\x33\xA7\x0E\x91\x78\xEC" | ||
4037 | "\x77\xDE\x42\xD5\xBC\x07\x8B\x12" | ||
4038 | "\xE5\x4C\xF0\x5B\x22\x56\x39\x80" | ||
4039 | "\x6B\x9F\x66\xC9\x50\xC4\xAF\x36" | ||
4040 | "\xBA\x0D\x94\x7F\xE3\x4A\xDD\x41" | ||
4041 | "\x28\xB3\x1A\x8E\x11\xF8\x43\xF7" | ||
4042 | "\x5E\x21\x55\x3C\x87\x6E\x92\x65" | ||
4043 | "\xCC\x57\xDB\xA2\x35\xB9\x00\xEB" | ||
4044 | "\x72\xE6\x49\xD0\x44\x2F\xB6\x19" | ||
4045 | "\x8D\x14\xFF\x46\xCA\x5D\x24\xA8" | ||
4046 | "\x33\x9A\x6D\x91\x78\xC3\x77\xDE" | ||
4047 | "\xA1\x08\xBC\x07\xEE\x71\xE5\x4C" | ||
4048 | "\xD7\x5B\x22\xB5\x1C\x80\x6B\xF2" | ||
4049 | "\x45\xC9\x50\x3B\xAF\x36\x99\x60" | ||
4050 | "\x94\x7F\xC6\x4A\xDD\xA4\x0F\xB3" | ||
4051 | "\x1A\xED\x74\xF8\x43\x2A\x5E\x21" | ||
4052 | "\x88\x13\x87\x6E\xF1\x58\xCC\x57" | ||
4053 | "\x3E\xA2\x35\x9C\x67\xEB\x72\xC5" | ||
4054 | "\x49\xD0\xBB\x02\xB6\x19\xE0\x4B" | ||
4055 | "\xFF\x46\x29\x5D\x24\x8F\x16\x9A" | ||
4056 | "\x6D\xF4\x5F\xC3\xAA\x3D\xA1\x08" | ||
4057 | "\x93\x7A\xEE\x71\xD8\x4C\xD7\xBE" | ||
4058 | "\x01\xB5\x1C\xE7\x4E\xF2\x45\x2C" | ||
4059 | "\x50\x3B\x82\x15\x99\x60\xCB\x52" | ||
4060 | "\xC6\xA9\x30\xA4\x0F\x96\x79\xED" | ||
4061 | "\x74\xDF\x43\x2A\xBD\x04\x88\x13" | ||
4062 | "\xFA\x4D\xF1\x58\x23\x57\x3E\x81" | ||
4063 | "\x68\x9C\x67\xCE\x51\xC5\xAC\x37" | ||
4064 | "\xBB\x02\x95\x7C\xE0\x4B\xD2\x46" | ||
4065 | "\x29\xB0\x1B\x8F\x16\xF9\x40\xF4" | ||
4066 | "\x5F\x26\xAA\x3D\x84\x6F\x93\x7A" | ||
4067 | "\xCD\x54\xD8\xA3\x0A\xBE\x01\xE8" | ||
4068 | "\x73\xE7\x4E\xD1\x45\x2C\xB7\x1E" | ||
4069 | "\x82\x15\xFC\x47\xCB\x52\x25\xA9" | ||
4070 | "\x30\x9B\x62\x96\x79\xC0\x74\xDF" | ||
4071 | "\xA6\x09\xBD\x04\xEF\x76\xFA\x4D" | ||
4072 | "\xD4\x58\x23\x8A\x1D\x81\x68\xF3" | ||
4073 | "\x5A\xCE\x51\x38\xAC\x37\x9E\x61" | ||
4074 | "\x95\x7C\xC7\x4B\xD2\xA5\x0C\xB0" | ||
4075 | "\x1B\xE2\x75\xF9\x40\x2B\x5F\x26" | ||
4076 | "\x89\x10\x84\x6F\xF6\x59\xCD\x54" | ||
4077 | "\x3F\xA3\x0A\x9D\x64\xE8\x73\xDA" | ||
4078 | "\x4E\xD1\xB8\x03\xB7\x1E\xE1\x48" | ||
4079 | "\xFC\x47\x2E\x52\x25\x8C\x17\x9B" | ||
4080 | "\x62\xF5\x5C\xC0\xAB\x32\xA6\x09" | ||
4081 | "\x90\x7B\xEF\x76\xD9\x4D\xD4\xBF" | ||
4082 | "\x06\x8A\x1D\xE4\x4F\xF3\x5A\x2D" | ||
4083 | "\x51\x38\x83\x6A\x9E\x61\xC8\x53" | ||
4084 | "\xC7\xAE\x31\xA5\x0C\x97\x7E\xE2" | ||
4085 | "\x75\xDC\x40\x2B\xB2\x05\x89\x10" | ||
4086 | "\xFB\x42\xF6\x59\x20\x54\x3F\x86" | ||
4087 | "\x69\x9D\x64\xCF\x56\xDA\xAD\x34" | ||
4088 | "\xB8\x03\xEA\x7D\xE1\x48\xD3\x47" | ||
4089 | "\x2E\xB1\x18", | ||
4090 | .rlen = 499, | ||
4091 | .also_non_np = 1, | ||
4092 | .np = 2, | ||
4093 | .tap = { 499 - 16, 16 }, | ||
2389 | }, | 4094 | }, |
2390 | }; | 4095 | }; |
2391 | 4096 | ||
@@ -2461,17 +4166,133 @@ static struct cipher_testvec bf_enc_tv_template[] = { | |||
2461 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 4166 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2462 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4167 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2463 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4168 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2464 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 4169 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2465 | .ilen = 40, | 4170 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
4171 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
4172 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4173 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4174 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4175 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4176 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4177 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4178 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4179 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4180 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4181 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4182 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4183 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4184 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4185 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4186 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4187 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4188 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4189 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4190 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4191 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4192 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4193 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4194 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4195 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4196 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4197 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4198 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4199 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4200 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4201 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4202 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4203 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4204 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4205 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4206 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4207 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4208 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4209 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4210 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4211 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4212 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4213 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4214 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4215 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4216 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
4217 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
4218 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
4219 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
4220 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
4221 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
4222 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
4223 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
4224 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
4225 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
4226 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
4227 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
4228 | .ilen = 504, | ||
2466 | .result = "\x96\x87\x3D\x0C\x7B\xFB\xBD\x1F" | 4229 | .result = "\x96\x87\x3D\x0C\x7B\xFB\xBD\x1F" |
2467 | "\xE3\xC1\x99\x6D\x39\xD4\xC2\x7D" | 4230 | "\xE3\xC1\x99\x6D\x39\xD4\xC2\x7D" |
2468 | "\xD7\x87\xA1\xF2\xDF\x51\x71\x26" | 4231 | "\xD7\x87\xA1\xF2\xDF\x51\x71\x26" |
2469 | "\xC2\xF4\x6D\xFF\xF6\xCD\x6B\x40" | 4232 | "\xC2\xF4\x6D\xFF\xF6\xCD\x6B\x40" |
2470 | "\xE1\xB3\xBF\xD4\x38\x2B\xC8\x3B", | 4233 | "\xE1\xB3\xBF\xD4\x38\x2B\xC8\x3B" |
2471 | .rlen = 40, | 4234 | "\xD3\xB2\xD4\x61\xC7\x9F\x06\xE9" |
4235 | "\xCD\xF3\x88\x39\x39\x7A\xDF\x19" | ||
4236 | "\xE8\x03\x2A\x0B\x9E\xA0\x2B\x86" | ||
4237 | "\x31\xF8\x9D\xB1\xEE\x78\x9D\xB5" | ||
4238 | "\xCD\x8B\x7C\x2E\xF5\xA2\x2D\x5D" | ||
4239 | "\x6E\x66\xAF\x38\x6C\xD3\x13\xED" | ||
4240 | "\x14\xEA\x5D\xD0\x17\x77\x0F\x4A" | ||
4241 | "\x50\xF2\xD0\x0F\xC8\xF7\x1E\x7B" | ||
4242 | "\x9D\x5B\x54\x65\x4F\x16\x8A\x97" | ||
4243 | "\xF3\xF6\xD4\xAA\x87\x36\x77\x72" | ||
4244 | "\x99\x4A\xB5\x5E\x88\xC3\xCD\x7D" | ||
4245 | "\x1D\x97\xF9\x11\xBD\xE0\x1F\x1F" | ||
4246 | "\x96\x3E\x4B\x22\xF4\xC0\xE6\xB8" | ||
4247 | "\x47\x82\x98\x23\x33\x36\xBC\x1B" | ||
4248 | "\x36\xE7\xF6\xCF\x97\x37\x16\xC0" | ||
4249 | "\x87\x31\x8B\xB0\xDB\x19\x42\xA5" | ||
4250 | "\x1F\x90\x7E\x66\x34\xDD\x5E\xE9" | ||
4251 | "\x4F\xB2\x2B\x9A\xDE\xB3\x5D\x71" | ||
4252 | "\x4D\x68\xF0\xDC\xA6\xEA\xE3\x9B" | ||
4253 | "\x60\x00\x55\x57\x06\x8B\xD5\xB3" | ||
4254 | "\x86\x30\x78\xDA\x33\x9A\x9D\xCC" | ||
4255 | "\xBA\x0B\x81\x06\x77\x43\xC7\xC9" | ||
4256 | "\xDB\x37\x60\x11\x45\x59\x6D\x2D" | ||
4257 | "\x90\x3D\x65\x3E\xD0\x13\xC6\x3C" | ||
4258 | "\x0E\x78\x7D\x9A\x00\xD6\x2F\x0B" | ||
4259 | "\x3B\x53\x19\x1E\xA8\x9B\x11\xD9" | ||
4260 | "\x98\xE4\x7F\xC3\x6E\x51\x24\x70" | ||
4261 | "\x9F\x04\x9C\xC2\x9E\x44\x84\xE3" | ||
4262 | "\xE0\x8A\x44\xA2\x5C\x94\x74\x34" | ||
4263 | "\x37\x52\x7C\x03\xE8\x8E\x97\xE1" | ||
4264 | "\x5B\x5C\x0E\xB0\x70\xFE\x54\x3F" | ||
4265 | "\xD8\x65\xA9\xC5\xCD\xEC\xF4\x45" | ||
4266 | "\x55\xC5\xA7\xA3\x19\x80\x28\x51" | ||
4267 | "\xBE\x64\x4A\xC1\xD4\xE1\xBE\xEB" | ||
4268 | "\x73\x4C\xB6\xF9\x5F\x6D\x82\xBC" | ||
4269 | "\x3E\x42\x14\x49\x88\x51\xBF\x68" | ||
4270 | "\x45\x75\x27\x1B\x0A\x72\xED\xAF" | ||
4271 | "\xDA\xC4\x4D\x67\x0D\xEE\x75\xE3" | ||
4272 | "\x34\xDD\x91\x19\x42\x3A\xCB\xDA" | ||
4273 | "\x38\xFA\x3C\x93\x62\xF2\xE3\x81" | ||
4274 | "\xB3\xE4\xBB\xF6\x0D\x0B\x1D\x09" | ||
4275 | "\x9C\x52\x0D\x50\x63\xA4\xB2\xD2" | ||
4276 | "\x82\xA0\x23\x3F\x1F\xB6\xED\x6E" | ||
4277 | "\xC2\x9C\x1C\xD0\x9A\x40\xB6\xFC" | ||
4278 | "\x36\x56\x6E\x85\x73\xD7\x52\xBA" | ||
4279 | "\x35\x5E\x32\x89\x5D\x42\xF5\x36" | ||
4280 | "\x52\x8D\x46\x7D\xC8\x71\xAD\x33" | ||
4281 | "\xE1\xAF\x6A\xA8\xEC\xBA\x1C\xDC" | ||
4282 | "\xFE\x88\xE6\x16\xE4\xC8\x13\x00" | ||
4283 | "\x3C\xDA\x59\x32\x38\x19\xD5\xEB" | ||
4284 | "\xB6\x7F\x78\x45\x1B\x8E\x07\x8C" | ||
4285 | "\x66\x52\x75\xFF\xAF\xCE\x2D\x2B" | ||
4286 | "\x22\x29\xCA\xB3\x5F\x7F\xE3\x29" | ||
4287 | "\xB2\xB8\x9D\xEB\x16\xC8\xC5\x1D" | ||
4288 | "\xC9\x0D\x59\x82\x27\x57\x9D\x42" | ||
4289 | "\x54\x59\x09\xA5\x3D\xC5\x84\x68" | ||
4290 | "\x56\xEB\x36\x77\x3D\xAA\xB8\xF5" | ||
4291 | "\xC9\x1A\xFB\x5D\xDE\xBB\x43\xF4", | ||
4292 | .rlen = 504, | ||
2472 | .also_non_np = 1, | 4293 | .also_non_np = 1, |
2473 | .np = 2, | 4294 | .np = 2, |
2474 | .tap = { 40 - 8, 8 }, | 4295 | .tap = { 504 - 8, 8 }, |
2475 | }, | 4296 | }, |
2476 | }; | 4297 | }; |
2477 | 4298 | ||
@@ -2537,17 +4358,133 @@ static struct cipher_testvec bf_dec_tv_template[] = { | |||
2537 | "\xE3\xC1\x99\x6D\x39\xD4\xC2\x7D" | 4358 | "\xE3\xC1\x99\x6D\x39\xD4\xC2\x7D" |
2538 | "\xD7\x87\xA1\xF2\xDF\x51\x71\x26" | 4359 | "\xD7\x87\xA1\xF2\xDF\x51\x71\x26" |
2539 | "\xC2\xF4\x6D\xFF\xF6\xCD\x6B\x40" | 4360 | "\xC2\xF4\x6D\xFF\xF6\xCD\x6B\x40" |
2540 | "\xE1\xB3\xBF\xD4\x38\x2B\xC8\x3B", | 4361 | "\xE1\xB3\xBF\xD4\x38\x2B\xC8\x3B" |
2541 | .ilen = 40, | 4362 | "\xD3\xB2\xD4\x61\xC7\x9F\x06\xE9" |
4363 | "\xCD\xF3\x88\x39\x39\x7A\xDF\x19" | ||
4364 | "\xE8\x03\x2A\x0B\x9E\xA0\x2B\x86" | ||
4365 | "\x31\xF8\x9D\xB1\xEE\x78\x9D\xB5" | ||
4366 | "\xCD\x8B\x7C\x2E\xF5\xA2\x2D\x5D" | ||
4367 | "\x6E\x66\xAF\x38\x6C\xD3\x13\xED" | ||
4368 | "\x14\xEA\x5D\xD0\x17\x77\x0F\x4A" | ||
4369 | "\x50\xF2\xD0\x0F\xC8\xF7\x1E\x7B" | ||
4370 | "\x9D\x5B\x54\x65\x4F\x16\x8A\x97" | ||
4371 | "\xF3\xF6\xD4\xAA\x87\x36\x77\x72" | ||
4372 | "\x99\x4A\xB5\x5E\x88\xC3\xCD\x7D" | ||
4373 | "\x1D\x97\xF9\x11\xBD\xE0\x1F\x1F" | ||
4374 | "\x96\x3E\x4B\x22\xF4\xC0\xE6\xB8" | ||
4375 | "\x47\x82\x98\x23\x33\x36\xBC\x1B" | ||
4376 | "\x36\xE7\xF6\xCF\x97\x37\x16\xC0" | ||
4377 | "\x87\x31\x8B\xB0\xDB\x19\x42\xA5" | ||
4378 | "\x1F\x90\x7E\x66\x34\xDD\x5E\xE9" | ||
4379 | "\x4F\xB2\x2B\x9A\xDE\xB3\x5D\x71" | ||
4380 | "\x4D\x68\xF0\xDC\xA6\xEA\xE3\x9B" | ||
4381 | "\x60\x00\x55\x57\x06\x8B\xD5\xB3" | ||
4382 | "\x86\x30\x78\xDA\x33\x9A\x9D\xCC" | ||
4383 | "\xBA\x0B\x81\x06\x77\x43\xC7\xC9" | ||
4384 | "\xDB\x37\x60\x11\x45\x59\x6D\x2D" | ||
4385 | "\x90\x3D\x65\x3E\xD0\x13\xC6\x3C" | ||
4386 | "\x0E\x78\x7D\x9A\x00\xD6\x2F\x0B" | ||
4387 | "\x3B\x53\x19\x1E\xA8\x9B\x11\xD9" | ||
4388 | "\x98\xE4\x7F\xC3\x6E\x51\x24\x70" | ||
4389 | "\x9F\x04\x9C\xC2\x9E\x44\x84\xE3" | ||
4390 | "\xE0\x8A\x44\xA2\x5C\x94\x74\x34" | ||
4391 | "\x37\x52\x7C\x03\xE8\x8E\x97\xE1" | ||
4392 | "\x5B\x5C\x0E\xB0\x70\xFE\x54\x3F" | ||
4393 | "\xD8\x65\xA9\xC5\xCD\xEC\xF4\x45" | ||
4394 | "\x55\xC5\xA7\xA3\x19\x80\x28\x51" | ||
4395 | "\xBE\x64\x4A\xC1\xD4\xE1\xBE\xEB" | ||
4396 | "\x73\x4C\xB6\xF9\x5F\x6D\x82\xBC" | ||
4397 | "\x3E\x42\x14\x49\x88\x51\xBF\x68" | ||
4398 | "\x45\x75\x27\x1B\x0A\x72\xED\xAF" | ||
4399 | "\xDA\xC4\x4D\x67\x0D\xEE\x75\xE3" | ||
4400 | "\x34\xDD\x91\x19\x42\x3A\xCB\xDA" | ||
4401 | "\x38\xFA\x3C\x93\x62\xF2\xE3\x81" | ||
4402 | "\xB3\xE4\xBB\xF6\x0D\x0B\x1D\x09" | ||
4403 | "\x9C\x52\x0D\x50\x63\xA4\xB2\xD2" | ||
4404 | "\x82\xA0\x23\x3F\x1F\xB6\xED\x6E" | ||
4405 | "\xC2\x9C\x1C\xD0\x9A\x40\xB6\xFC" | ||
4406 | "\x36\x56\x6E\x85\x73\xD7\x52\xBA" | ||
4407 | "\x35\x5E\x32\x89\x5D\x42\xF5\x36" | ||
4408 | "\x52\x8D\x46\x7D\xC8\x71\xAD\x33" | ||
4409 | "\xE1\xAF\x6A\xA8\xEC\xBA\x1C\xDC" | ||
4410 | "\xFE\x88\xE6\x16\xE4\xC8\x13\x00" | ||
4411 | "\x3C\xDA\x59\x32\x38\x19\xD5\xEB" | ||
4412 | "\xB6\x7F\x78\x45\x1B\x8E\x07\x8C" | ||
4413 | "\x66\x52\x75\xFF\xAF\xCE\x2D\x2B" | ||
4414 | "\x22\x29\xCA\xB3\x5F\x7F\xE3\x29" | ||
4415 | "\xB2\xB8\x9D\xEB\x16\xC8\xC5\x1D" | ||
4416 | "\xC9\x0D\x59\x82\x27\x57\x9D\x42" | ||
4417 | "\x54\x59\x09\xA5\x3D\xC5\x84\x68" | ||
4418 | "\x56\xEB\x36\x77\x3D\xAA\xB8\xF5" | ||
4419 | "\xC9\x1A\xFB\x5D\xDE\xBB\x43\xF4", | ||
4420 | .ilen = 504, | ||
2542 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 4421 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
2543 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 4422 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2544 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4423 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2545 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4424 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2546 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 4425 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2547 | .rlen = 40, | 4426 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
4427 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
4428 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4429 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4430 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4431 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4432 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4433 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4434 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4435 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4436 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4437 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4438 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4439 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4440 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4441 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4442 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4443 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4444 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4445 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4446 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4447 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4448 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4449 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4450 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4451 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4452 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4453 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4454 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4455 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4456 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4457 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4458 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4459 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4460 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4461 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4462 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4463 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4464 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4465 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4466 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4467 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4468 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4469 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4470 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4471 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4472 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
4473 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
4474 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
4475 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
4476 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
4477 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
4478 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
4479 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
4480 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
4481 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
4482 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
4483 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
4484 | .rlen = 504, | ||
2548 | .also_non_np = 1, | 4485 | .also_non_np = 1, |
2549 | .np = 2, | 4486 | .np = 2, |
2550 | .tap = { 40 - 8, 8 }, | 4487 | .tap = { 504 - 8, 8 }, |
2551 | }, | 4488 | }, |
2552 | }; | 4489 | }; |
2553 | 4490 | ||
@@ -2578,17 +4515,133 @@ static struct cipher_testvec bf_cbc_enc_tv_template[] = { | |||
2578 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 4515 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2579 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4516 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2580 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4517 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2581 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 4518 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2582 | .ilen = 40, | 4519 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
4520 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
4521 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4522 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4523 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4524 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4525 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4526 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4527 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4528 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4529 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4530 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4531 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4532 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4533 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4534 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4535 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4536 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4537 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4538 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4539 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4540 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4541 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4542 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4543 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4544 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4545 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4546 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4547 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4548 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4549 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4550 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4551 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4552 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4553 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4554 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4555 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4556 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4557 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4558 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4559 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4560 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4561 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4562 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4563 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4564 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4565 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
4566 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
4567 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
4568 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
4569 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
4570 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
4571 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
4572 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
4573 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
4574 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
4575 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
4576 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
4577 | .ilen = 504, | ||
2583 | .result = "\xB4\xFE\xA5\xBB\x3D\x2C\x27\x06" | 4578 | .result = "\xB4\xFE\xA5\xBB\x3D\x2C\x27\x06" |
2584 | "\x06\x2B\x3A\x92\xB2\xF5\x5E\x62" | 4579 | "\x06\x2B\x3A\x92\xB2\xF5\x5E\x62" |
2585 | "\x84\xCD\xF7\x66\x7E\x41\x6C\x8E" | 4580 | "\x84\xCD\xF7\x66\x7E\x41\x6C\x8E" |
2586 | "\x1B\xD9\x02\xB6\x48\xB0\x87\x25" | 4581 | "\x1B\xD9\x02\xB6\x48\xB0\x87\x25" |
2587 | "\x01\x9C\x93\x63\x51\x60\x82\xD2", | 4582 | "\x01\x9C\x93\x63\x51\x60\x82\xD2" |
2588 | .rlen = 40, | 4583 | "\x4D\xE5\xC2\xB7\xAE\x60\xD8\xAD" |
4584 | "\x9F\xAB\x6C\xFA\x20\x05\xDA\x6F" | ||
4585 | "\x1F\xD1\xD8\x36\x0F\xB5\x16\x69" | ||
4586 | "\x3C\xAF\xB3\x30\x18\x33\xE6\xB5" | ||
4587 | "\x43\x29\x9D\x94\xF4\x2F\x0A\x65" | ||
4588 | "\x40\xB2\xB2\xB2\x42\x89\xEE\x8A" | ||
4589 | "\x60\xD3\x52\xA8\xED\x91\xDF\xE1" | ||
4590 | "\x91\x73\x7C\x28\xA1\x14\xC3\x4C" | ||
4591 | "\x82\x72\x4B\x7D\x7D\x32\xD5\x19" | ||
4592 | "\xE8\xB8\x6B\x30\x21\x09\x0E\x27" | ||
4593 | "\x10\x9D\x2D\x3A\x6A\x4B\x7B\xE6" | ||
4594 | "\x8D\x4E\x02\x32\xFF\x7F\x8E\x13" | ||
4595 | "\xB0\x96\xF4\xC2\xA1\x60\x8A\x69" | ||
4596 | "\xEF\x0F\x86\xD0\x25\x13\x1A\x7C" | ||
4597 | "\x6E\xF0\x41\xA3\xFB\xB3\xAB\x40" | ||
4598 | "\x7D\x19\xA0\x11\x4F\x3E\x1D\x43" | ||
4599 | "\x65\xFE\x15\x40\xD0\x62\x41\x02" | ||
4600 | "\xEA\x0C\x7A\xC3\x84\xEE\xB0\xBE" | ||
4601 | "\xBE\xC8\x57\x51\xCD\x4F\xAD\x5C" | ||
4602 | "\xCC\x79\xBA\x0D\x85\x3A\xED\x6B" | ||
4603 | "\xAC\x6B\xA3\x4D\xBC\xE8\x02\x6A" | ||
4604 | "\xC2\x6D\xBD\x5E\x89\x95\x86\x43" | ||
4605 | "\x2C\x17\x4B\xC6\x40\xA2\xBD\x24" | ||
4606 | "\x04\xF0\x86\x08\x78\x18\x42\xE0" | ||
4607 | "\x39\x1B\x22\x9E\x89\x4C\x04\x6B" | ||
4608 | "\x65\xC5\xB6\x0E\xF6\x63\xFC\xD7" | ||
4609 | "\xAE\x9E\x87\x13\xCC\xD3\x1A\xEC" | ||
4610 | "\xF0\x51\xCC\x93\x68\xFC\xE9\x19" | ||
4611 | "\x7C\x4E\x9B\xCC\x17\xAD\xD2\xFC" | ||
4612 | "\x97\x18\x92\xFF\x15\x11\xCE\xED" | ||
4613 | "\x04\x41\x05\xA3\x92\xFF\x3B\xE6" | ||
4614 | "\xB6\x8C\x90\xC6\xCD\x15\xA0\x04" | ||
4615 | "\x25\x8B\x5D\x5B\x5F\xDB\xAE\x68" | ||
4616 | "\xEF\xB3\x61\x18\xDB\x83\x9B\x39" | ||
4617 | "\xCA\x82\xD1\x88\xF0\xA2\x5C\x02" | ||
4618 | "\x87\xBD\x8D\x8F\xBB\x62\xF0\x35" | ||
4619 | "\x75\x6F\x06\x81\x0A\x97\x4D\xF0" | ||
4620 | "\x43\x12\x73\x77\xDB\x91\x83\x5B" | ||
4621 | "\xE7\x3A\xA6\x07\x7B\xBF\x2C\x50" | ||
4622 | "\x94\xDE\x7B\x65\xDA\x1C\xF1\x9F" | ||
4623 | "\x7E\x12\x40\xB2\x3E\x19\x23\xF1" | ||
4624 | "\x7C\x1B\x5F\xA8\xF3\xAC\x63\x87" | ||
4625 | "\xEB\x3E\x0C\xBE\xA3\x63\x97\x88" | ||
4626 | "\x8D\x27\xC6\x2A\xF8\xF2\x67\x9A" | ||
4627 | "\x0D\x14\x16\x2B\x6F\xCB\xD4\x76" | ||
4628 | "\x14\x48\x2E\xDE\x2A\x44\x5E\x45" | ||
4629 | "\xF1\x97\x82\xEF\xB7\xAE\xED\x3A" | ||
4630 | "\xED\x73\xD3\x79\xF7\x38\x1D\xD0" | ||
4631 | "\xC5\xF8\x69\x83\x28\x84\x87\x56" | ||
4632 | "\x3F\xAE\x81\x04\x79\x1F\xD1\x09" | ||
4633 | "\xC5\xE5\x05\x0D\x64\x16\xCE\x42" | ||
4634 | "\xC5\xF8\xDB\x57\x89\x33\x22\xFC" | ||
4635 | "\xB4\xD7\x94\xB9\xF3\xCC\x02\x90" | ||
4636 | "\x02\xBA\x55\x1E\x24\x3E\x02\x1D" | ||
4637 | "\xC6\xCD\x8F\xD9\xBD\xED\xB0\x51" | ||
4638 | "\xCD\xE9\xD5\x0C\xFE\x12\x39\xA9" | ||
4639 | "\x93\x9B\xEE\xB5\x97\x41\xD2\xA0" | ||
4640 | "\xB4\x98\xD8\x6B\x74\xE7\x65\xF4", | ||
4641 | .rlen = 504, | ||
2589 | .also_non_np = 1, | 4642 | .also_non_np = 1, |
2590 | .np = 2, | 4643 | .np = 2, |
2591 | .tap = { 40 - 8, 8 }, | 4644 | .tap = { 504 - 8, 8 }, |
2592 | }, | 4645 | }, |
2593 | }; | 4646 | }; |
2594 | 4647 | ||
@@ -2619,17 +4672,133 @@ static struct cipher_testvec bf_cbc_dec_tv_template[] = { | |||
2619 | "\x06\x2B\x3A\x92\xB2\xF5\x5E\x62" | 4672 | "\x06\x2B\x3A\x92\xB2\xF5\x5E\x62" |
2620 | "\x84\xCD\xF7\x66\x7E\x41\x6C\x8E" | 4673 | "\x84\xCD\xF7\x66\x7E\x41\x6C\x8E" |
2621 | "\x1B\xD9\x02\xB6\x48\xB0\x87\x25" | 4674 | "\x1B\xD9\x02\xB6\x48\xB0\x87\x25" |
2622 | "\x01\x9C\x93\x63\x51\x60\x82\xD2", | 4675 | "\x01\x9C\x93\x63\x51\x60\x82\xD2" |
2623 | .ilen = 40, | 4676 | "\x4D\xE5\xC2\xB7\xAE\x60\xD8\xAD" |
4677 | "\x9F\xAB\x6C\xFA\x20\x05\xDA\x6F" | ||
4678 | "\x1F\xD1\xD8\x36\x0F\xB5\x16\x69" | ||
4679 | "\x3C\xAF\xB3\x30\x18\x33\xE6\xB5" | ||
4680 | "\x43\x29\x9D\x94\xF4\x2F\x0A\x65" | ||
4681 | "\x40\xB2\xB2\xB2\x42\x89\xEE\x8A" | ||
4682 | "\x60\xD3\x52\xA8\xED\x91\xDF\xE1" | ||
4683 | "\x91\x73\x7C\x28\xA1\x14\xC3\x4C" | ||
4684 | "\x82\x72\x4B\x7D\x7D\x32\xD5\x19" | ||
4685 | "\xE8\xB8\x6B\x30\x21\x09\x0E\x27" | ||
4686 | "\x10\x9D\x2D\x3A\x6A\x4B\x7B\xE6" | ||
4687 | "\x8D\x4E\x02\x32\xFF\x7F\x8E\x13" | ||
4688 | "\xB0\x96\xF4\xC2\xA1\x60\x8A\x69" | ||
4689 | "\xEF\x0F\x86\xD0\x25\x13\x1A\x7C" | ||
4690 | "\x6E\xF0\x41\xA3\xFB\xB3\xAB\x40" | ||
4691 | "\x7D\x19\xA0\x11\x4F\x3E\x1D\x43" | ||
4692 | "\x65\xFE\x15\x40\xD0\x62\x41\x02" | ||
4693 | "\xEA\x0C\x7A\xC3\x84\xEE\xB0\xBE" | ||
4694 | "\xBE\xC8\x57\x51\xCD\x4F\xAD\x5C" | ||
4695 | "\xCC\x79\xBA\x0D\x85\x3A\xED\x6B" | ||
4696 | "\xAC\x6B\xA3\x4D\xBC\xE8\x02\x6A" | ||
4697 | "\xC2\x6D\xBD\x5E\x89\x95\x86\x43" | ||
4698 | "\x2C\x17\x4B\xC6\x40\xA2\xBD\x24" | ||
4699 | "\x04\xF0\x86\x08\x78\x18\x42\xE0" | ||
4700 | "\x39\x1B\x22\x9E\x89\x4C\x04\x6B" | ||
4701 | "\x65\xC5\xB6\x0E\xF6\x63\xFC\xD7" | ||
4702 | "\xAE\x9E\x87\x13\xCC\xD3\x1A\xEC" | ||
4703 | "\xF0\x51\xCC\x93\x68\xFC\xE9\x19" | ||
4704 | "\x7C\x4E\x9B\xCC\x17\xAD\xD2\xFC" | ||
4705 | "\x97\x18\x92\xFF\x15\x11\xCE\xED" | ||
4706 | "\x04\x41\x05\xA3\x92\xFF\x3B\xE6" | ||
4707 | "\xB6\x8C\x90\xC6\xCD\x15\xA0\x04" | ||
4708 | "\x25\x8B\x5D\x5B\x5F\xDB\xAE\x68" | ||
4709 | "\xEF\xB3\x61\x18\xDB\x83\x9B\x39" | ||
4710 | "\xCA\x82\xD1\x88\xF0\xA2\x5C\x02" | ||
4711 | "\x87\xBD\x8D\x8F\xBB\x62\xF0\x35" | ||
4712 | "\x75\x6F\x06\x81\x0A\x97\x4D\xF0" | ||
4713 | "\x43\x12\x73\x77\xDB\x91\x83\x5B" | ||
4714 | "\xE7\x3A\xA6\x07\x7B\xBF\x2C\x50" | ||
4715 | "\x94\xDE\x7B\x65\xDA\x1C\xF1\x9F" | ||
4716 | "\x7E\x12\x40\xB2\x3E\x19\x23\xF1" | ||
4717 | "\x7C\x1B\x5F\xA8\xF3\xAC\x63\x87" | ||
4718 | "\xEB\x3E\x0C\xBE\xA3\x63\x97\x88" | ||
4719 | "\x8D\x27\xC6\x2A\xF8\xF2\x67\x9A" | ||
4720 | "\x0D\x14\x16\x2B\x6F\xCB\xD4\x76" | ||
4721 | "\x14\x48\x2E\xDE\x2A\x44\x5E\x45" | ||
4722 | "\xF1\x97\x82\xEF\xB7\xAE\xED\x3A" | ||
4723 | "\xED\x73\xD3\x79\xF7\x38\x1D\xD0" | ||
4724 | "\xC5\xF8\x69\x83\x28\x84\x87\x56" | ||
4725 | "\x3F\xAE\x81\x04\x79\x1F\xD1\x09" | ||
4726 | "\xC5\xE5\x05\x0D\x64\x16\xCE\x42" | ||
4727 | "\xC5\xF8\xDB\x57\x89\x33\x22\xFC" | ||
4728 | "\xB4\xD7\x94\xB9\xF3\xCC\x02\x90" | ||
4729 | "\x02\xBA\x55\x1E\x24\x3E\x02\x1D" | ||
4730 | "\xC6\xCD\x8F\xD9\xBD\xED\xB0\x51" | ||
4731 | "\xCD\xE9\xD5\x0C\xFE\x12\x39\xA9" | ||
4732 | "\x93\x9B\xEE\xB5\x97\x41\xD2\xA0" | ||
4733 | "\xB4\x98\xD8\x6B\x74\xE7\x65\xF4", | ||
4734 | .ilen = 504, | ||
2624 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 4735 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
2625 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 4736 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2626 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4737 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2627 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4738 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2628 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 4739 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2629 | .rlen = 40, | 4740 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
4741 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
4742 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4743 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4744 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4745 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4746 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4747 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4748 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4749 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4750 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4751 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4752 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4753 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4754 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4755 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4756 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4757 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4758 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4759 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4760 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4761 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4762 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4763 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4764 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4765 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4766 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4767 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4768 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4769 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4770 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4771 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4772 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4773 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4774 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4775 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4776 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4777 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4778 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4779 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4780 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4781 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4782 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4783 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4784 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4785 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4786 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
4787 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
4788 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
4789 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
4790 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
4791 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
4792 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
4793 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
4794 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
4795 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
4796 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
4797 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
4798 | .rlen = 504, | ||
2630 | .also_non_np = 1, | 4799 | .also_non_np = 1, |
2631 | .np = 2, | 4800 | .np = 2, |
2632 | .tap = { 40 - 8, 8 }, | 4801 | .tap = { 504 - 8, 8 }, |
2633 | }, | 4802 | }, |
2634 | }; | 4803 | }; |
2635 | 4804 | ||
@@ -2645,14 +4814,130 @@ static struct cipher_testvec bf_ctr_enc_tv_template[] = { | |||
2645 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 4814 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2646 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4815 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2647 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4816 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2648 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 4817 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2649 | .ilen = 40, | 4818 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
4819 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
4820 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4821 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4822 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4823 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4824 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4825 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4826 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4827 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4828 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4829 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4830 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4831 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4832 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4833 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4834 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4835 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4836 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4837 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4838 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4839 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4840 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4841 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4842 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4843 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4844 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4845 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4846 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4847 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4848 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4849 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4850 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4851 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4852 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4853 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4854 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4855 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4856 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4857 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4858 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4859 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4860 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4861 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4862 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4863 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4864 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
4865 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
4866 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
4867 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
4868 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
4869 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
4870 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
4871 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
4872 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
4873 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
4874 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
4875 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
4876 | .ilen = 504, | ||
2650 | .result = "\xC7\xA3\xDF\xB9\x05\xF4\x9E\x8D" | 4877 | .result = "\xC7\xA3\xDF\xB9\x05\xF4\x9E\x8D" |
2651 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" | 4878 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" |
2652 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" | 4879 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" |
2653 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" | 4880 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" |
2654 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC", | 4881 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" |
2655 | .rlen = 40, | 4882 | "\x3D\xA7\xE9\x0A\x5C\x70\x4D\xDE" |
4883 | "\x99\x38\x07\xCA\x1D\x21\xC1\x11" | ||
4884 | "\x97\xEB\x98\x75\xC4\x73\x45\x83" | ||
4885 | "\x46\x1C\x9C\x91\x87\xC1\xA0\x56" | ||
4886 | "\x98\xA1\x8B\xDB\x22\x76\xBD\x62" | ||
4887 | "\xA4\xBC\xE8\x86\xDA\xD2\x51\x13" | ||
4888 | "\x13\xD2\x96\x68\x69\x10\x67\x0C" | ||
4889 | "\xD0\x17\x25\x7C\xB2\xAE\x4F\x93" | ||
4890 | "\xA6\x82\x20\xCF\x0F\xA6\x47\x79" | ||
4891 | "\x88\x09\x40\x59\xBD\x12\x64\xB5" | ||
4892 | "\x19\x38\x0D\xFF\x86\xD9\x42\x20" | ||
4893 | "\x81\x0D\x96\x99\xAF\x22\x1F\x94" | ||
4894 | "\x5C\x6E\xEC\xEA\xA3\x39\xCB\x09" | ||
4895 | "\x43\x19\x7F\xD0\xBB\x10\xC2\x49" | ||
4896 | "\xF7\xE9\xF2\xEE\xBF\xF7\xF8\xB3" | ||
4897 | "\x0E\x1A\xF1\x8D\x70\x82\x0C\x04" | ||
4898 | "\xFD\x29\x1A\xAC\xC0\x92\x48\x34" | ||
4899 | "\x6A\xE3\x1D\x4F\xFC\x1C\x72\x6A" | ||
4900 | "\x57\xCB\xAD\xD0\x98\xAB\xB1\x01" | ||
4901 | "\x03\x6A\x45\xDD\x07\x71\x5F\x5B" | ||
4902 | "\xB5\x4A\xE4\xE5\xB9\xB9\xBC\xAC" | ||
4903 | "\x44\xF7\x41\xA4\x5F\x2E\xE9\x28" | ||
4904 | "\xE3\x05\xD2\x94\x78\x4C\x33\x1B" | ||
4905 | "\xBD\xC1\x6E\x51\xD9\xAD\xD9\x86" | ||
4906 | "\x15\x4A\x78\xAE\x7B\xAD\x3B\xBC" | ||
4907 | "\x2F\xE0\x0E\xC5\x7B\x54\x97\x5F" | ||
4908 | "\x60\x51\x14\x65\xF9\x91\xE9\xDA" | ||
4909 | "\x9A\xBC\xFC\x19\x29\x67\xAA\x63" | ||
4910 | "\x5E\xF2\x48\x88\xEB\x79\xE1\xE4" | ||
4911 | "\xF7\xF6\x4C\xA9\xE2\x8C\x3B\xE0" | ||
4912 | "\xED\x52\xAE\x90\x8F\x5B\x98\x34" | ||
4913 | "\x29\x94\x34\x7F\xF9\x6C\x1E\xB6" | ||
4914 | "\xA4\xE7\x2D\x06\x54\x9D\xC3\x02" | ||
4915 | "\xC1\x90\xA4\x72\x31\x6B\x24\x51" | ||
4916 | "\x0B\xB3\x7C\x63\x15\xBA\xAF\x5D" | ||
4917 | "\x41\xE0\x37\x6D\xBE\x41\x58\xDE" | ||
4918 | "\xF2\x07\x62\x99\xBE\xC1\x8C\x0F" | ||
4919 | "\x0F\x28\xFB\x8F\x0E\x1D\x91\xE2" | ||
4920 | "\xDA\x99\x5C\x49\xBA\x9C\xA8\x86" | ||
4921 | "\x82\x63\x11\xB3\x54\x49\x00\x08" | ||
4922 | "\x07\xF2\xE8\x1F\x34\x49\x61\xF4" | ||
4923 | "\x81\xE9\xF6\xA9\x5A\x28\x60\x1F" | ||
4924 | "\x66\x99\x08\x06\xF2\xE8\x2D\xD1" | ||
4925 | "\xD0\x67\xBA\x32\x1F\x02\x86\x7B" | ||
4926 | "\xFB\x79\x3D\xC5\xB1\x7F\x15\xAF" | ||
4927 | "\xD7\xBF\x31\x46\x22\x7F\xAE\x5B" | ||
4928 | "\x8B\x95\x47\xC2\xB1\x62\xA1\xCE" | ||
4929 | "\x52\xAC\x9C\x8B\xC2\x49\x7F\xBC" | ||
4930 | "\x9C\x89\xB8\xB6\xCA\xE3\x8F\xEA" | ||
4931 | "\xAC\xB4\x5D\xE4\x50\xDC\x3A\xB5" | ||
4932 | "\x91\x04\x94\x99\x03\x3B\x42\x6D" | ||
4933 | "\x9C\x4A\x02\xF5\xB5\x38\x98\xA8" | ||
4934 | "\x5C\x97\x2E\x4D\x79\x67\x71\xAF" | ||
4935 | "\xF0\x70\x77\xFF\x2D\xDA\xA0\x9E" | ||
4936 | "\x23\x8D\xD6\xA6\x68\x10\x78\x9A" | ||
4937 | "\x64\xBB\x15\xB8\x56\xCF\xEE\xE5" | ||
4938 | "\x32\x44\x96\x1C\xD8\xEB\x95\xD2" | ||
4939 | "\xF3\x71\xEF\xEB\x4E\xBB\x4D\x29", | ||
4940 | .rlen = 504, | ||
2656 | }, { /* Generated with Crypto++ */ | 4941 | }, { /* Generated with Crypto++ */ |
2657 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 4942 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
2658 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 4943 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -2665,18 +4950,132 @@ static struct cipher_testvec bf_ctr_enc_tv_template[] = { | |||
2665 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 4950 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2666 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 4951 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2667 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 4952 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2668 | "\x6D\x04\x9B", | 4953 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
2669 | .ilen = 43, | 4954 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
4955 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
4956 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
4957 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
4958 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
4959 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
4960 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
4961 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
4962 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
4963 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
4964 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
4965 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
4966 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
4967 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
4968 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
4969 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
4970 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
4971 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
4972 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
4973 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
4974 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
4975 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
4976 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
4977 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
4978 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
4979 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
4980 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
4981 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
4982 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
4983 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
4984 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
4985 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
4986 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
4987 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
4988 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
4989 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
4990 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
4991 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
4992 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
4993 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
4994 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
4995 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
4996 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
4997 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
4998 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
4999 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
5000 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
5001 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
5002 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
5003 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
5004 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
5005 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
5006 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
5007 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
5008 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
5009 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
5010 | "\x2B\xC2\x59\xF0\x64\xFB\x92", | ||
5011 | .ilen = 503, | ||
2670 | .result = "\xC7\xA3\xDF\xB9\x05\xF4\x9E\x8D" | 5012 | .result = "\xC7\xA3\xDF\xB9\x05\xF4\x9E\x8D" |
2671 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" | 5013 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" |
2672 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" | 5014 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" |
2673 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" | 5015 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" |
2674 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" | 5016 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" |
2675 | "\x3D\xA7\xE9", | 5017 | "\x3D\xA7\xE9\x0A\x5C\x70\x4D\xDE" |
2676 | .rlen = 43, | 5018 | "\x99\x38\x07\xCA\x1D\x21\xC1\x11" |
5019 | "\x97\xEB\x98\x75\xC4\x73\x45\x83" | ||
5020 | "\x46\x1C\x9C\x91\x87\xC1\xA0\x56" | ||
5021 | "\x98\xA1\x8B\xDB\x22\x76\xBD\x62" | ||
5022 | "\xA4\xBC\xE8\x86\xDA\xD2\x51\x13" | ||
5023 | "\x13\xD2\x96\x68\x69\x10\x67\x0C" | ||
5024 | "\xD0\x17\x25\x7C\xB2\xAE\x4F\x93" | ||
5025 | "\xA6\x82\x20\xCF\x0F\xA6\x47\x79" | ||
5026 | "\x88\x09\x40\x59\xBD\x12\x64\xB5" | ||
5027 | "\x19\x38\x0D\xFF\x86\xD9\x42\x20" | ||
5028 | "\x81\x0D\x96\x99\xAF\x22\x1F\x94" | ||
5029 | "\x5C\x6E\xEC\xEA\xA3\x39\xCB\x09" | ||
5030 | "\x43\x19\x7F\xD0\xBB\x10\xC2\x49" | ||
5031 | "\xF7\xE9\xF2\xEE\xBF\xF7\xF8\xB3" | ||
5032 | "\x0E\x1A\xF1\x8D\x70\x82\x0C\x04" | ||
5033 | "\xFD\x29\x1A\xAC\xC0\x92\x48\x34" | ||
5034 | "\x6A\xE3\x1D\x4F\xFC\x1C\x72\x6A" | ||
5035 | "\x57\xCB\xAD\xD0\x98\xAB\xB1\x01" | ||
5036 | "\x03\x6A\x45\xDD\x07\x71\x5F\x5B" | ||
5037 | "\xB5\x4A\xE4\xE5\xB9\xB9\xBC\xAC" | ||
5038 | "\x44\xF7\x41\xA4\x5F\x2E\xE9\x28" | ||
5039 | "\xE3\x05\xD2\x94\x78\x4C\x33\x1B" | ||
5040 | "\xBD\xC1\x6E\x51\xD9\xAD\xD9\x86" | ||
5041 | "\x15\x4A\x78\xAE\x7B\xAD\x3B\xBC" | ||
5042 | "\x2F\xE0\x0E\xC5\x7B\x54\x97\x5F" | ||
5043 | "\x60\x51\x14\x65\xF9\x91\xE9\xDA" | ||
5044 | "\x9A\xBC\xFC\x19\x29\x67\xAA\x63" | ||
5045 | "\x5E\xF2\x48\x88\xEB\x79\xE1\xE4" | ||
5046 | "\xF7\xF6\x4C\xA9\xE2\x8C\x3B\xE0" | ||
5047 | "\xED\x52\xAE\x90\x8F\x5B\x98\x34" | ||
5048 | "\x29\x94\x34\x7F\xF9\x6C\x1E\xB6" | ||
5049 | "\xA4\xE7\x2D\x06\x54\x9D\xC3\x02" | ||
5050 | "\xC1\x90\xA4\x72\x31\x6B\x24\x51" | ||
5051 | "\x0B\xB3\x7C\x63\x15\xBA\xAF\x5D" | ||
5052 | "\x41\xE0\x37\x6D\xBE\x41\x58\xDE" | ||
5053 | "\xF2\x07\x62\x99\xBE\xC1\x8C\x0F" | ||
5054 | "\x0F\x28\xFB\x8F\x0E\x1D\x91\xE2" | ||
5055 | "\xDA\x99\x5C\x49\xBA\x9C\xA8\x86" | ||
5056 | "\x82\x63\x11\xB3\x54\x49\x00\x08" | ||
5057 | "\x07\xF2\xE8\x1F\x34\x49\x61\xF4" | ||
5058 | "\x81\xE9\xF6\xA9\x5A\x28\x60\x1F" | ||
5059 | "\x66\x99\x08\x06\xF2\xE8\x2D\xD1" | ||
5060 | "\xD0\x67\xBA\x32\x1F\x02\x86\x7B" | ||
5061 | "\xFB\x79\x3D\xC5\xB1\x7F\x15\xAF" | ||
5062 | "\xD7\xBF\x31\x46\x22\x7F\xAE\x5B" | ||
5063 | "\x8B\x95\x47\xC2\xB1\x62\xA1\xCE" | ||
5064 | "\x52\xAC\x9C\x8B\xC2\x49\x7F\xBC" | ||
5065 | "\x9C\x89\xB8\xB6\xCA\xE3\x8F\xEA" | ||
5066 | "\xAC\xB4\x5D\xE4\x50\xDC\x3A\xB5" | ||
5067 | "\x91\x04\x94\x99\x03\x3B\x42\x6D" | ||
5068 | "\x9C\x4A\x02\xF5\xB5\x38\x98\xA8" | ||
5069 | "\x5C\x97\x2E\x4D\x79\x67\x71\xAF" | ||
5070 | "\xF0\x70\x77\xFF\x2D\xDA\xA0\x9E" | ||
5071 | "\x23\x8D\xD6\xA6\x68\x10\x78\x9A" | ||
5072 | "\x64\xBB\x15\xB8\x56\xCF\xEE\xE5" | ||
5073 | "\x32\x44\x96\x1C\xD8\xEB\x95\xD2" | ||
5074 | "\xF3\x71\xEF\xEB\x4E\xBB\x4D", | ||
5075 | .rlen = 503, | ||
2677 | .also_non_np = 1, | 5076 | .also_non_np = 1, |
2678 | .np = 2, | 5077 | .np = 2, |
2679 | .tap = { 43 - 8, 8 }, | 5078 | .tap = { 503 - 8, 8 }, |
2680 | }, { /* Generated with Crypto++ */ | 5079 | }, { /* Generated with Crypto++ */ |
2681 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 5080 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
2682 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 5081 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -2827,14 +5226,130 @@ static struct cipher_testvec bf_ctr_dec_tv_template[] = { | |||
2827 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" | 5226 | "\x9E\xDF\x38\x18\x83\x07\xEF\xC1" |
2828 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" | 5227 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" |
2829 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" | 5228 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" |
2830 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC", | 5229 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" |
2831 | .ilen = 40, | 5230 | "\x3D\xA7\xE9\x0A\x5C\x70\x4D\xDE" |
5231 | "\x99\x38\x07\xCA\x1D\x21\xC1\x11" | ||
5232 | "\x97\xEB\x98\x75\xC4\x73\x45\x83" | ||
5233 | "\x46\x1C\x9C\x91\x87\xC1\xA0\x56" | ||
5234 | "\x98\xA1\x8B\xDB\x22\x76\xBD\x62" | ||
5235 | "\xA4\xBC\xE8\x86\xDA\xD2\x51\x13" | ||
5236 | "\x13\xD2\x96\x68\x69\x10\x67\x0C" | ||
5237 | "\xD0\x17\x25\x7C\xB2\xAE\x4F\x93" | ||
5238 | "\xA6\x82\x20\xCF\x0F\xA6\x47\x79" | ||
5239 | "\x88\x09\x40\x59\xBD\x12\x64\xB5" | ||
5240 | "\x19\x38\x0D\xFF\x86\xD9\x42\x20" | ||
5241 | "\x81\x0D\x96\x99\xAF\x22\x1F\x94" | ||
5242 | "\x5C\x6E\xEC\xEA\xA3\x39\xCB\x09" | ||
5243 | "\x43\x19\x7F\xD0\xBB\x10\xC2\x49" | ||
5244 | "\xF7\xE9\xF2\xEE\xBF\xF7\xF8\xB3" | ||
5245 | "\x0E\x1A\xF1\x8D\x70\x82\x0C\x04" | ||
5246 | "\xFD\x29\x1A\xAC\xC0\x92\x48\x34" | ||
5247 | "\x6A\xE3\x1D\x4F\xFC\x1C\x72\x6A" | ||
5248 | "\x57\xCB\xAD\xD0\x98\xAB\xB1\x01" | ||
5249 | "\x03\x6A\x45\xDD\x07\x71\x5F\x5B" | ||
5250 | "\xB5\x4A\xE4\xE5\xB9\xB9\xBC\xAC" | ||
5251 | "\x44\xF7\x41\xA4\x5F\x2E\xE9\x28" | ||
5252 | "\xE3\x05\xD2\x94\x78\x4C\x33\x1B" | ||
5253 | "\xBD\xC1\x6E\x51\xD9\xAD\xD9\x86" | ||
5254 | "\x15\x4A\x78\xAE\x7B\xAD\x3B\xBC" | ||
5255 | "\x2F\xE0\x0E\xC5\x7B\x54\x97\x5F" | ||
5256 | "\x60\x51\x14\x65\xF9\x91\xE9\xDA" | ||
5257 | "\x9A\xBC\xFC\x19\x29\x67\xAA\x63" | ||
5258 | "\x5E\xF2\x48\x88\xEB\x79\xE1\xE4" | ||
5259 | "\xF7\xF6\x4C\xA9\xE2\x8C\x3B\xE0" | ||
5260 | "\xED\x52\xAE\x90\x8F\x5B\x98\x34" | ||
5261 | "\x29\x94\x34\x7F\xF9\x6C\x1E\xB6" | ||
5262 | "\xA4\xE7\x2D\x06\x54\x9D\xC3\x02" | ||
5263 | "\xC1\x90\xA4\x72\x31\x6B\x24\x51" | ||
5264 | "\x0B\xB3\x7C\x63\x15\xBA\xAF\x5D" | ||
5265 | "\x41\xE0\x37\x6D\xBE\x41\x58\xDE" | ||
5266 | "\xF2\x07\x62\x99\xBE\xC1\x8C\x0F" | ||
5267 | "\x0F\x28\xFB\x8F\x0E\x1D\x91\xE2" | ||
5268 | "\xDA\x99\x5C\x49\xBA\x9C\xA8\x86" | ||
5269 | "\x82\x63\x11\xB3\x54\x49\x00\x08" | ||
5270 | "\x07\xF2\xE8\x1F\x34\x49\x61\xF4" | ||
5271 | "\x81\xE9\xF6\xA9\x5A\x28\x60\x1F" | ||
5272 | "\x66\x99\x08\x06\xF2\xE8\x2D\xD1" | ||
5273 | "\xD0\x67\xBA\x32\x1F\x02\x86\x7B" | ||
5274 | "\xFB\x79\x3D\xC5\xB1\x7F\x15\xAF" | ||
5275 | "\xD7\xBF\x31\x46\x22\x7F\xAE\x5B" | ||
5276 | "\x8B\x95\x47\xC2\xB1\x62\xA1\xCE" | ||
5277 | "\x52\xAC\x9C\x8B\xC2\x49\x7F\xBC" | ||
5278 | "\x9C\x89\xB8\xB6\xCA\xE3\x8F\xEA" | ||
5279 | "\xAC\xB4\x5D\xE4\x50\xDC\x3A\xB5" | ||
5280 | "\x91\x04\x94\x99\x03\x3B\x42\x6D" | ||
5281 | "\x9C\x4A\x02\xF5\xB5\x38\x98\xA8" | ||
5282 | "\x5C\x97\x2E\x4D\x79\x67\x71\xAF" | ||
5283 | "\xF0\x70\x77\xFF\x2D\xDA\xA0\x9E" | ||
5284 | "\x23\x8D\xD6\xA6\x68\x10\x78\x9A" | ||
5285 | "\x64\xBB\x15\xB8\x56\xCF\xEE\xE5" | ||
5286 | "\x32\x44\x96\x1C\xD8\xEB\x95\xD2" | ||
5287 | "\xF3\x71\xEF\xEB\x4E\xBB\x4D\x29", | ||
5288 | .ilen = 504, | ||
2832 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 5289 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
2833 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 5290 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2834 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 5291 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2835 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 5292 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2836 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9", | 5293 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2837 | .rlen = 40, | 5294 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
5295 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" | ||
5296 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
5297 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
5298 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
5299 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
5300 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
5301 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
5302 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
5303 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
5304 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
5305 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
5306 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
5307 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
5308 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
5309 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
5310 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
5311 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
5312 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
5313 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
5314 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
5315 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
5316 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
5317 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
5318 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
5319 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
5320 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
5321 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
5322 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
5323 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
5324 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
5325 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
5326 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
5327 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
5328 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
5329 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
5330 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
5331 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
5332 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
5333 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
5334 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
5335 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
5336 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
5337 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
5338 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
5339 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
5340 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
5341 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
5342 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
5343 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
5344 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
5345 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
5346 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
5347 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
5348 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
5349 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
5350 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
5351 | "\x2B\xC2\x59\xF0\x64\xFB\x92\x06", | ||
5352 | .rlen = 504, | ||
2838 | }, { /* Generated with Crypto++ */ | 5353 | }, { /* Generated with Crypto++ */ |
2839 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 5354 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
2840 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 5355 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -2847,18 +5362,132 @@ static struct cipher_testvec bf_ctr_dec_tv_template[] = { | |||
2847 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" | 5362 | "\x93\x3C\xAA\xAA\xFE\x06\x42\xCC" |
2848 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" | 5363 | "\x0D\x70\x86\x5A\x44\xAD\x85\x17" |
2849 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" | 5364 | "\xE4\x1F\x5E\xA5\x89\xAC\x32\xBC" |
2850 | "\x3D\xA7\xE9", | 5365 | "\x3D\xA7\xE9\x0A\x5C\x70\x4D\xDE" |
2851 | .ilen = 43, | 5366 | "\x99\x38\x07\xCA\x1D\x21\xC1\x11" |
5367 | "\x97\xEB\x98\x75\xC4\x73\x45\x83" | ||
5368 | "\x46\x1C\x9C\x91\x87\xC1\xA0\x56" | ||
5369 | "\x98\xA1\x8B\xDB\x22\x76\xBD\x62" | ||
5370 | "\xA4\xBC\xE8\x86\xDA\xD2\x51\x13" | ||
5371 | "\x13\xD2\x96\x68\x69\x10\x67\x0C" | ||
5372 | "\xD0\x17\x25\x7C\xB2\xAE\x4F\x93" | ||
5373 | "\xA6\x82\x20\xCF\x0F\xA6\x47\x79" | ||
5374 | "\x88\x09\x40\x59\xBD\x12\x64\xB5" | ||
5375 | "\x19\x38\x0D\xFF\x86\xD9\x42\x20" | ||
5376 | "\x81\x0D\x96\x99\xAF\x22\x1F\x94" | ||
5377 | "\x5C\x6E\xEC\xEA\xA3\x39\xCB\x09" | ||
5378 | "\x43\x19\x7F\xD0\xBB\x10\xC2\x49" | ||
5379 | "\xF7\xE9\xF2\xEE\xBF\xF7\xF8\xB3" | ||
5380 | "\x0E\x1A\xF1\x8D\x70\x82\x0C\x04" | ||
5381 | "\xFD\x29\x1A\xAC\xC0\x92\x48\x34" | ||
5382 | "\x6A\xE3\x1D\x4F\xFC\x1C\x72\x6A" | ||
5383 | "\x57\xCB\xAD\xD0\x98\xAB\xB1\x01" | ||
5384 | "\x03\x6A\x45\xDD\x07\x71\x5F\x5B" | ||
5385 | "\xB5\x4A\xE4\xE5\xB9\xB9\xBC\xAC" | ||
5386 | "\x44\xF7\x41\xA4\x5F\x2E\xE9\x28" | ||
5387 | "\xE3\x05\xD2\x94\x78\x4C\x33\x1B" | ||
5388 | "\xBD\xC1\x6E\x51\xD9\xAD\xD9\x86" | ||
5389 | "\x15\x4A\x78\xAE\x7B\xAD\x3B\xBC" | ||
5390 | "\x2F\xE0\x0E\xC5\x7B\x54\x97\x5F" | ||
5391 | "\x60\x51\x14\x65\xF9\x91\xE9\xDA" | ||
5392 | "\x9A\xBC\xFC\x19\x29\x67\xAA\x63" | ||
5393 | "\x5E\xF2\x48\x88\xEB\x79\xE1\xE4" | ||
5394 | "\xF7\xF6\x4C\xA9\xE2\x8C\x3B\xE0" | ||
5395 | "\xED\x52\xAE\x90\x8F\x5B\x98\x34" | ||
5396 | "\x29\x94\x34\x7F\xF9\x6C\x1E\xB6" | ||
5397 | "\xA4\xE7\x2D\x06\x54\x9D\xC3\x02" | ||
5398 | "\xC1\x90\xA4\x72\x31\x6B\x24\x51" | ||
5399 | "\x0B\xB3\x7C\x63\x15\xBA\xAF\x5D" | ||
5400 | "\x41\xE0\x37\x6D\xBE\x41\x58\xDE" | ||
5401 | "\xF2\x07\x62\x99\xBE\xC1\x8C\x0F" | ||
5402 | "\x0F\x28\xFB\x8F\x0E\x1D\x91\xE2" | ||
5403 | "\xDA\x99\x5C\x49\xBA\x9C\xA8\x86" | ||
5404 | "\x82\x63\x11\xB3\x54\x49\x00\x08" | ||
5405 | "\x07\xF2\xE8\x1F\x34\x49\x61\xF4" | ||
5406 | "\x81\xE9\xF6\xA9\x5A\x28\x60\x1F" | ||
5407 | "\x66\x99\x08\x06\xF2\xE8\x2D\xD1" | ||
5408 | "\xD0\x67\xBA\x32\x1F\x02\x86\x7B" | ||
5409 | "\xFB\x79\x3D\xC5\xB1\x7F\x15\xAF" | ||
5410 | "\xD7\xBF\x31\x46\x22\x7F\xAE\x5B" | ||
5411 | "\x8B\x95\x47\xC2\xB1\x62\xA1\xCE" | ||
5412 | "\x52\xAC\x9C\x8B\xC2\x49\x7F\xBC" | ||
5413 | "\x9C\x89\xB8\xB6\xCA\xE3\x8F\xEA" | ||
5414 | "\xAC\xB4\x5D\xE4\x50\xDC\x3A\xB5" | ||
5415 | "\x91\x04\x94\x99\x03\x3B\x42\x6D" | ||
5416 | "\x9C\x4A\x02\xF5\xB5\x38\x98\xA8" | ||
5417 | "\x5C\x97\x2E\x4D\x79\x67\x71\xAF" | ||
5418 | "\xF0\x70\x77\xFF\x2D\xDA\xA0\x9E" | ||
5419 | "\x23\x8D\xD6\xA6\x68\x10\x78\x9A" | ||
5420 | "\x64\xBB\x15\xB8\x56\xCF\xEE\xE5" | ||
5421 | "\x32\x44\x96\x1C\xD8\xEB\x95\xD2" | ||
5422 | "\xF3\x71\xEF\xEB\x4E\xBB\x4D", | ||
5423 | .ilen = 503, | ||
2852 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 5424 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
2853 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 5425 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
2854 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 5426 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
2855 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 5427 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
2856 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 5428 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
2857 | "\x6D\x04\x9B", | 5429 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
2858 | .rlen = 43, | 5430 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
5431 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
5432 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
5433 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
5434 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
5435 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
5436 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
5437 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
5438 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
5439 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
5440 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
5441 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
5442 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
5443 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
5444 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
5445 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
5446 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
5447 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
5448 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
5449 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
5450 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
5451 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
5452 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
5453 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
5454 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
5455 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
5456 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
5457 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
5458 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
5459 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
5460 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
5461 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
5462 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
5463 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
5464 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
5465 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
5466 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
5467 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
5468 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
5469 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
5470 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
5471 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
5472 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
5473 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
5474 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
5475 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
5476 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
5477 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
5478 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
5479 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
5480 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
5481 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
5482 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
5483 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
5484 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
5485 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
5486 | "\x2B\xC2\x59\xF0\x64\xFB\x92", | ||
5487 | .rlen = 503, | ||
2859 | .also_non_np = 1, | 5488 | .also_non_np = 1, |
2860 | .np = 2, | 5489 | .np = 2, |
2861 | .tap = { 43 - 8, 8 }, | 5490 | .tap = { 503 - 8, 8 }, |
2862 | }, { /* Generated with Crypto++ */ | 5491 | }, { /* Generated with Crypto++ */ |
2863 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 5492 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
2864 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 5493 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -5808,8 +8437,52 @@ static struct cipher_testvec serpent_enc_tv_template[] = { | |||
5808 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 8437 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
5809 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 8438 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
5810 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 8439 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
5811 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 8440 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
5812 | .ilen = 144, | 8441 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
8442 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
8443 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
8444 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
8445 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
8446 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
8447 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
8448 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
8449 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
8450 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
8451 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
8452 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
8453 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
8454 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
8455 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
8456 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
8457 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
8458 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
8459 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
8460 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
8461 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
8462 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
8463 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
8464 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
8465 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
8466 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
8467 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
8468 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
8469 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
8470 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
8471 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
8472 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
8473 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
8474 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
8475 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
8476 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
8477 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
8478 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
8479 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
8480 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
8481 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
8482 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
8483 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
8484 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
8485 | .ilen = 496, | ||
5813 | .result = "\xFB\xB0\x5D\xDE\xC0\xFE\xFC\xEB" | 8486 | .result = "\xFB\xB0\x5D\xDE\xC0\xFE\xFC\xEB" |
5814 | "\xB1\x80\x10\x43\xDE\x62\x70\xBD" | 8487 | "\xB1\x80\x10\x43\xDE\x62\x70\xBD" |
5815 | "\xFA\x8A\x93\xEA\x6B\xF7\xC5\xD7" | 8488 | "\xFA\x8A\x93\xEA\x6B\xF7\xC5\xD7" |
@@ -5827,11 +8500,55 @@ static struct cipher_testvec serpent_enc_tv_template[] = { | |||
5827 | "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD" | 8500 | "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD" |
5828 | "\x69\xDA\x7A\x01\xF5\x6A\x70\x39" | 8501 | "\x69\xDA\x7A\x01\xF5\x6A\x70\x39" |
5829 | "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39" | 8502 | "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39" |
5830 | "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6", | 8503 | "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6" |
5831 | .rlen = 144, | 8504 | "\xB6\x31\x36\x34\x38\x3C\x1D\x69" |
8505 | "\x9F\x47\x28\x9A\x1D\x96\x70\x54" | ||
8506 | "\x8E\x88\xCB\xE0\xF5\x6A\xAE\x0A" | ||
8507 | "\x3C\xD5\x93\x1C\x21\xC9\x14\x3A" | ||
8508 | "\x23\x9C\x9B\x79\xC7\x75\xC8\x39" | ||
8509 | "\xA6\xAC\x65\x9A\x99\x37\xAF\x6D" | ||
8510 | "\xBD\xB5\x32\xFD\xD8\x9C\x95\x7B" | ||
8511 | "\xC6\x6A\x80\x64\xEA\xEF\x6D\x3F" | ||
8512 | "\xA9\xFE\x5B\x16\xA3\xCF\x32\xC8" | ||
8513 | "\xEF\x50\x22\x20\x93\x30\xBE\xE2" | ||
8514 | "\x38\x05\x65\xAF\xBA\xB6\xE4\x72" | ||
8515 | "\xA9\xEE\x05\x42\x88\xBD\x9D\x49" | ||
8516 | "\xAD\x93\xCA\x4D\x45\x11\x43\x4D" | ||
8517 | "\xB8\xF5\x74\x2B\x48\xE7\x21\xE4" | ||
8518 | "\x4E\x3A\x4C\xDE\x65\x7A\x5A\xAD" | ||
8519 | "\x86\xE6\x23\xEC\x6B\xA7\x17\xE6" | ||
8520 | "\xF6\xA1\xAC\x29\xAE\xF9\x9B\x69" | ||
8521 | "\x73\x65\x65\x51\xD6\x0B\x4E\x8C" | ||
8522 | "\x17\x15\x9D\xB0\xCF\xB2\x42\x2B" | ||
8523 | "\x51\xC3\x03\xE8\xB7\x7D\x2D\x39" | ||
8524 | "\xE8\x10\x93\x16\xC8\x68\x4C\x60" | ||
8525 | "\x87\x70\x14\xD0\x01\x57\xCB\x42" | ||
8526 | "\x13\x59\xB1\x7F\x12\x4F\xBB\xC7" | ||
8527 | "\xBD\x2B\xD4\xA9\x12\x26\x4F\xDE" | ||
8528 | "\xFD\x72\xEC\xD7\x6F\x97\x14\x90" | ||
8529 | "\x0E\x37\x13\xE6\x67\x1D\xE5\xFE" | ||
8530 | "\x9E\x18\x3C\x8F\x3A\x3F\x59\x9B" | ||
8531 | "\x71\x80\x05\x35\x3F\x40\x0B\x21" | ||
8532 | "\x76\xE5\xEF\x42\x6C\xDB\x31\x05" | ||
8533 | "\x5F\x05\xCF\x14\xE3\xF0\x61\xA2" | ||
8534 | "\x49\x03\x5E\x77\x2E\x20\xBA\xA1" | ||
8535 | "\xAF\x46\x51\xC0\x2B\xC4\x64\x1E" | ||
8536 | "\x65\xCC\x51\x58\x0A\xDF\xF0\x5F" | ||
8537 | "\x75\x9F\x48\xCD\x81\xEC\xC3\xF6" | ||
8538 | "\xED\xC9\x4B\x7B\x4E\x26\x23\xE1" | ||
8539 | "\xBB\xE9\x83\x0B\xCF\xE4\xDE\x00" | ||
8540 | "\x48\xFF\xBF\x6C\xB4\x72\x16\xEF" | ||
8541 | "\xC7\x46\xEE\x48\x8C\xB8\xAF\x45" | ||
8542 | "\x91\x76\xE7\x6E\x65\x3D\x15\x86" | ||
8543 | "\x10\xF8\xDB\x66\x97\x7C\x43\x4D" | ||
8544 | "\x79\x12\x4E\xCE\x06\xD1\xD1\x6A" | ||
8545 | "\x34\xC1\xC9\xF2\x28\x4A\xCD\x02" | ||
8546 | "\x75\x55\x9B\xFF\x36\x73\xAB\x7C" | ||
8547 | "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7", | ||
8548 | .rlen = 496, | ||
5832 | .also_non_np = 1, | 8549 | .also_non_np = 1, |
5833 | .np = 2, | 8550 | .np = 2, |
5834 | .tap = { 144 - 16, 16 }, | 8551 | .tap = { 496 - 16, 16 }, |
5835 | }, | 8552 | }, |
5836 | }; | 8553 | }; |
5837 | 8554 | ||
@@ -5946,8 +8663,52 @@ static struct cipher_testvec serpent_dec_tv_template[] = { | |||
5946 | "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD" | 8663 | "\x9D\x74\x2B\x77\x53\x2D\xE5\xBD" |
5947 | "\x69\xDA\x7A\x01\xF5\x6A\x70\x39" | 8664 | "\x69\xDA\x7A\x01\xF5\x6A\x70\x39" |
5948 | "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39" | 8665 | "\x30\xD4\x2C\xF2\x8E\x06\x4B\x39" |
5949 | "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6", | 8666 | "\xB3\x12\x1D\xB3\x17\x46\xE6\xD6" |
5950 | .ilen = 144, | 8667 | "\xB6\x31\x36\x34\x38\x3C\x1D\x69" |
8668 | "\x9F\x47\x28\x9A\x1D\x96\x70\x54" | ||
8669 | "\x8E\x88\xCB\xE0\xF5\x6A\xAE\x0A" | ||
8670 | "\x3C\xD5\x93\x1C\x21\xC9\x14\x3A" | ||
8671 | "\x23\x9C\x9B\x79\xC7\x75\xC8\x39" | ||
8672 | "\xA6\xAC\x65\x9A\x99\x37\xAF\x6D" | ||
8673 | "\xBD\xB5\x32\xFD\xD8\x9C\x95\x7B" | ||
8674 | "\xC6\x6A\x80\x64\xEA\xEF\x6D\x3F" | ||
8675 | "\xA9\xFE\x5B\x16\xA3\xCF\x32\xC8" | ||
8676 | "\xEF\x50\x22\x20\x93\x30\xBE\xE2" | ||
8677 | "\x38\x05\x65\xAF\xBA\xB6\xE4\x72" | ||
8678 | "\xA9\xEE\x05\x42\x88\xBD\x9D\x49" | ||
8679 | "\xAD\x93\xCA\x4D\x45\x11\x43\x4D" | ||
8680 | "\xB8\xF5\x74\x2B\x48\xE7\x21\xE4" | ||
8681 | "\x4E\x3A\x4C\xDE\x65\x7A\x5A\xAD" | ||
8682 | "\x86\xE6\x23\xEC\x6B\xA7\x17\xE6" | ||
8683 | "\xF6\xA1\xAC\x29\xAE\xF9\x9B\x69" | ||
8684 | "\x73\x65\x65\x51\xD6\x0B\x4E\x8C" | ||
8685 | "\x17\x15\x9D\xB0\xCF\xB2\x42\x2B" | ||
8686 | "\x51\xC3\x03\xE8\xB7\x7D\x2D\x39" | ||
8687 | "\xE8\x10\x93\x16\xC8\x68\x4C\x60" | ||
8688 | "\x87\x70\x14\xD0\x01\x57\xCB\x42" | ||
8689 | "\x13\x59\xB1\x7F\x12\x4F\xBB\xC7" | ||
8690 | "\xBD\x2B\xD4\xA9\x12\x26\x4F\xDE" | ||
8691 | "\xFD\x72\xEC\xD7\x6F\x97\x14\x90" | ||
8692 | "\x0E\x37\x13\xE6\x67\x1D\xE5\xFE" | ||
8693 | "\x9E\x18\x3C\x8F\x3A\x3F\x59\x9B" | ||
8694 | "\x71\x80\x05\x35\x3F\x40\x0B\x21" | ||
8695 | "\x76\xE5\xEF\x42\x6C\xDB\x31\x05" | ||
8696 | "\x5F\x05\xCF\x14\xE3\xF0\x61\xA2" | ||
8697 | "\x49\x03\x5E\x77\x2E\x20\xBA\xA1" | ||
8698 | "\xAF\x46\x51\xC0\x2B\xC4\x64\x1E" | ||
8699 | "\x65\xCC\x51\x58\x0A\xDF\xF0\x5F" | ||
8700 | "\x75\x9F\x48\xCD\x81\xEC\xC3\xF6" | ||
8701 | "\xED\xC9\x4B\x7B\x4E\x26\x23\xE1" | ||
8702 | "\xBB\xE9\x83\x0B\xCF\xE4\xDE\x00" | ||
8703 | "\x48\xFF\xBF\x6C\xB4\x72\x16\xEF" | ||
8704 | "\xC7\x46\xEE\x48\x8C\xB8\xAF\x45" | ||
8705 | "\x91\x76\xE7\x6E\x65\x3D\x15\x86" | ||
8706 | "\x10\xF8\xDB\x66\x97\x7C\x43\x4D" | ||
8707 | "\x79\x12\x4E\xCE\x06\xD1\xD1\x6A" | ||
8708 | "\x34\xC1\xC9\xF2\x28\x4A\xCD\x02" | ||
8709 | "\x75\x55\x9B\xFF\x36\x73\xAB\x7C" | ||
8710 | "\xF4\x46\x2E\xEB\xAC\xF3\xD2\xB7", | ||
8711 | .ilen = 496, | ||
5951 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 8712 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
5952 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 8713 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
5953 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 8714 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -5965,11 +8726,55 @@ static struct cipher_testvec serpent_dec_tv_template[] = { | |||
5965 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 8726 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
5966 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 8727 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
5967 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 8728 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
5968 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 8729 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
5969 | .rlen = 144, | 8730 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
8731 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
8732 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
8733 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
8734 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
8735 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
8736 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
8737 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
8738 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
8739 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
8740 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
8741 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
8742 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
8743 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
8744 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
8745 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
8746 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
8747 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
8748 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
8749 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
8750 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
8751 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
8752 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
8753 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
8754 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
8755 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
8756 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
8757 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
8758 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
8759 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
8760 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
8761 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
8762 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
8763 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
8764 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
8765 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
8766 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
8767 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
8768 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
8769 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
8770 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
8771 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
8772 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
8773 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
8774 | .rlen = 496, | ||
5970 | .also_non_np = 1, | 8775 | .also_non_np = 1, |
5971 | .np = 2, | 8776 | .np = 2, |
5972 | .tap = { 144 - 16, 16 }, | 8777 | .tap = { 496 - 16, 16 }, |
5973 | }, | 8778 | }, |
5974 | }; | 8779 | }; |
5975 | 8780 | ||
@@ -6040,8 +8845,52 @@ static struct cipher_testvec serpent_cbc_enc_tv_template[] = { | |||
6040 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 8845 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
6041 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 8846 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6042 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 8847 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6043 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 8848 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6044 | .ilen = 144, | 8849 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
8850 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
8851 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
8852 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
8853 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
8854 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
8855 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
8856 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
8857 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
8858 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
8859 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
8860 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
8861 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
8862 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
8863 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
8864 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
8865 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
8866 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
8867 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
8868 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
8869 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
8870 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
8871 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
8872 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
8873 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
8874 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
8875 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
8876 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
8877 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
8878 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
8879 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
8880 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
8881 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
8882 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
8883 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
8884 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
8885 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
8886 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
8887 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
8888 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
8889 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
8890 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
8891 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
8892 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
8893 | .ilen = 496, | ||
6045 | .result = "\x80\xCF\x11\x41\x1A\xB9\x4B\x9C" | 8894 | .result = "\x80\xCF\x11\x41\x1A\xB9\x4B\x9C" |
6046 | "\xFF\xB7\x6C\xEA\xF0\xAF\x77\x6E" | 8895 | "\xFF\xB7\x6C\xEA\xF0\xAF\x77\x6E" |
6047 | "\x71\x75\x95\x9D\x4E\x1C\xCF\xAD" | 8896 | "\x71\x75\x95\x9D\x4E\x1C\xCF\xAD" |
@@ -6059,11 +8908,55 @@ static struct cipher_testvec serpent_cbc_enc_tv_template[] = { | |||
6059 | "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2" | 8908 | "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2" |
6060 | "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB" | 8909 | "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB" |
6061 | "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A" | 8910 | "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A" |
6062 | "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C", | 8911 | "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C" |
6063 | .rlen = 144, | 8912 | "\x2D\x12\xA5\x05\x92\xCB\xD7\x4A" |
8913 | "\x4D\x1E\x88\x21\xE1\x63\xB4\xFC" | ||
8914 | "\x4A\xF2\xCD\x35\xB9\xD7\x70\x97" | ||
8915 | "\x5A\x5E\x7E\x96\x52\x20\xDC\x25" | ||
8916 | "\xE9\x6B\x36\xB4\xE0\x98\x85\x2C" | ||
8917 | "\x3C\xD2\xF7\x78\x8A\x73\x26\x9B" | ||
8918 | "\xAF\x0B\x11\xE8\x4D\x67\x23\xE9" | ||
8919 | "\x77\xDF\x58\xF6\x6F\x9E\xA4\xC5" | ||
8920 | "\x10\xA1\x82\x0E\x80\xA0\x8F\x4B" | ||
8921 | "\xA1\xC0\x12\x54\x4E\xC9\x20\x92" | ||
8922 | "\x11\x00\x10\x4E\xB3\x7C\xCA\x63" | ||
8923 | "\xE5\x3F\xD3\x41\x37\xCD\x74\xB7" | ||
8924 | "\xA5\x7C\x61\xB8\x0B\x7A\x7F\x4D" | ||
8925 | "\xFE\x96\x7D\x1B\xBE\x60\x37\xB7" | ||
8926 | "\x81\x92\x66\x67\x15\x1E\x39\x98" | ||
8927 | "\x52\xC0\xF4\x69\xC0\x99\x4F\x5A" | ||
8928 | "\x2E\x32\xAD\x7C\x8B\xE9\xAD\x05" | ||
8929 | "\x55\xF9\x0A\x1F\x97\x5C\xFA\x2B" | ||
8930 | "\xF4\x99\x76\x3A\x6E\x4D\xE1\x4C" | ||
8931 | "\x14\x4E\x6F\x87\xEE\x1A\x85\xA3" | ||
8932 | "\x96\xC6\x66\x49\xDA\x0D\x71\xAC" | ||
8933 | "\x04\x05\x46\xD3\x90\x0F\x64\x64" | ||
8934 | "\x01\x66\x2C\x62\x5D\x34\xD1\xCB" | ||
8935 | "\x3A\x24\xCE\x95\xEF\xAE\x2C\x97" | ||
8936 | "\x0E\x0C\x1D\x36\x49\xEB\xE9\x3D" | ||
8937 | "\x62\xA6\x19\x28\x9E\x26\xB4\x3F" | ||
8938 | "\xD7\x55\x42\x3C\xCD\x72\x0A\xF0" | ||
8939 | "\x7D\xE9\x95\x45\x86\xED\xB1\xE0" | ||
8940 | "\x8D\xE9\xC5\x86\x13\x24\x28\x7D" | ||
8941 | "\x74\xEF\xCA\x50\x12\x7E\x64\x8F" | ||
8942 | "\x1B\xF5\x5B\xFE\xE2\xAC\xFA\xE7" | ||
8943 | "\xBD\x38\x8C\x11\x20\xEF\xB1\xAA" | ||
8944 | "\x7B\xE5\xE5\x78\xAD\x9D\x2D\xA2" | ||
8945 | "\x8E\xDD\x48\xB3\xEF\x18\x92\x7E" | ||
8946 | "\xE6\x75\x0D\x54\x64\x11\xA3\x3A" | ||
8947 | "\xDB\x97\x0F\xD3\xDF\x07\xD3\x7E" | ||
8948 | "\x1E\xD1\x87\xE4\x74\xBB\x46\xF4" | ||
8949 | "\xBA\x23\x2D\x8D\x29\x07\x12\xCF" | ||
8950 | "\x34\xCD\x72\x7F\x01\x30\xE7\xA0" | ||
8951 | "\xF8\xDD\xA8\x08\xF0\xBC\xB1\xA2" | ||
8952 | "\xCC\xE1\x6B\x5F\xBE\xEA\xF1\xE4" | ||
8953 | "\x02\xC4\xAF\xFA\xAD\x31\xF4\xBF" | ||
8954 | "\xFC\x66\xAA\x37\xF2\x37\x39\x6B" | ||
8955 | "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1", | ||
8956 | .rlen = 496, | ||
6064 | .also_non_np = 1, | 8957 | .also_non_np = 1, |
6065 | .np = 2, | 8958 | .np = 2, |
6066 | .tap = { 144 - 16, 16 }, | 8959 | .tap = { 496 - 16, 16 }, |
6067 | }, | 8960 | }, |
6068 | }; | 8961 | }; |
6069 | 8962 | ||
@@ -6093,8 +8986,52 @@ static struct cipher_testvec serpent_cbc_dec_tv_template[] = { | |||
6093 | "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2" | 8986 | "\x15\x26\xE1\xDB\xA4\x3D\x74\xD2" |
6094 | "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB" | 8987 | "\x41\x1E\x3F\xA9\xC6\x7D\x2A\xAB" |
6095 | "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A" | 8988 | "\x27\xDF\x89\x1D\x86\x3E\xF7\x5A" |
6096 | "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C", | 8989 | "\xF6\xE3\x0F\xC7\x6B\x4C\x96\x7C" |
6097 | .ilen = 144, | 8990 | "\x2D\x12\xA5\x05\x92\xCB\xD7\x4A" |
8991 | "\x4D\x1E\x88\x21\xE1\x63\xB4\xFC" | ||
8992 | "\x4A\xF2\xCD\x35\xB9\xD7\x70\x97" | ||
8993 | "\x5A\x5E\x7E\x96\x52\x20\xDC\x25" | ||
8994 | "\xE9\x6B\x36\xB4\xE0\x98\x85\x2C" | ||
8995 | "\x3C\xD2\xF7\x78\x8A\x73\x26\x9B" | ||
8996 | "\xAF\x0B\x11\xE8\x4D\x67\x23\xE9" | ||
8997 | "\x77\xDF\x58\xF6\x6F\x9E\xA4\xC5" | ||
8998 | "\x10\xA1\x82\x0E\x80\xA0\x8F\x4B" | ||
8999 | "\xA1\xC0\x12\x54\x4E\xC9\x20\x92" | ||
9000 | "\x11\x00\x10\x4E\xB3\x7C\xCA\x63" | ||
9001 | "\xE5\x3F\xD3\x41\x37\xCD\x74\xB7" | ||
9002 | "\xA5\x7C\x61\xB8\x0B\x7A\x7F\x4D" | ||
9003 | "\xFE\x96\x7D\x1B\xBE\x60\x37\xB7" | ||
9004 | "\x81\x92\x66\x67\x15\x1E\x39\x98" | ||
9005 | "\x52\xC0\xF4\x69\xC0\x99\x4F\x5A" | ||
9006 | "\x2E\x32\xAD\x7C\x8B\xE9\xAD\x05" | ||
9007 | "\x55\xF9\x0A\x1F\x97\x5C\xFA\x2B" | ||
9008 | "\xF4\x99\x76\x3A\x6E\x4D\xE1\x4C" | ||
9009 | "\x14\x4E\x6F\x87\xEE\x1A\x85\xA3" | ||
9010 | "\x96\xC6\x66\x49\xDA\x0D\x71\xAC" | ||
9011 | "\x04\x05\x46\xD3\x90\x0F\x64\x64" | ||
9012 | "\x01\x66\x2C\x62\x5D\x34\xD1\xCB" | ||
9013 | "\x3A\x24\xCE\x95\xEF\xAE\x2C\x97" | ||
9014 | "\x0E\x0C\x1D\x36\x49\xEB\xE9\x3D" | ||
9015 | "\x62\xA6\x19\x28\x9E\x26\xB4\x3F" | ||
9016 | "\xD7\x55\x42\x3C\xCD\x72\x0A\xF0" | ||
9017 | "\x7D\xE9\x95\x45\x86\xED\xB1\xE0" | ||
9018 | "\x8D\xE9\xC5\x86\x13\x24\x28\x7D" | ||
9019 | "\x74\xEF\xCA\x50\x12\x7E\x64\x8F" | ||
9020 | "\x1B\xF5\x5B\xFE\xE2\xAC\xFA\xE7" | ||
9021 | "\xBD\x38\x8C\x11\x20\xEF\xB1\xAA" | ||
9022 | "\x7B\xE5\xE5\x78\xAD\x9D\x2D\xA2" | ||
9023 | "\x8E\xDD\x48\xB3\xEF\x18\x92\x7E" | ||
9024 | "\xE6\x75\x0D\x54\x64\x11\xA3\x3A" | ||
9025 | "\xDB\x97\x0F\xD3\xDF\x07\xD3\x7E" | ||
9026 | "\x1E\xD1\x87\xE4\x74\xBB\x46\xF4" | ||
9027 | "\xBA\x23\x2D\x8D\x29\x07\x12\xCF" | ||
9028 | "\x34\xCD\x72\x7F\x01\x30\xE7\xA0" | ||
9029 | "\xF8\xDD\xA8\x08\xF0\xBC\xB1\xA2" | ||
9030 | "\xCC\xE1\x6B\x5F\xBE\xEA\xF1\xE4" | ||
9031 | "\x02\xC4\xAF\xFA\xAD\x31\xF4\xBF" | ||
9032 | "\xFC\x66\xAA\x37\xF2\x37\x39\x6B" | ||
9033 | "\xBC\x08\x3A\xA2\x29\xB3\xDF\xD1", | ||
9034 | .ilen = 496, | ||
6098 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 9035 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
6099 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 9036 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
6100 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 9037 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -6112,11 +9049,55 @@ static struct cipher_testvec serpent_cbc_dec_tv_template[] = { | |||
6112 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 9049 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
6113 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 9050 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6114 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 9051 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6115 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 9052 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6116 | .rlen = 144, | 9053 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
9054 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
9055 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
9056 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
9057 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
9058 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
9059 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
9060 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
9061 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
9062 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
9063 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
9064 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
9065 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
9066 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
9067 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
9068 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
9069 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
9070 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
9071 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
9072 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
9073 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
9074 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
9075 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
9076 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
9077 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
9078 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
9079 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
9080 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
9081 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
9082 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
9083 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
9084 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
9085 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
9086 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
9087 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
9088 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
9089 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
9090 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
9091 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
9092 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
9093 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
9094 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
9095 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
9096 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
9097 | .rlen = 496, | ||
6117 | .also_non_np = 1, | 9098 | .also_non_np = 1, |
6118 | .np = 2, | 9099 | .np = 2, |
6119 | .tap = { 144 - 16, 16 }, | 9100 | .tap = { 496 - 16, 16 }, |
6120 | }, | 9101 | }, |
6121 | }; | 9102 | }; |
6122 | 9103 | ||
@@ -6146,8 +9127,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = { | |||
6146 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 9127 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
6147 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 9128 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6148 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 9129 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6149 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 9130 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6150 | .ilen = 144, | 9131 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
9132 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
9133 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
9134 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
9135 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
9136 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
9137 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
9138 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
9139 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
9140 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
9141 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
9142 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
9143 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
9144 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
9145 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
9146 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
9147 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
9148 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
9149 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
9150 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
9151 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
9152 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
9153 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
9154 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
9155 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
9156 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
9157 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
9158 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
9159 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
9160 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
9161 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
9162 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
9163 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
9164 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
9165 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
9166 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
9167 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
9168 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
9169 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
9170 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
9171 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
9172 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
9173 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
9174 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
9175 | .ilen = 496, | ||
6151 | .result = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA" | 9176 | .result = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA" |
6152 | "\x37\x69\xE3\x3A\x22\x85\x48\x46" | 9177 | "\x37\x69\xE3\x3A\x22\x85\x48\x46" |
6153 | "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E" | 9178 | "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E" |
@@ -6165,8 +9190,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = { | |||
6165 | "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5" | 9190 | "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5" |
6166 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" | 9191 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" |
6167 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" | 9192 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" |
6168 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9", | 9193 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" |
6169 | .rlen = 144, | 9194 | "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A" |
9195 | "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86" | ||
9196 | "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C" | ||
9197 | "\xAE\x82\xD3\x73\x31\x09\xCB\xB3" | ||
9198 | "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55" | ||
9199 | "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2" | ||
9200 | "\x8A\xF2\x26\xCD\x63\x38\x35\xF7" | ||
9201 | "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C" | ||
9202 | "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF" | ||
9203 | "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C" | ||
9204 | "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA" | ||
9205 | "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2" | ||
9206 | "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61" | ||
9207 | "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC" | ||
9208 | "\x2E\xE0\x48\x67\x09\x42\xCC\x91" | ||
9209 | "\xBE\x20\x38\xC0\x5E\x3B\x95\x00" | ||
9210 | "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7" | ||
9211 | "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71" | ||
9212 | "\x07\x97\x38\x4B\x5C\x56\x98\x67" | ||
9213 | "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90" | ||
9214 | "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D" | ||
9215 | "\x18\x06\x15\x9D\x5A\x10\x13\x37" | ||
9216 | "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12" | ||
9217 | "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF" | ||
9218 | "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C" | ||
9219 | "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1" | ||
9220 | "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27" | ||
9221 | "\x37\xDC\x35\xF3\x79\x01\x53\xA4" | ||
9222 | "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB" | ||
9223 | "\x9B\x1E\x8C\x07\xA7\x52\x49\x50" | ||
9224 | "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD" | ||
9225 | "\x7A\xC9\x36\xAE\xDE\x21\x48\x64" | ||
9226 | "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C" | ||
9227 | "\x98\x52\xCC\x04\xBD\x5E\x61\x26" | ||
9228 | "\x10\xD3\x21\xD9\x6E\x25\x98\x77" | ||
9229 | "\x8E\x98\x63\xF6\xF6\x52\xFB\x13" | ||
9230 | "\xAA\x30\xF2\xB9\xA4\x43\x53\x39" | ||
9231 | "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43" | ||
9232 | "\xA6\x71\x6B\x66\x8F\x58\x3F\x71" | ||
9233 | "\x90\x47\x40\x92\xE6\x69\xD1\x96" | ||
9234 | "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56" | ||
9235 | "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B" | ||
9236 | "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50" | ||
9237 | "\x40\x53\x77\x8C\x15\xF8\x8D\x13", | ||
9238 | .rlen = 496, | ||
6170 | }, { /* Generated with Crypto++ */ | 9239 | }, { /* Generated with Crypto++ */ |
6171 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 9240 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
6172 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 9241 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -6193,8 +9262,52 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = { | |||
6193 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 9262 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6194 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 9263 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6195 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | 9264 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6196 | "\xF1\x65\xFC", | 9265 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
6197 | .ilen = 147, | 9266 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" |
9267 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
9268 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
9269 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
9270 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
9271 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
9272 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
9273 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
9274 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
9275 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
9276 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
9277 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
9278 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
9279 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
9280 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
9281 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
9282 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
9283 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
9284 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
9285 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
9286 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
9287 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
9288 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
9289 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
9290 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
9291 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
9292 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
9293 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
9294 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
9295 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
9296 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
9297 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
9298 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
9299 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
9300 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
9301 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
9302 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
9303 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
9304 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
9305 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
9306 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
9307 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
9308 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
9309 | "\x2B\xC2\x59", | ||
9310 | .ilen = 499, | ||
6198 | .result = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA" | 9311 | .result = "\x84\x68\xEC\xF2\x1C\x88\x20\xCA" |
6199 | "\x37\x69\xE3\x3A\x22\x85\x48\x46" | 9312 | "\x37\x69\xE3\x3A\x22\x85\x48\x46" |
6200 | "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E" | 9313 | "\x70\xAA\x25\xB4\xCD\x8B\x04\x4E" |
@@ -6213,11 +9326,55 @@ static struct cipher_testvec serpent_ctr_enc_tv_template[] = { | |||
6213 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" | 9326 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" |
6214 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" | 9327 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" |
6215 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" | 9328 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" |
6216 | "\xE6\xD0\x97", | 9329 | "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A" |
6217 | .rlen = 147, | 9330 | "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86" |
9331 | "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C" | ||
9332 | "\xAE\x82\xD3\x73\x31\x09\xCB\xB3" | ||
9333 | "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55" | ||
9334 | "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2" | ||
9335 | "\x8A\xF2\x26\xCD\x63\x38\x35\xF7" | ||
9336 | "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C" | ||
9337 | "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF" | ||
9338 | "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C" | ||
9339 | "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA" | ||
9340 | "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2" | ||
9341 | "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61" | ||
9342 | "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC" | ||
9343 | "\x2E\xE0\x48\x67\x09\x42\xCC\x91" | ||
9344 | "\xBE\x20\x38\xC0\x5E\x3B\x95\x00" | ||
9345 | "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7" | ||
9346 | "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71" | ||
9347 | "\x07\x97\x38\x4B\x5C\x56\x98\x67" | ||
9348 | "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90" | ||
9349 | "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D" | ||
9350 | "\x18\x06\x15\x9D\x5A\x10\x13\x37" | ||
9351 | "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12" | ||
9352 | "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF" | ||
9353 | "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C" | ||
9354 | "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1" | ||
9355 | "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27" | ||
9356 | "\x37\xDC\x35\xF3\x79\x01\x53\xA4" | ||
9357 | "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB" | ||
9358 | "\x9B\x1E\x8C\x07\xA7\x52\x49\x50" | ||
9359 | "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD" | ||
9360 | "\x7A\xC9\x36\xAE\xDE\x21\x48\x64" | ||
9361 | "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C" | ||
9362 | "\x98\x52\xCC\x04\xBD\x5E\x61\x26" | ||
9363 | "\x10\xD3\x21\xD9\x6E\x25\x98\x77" | ||
9364 | "\x8E\x98\x63\xF6\xF6\x52\xFB\x13" | ||
9365 | "\xAA\x30\xF2\xB9\xA4\x43\x53\x39" | ||
9366 | "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43" | ||
9367 | "\xA6\x71\x6B\x66\x8F\x58\x3F\x71" | ||
9368 | "\x90\x47\x40\x92\xE6\x69\xD1\x96" | ||
9369 | "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56" | ||
9370 | "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B" | ||
9371 | "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50" | ||
9372 | "\x40\x53\x77\x8C\x15\xF8\x8D\x13" | ||
9373 | "\x38\xE2\xE5", | ||
9374 | .rlen = 499, | ||
6218 | .also_non_np = 1, | 9375 | .also_non_np = 1, |
6219 | .np = 2, | 9376 | .np = 2, |
6220 | .tap = { 147 - 16, 16 }, | 9377 | .tap = { 499 - 16, 16 }, |
6221 | }, { /* Generated with Crypto++ */ | 9378 | }, { /* Generated with Crypto++ */ |
6222 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 9379 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
6223 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 9380 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -6381,8 +9538,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = { | |||
6381 | "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5" | 9538 | "\xBA\x58\x2A\x1C\xDF\xC2\x3A\xA5" |
6382 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" | 9539 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" |
6383 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" | 9540 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" |
6384 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9", | 9541 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" |
6385 | .ilen = 144, | 9542 | "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A" |
9543 | "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86" | ||
9544 | "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C" | ||
9545 | "\xAE\x82\xD3\x73\x31\x09\xCB\xB3" | ||
9546 | "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55" | ||
9547 | "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2" | ||
9548 | "\x8A\xF2\x26\xCD\x63\x38\x35\xF7" | ||
9549 | "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C" | ||
9550 | "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF" | ||
9551 | "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C" | ||
9552 | "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA" | ||
9553 | "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2" | ||
9554 | "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61" | ||
9555 | "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC" | ||
9556 | "\x2E\xE0\x48\x67\x09\x42\xCC\x91" | ||
9557 | "\xBE\x20\x38\xC0\x5E\x3B\x95\x00" | ||
9558 | "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7" | ||
9559 | "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71" | ||
9560 | "\x07\x97\x38\x4B\x5C\x56\x98\x67" | ||
9561 | "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90" | ||
9562 | "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D" | ||
9563 | "\x18\x06\x15\x9D\x5A\x10\x13\x37" | ||
9564 | "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12" | ||
9565 | "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF" | ||
9566 | "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C" | ||
9567 | "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1" | ||
9568 | "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27" | ||
9569 | "\x37\xDC\x35\xF3\x79\x01\x53\xA4" | ||
9570 | "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB" | ||
9571 | "\x9B\x1E\x8C\x07\xA7\x52\x49\x50" | ||
9572 | "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD" | ||
9573 | "\x7A\xC9\x36\xAE\xDE\x21\x48\x64" | ||
9574 | "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C" | ||
9575 | "\x98\x52\xCC\x04\xBD\x5E\x61\x26" | ||
9576 | "\x10\xD3\x21\xD9\x6E\x25\x98\x77" | ||
9577 | "\x8E\x98\x63\xF6\xF6\x52\xFB\x13" | ||
9578 | "\xAA\x30\xF2\xB9\xA4\x43\x53\x39" | ||
9579 | "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43" | ||
9580 | "\xA6\x71\x6B\x66\x8F\x58\x3F\x71" | ||
9581 | "\x90\x47\x40\x92\xE6\x69\xD1\x96" | ||
9582 | "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56" | ||
9583 | "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B" | ||
9584 | "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50" | ||
9585 | "\x40\x53\x77\x8C\x15\xF8\x8D\x13", | ||
9586 | .ilen = 496, | ||
6386 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 9587 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
6387 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 9588 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
6388 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 9589 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -6400,8 +9601,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = { | |||
6400 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | 9601 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" |
6401 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 9602 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6402 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 9603 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6403 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A", | 9604 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6404 | .rlen = 144, | 9605 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
9606 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
9607 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
9608 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
9609 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
9610 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
9611 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
9612 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
9613 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
9614 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
9615 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
9616 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
9617 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
9618 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
9619 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
9620 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
9621 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
9622 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
9623 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
9624 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
9625 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
9626 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
9627 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
9628 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
9629 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
9630 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
9631 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
9632 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
9633 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
9634 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
9635 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
9636 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
9637 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
9638 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
9639 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
9640 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
9641 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
9642 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
9643 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
9644 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
9645 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
9646 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
9647 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
9648 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
9649 | .rlen = 496, | ||
6405 | }, { /* Generated with Crypto++ */ | 9650 | }, { /* Generated with Crypto++ */ |
6406 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 9651 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
6407 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 9652 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -6428,8 +9673,52 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = { | |||
6428 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" | 9673 | "\x7C\xB5\x12\x89\xED\xBF\xB6\x09" |
6429 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" | 9674 | "\x13\x4F\x7D\x61\x3C\x5C\x27\xFC" |
6430 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" | 9675 | "\x5D\xE1\x4F\xA1\xEA\xB3\xCA\xB9" |
6431 | "\xE6\xD0\x97", | 9676 | "\xE6\xD0\x97\x81\xDE\xD1\xFB\x8A" |
6432 | .ilen = 147, | 9677 | "\x30\xDB\xA3\x5D\xEC\x25\x0B\x86" |
9678 | "\x71\xC8\xA7\x67\xE8\xBC\x7D\x4C" | ||
9679 | "\xAE\x82\xD3\x73\x31\x09\xCB\xB3" | ||
9680 | "\x4D\xD4\xC0\x8A\x2B\xFA\xA6\x55" | ||
9681 | "\x39\x0A\xBC\x6E\x75\xAB\xC2\xE2" | ||
9682 | "\x8A\xF2\x26\xCD\x63\x38\x35\xF7" | ||
9683 | "\xAE\x12\x83\xCD\x8A\x9E\x7E\x4C" | ||
9684 | "\xFE\x4D\xD7\xCE\x5C\x6E\x4C\xAF" | ||
9685 | "\xE3\xCD\x76\xA7\x87\xA1\x54\x7C" | ||
9686 | "\xEC\x32\xC7\x83\x2A\xFF\xF8\xEA" | ||
9687 | "\x87\xB2\x47\xA3\x9D\xC2\x9C\xA2" | ||
9688 | "\xB7\x2C\x7C\x1A\x24\xCB\x88\x61" | ||
9689 | "\xFF\xA7\x1A\x16\x01\xDD\x4B\xFC" | ||
9690 | "\x2E\xE0\x48\x67\x09\x42\xCC\x91" | ||
9691 | "\xBE\x20\x38\xC0\x5E\x3B\x95\x00" | ||
9692 | "\xA1\x96\x66\x0B\x8A\xE9\x9E\xF7" | ||
9693 | "\x6B\x34\x0A\x51\xC0\x3B\xEB\x71" | ||
9694 | "\x07\x97\x38\x4B\x5C\x56\x98\x67" | ||
9695 | "\x78\x9C\xD0\x0E\x2B\xB5\x67\x90" | ||
9696 | "\x75\xF8\xFE\x6D\x4E\x85\xCC\x0D" | ||
9697 | "\x18\x06\x15\x9D\x5A\x10\x13\x37" | ||
9698 | "\xA3\xD6\x68\xA2\xDF\x7E\xC7\x12" | ||
9699 | "\xC9\x0D\x4D\x91\xB0\x2A\x55\xFF" | ||
9700 | "\x6F\x73\x13\xDF\x28\xB5\x2A\x2C" | ||
9701 | "\xE4\xFC\x20\xD9\xF1\x7A\x82\xB1" | ||
9702 | "\xCB\x57\xB6\x3D\x8C\xF4\x8E\x27" | ||
9703 | "\x37\xDC\x35\xF3\x79\x01\x53\xA4" | ||
9704 | "\x7B\x37\xDE\x7C\x04\xAE\x50\xDB" | ||
9705 | "\x9B\x1E\x8C\x07\xA7\x52\x49\x50" | ||
9706 | "\x34\x25\x65\xDD\xA9\x8F\x7E\xBD" | ||
9707 | "\x7A\xC9\x36\xAE\xDE\x21\x48\x64" | ||
9708 | "\xC2\x02\xBA\xBE\x11\x1E\x3D\x9C" | ||
9709 | "\x98\x52\xCC\x04\xBD\x5E\x61\x26" | ||
9710 | "\x10\xD3\x21\xD9\x6E\x25\x98\x77" | ||
9711 | "\x8E\x98\x63\xF6\xF6\x52\xFB\x13" | ||
9712 | "\xAA\x30\xF2\xB9\xA4\x43\x53\x39" | ||
9713 | "\x1C\x97\x07\x7E\x6B\xFF\x3D\x43" | ||
9714 | "\xA6\x71\x6B\x66\x8F\x58\x3F\x71" | ||
9715 | "\x90\x47\x40\x92\xE6\x69\xD1\x96" | ||
9716 | "\x34\xB3\x3B\xE5\x43\xE4\xD5\x56" | ||
9717 | "\xB2\xE6\x7E\x86\x7A\x12\x17\x5B" | ||
9718 | "\x30\xF3\x9B\x0D\xFA\x57\xE4\x50" | ||
9719 | "\x40\x53\x77\x8C\x15\xF8\x8D\x13" | ||
9720 | "\x38\xE2\xE5", | ||
9721 | .ilen = 499, | ||
6433 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 9722 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
6434 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 9723 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
6435 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 9724 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
@@ -6448,11 +9737,55 @@ static struct cipher_testvec serpent_ctr_dec_tv_template[] = { | |||
6448 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | 9737 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" |
6449 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | 9738 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" |
6450 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | 9739 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" |
6451 | "\xF1\x65\xFC", | 9740 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" |
6452 | .rlen = 147, | 9741 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" |
9742 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
9743 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
9744 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
9745 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
9746 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
9747 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
9748 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
9749 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
9750 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
9751 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
9752 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
9753 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
9754 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
9755 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
9756 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
9757 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
9758 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
9759 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
9760 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
9761 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
9762 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
9763 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
9764 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
9765 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
9766 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
9767 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
9768 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
9769 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
9770 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
9771 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
9772 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
9773 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
9774 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
9775 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
9776 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
9777 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
9778 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
9779 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
9780 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
9781 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
9782 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
9783 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
9784 | "\x2B\xC2\x59", | ||
9785 | .rlen = 499, | ||
6453 | .also_non_np = 1, | 9786 | .also_non_np = 1, |
6454 | .np = 2, | 9787 | .np = 2, |
6455 | .tap = { 147 - 16, 16 }, | 9788 | .tap = { 499 - 16, 16 }, |
6456 | }, { /* Generated with Crypto++ */ | 9789 | }, { /* Generated with Crypto++ */ |
6457 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 9790 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
6458 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 9791 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -9326,10 +12659,10 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = { | |||
9326 | /* | 12659 | /* |
9327 | * AES test vectors. | 12660 | * AES test vectors. |
9328 | */ | 12661 | */ |
9329 | #define AES_ENC_TEST_VECTORS 3 | 12662 | #define AES_ENC_TEST_VECTORS 4 |
9330 | #define AES_DEC_TEST_VECTORS 3 | 12663 | #define AES_DEC_TEST_VECTORS 4 |
9331 | #define AES_CBC_ENC_TEST_VECTORS 4 | 12664 | #define AES_CBC_ENC_TEST_VECTORS 5 |
9332 | #define AES_CBC_DEC_TEST_VECTORS 4 | 12665 | #define AES_CBC_DEC_TEST_VECTORS 5 |
9333 | #define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7 | 12666 | #define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7 |
9334 | #define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7 | 12667 | #define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7 |
9335 | #define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7 | 12668 | #define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7 |
@@ -9337,8 +12670,8 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = { | |||
9337 | #define AES_LRW_DEC_TEST_VECTORS 8 | 12670 | #define AES_LRW_DEC_TEST_VECTORS 8 |
9338 | #define AES_XTS_ENC_TEST_VECTORS 5 | 12671 | #define AES_XTS_ENC_TEST_VECTORS 5 |
9339 | #define AES_XTS_DEC_TEST_VECTORS 5 | 12672 | #define AES_XTS_DEC_TEST_VECTORS 5 |
9340 | #define AES_CTR_ENC_TEST_VECTORS 3 | 12673 | #define AES_CTR_ENC_TEST_VECTORS 5 |
9341 | #define AES_CTR_DEC_TEST_VECTORS 3 | 12674 | #define AES_CTR_DEC_TEST_VECTORS 5 |
9342 | #define AES_OFB_ENC_TEST_VECTORS 1 | 12675 | #define AES_OFB_ENC_TEST_VECTORS 1 |
9343 | #define AES_OFB_DEC_TEST_VECTORS 1 | 12676 | #define AES_OFB_DEC_TEST_VECTORS 1 |
9344 | #define AES_CTR_3686_ENC_TEST_VECTORS 7 | 12677 | #define AES_CTR_3686_ENC_TEST_VECTORS 7 |
@@ -9386,6 +12719,141 @@ static struct cipher_testvec aes_enc_tv_template[] = { | |||
9386 | .result = "\x8e\xa2\xb7\xca\x51\x67\x45\xbf" | 12719 | .result = "\x8e\xa2\xb7\xca\x51\x67\x45\xbf" |
9387 | "\xea\xfc\x49\x90\x4b\x49\x60\x89", | 12720 | "\xea\xfc\x49\x90\x4b\x49\x60\x89", |
9388 | .rlen = 16, | 12721 | .rlen = 16, |
12722 | }, { /* Generated with Crypto++ */ | ||
12723 | .key = "\xA6\xC9\x83\xA6\xC9\xEC\x0F\x32" | ||
12724 | "\x55\x0F\x32\x55\x78\x9B\xBE\x78" | ||
12725 | "\x9B\xBE\xE1\x04\x27\xE1\x04\x27" | ||
12726 | "\x4A\x6D\x90\x4A\x6D\x90\xB3\xD6", | ||
12727 | .klen = 32, | ||
12728 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
12729 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
12730 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
12731 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
12732 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
12733 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
12734 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
12735 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
12736 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
12737 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
12738 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
12739 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
12740 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
12741 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
12742 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
12743 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
12744 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
12745 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
12746 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
12747 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
12748 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
12749 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
12750 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
12751 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
12752 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
12753 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
12754 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
12755 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
12756 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
12757 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
12758 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
12759 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
12760 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
12761 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
12762 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
12763 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
12764 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
12765 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
12766 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
12767 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
12768 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
12769 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
12770 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
12771 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
12772 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
12773 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
12774 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
12775 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
12776 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
12777 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
12778 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
12779 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
12780 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
12781 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
12782 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
12783 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
12784 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
12785 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
12786 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
12787 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
12788 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
12789 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
12790 | .ilen = 496, | ||
12791 | .result = "\x71\x73\xF7\xDB\x24\x93\x21\x6D" | ||
12792 | "\x61\x1E\xBB\x63\x42\x79\xDB\x64" | ||
12793 | "\x6F\x82\xC0\xCA\xA3\x9B\xFA\x0B" | ||
12794 | "\xD9\x08\xC7\x4A\x90\xAE\x8F\x5F" | ||
12795 | "\x5E\x06\xF0\x5F\x31\x51\x18\x37" | ||
12796 | "\x45\xD7\xCA\x3A\xFD\x6C\x3F\xE1" | ||
12797 | "\xDD\x8D\x22\x65\x2B\x00\x50\xCE" | ||
12798 | "\xBA\x28\x67\xD7\xCE\x0E\x0D\xEA" | ||
12799 | "\x78\x69\x7F\xAE\x8F\x8B\x69\x37" | ||
12800 | "\x75\xE0\xDC\x96\xE0\xB7\xF4\x09" | ||
12801 | "\xCB\x6D\xA2\xFB\xDA\xAF\x09\xF8" | ||
12802 | "\x81\x82\x27\xFA\x45\x9C\x29\xA4" | ||
12803 | "\x22\x8B\x78\x69\x5B\x46\xF9\x39" | ||
12804 | "\x1B\xCC\xF9\x1D\x09\xEB\xBC\x5C" | ||
12805 | "\x41\x72\x51\x97\x1D\x07\x49\xA0" | ||
12806 | "\x1B\x8E\x65\x4B\xB2\x6A\x12\x03" | ||
12807 | "\x6A\x60\x95\xAC\xBD\xAC\x1A\x64" | ||
12808 | "\xDE\x5A\xA5\xF0\x83\x2F\xCB\xCA" | ||
12809 | "\x22\x74\xA6\x6C\x9B\x73\xCE\x3F" | ||
12810 | "\xE1\x8B\x22\x17\x59\x0C\x47\x89" | ||
12811 | "\x33\xA1\xD6\x47\x03\x19\x4F\xA8" | ||
12812 | "\x67\x69\xF0\x5B\xF0\x20\xAD\x06" | ||
12813 | "\x27\x81\x92\xD8\xC5\xBA\x98\x12" | ||
12814 | "\xBE\x24\xB5\x2F\x75\x02\xC2\xAD" | ||
12815 | "\x12\x2F\x07\x32\xEE\x39\xAF\x64" | ||
12816 | "\x05\x8F\xB3\xD4\xEB\x1B\x46\x6E" | ||
12817 | "\xD9\x21\xF9\xC4\xB7\xC9\x45\x68" | ||
12818 | "\xB4\xA1\x74\x9F\x82\x47\xEB\xCC" | ||
12819 | "\xBD\x0A\x14\x95\x0F\x8B\xA8\x2F" | ||
12820 | "\x4B\x1B\xA7\xBF\x82\xA6\x43\x0C" | ||
12821 | "\xB9\x39\x4A\xA8\x10\x6F\x50\x7B" | ||
12822 | "\x25\xFB\x26\x81\xE0\x2F\xF0\x96" | ||
12823 | "\x8D\x8B\xAC\x92\x0F\xF6\xED\x64" | ||
12824 | "\x63\x29\x4C\x8E\x18\x13\xC5\xBF" | ||
12825 | "\xFC\xA0\xD9\xBF\x7C\x3A\x0E\x29" | ||
12826 | "\x6F\xD1\x6C\x6F\xA5\xDA\xBF\xB1" | ||
12827 | "\x30\xEA\x44\x2D\xC3\x8F\x16\xE1" | ||
12828 | "\x66\xFA\xA3\x21\x3E\xFC\x13\xCA" | ||
12829 | "\xF0\xF6\xF0\x59\xBD\x8F\x38\x50" | ||
12830 | "\x31\xCB\x69\x3F\x96\x15\xD6\xF5" | ||
12831 | "\xAE\xFF\xF6\xAA\x41\x85\x4C\x10" | ||
12832 | "\x58\xE3\xF9\x44\xE6\x28\xDA\x9A" | ||
12833 | "\xDC\x6A\x80\x34\x73\x97\x1B\xC5" | ||
12834 | "\xCA\x26\x16\x77\x0E\x60\xAB\x89" | ||
12835 | "\x0F\x04\x27\xBD\xCE\x3E\x71\xB4" | ||
12836 | "\xA0\xD7\x22\x7E\xDB\xEB\x24\x70" | ||
12837 | "\x42\x71\x51\x78\x70\xB3\xE0\x3D" | ||
12838 | "\x84\x8E\x8D\x7B\xD0\x6D\xEA\x92" | ||
12839 | "\x11\x08\x42\x4F\xE5\xAD\x26\x92" | ||
12840 | "\xD2\x00\xAE\xA8\xE3\x4B\x37\x47" | ||
12841 | "\x22\xC1\x95\xC1\x63\x7F\xCB\x03" | ||
12842 | "\xF3\xE3\xD7\x9D\x60\xC7\xBC\xEA" | ||
12843 | "\x35\xA2\xFD\x45\x52\x39\x13\x6F" | ||
12844 | "\xC1\x53\xF3\x53\xDF\x33\x84\xD7" | ||
12845 | "\xD2\xC8\x37\xB0\x75\xE3\x41\x46" | ||
12846 | "\xB3\xC7\x83\x2E\x8A\xBB\xA4\xE5" | ||
12847 | "\x7F\x3C\xFD\x8B\xEB\xEA\x63\xBD" | ||
12848 | "\xB7\x46\xE7\xBF\x09\x9C\x0D\x0F" | ||
12849 | "\x40\x86\x7F\x51\xE1\x11\x9C\xCB" | ||
12850 | "\x88\xE6\x68\x47\xE3\x2B\xC5\xFF" | ||
12851 | "\x09\x79\xA0\x43\x5C\x0D\x08\x58" | ||
12852 | "\x17\xBB\xC0\x6B\x62\x3F\x56\xE9", | ||
12853 | .rlen = 496, | ||
12854 | .also_non_np = 1, | ||
12855 | .np = 2, | ||
12856 | .tap = { 496 - 16, 16 }, | ||
9389 | }, | 12857 | }, |
9390 | }; | 12858 | }; |
9391 | 12859 | ||
@@ -9423,6 +12891,141 @@ static struct cipher_testvec aes_dec_tv_template[] = { | |||
9423 | .result = "\x00\x11\x22\x33\x44\x55\x66\x77" | 12891 | .result = "\x00\x11\x22\x33\x44\x55\x66\x77" |
9424 | "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", | 12892 | "\x88\x99\xaa\xbb\xcc\xdd\xee\xff", |
9425 | .rlen = 16, | 12893 | .rlen = 16, |
12894 | }, { /* Generated with Crypto++ */ | ||
12895 | .key = "\xA6\xC9\x83\xA6\xC9\xEC\x0F\x32" | ||
12896 | "\x55\x0F\x32\x55\x78\x9B\xBE\x78" | ||
12897 | "\x9B\xBE\xE1\x04\x27\xE1\x04\x27" | ||
12898 | "\x4A\x6D\x90\x4A\x6D\x90\xB3\xD6", | ||
12899 | .klen = 32, | ||
12900 | .input = "\x71\x73\xF7\xDB\x24\x93\x21\x6D" | ||
12901 | "\x61\x1E\xBB\x63\x42\x79\xDB\x64" | ||
12902 | "\x6F\x82\xC0\xCA\xA3\x9B\xFA\x0B" | ||
12903 | "\xD9\x08\xC7\x4A\x90\xAE\x8F\x5F" | ||
12904 | "\x5E\x06\xF0\x5F\x31\x51\x18\x37" | ||
12905 | "\x45\xD7\xCA\x3A\xFD\x6C\x3F\xE1" | ||
12906 | "\xDD\x8D\x22\x65\x2B\x00\x50\xCE" | ||
12907 | "\xBA\x28\x67\xD7\xCE\x0E\x0D\xEA" | ||
12908 | "\x78\x69\x7F\xAE\x8F\x8B\x69\x37" | ||
12909 | "\x75\xE0\xDC\x96\xE0\xB7\xF4\x09" | ||
12910 | "\xCB\x6D\xA2\xFB\xDA\xAF\x09\xF8" | ||
12911 | "\x81\x82\x27\xFA\x45\x9C\x29\xA4" | ||
12912 | "\x22\x8B\x78\x69\x5B\x46\xF9\x39" | ||
12913 | "\x1B\xCC\xF9\x1D\x09\xEB\xBC\x5C" | ||
12914 | "\x41\x72\x51\x97\x1D\x07\x49\xA0" | ||
12915 | "\x1B\x8E\x65\x4B\xB2\x6A\x12\x03" | ||
12916 | "\x6A\x60\x95\xAC\xBD\xAC\x1A\x64" | ||
12917 | "\xDE\x5A\xA5\xF0\x83\x2F\xCB\xCA" | ||
12918 | "\x22\x74\xA6\x6C\x9B\x73\xCE\x3F" | ||
12919 | "\xE1\x8B\x22\x17\x59\x0C\x47\x89" | ||
12920 | "\x33\xA1\xD6\x47\x03\x19\x4F\xA8" | ||
12921 | "\x67\x69\xF0\x5B\xF0\x20\xAD\x06" | ||
12922 | "\x27\x81\x92\xD8\xC5\xBA\x98\x12" | ||
12923 | "\xBE\x24\xB5\x2F\x75\x02\xC2\xAD" | ||
12924 | "\x12\x2F\x07\x32\xEE\x39\xAF\x64" | ||
12925 | "\x05\x8F\xB3\xD4\xEB\x1B\x46\x6E" | ||
12926 | "\xD9\x21\xF9\xC4\xB7\xC9\x45\x68" | ||
12927 | "\xB4\xA1\x74\x9F\x82\x47\xEB\xCC" | ||
12928 | "\xBD\x0A\x14\x95\x0F\x8B\xA8\x2F" | ||
12929 | "\x4B\x1B\xA7\xBF\x82\xA6\x43\x0C" | ||
12930 | "\xB9\x39\x4A\xA8\x10\x6F\x50\x7B" | ||
12931 | "\x25\xFB\x26\x81\xE0\x2F\xF0\x96" | ||
12932 | "\x8D\x8B\xAC\x92\x0F\xF6\xED\x64" | ||
12933 | "\x63\x29\x4C\x8E\x18\x13\xC5\xBF" | ||
12934 | "\xFC\xA0\xD9\xBF\x7C\x3A\x0E\x29" | ||
12935 | "\x6F\xD1\x6C\x6F\xA5\xDA\xBF\xB1" | ||
12936 | "\x30\xEA\x44\x2D\xC3\x8F\x16\xE1" | ||
12937 | "\x66\xFA\xA3\x21\x3E\xFC\x13\xCA" | ||
12938 | "\xF0\xF6\xF0\x59\xBD\x8F\x38\x50" | ||
12939 | "\x31\xCB\x69\x3F\x96\x15\xD6\xF5" | ||
12940 | "\xAE\xFF\xF6\xAA\x41\x85\x4C\x10" | ||
12941 | "\x58\xE3\xF9\x44\xE6\x28\xDA\x9A" | ||
12942 | "\xDC\x6A\x80\x34\x73\x97\x1B\xC5" | ||
12943 | "\xCA\x26\x16\x77\x0E\x60\xAB\x89" | ||
12944 | "\x0F\x04\x27\xBD\xCE\x3E\x71\xB4" | ||
12945 | "\xA0\xD7\x22\x7E\xDB\xEB\x24\x70" | ||
12946 | "\x42\x71\x51\x78\x70\xB3\xE0\x3D" | ||
12947 | "\x84\x8E\x8D\x7B\xD0\x6D\xEA\x92" | ||
12948 | "\x11\x08\x42\x4F\xE5\xAD\x26\x92" | ||
12949 | "\xD2\x00\xAE\xA8\xE3\x4B\x37\x47" | ||
12950 | "\x22\xC1\x95\xC1\x63\x7F\xCB\x03" | ||
12951 | "\xF3\xE3\xD7\x9D\x60\xC7\xBC\xEA" | ||
12952 | "\x35\xA2\xFD\x45\x52\x39\x13\x6F" | ||
12953 | "\xC1\x53\xF3\x53\xDF\x33\x84\xD7" | ||
12954 | "\xD2\xC8\x37\xB0\x75\xE3\x41\x46" | ||
12955 | "\xB3\xC7\x83\x2E\x8A\xBB\xA4\xE5" | ||
12956 | "\x7F\x3C\xFD\x8B\xEB\xEA\x63\xBD" | ||
12957 | "\xB7\x46\xE7\xBF\x09\x9C\x0D\x0F" | ||
12958 | "\x40\x86\x7F\x51\xE1\x11\x9C\xCB" | ||
12959 | "\x88\xE6\x68\x47\xE3\x2B\xC5\xFF" | ||
12960 | "\x09\x79\xA0\x43\x5C\x0D\x08\x58" | ||
12961 | "\x17\xBB\xC0\x6B\x62\x3F\x56\xE9", | ||
12962 | .ilen = 496, | ||
12963 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
12964 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
12965 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
12966 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
12967 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
12968 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
12969 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
12970 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
12971 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
12972 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
12973 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
12974 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
12975 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
12976 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
12977 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
12978 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
12979 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
12980 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
12981 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
12982 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
12983 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
12984 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
12985 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
12986 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
12987 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
12988 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
12989 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
12990 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
12991 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
12992 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
12993 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
12994 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
12995 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
12996 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
12997 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
12998 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
12999 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
13000 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
13001 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
13002 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
13003 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
13004 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
13005 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
13006 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
13007 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
13008 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
13009 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
13010 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
13011 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
13012 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
13013 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
13014 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
13015 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
13016 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
13017 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
13018 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
13019 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
13020 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
13021 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
13022 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
13023 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
13024 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
13025 | .rlen = 496, | ||
13026 | .also_non_np = 1, | ||
13027 | .np = 2, | ||
13028 | .tap = { 496 - 16, 16 }, | ||
9426 | }, | 13029 | }, |
9427 | }; | 13030 | }; |
9428 | 13031 | ||
@@ -9505,6 +13108,143 @@ static struct cipher_testvec aes_cbc_enc_tv_template[] = { | |||
9505 | "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc" | 13108 | "\xb2\xeb\x05\xe2\xc3\x9b\xe9\xfc" |
9506 | "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b", | 13109 | "\xda\x6c\x19\x07\x8c\x6a\x9d\x1b", |
9507 | .rlen = 64, | 13110 | .rlen = 64, |
13111 | }, { /* Generated with Crypto++ */ | ||
13112 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
13113 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
13114 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
13115 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
13116 | .klen = 32, | ||
13117 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" | ||
13118 | "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", | ||
13119 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
13120 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
13121 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
13122 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
13123 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
13124 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
13125 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
13126 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
13127 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
13128 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
13129 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
13130 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
13131 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
13132 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
13133 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
13134 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
13135 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
13136 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
13137 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
13138 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
13139 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
13140 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
13141 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
13142 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
13143 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
13144 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
13145 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
13146 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
13147 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
13148 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
13149 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
13150 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
13151 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
13152 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
13153 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
13154 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
13155 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
13156 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
13157 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
13158 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
13159 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
13160 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
13161 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
13162 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
13163 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
13164 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
13165 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
13166 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
13167 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
13168 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
13169 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
13170 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
13171 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
13172 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
13173 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
13174 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
13175 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
13176 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
13177 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
13178 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
13179 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
13180 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
13181 | .ilen = 496, | ||
13182 | .result = "\xEA\x65\x8A\x19\xB0\x66\xC1\x3F" | ||
13183 | "\xCE\xF1\x97\x75\xC1\xFD\xB5\xAF" | ||
13184 | "\x52\x65\xF7\xFF\xBC\xD8\x2D\x9F" | ||
13185 | "\x2F\xB9\x26\x9B\x6F\x10\xB7\xB8" | ||
13186 | "\x26\xA1\x02\x46\xA2\xAD\xC6\xC0" | ||
13187 | "\x11\x15\xFF\x6D\x1E\x82\x04\xA6" | ||
13188 | "\xB1\x74\xD1\x08\x13\xFD\x90\x7C" | ||
13189 | "\xF5\xED\xD3\xDB\x5A\x0A\x0C\x2F" | ||
13190 | "\x0A\x70\xF1\x88\x07\xCF\x21\x26" | ||
13191 | "\x40\x40\x8A\xF5\x53\xF7\x24\x4F" | ||
13192 | "\x83\x38\x43\x5F\x08\x99\xEB\xE3" | ||
13193 | "\xDC\x02\x64\x67\x50\x6E\x15\xC3" | ||
13194 | "\x01\x1A\xA0\x81\x13\x65\xA6\x73" | ||
13195 | "\x71\xA6\x3B\x91\x83\x77\xBE\xFA" | ||
13196 | "\xDB\x71\x73\xA6\xC1\xAE\x43\xC3" | ||
13197 | "\x36\xCE\xD6\xEB\xF9\x30\x1C\x4F" | ||
13198 | "\x80\x38\x5E\x9C\x6E\xAB\x98\x2F" | ||
13199 | "\x53\xAF\xCF\xC8\x9A\xB8\x86\x43" | ||
13200 | "\x3E\x86\xE7\xA1\xF4\x2F\x30\x40" | ||
13201 | "\x03\xA8\x6C\x50\x42\x9F\x77\x59" | ||
13202 | "\x89\xA0\xC5\xEC\x9A\xB8\xDD\x99" | ||
13203 | "\x16\x24\x02\x07\x48\xAE\xF2\x31" | ||
13204 | "\x34\x0E\xC3\x85\xFE\x1C\x95\x99" | ||
13205 | "\x87\x58\x98\x8B\xE7\xC6\xC5\x70" | ||
13206 | "\x73\x81\x07\x7C\x56\x2F\xD8\x1B" | ||
13207 | "\xB7\xB9\x2B\xAB\xE3\x01\x87\x0F" | ||
13208 | "\xD8\xBB\xC0\x0D\xAC\x2C\x2F\x98" | ||
13209 | "\x3C\x0B\xA2\x99\x4A\x8C\xF7\x04" | ||
13210 | "\xE0\xE0\xCF\xD1\x81\x5B\xFE\xF5" | ||
13211 | "\x24\x04\xFD\xB8\xDF\x13\xD8\xCD" | ||
13212 | "\xF1\xE3\x3D\x98\x50\x02\x77\x9E" | ||
13213 | "\xBC\x22\xAB\xFA\xC2\x43\x1F\x66" | ||
13214 | "\x20\x02\x23\xDA\xDF\xA0\x89\xF6" | ||
13215 | "\xD8\xF3\x45\x24\x53\x6F\x16\x77" | ||
13216 | "\x02\x3E\x7B\x36\x5F\xA0\x3B\x78" | ||
13217 | "\x63\xA2\xBD\xB5\xA4\xCA\x1E\xD3" | ||
13218 | "\x57\xBC\x0B\x9F\x43\x51\x28\x4F" | ||
13219 | "\x07\x50\x6C\x68\x12\x07\xCF\xFA" | ||
13220 | "\x6B\x72\x0B\xEB\xF8\x88\x90\x2C" | ||
13221 | "\x7E\xF5\x91\xD1\x03\xD8\xD5\xBD" | ||
13222 | "\x22\x39\x7B\x16\x03\x01\x69\xAF" | ||
13223 | "\x3D\x38\x66\x28\x0C\xBE\x5B\xC5" | ||
13224 | "\x03\xB4\x2F\x51\x8A\x56\x17\x2B" | ||
13225 | "\x88\x42\x6D\x40\x68\x8F\xD0\x11" | ||
13226 | "\x19\xF9\x1F\x43\x79\x95\x31\xFA" | ||
13227 | "\x28\x7A\x3D\xF7\x66\xEB\xEF\xAC" | ||
13228 | "\x06\xB2\x01\xAD\xDB\x68\xDB\xEC" | ||
13229 | "\x8D\x53\x6E\x72\x68\xA3\xC7\x63" | ||
13230 | "\x43\x2B\x78\xE0\x04\x29\x8F\x72" | ||
13231 | "\xB2\x2C\xE6\x84\x03\x30\x6D\xCD" | ||
13232 | "\x26\x92\x37\xE1\x2F\xBB\x8B\x9D" | ||
13233 | "\xE4\x4C\xF6\x93\xBC\xD9\xAD\x44" | ||
13234 | "\x52\x65\xC7\xB0\x0E\x3F\x0E\x61" | ||
13235 | "\x56\x5D\x1C\x6D\xA7\x05\x2E\xBC" | ||
13236 | "\x58\x08\x15\xAB\x12\xAB\x17\x4A" | ||
13237 | "\x5E\x1C\xF2\xCD\xB8\xA2\xAE\xFB" | ||
13238 | "\x9B\x2E\x0E\x85\x34\x80\x0E\x3F" | ||
13239 | "\x4C\xB8\xDB\xCE\x1C\x90\xA1\x61" | ||
13240 | "\x6C\x69\x09\x35\x9E\xD4\xF4\xAD" | ||
13241 | "\xBC\x06\x41\xE3\x01\xB4\x4E\x0A" | ||
13242 | "\xE0\x1F\x91\xF8\x82\x96\x2D\x65" | ||
13243 | "\xA3\xAA\x13\xCC\x50\xFF\x7B\x02", | ||
13244 | .rlen = 496, | ||
13245 | .also_non_np = 1, | ||
13246 | .np = 2, | ||
13247 | .tap = { 496 - 16, 16 }, | ||
9508 | }, | 13248 | }, |
9509 | }; | 13249 | }; |
9510 | 13250 | ||
@@ -9587,6 +13327,143 @@ static struct cipher_testvec aes_cbc_dec_tv_template[] = { | |||
9587 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" | 13327 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" |
9588 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", | 13328 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", |
9589 | .rlen = 64, | 13329 | .rlen = 64, |
13330 | }, { /* Generated with Crypto++ */ | ||
13331 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
13332 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
13333 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
13334 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
13335 | .klen = 32, | ||
13336 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" | ||
13337 | "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", | ||
13338 | .input = "\xEA\x65\x8A\x19\xB0\x66\xC1\x3F" | ||
13339 | "\xCE\xF1\x97\x75\xC1\xFD\xB5\xAF" | ||
13340 | "\x52\x65\xF7\xFF\xBC\xD8\x2D\x9F" | ||
13341 | "\x2F\xB9\x26\x9B\x6F\x10\xB7\xB8" | ||
13342 | "\x26\xA1\x02\x46\xA2\xAD\xC6\xC0" | ||
13343 | "\x11\x15\xFF\x6D\x1E\x82\x04\xA6" | ||
13344 | "\xB1\x74\xD1\x08\x13\xFD\x90\x7C" | ||
13345 | "\xF5\xED\xD3\xDB\x5A\x0A\x0C\x2F" | ||
13346 | "\x0A\x70\xF1\x88\x07\xCF\x21\x26" | ||
13347 | "\x40\x40\x8A\xF5\x53\xF7\x24\x4F" | ||
13348 | "\x83\x38\x43\x5F\x08\x99\xEB\xE3" | ||
13349 | "\xDC\x02\x64\x67\x50\x6E\x15\xC3" | ||
13350 | "\x01\x1A\xA0\x81\x13\x65\xA6\x73" | ||
13351 | "\x71\xA6\x3B\x91\x83\x77\xBE\xFA" | ||
13352 | "\xDB\x71\x73\xA6\xC1\xAE\x43\xC3" | ||
13353 | "\x36\xCE\xD6\xEB\xF9\x30\x1C\x4F" | ||
13354 | "\x80\x38\x5E\x9C\x6E\xAB\x98\x2F" | ||
13355 | "\x53\xAF\xCF\xC8\x9A\xB8\x86\x43" | ||
13356 | "\x3E\x86\xE7\xA1\xF4\x2F\x30\x40" | ||
13357 | "\x03\xA8\x6C\x50\x42\x9F\x77\x59" | ||
13358 | "\x89\xA0\xC5\xEC\x9A\xB8\xDD\x99" | ||
13359 | "\x16\x24\x02\x07\x48\xAE\xF2\x31" | ||
13360 | "\x34\x0E\xC3\x85\xFE\x1C\x95\x99" | ||
13361 | "\x87\x58\x98\x8B\xE7\xC6\xC5\x70" | ||
13362 | "\x73\x81\x07\x7C\x56\x2F\xD8\x1B" | ||
13363 | "\xB7\xB9\x2B\xAB\xE3\x01\x87\x0F" | ||
13364 | "\xD8\xBB\xC0\x0D\xAC\x2C\x2F\x98" | ||
13365 | "\x3C\x0B\xA2\x99\x4A\x8C\xF7\x04" | ||
13366 | "\xE0\xE0\xCF\xD1\x81\x5B\xFE\xF5" | ||
13367 | "\x24\x04\xFD\xB8\xDF\x13\xD8\xCD" | ||
13368 | "\xF1\xE3\x3D\x98\x50\x02\x77\x9E" | ||
13369 | "\xBC\x22\xAB\xFA\xC2\x43\x1F\x66" | ||
13370 | "\x20\x02\x23\xDA\xDF\xA0\x89\xF6" | ||
13371 | "\xD8\xF3\x45\x24\x53\x6F\x16\x77" | ||
13372 | "\x02\x3E\x7B\x36\x5F\xA0\x3B\x78" | ||
13373 | "\x63\xA2\xBD\xB5\xA4\xCA\x1E\xD3" | ||
13374 | "\x57\xBC\x0B\x9F\x43\x51\x28\x4F" | ||
13375 | "\x07\x50\x6C\x68\x12\x07\xCF\xFA" | ||
13376 | "\x6B\x72\x0B\xEB\xF8\x88\x90\x2C" | ||
13377 | "\x7E\xF5\x91\xD1\x03\xD8\xD5\xBD" | ||
13378 | "\x22\x39\x7B\x16\x03\x01\x69\xAF" | ||
13379 | "\x3D\x38\x66\x28\x0C\xBE\x5B\xC5" | ||
13380 | "\x03\xB4\x2F\x51\x8A\x56\x17\x2B" | ||
13381 | "\x88\x42\x6D\x40\x68\x8F\xD0\x11" | ||
13382 | "\x19\xF9\x1F\x43\x79\x95\x31\xFA" | ||
13383 | "\x28\x7A\x3D\xF7\x66\xEB\xEF\xAC" | ||
13384 | "\x06\xB2\x01\xAD\xDB\x68\xDB\xEC" | ||
13385 | "\x8D\x53\x6E\x72\x68\xA3\xC7\x63" | ||
13386 | "\x43\x2B\x78\xE0\x04\x29\x8F\x72" | ||
13387 | "\xB2\x2C\xE6\x84\x03\x30\x6D\xCD" | ||
13388 | "\x26\x92\x37\xE1\x2F\xBB\x8B\x9D" | ||
13389 | "\xE4\x4C\xF6\x93\xBC\xD9\xAD\x44" | ||
13390 | "\x52\x65\xC7\xB0\x0E\x3F\x0E\x61" | ||
13391 | "\x56\x5D\x1C\x6D\xA7\x05\x2E\xBC" | ||
13392 | "\x58\x08\x15\xAB\x12\xAB\x17\x4A" | ||
13393 | "\x5E\x1C\xF2\xCD\xB8\xA2\xAE\xFB" | ||
13394 | "\x9B\x2E\x0E\x85\x34\x80\x0E\x3F" | ||
13395 | "\x4C\xB8\xDB\xCE\x1C\x90\xA1\x61" | ||
13396 | "\x6C\x69\x09\x35\x9E\xD4\xF4\xAD" | ||
13397 | "\xBC\x06\x41\xE3\x01\xB4\x4E\x0A" | ||
13398 | "\xE0\x1F\x91\xF8\x82\x96\x2D\x65" | ||
13399 | "\xA3\xAA\x13\xCC\x50\xFF\x7B\x02", | ||
13400 | .ilen = 496, | ||
13401 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
13402 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
13403 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
13404 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
13405 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
13406 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
13407 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
13408 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
13409 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
13410 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
13411 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
13412 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
13413 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
13414 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
13415 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
13416 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
13417 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
13418 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
13419 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
13420 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
13421 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
13422 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
13423 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
13424 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
13425 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
13426 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
13427 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
13428 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
13429 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
13430 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
13431 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
13432 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
13433 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
13434 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
13435 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
13436 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
13437 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
13438 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
13439 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
13440 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
13441 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
13442 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
13443 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
13444 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
13445 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
13446 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
13447 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
13448 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
13449 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
13450 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
13451 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
13452 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
13453 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
13454 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
13455 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
13456 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
13457 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
13458 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
13459 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
13460 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
13461 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
13462 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
13463 | .rlen = 496, | ||
13464 | .also_non_np = 1, | ||
13465 | .np = 2, | ||
13466 | .tap = { 496 - 16, 16 }, | ||
9590 | }, | 13467 | }, |
9591 | }; | 13468 | }; |
9592 | 13469 | ||
@@ -11134,8 +15011,6 @@ static struct cipher_testvec aes_xts_enc_tv_template[] = { | |||
11134 | .klen = 64, | 15011 | .klen = 64, |
11135 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" | 15012 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" |
11136 | "\x00\x00\x00\x00\x00\x00\x00\x00", | 15013 | "\x00\x00\x00\x00\x00\x00\x00\x00", |
11137 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
11138 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
11139 | .input = "\x00\x01\x02\x03\x04\x05\x06\x07" | 15014 | .input = "\x00\x01\x02\x03\x04\x05\x06\x07" |
11140 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" | 15015 | "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" |
11141 | "\x10\x11\x12\x13\x14\x15\x16\x17" | 15016 | "\x10\x11\x12\x13\x14\x15\x16\x17" |
@@ -11478,8 +15353,6 @@ static struct cipher_testvec aes_xts_dec_tv_template[] = { | |||
11478 | .klen = 64, | 15353 | .klen = 64, |
11479 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" | 15354 | .iv = "\xff\x00\x00\x00\x00\x00\x00\x00" |
11480 | "\x00\x00\x00\x00\x00\x00\x00\x00", | 15355 | "\x00\x00\x00\x00\x00\x00\x00\x00", |
11481 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
11482 | "\x00\x00\x00\x00\x00\x00\x00\x00", | ||
11483 | .input = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86" | 15356 | .input = "\x1c\x3b\x3a\x10\x2f\x77\x03\x86" |
11484 | "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b" | 15357 | "\xe4\x83\x6c\x99\xe3\x70\xcf\x9b" |
11485 | "\xea\x00\x80\x3f\x5e\x48\x23\x57" | 15358 | "\xea\x00\x80\x3f\x5e\x48\x23\x57" |
@@ -11693,7 +15566,283 @@ static struct cipher_testvec aes_ctr_enc_tv_template[] = { | |||
11693 | "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6" | 15566 | "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6" |
11694 | "\x13\xc2\xdd\x08\x45\x79\x41\xa6", | 15567 | "\x13\xc2\xdd\x08\x45\x79\x41\xa6", |
11695 | .rlen = 64, | 15568 | .rlen = 64, |
11696 | } | 15569 | }, { /* Generated with Crypto++ */ |
15570 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
15571 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
15572 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
15573 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
15574 | .klen = 32, | ||
15575 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" | ||
15576 | "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
15577 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
15578 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
15579 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
15580 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
15581 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
15582 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
15583 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
15584 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
15585 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
15586 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
15587 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
15588 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
15589 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
15590 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
15591 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
15592 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
15593 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
15594 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
15595 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
15596 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
15597 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
15598 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
15599 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
15600 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
15601 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
15602 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
15603 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
15604 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
15605 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
15606 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
15607 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
15608 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
15609 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
15610 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
15611 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
15612 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
15613 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
15614 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
15615 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
15616 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
15617 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
15618 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
15619 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
15620 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
15621 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
15622 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
15623 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
15624 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
15625 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
15626 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
15627 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
15628 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
15629 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
15630 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
15631 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
15632 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
15633 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
15634 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
15635 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
15636 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
15637 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
15638 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
15639 | .ilen = 496, | ||
15640 | .result = "\x04\xF3\xD3\x88\x17\xEF\xDC\xEF" | ||
15641 | "\x8B\x04\xF8\x3A\x66\x8D\x1A\x53" | ||
15642 | "\x57\x1F\x4B\x23\xE4\xA0\xAF\xF9" | ||
15643 | "\x69\x95\x35\x98\x8D\x4D\x8C\xC1" | ||
15644 | "\xF0\xB2\x7F\x80\xBB\x54\x28\xA2" | ||
15645 | "\x7A\x1B\x9F\x77\xEC\x0E\x6E\xDE" | ||
15646 | "\xF0\xEC\xB8\xE4\x20\x62\xEE\xDB" | ||
15647 | "\x5D\xF5\xDD\xE3\x54\xFC\xDD\xEB" | ||
15648 | "\x6A\xEE\x65\xA1\x21\xD6\xD7\x81" | ||
15649 | "\x47\x61\x12\x4D\xC2\x8C\xFA\x78" | ||
15650 | "\x1F\x28\x02\x01\xC3\xFC\x1F\xEC" | ||
15651 | "\x0F\x10\x4F\xB3\x12\x45\xC6\x3B" | ||
15652 | "\x7E\x08\xF9\x5A\xD0\x5D\x73\x2D" | ||
15653 | "\x58\xA4\xE5\xCB\x1C\xB4\xCE\x74" | ||
15654 | "\x32\x41\x1F\x31\x9C\x08\xA2\x5D" | ||
15655 | "\x67\xEB\x72\x1D\xF8\xE7\x70\x54" | ||
15656 | "\x34\x4B\x31\x69\x84\x66\x96\x44" | ||
15657 | "\x56\xCC\x1E\xD9\xE6\x13\x6A\xB9" | ||
15658 | "\x2D\x0A\x05\x45\x2D\x90\xCC\xDF" | ||
15659 | "\x16\x5C\x5F\x79\x34\x52\x54\xFE" | ||
15660 | "\xFE\xCD\xAD\x04\x2E\xAD\x86\x06" | ||
15661 | "\x1F\x37\xE8\x28\xBC\xD3\x8F\x5B" | ||
15662 | "\x92\x66\x87\x3B\x8A\x0A\x1A\xCC" | ||
15663 | "\x6E\xAB\x9F\x0B\xFA\x5C\xE6\xFD" | ||
15664 | "\x3C\x98\x08\x12\xEC\xAA\x9E\x11" | ||
15665 | "\xCA\xB2\x1F\xCE\x5E\x5B\xB2\x72" | ||
15666 | "\x9C\xCC\x5D\xC5\xE0\x32\xC0\x56" | ||
15667 | "\xD5\x45\x16\xD2\xAF\x13\x66\xF7" | ||
15668 | "\x8C\x67\xAC\x79\xB2\xAF\x56\x27" | ||
15669 | "\x3F\xCC\xFE\xCB\x1E\xC0\x75\xF1" | ||
15670 | "\xA7\xC9\xC3\x1D\x8E\xDD\xF9\xD4" | ||
15671 | "\x42\xC8\x21\x08\x16\xF7\x01\xD7" | ||
15672 | "\xAC\x8E\x3F\x1D\x56\xC1\x06\xE4" | ||
15673 | "\x9C\x62\xD6\xA5\x6A\x50\x44\xB3" | ||
15674 | "\x35\x1C\x82\xB9\x10\xF9\x42\xA1" | ||
15675 | "\xFC\x74\x9B\x44\x4F\x25\x02\xE3" | ||
15676 | "\x08\xF5\xD4\x32\x39\x08\x11\xE8" | ||
15677 | "\xD2\x6B\x50\x53\xD4\x08\xD1\x6B" | ||
15678 | "\x3A\x4A\x68\x7B\x7C\xCD\x46\x5E" | ||
15679 | "\x0D\x07\x19\xDB\x67\xD7\x98\x91" | ||
15680 | "\xD7\x17\x10\x9B\x7B\x8A\x9B\x33" | ||
15681 | "\xAE\xF3\x00\xA6\xD4\x15\xD9\xEA" | ||
15682 | "\x85\x99\x22\xE8\x91\x38\x70\x83" | ||
15683 | "\x93\x01\x24\x6C\xFA\x9A\xB9\x07" | ||
15684 | "\xEA\x8D\x3B\xD9\x2A\x43\x59\x16" | ||
15685 | "\x2F\x69\xEE\x84\x36\x44\x76\x98" | ||
15686 | "\xF3\x04\x2A\x7C\x74\x3D\x29\x2B" | ||
15687 | "\x0D\xAD\x8F\x44\x82\x9E\x57\x8D" | ||
15688 | "\xAC\xED\x18\x1F\x50\xA4\xF5\x98" | ||
15689 | "\x1F\xBD\x92\x91\x1B\x2D\xA6\xD6" | ||
15690 | "\xD2\xE3\x02\xAA\x92\x3B\xC6\xB3" | ||
15691 | "\x1B\x39\x72\xD5\x26\xCA\x04\xE0" | ||
15692 | "\xFC\x58\x78\xBB\xB1\x3F\xA1\x9C" | ||
15693 | "\x42\x24\x3E\x2E\x22\xBB\x4B\xBA" | ||
15694 | "\xF4\x52\x0A\xE6\xAE\x47\xB4\x7D" | ||
15695 | "\x1D\xA8\xBE\x81\x1A\x75\xDA\xAC" | ||
15696 | "\xA6\x25\x1E\xEF\x3A\xC0\x6C\x63" | ||
15697 | "\xEF\xDC\xC9\x79\x10\x26\xE8\x61" | ||
15698 | "\x29\xFC\xA4\x05\xDF\x7D\x5C\x63" | ||
15699 | "\x10\x09\x9B\x46\x9B\xF2\x2C\x2B" | ||
15700 | "\xFA\x3A\x05\x4C\xFA\xD1\xFF\xFE" | ||
15701 | "\xF1\x4C\xE5\xB2\x91\x64\x0C\x51", | ||
15702 | .rlen = 496, | ||
15703 | .also_non_np = 1, | ||
15704 | .np = 2, | ||
15705 | .tap = { 496 - 16, 16 }, | ||
15706 | }, { /* Generated with Crypto++ */ | ||
15707 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
15708 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
15709 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
15710 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
15711 | .klen = 32, | ||
15712 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" | ||
15713 | "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", | ||
15714 | .input = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
15715 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
15716 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
15717 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
15718 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
15719 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
15720 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
15721 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
15722 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
15723 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
15724 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
15725 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
15726 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
15727 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
15728 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
15729 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
15730 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
15731 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
15732 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
15733 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
15734 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
15735 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
15736 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
15737 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
15738 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
15739 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
15740 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
15741 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
15742 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
15743 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
15744 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
15745 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
15746 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
15747 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
15748 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
15749 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
15750 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
15751 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
15752 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
15753 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
15754 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
15755 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
15756 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
15757 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
15758 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
15759 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
15760 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
15761 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
15762 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
15763 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
15764 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
15765 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
15766 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
15767 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
15768 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
15769 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
15770 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
15771 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
15772 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
15773 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
15774 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
15775 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12" | ||
15776 | "\x7B\xE4\x4D", | ||
15777 | .ilen = 499, | ||
15778 | .result = "\xDA\x4E\x3F\xBC\xE8\xB6\x3A\xA2" | ||
15779 | "\xD5\x4D\x84\x4A\xA9\x0C\xE1\xA5" | ||
15780 | "\xB8\x73\xBC\xF9\xBB\x59\x2F\x44" | ||
15781 | "\x8B\xAB\x82\x6C\xB4\x32\x9A\xDE" | ||
15782 | "\x5A\x0B\xDB\x7A\x6B\xF2\x38\x9F" | ||
15783 | "\x06\xF7\xF7\xFF\xFF\xC0\x8A\x2E" | ||
15784 | "\x76\xEA\x06\x32\x23\xF3\x59\x2E" | ||
15785 | "\x75\xDE\x71\x86\x3C\x98\x23\x44" | ||
15786 | "\x5B\xF2\xFA\x6A\x00\xBB\xC1\xAD" | ||
15787 | "\x58\xBD\x3E\x6F\x2E\xB4\x19\x04" | ||
15788 | "\x70\x8B\x92\x55\x23\xE9\x6A\x3A" | ||
15789 | "\x78\x7A\x1B\x10\x85\x52\x9C\x12" | ||
15790 | "\xE4\x55\x81\x21\xCE\x53\xD0\x3B" | ||
15791 | "\x63\x77\x2C\x74\xD1\xF5\x60\xF3" | ||
15792 | "\xA1\xDE\x44\x3C\x8F\x4D\x2F\xDD" | ||
15793 | "\x8A\xFE\x3C\x42\x8E\xD3\xF2\x8E" | ||
15794 | "\xA8\x28\x69\x65\x31\xE1\x45\x83" | ||
15795 | "\xE4\x49\xC4\x9C\xA7\x28\xAA\x21" | ||
15796 | "\xCD\x5D\x0F\x15\xB7\x93\x07\x26" | ||
15797 | "\xB0\x65\x6D\x91\x90\x23\x7A\xC6" | ||
15798 | "\xDB\x68\xB0\xA1\x8E\xA4\x76\x4E" | ||
15799 | "\xC6\x91\x83\x20\x92\x4D\x63\x7A" | ||
15800 | "\x45\x18\x18\x74\x19\xAD\x71\x01" | ||
15801 | "\x6B\x23\xAD\x9D\x4E\xE4\x6E\x46" | ||
15802 | "\xC9\x73\x7A\xF9\x02\x95\xF4\x07" | ||
15803 | "\x0E\x7A\xA6\xC5\xAE\xFA\x15\x2C" | ||
15804 | "\x51\x71\xF1\xDC\x22\xB6\xAC\xD8" | ||
15805 | "\x19\x24\x44\xBC\x0C\xFB\x3C\x2D" | ||
15806 | "\xB1\x50\x47\x15\x0E\xDB\xB6\xD7" | ||
15807 | "\xE8\x61\xE5\x95\x52\x1E\x3E\x49" | ||
15808 | "\x70\xE9\x66\x04\x4C\xE1\xAF\xBD" | ||
15809 | "\xDD\x15\x3B\x20\x59\x24\xFF\xB0" | ||
15810 | "\x39\xAA\xE7\xBF\x23\xA3\x6E\xD5" | ||
15811 | "\x15\xF0\x61\x4F\xAE\x89\x10\x58" | ||
15812 | "\x5A\x33\x95\x52\x2A\xB5\x77\x9C" | ||
15813 | "\xA5\x43\x80\x40\x27\x2D\xAE\xD9" | ||
15814 | "\x3F\xE0\x80\x94\x78\x79\xCB\x7E" | ||
15815 | "\xAD\x12\x44\x4C\xEC\x27\xB0\xEE" | ||
15816 | "\x0B\x05\x2A\x82\x99\x58\xBB\x7A" | ||
15817 | "\x8D\x6D\x9D\x8E\xE2\x8E\xE7\x93" | ||
15818 | "\x2F\xB3\x09\x8D\x06\xD5\xEE\x70" | ||
15819 | "\x16\xAE\x35\xC5\x52\x0F\x46\x1F" | ||
15820 | "\x71\xF9\x5E\xF2\x67\xDC\x98\x2F" | ||
15821 | "\xA3\x23\xAA\xD5\xD0\x49\xF4\xA6" | ||
15822 | "\xF6\xB8\x32\xCD\xD6\x85\x73\x60" | ||
15823 | "\x59\x20\xE7\x55\x0E\x91\xE2\x0C" | ||
15824 | "\x3F\x1C\xEB\x3D\xDF\x52\x64\xF2" | ||
15825 | "\x7D\x8B\x5D\x63\x16\xB9\xB2\x5D" | ||
15826 | "\x5E\xAB\xB2\x97\xAB\x78\x44\xE7" | ||
15827 | "\xC6\x72\x20\xC5\x90\x9B\xDC\x5D" | ||
15828 | "\xB0\xEF\x44\xEF\x87\x31\x8D\xF4" | ||
15829 | "\xFB\x81\x5D\xF7\x96\x96\xD4\x50" | ||
15830 | "\x89\xA7\xF6\xB9\x67\x76\x40\x9E" | ||
15831 | "\x9D\x40\xD5\x2C\x30\xB8\x01\x8F" | ||
15832 | "\xE4\x7B\x71\x48\xA9\xA0\xA0\x1D" | ||
15833 | "\x87\x52\xA4\x91\xA9\xD7\xA9\x51" | ||
15834 | "\xD9\x59\xF7\xCC\x63\x22\xC1\x8D" | ||
15835 | "\x84\x7B\xD8\x22\x32\x5C\x6F\x1D" | ||
15836 | "\x6E\x9F\xFA\xDD\x49\x40\xDC\x37" | ||
15837 | "\x14\x8C\xE1\x80\x1B\xDD\x36\x2A" | ||
15838 | "\xD0\xE9\x54\x99\x5D\xBA\x3B\x11" | ||
15839 | "\xD8\xFE\xC9\x5B\x5C\x25\xE5\x76" | ||
15840 | "\xFB\xF2\x3F", | ||
15841 | .rlen = 499, | ||
15842 | .also_non_np = 1, | ||
15843 | .np = 2, | ||
15844 | .tap = { 499 - 16, 16 }, | ||
15845 | }, | ||
11697 | }; | 15846 | }; |
11698 | 15847 | ||
11699 | static struct cipher_testvec aes_ctr_dec_tv_template[] = { | 15848 | static struct cipher_testvec aes_ctr_dec_tv_template[] = { |
@@ -11772,7 +15921,283 @@ static struct cipher_testvec aes_ctr_dec_tv_template[] = { | |||
11772 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" | 15921 | "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17" |
11773 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", | 15922 | "\xad\x2b\x41\x7b\xe6\x6c\x37\x10", |
11774 | .rlen = 64, | 15923 | .rlen = 64, |
11775 | } | 15924 | }, { /* Generated with Crypto++ */ |
15925 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
15926 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
15927 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
15928 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
15929 | .klen = 32, | ||
15930 | .iv = "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" | ||
15931 | "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFD", | ||
15932 | .input = "\x04\xF3\xD3\x88\x17\xEF\xDC\xEF" | ||
15933 | "\x8B\x04\xF8\x3A\x66\x8D\x1A\x53" | ||
15934 | "\x57\x1F\x4B\x23\xE4\xA0\xAF\xF9" | ||
15935 | "\x69\x95\x35\x98\x8D\x4D\x8C\xC1" | ||
15936 | "\xF0\xB2\x7F\x80\xBB\x54\x28\xA2" | ||
15937 | "\x7A\x1B\x9F\x77\xEC\x0E\x6E\xDE" | ||
15938 | "\xF0\xEC\xB8\xE4\x20\x62\xEE\xDB" | ||
15939 | "\x5D\xF5\xDD\xE3\x54\xFC\xDD\xEB" | ||
15940 | "\x6A\xEE\x65\xA1\x21\xD6\xD7\x81" | ||
15941 | "\x47\x61\x12\x4D\xC2\x8C\xFA\x78" | ||
15942 | "\x1F\x28\x02\x01\xC3\xFC\x1F\xEC" | ||
15943 | "\x0F\x10\x4F\xB3\x12\x45\xC6\x3B" | ||
15944 | "\x7E\x08\xF9\x5A\xD0\x5D\x73\x2D" | ||
15945 | "\x58\xA4\xE5\xCB\x1C\xB4\xCE\x74" | ||
15946 | "\x32\x41\x1F\x31\x9C\x08\xA2\x5D" | ||
15947 | "\x67\xEB\x72\x1D\xF8\xE7\x70\x54" | ||
15948 | "\x34\x4B\x31\x69\x84\x66\x96\x44" | ||
15949 | "\x56\xCC\x1E\xD9\xE6\x13\x6A\xB9" | ||
15950 | "\x2D\x0A\x05\x45\x2D\x90\xCC\xDF" | ||
15951 | "\x16\x5C\x5F\x79\x34\x52\x54\xFE" | ||
15952 | "\xFE\xCD\xAD\x04\x2E\xAD\x86\x06" | ||
15953 | "\x1F\x37\xE8\x28\xBC\xD3\x8F\x5B" | ||
15954 | "\x92\x66\x87\x3B\x8A\x0A\x1A\xCC" | ||
15955 | "\x6E\xAB\x9F\x0B\xFA\x5C\xE6\xFD" | ||
15956 | "\x3C\x98\x08\x12\xEC\xAA\x9E\x11" | ||
15957 | "\xCA\xB2\x1F\xCE\x5E\x5B\xB2\x72" | ||
15958 | "\x9C\xCC\x5D\xC5\xE0\x32\xC0\x56" | ||
15959 | "\xD5\x45\x16\xD2\xAF\x13\x66\xF7" | ||
15960 | "\x8C\x67\xAC\x79\xB2\xAF\x56\x27" | ||
15961 | "\x3F\xCC\xFE\xCB\x1E\xC0\x75\xF1" | ||
15962 | "\xA7\xC9\xC3\x1D\x8E\xDD\xF9\xD4" | ||
15963 | "\x42\xC8\x21\x08\x16\xF7\x01\xD7" | ||
15964 | "\xAC\x8E\x3F\x1D\x56\xC1\x06\xE4" | ||
15965 | "\x9C\x62\xD6\xA5\x6A\x50\x44\xB3" | ||
15966 | "\x35\x1C\x82\xB9\x10\xF9\x42\xA1" | ||
15967 | "\xFC\x74\x9B\x44\x4F\x25\x02\xE3" | ||
15968 | "\x08\xF5\xD4\x32\x39\x08\x11\xE8" | ||
15969 | "\xD2\x6B\x50\x53\xD4\x08\xD1\x6B" | ||
15970 | "\x3A\x4A\x68\x7B\x7C\xCD\x46\x5E" | ||
15971 | "\x0D\x07\x19\xDB\x67\xD7\x98\x91" | ||
15972 | "\xD7\x17\x10\x9B\x7B\x8A\x9B\x33" | ||
15973 | "\xAE\xF3\x00\xA6\xD4\x15\xD9\xEA" | ||
15974 | "\x85\x99\x22\xE8\x91\x38\x70\x83" | ||
15975 | "\x93\x01\x24\x6C\xFA\x9A\xB9\x07" | ||
15976 | "\xEA\x8D\x3B\xD9\x2A\x43\x59\x16" | ||
15977 | "\x2F\x69\xEE\x84\x36\x44\x76\x98" | ||
15978 | "\xF3\x04\x2A\x7C\x74\x3D\x29\x2B" | ||
15979 | "\x0D\xAD\x8F\x44\x82\x9E\x57\x8D" | ||
15980 | "\xAC\xED\x18\x1F\x50\xA4\xF5\x98" | ||
15981 | "\x1F\xBD\x92\x91\x1B\x2D\xA6\xD6" | ||
15982 | "\xD2\xE3\x02\xAA\x92\x3B\xC6\xB3" | ||
15983 | "\x1B\x39\x72\xD5\x26\xCA\x04\xE0" | ||
15984 | "\xFC\x58\x78\xBB\xB1\x3F\xA1\x9C" | ||
15985 | "\x42\x24\x3E\x2E\x22\xBB\x4B\xBA" | ||
15986 | "\xF4\x52\x0A\xE6\xAE\x47\xB4\x7D" | ||
15987 | "\x1D\xA8\xBE\x81\x1A\x75\xDA\xAC" | ||
15988 | "\xA6\x25\x1E\xEF\x3A\xC0\x6C\x63" | ||
15989 | "\xEF\xDC\xC9\x79\x10\x26\xE8\x61" | ||
15990 | "\x29\xFC\xA4\x05\xDF\x7D\x5C\x63" | ||
15991 | "\x10\x09\x9B\x46\x9B\xF2\x2C\x2B" | ||
15992 | "\xFA\x3A\x05\x4C\xFA\xD1\xFF\xFE" | ||
15993 | "\xF1\x4C\xE5\xB2\x91\x64\x0C\x51", | ||
15994 | .ilen = 496, | ||
15995 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
15996 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
15997 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
15998 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
15999 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
16000 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
16001 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
16002 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
16003 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
16004 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
16005 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
16006 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
16007 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
16008 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
16009 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
16010 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
16011 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
16012 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
16013 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
16014 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
16015 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
16016 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
16017 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
16018 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
16019 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
16020 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
16021 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
16022 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
16023 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
16024 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
16025 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
16026 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
16027 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
16028 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
16029 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
16030 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
16031 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
16032 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
16033 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
16034 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
16035 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
16036 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
16037 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
16038 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
16039 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
16040 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
16041 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
16042 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
16043 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
16044 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
16045 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
16046 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
16047 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
16048 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
16049 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
16050 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
16051 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
16052 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
16053 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
16054 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
16055 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
16056 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12", | ||
16057 | .rlen = 496, | ||
16058 | .also_non_np = 1, | ||
16059 | .np = 2, | ||
16060 | .tap = { 496 - 16, 16 }, | ||
16061 | }, { /* Generated with Crypto++ */ | ||
16062 | .key = "\xC9\x83\xA6\xC9\xEC\x0F\x32\x55" | ||
16063 | "\x0F\x32\x55\x78\x9B\xBE\x78\x9B" | ||
16064 | "\xBE\xE1\x04\x27\xE1\x04\x27\x4A" | ||
16065 | "\x6D\x90\x4A\x6D\x90\xB3\xD6\xF9", | ||
16066 | .klen = 32, | ||
16067 | .iv = "\xE7\x82\x1D\xB8\x53\x11\xAC\x47" | ||
16068 | "\xE2\x7D\x18\xD6\x71\x0C\xA7\x42", | ||
16069 | .input = "\xDA\x4E\x3F\xBC\xE8\xB6\x3A\xA2" | ||
16070 | "\xD5\x4D\x84\x4A\xA9\x0C\xE1\xA5" | ||
16071 | "\xB8\x73\xBC\xF9\xBB\x59\x2F\x44" | ||
16072 | "\x8B\xAB\x82\x6C\xB4\x32\x9A\xDE" | ||
16073 | "\x5A\x0B\xDB\x7A\x6B\xF2\x38\x9F" | ||
16074 | "\x06\xF7\xF7\xFF\xFF\xC0\x8A\x2E" | ||
16075 | "\x76\xEA\x06\x32\x23\xF3\x59\x2E" | ||
16076 | "\x75\xDE\x71\x86\x3C\x98\x23\x44" | ||
16077 | "\x5B\xF2\xFA\x6A\x00\xBB\xC1\xAD" | ||
16078 | "\x58\xBD\x3E\x6F\x2E\xB4\x19\x04" | ||
16079 | "\x70\x8B\x92\x55\x23\xE9\x6A\x3A" | ||
16080 | "\x78\x7A\x1B\x10\x85\x52\x9C\x12" | ||
16081 | "\xE4\x55\x81\x21\xCE\x53\xD0\x3B" | ||
16082 | "\x63\x77\x2C\x74\xD1\xF5\x60\xF3" | ||
16083 | "\xA1\xDE\x44\x3C\x8F\x4D\x2F\xDD" | ||
16084 | "\x8A\xFE\x3C\x42\x8E\xD3\xF2\x8E" | ||
16085 | "\xA8\x28\x69\x65\x31\xE1\x45\x83" | ||
16086 | "\xE4\x49\xC4\x9C\xA7\x28\xAA\x21" | ||
16087 | "\xCD\x5D\x0F\x15\xB7\x93\x07\x26" | ||
16088 | "\xB0\x65\x6D\x91\x90\x23\x7A\xC6" | ||
16089 | "\xDB\x68\xB0\xA1\x8E\xA4\x76\x4E" | ||
16090 | "\xC6\x91\x83\x20\x92\x4D\x63\x7A" | ||
16091 | "\x45\x18\x18\x74\x19\xAD\x71\x01" | ||
16092 | "\x6B\x23\xAD\x9D\x4E\xE4\x6E\x46" | ||
16093 | "\xC9\x73\x7A\xF9\x02\x95\xF4\x07" | ||
16094 | "\x0E\x7A\xA6\xC5\xAE\xFA\x15\x2C" | ||
16095 | "\x51\x71\xF1\xDC\x22\xB6\xAC\xD8" | ||
16096 | "\x19\x24\x44\xBC\x0C\xFB\x3C\x2D" | ||
16097 | "\xB1\x50\x47\x15\x0E\xDB\xB6\xD7" | ||
16098 | "\xE8\x61\xE5\x95\x52\x1E\x3E\x49" | ||
16099 | "\x70\xE9\x66\x04\x4C\xE1\xAF\xBD" | ||
16100 | "\xDD\x15\x3B\x20\x59\x24\xFF\xB0" | ||
16101 | "\x39\xAA\xE7\xBF\x23\xA3\x6E\xD5" | ||
16102 | "\x15\xF0\x61\x4F\xAE\x89\x10\x58" | ||
16103 | "\x5A\x33\x95\x52\x2A\xB5\x77\x9C" | ||
16104 | "\xA5\x43\x80\x40\x27\x2D\xAE\xD9" | ||
16105 | "\x3F\xE0\x80\x94\x78\x79\xCB\x7E" | ||
16106 | "\xAD\x12\x44\x4C\xEC\x27\xB0\xEE" | ||
16107 | "\x0B\x05\x2A\x82\x99\x58\xBB\x7A" | ||
16108 | "\x8D\x6D\x9D\x8E\xE2\x8E\xE7\x93" | ||
16109 | "\x2F\xB3\x09\x8D\x06\xD5\xEE\x70" | ||
16110 | "\x16\xAE\x35\xC5\x52\x0F\x46\x1F" | ||
16111 | "\x71\xF9\x5E\xF2\x67\xDC\x98\x2F" | ||
16112 | "\xA3\x23\xAA\xD5\xD0\x49\xF4\xA6" | ||
16113 | "\xF6\xB8\x32\xCD\xD6\x85\x73\x60" | ||
16114 | "\x59\x20\xE7\x55\x0E\x91\xE2\x0C" | ||
16115 | "\x3F\x1C\xEB\x3D\xDF\x52\x64\xF2" | ||
16116 | "\x7D\x8B\x5D\x63\x16\xB9\xB2\x5D" | ||
16117 | "\x5E\xAB\xB2\x97\xAB\x78\x44\xE7" | ||
16118 | "\xC6\x72\x20\xC5\x90\x9B\xDC\x5D" | ||
16119 | "\xB0\xEF\x44\xEF\x87\x31\x8D\xF4" | ||
16120 | "\xFB\x81\x5D\xF7\x96\x96\xD4\x50" | ||
16121 | "\x89\xA7\xF6\xB9\x67\x76\x40\x9E" | ||
16122 | "\x9D\x40\xD5\x2C\x30\xB8\x01\x8F" | ||
16123 | "\xE4\x7B\x71\x48\xA9\xA0\xA0\x1D" | ||
16124 | "\x87\x52\xA4\x91\xA9\xD7\xA9\x51" | ||
16125 | "\xD9\x59\xF7\xCC\x63\x22\xC1\x8D" | ||
16126 | "\x84\x7B\xD8\x22\x32\x5C\x6F\x1D" | ||
16127 | "\x6E\x9F\xFA\xDD\x49\x40\xDC\x37" | ||
16128 | "\x14\x8C\xE1\x80\x1B\xDD\x36\x2A" | ||
16129 | "\xD0\xE9\x54\x99\x5D\xBA\x3B\x11" | ||
16130 | "\xD8\xFE\xC9\x5B\x5C\x25\xE5\x76" | ||
16131 | "\xFB\xF2\x3F", | ||
16132 | .ilen = 499, | ||
16133 | .result = "\x50\xB9\x22\xAE\x17\x80\x0C\x75" | ||
16134 | "\xDE\x47\xD3\x3C\xA5\x0E\x9A\x03" | ||
16135 | "\x6C\xF8\x61\xCA\x33\xBF\x28\x91" | ||
16136 | "\x1D\x86\xEF\x58\xE4\x4D\xB6\x1F" | ||
16137 | "\xAB\x14\x7D\x09\x72\xDB\x44\xD0" | ||
16138 | "\x39\xA2\x0B\x97\x00\x69\xF5\x5E" | ||
16139 | "\xC7\x30\xBC\x25\x8E\x1A\x83\xEC" | ||
16140 | "\x55\xE1\x4A\xB3\x1C\xA8\x11\x7A" | ||
16141 | "\x06\x6F\xD8\x41\xCD\x36\x9F\x08" | ||
16142 | "\x94\xFD\x66\xF2\x5B\xC4\x2D\xB9" | ||
16143 | "\x22\x8B\x17\x80\xE9\x52\xDE\x47" | ||
16144 | "\xB0\x19\xA5\x0E\x77\x03\x6C\xD5" | ||
16145 | "\x3E\xCA\x33\x9C\x05\x91\xFA\x63" | ||
16146 | "\xEF\x58\xC1\x2A\xB6\x1F\x88\x14" | ||
16147 | "\x7D\xE6\x4F\xDB\x44\xAD\x16\xA2" | ||
16148 | "\x0B\x74\x00\x69\xD2\x3B\xC7\x30" | ||
16149 | "\x99\x02\x8E\xF7\x60\xEC\x55\xBE" | ||
16150 | "\x27\xB3\x1C\x85\x11\x7A\xE3\x4C" | ||
16151 | "\xD8\x41\xAA\x13\x9F\x08\x71\xFD" | ||
16152 | "\x66\xCF\x38\xC4\x2D\x96\x22\x8B" | ||
16153 | "\xF4\x5D\xE9\x52\xBB\x24\xB0\x19" | ||
16154 | "\x82\x0E\x77\xE0\x49\xD5\x3E\xA7" | ||
16155 | "\x10\x9C\x05\x6E\xFA\x63\xCC\x35" | ||
16156 | "\xC1\x2A\x93\x1F\x88\xF1\x5A\xE6" | ||
16157 | "\x4F\xB8\x21\xAD\x16\x7F\x0B\x74" | ||
16158 | "\xDD\x46\xD2\x3B\xA4\x0D\x99\x02" | ||
16159 | "\x6B\xF7\x60\xC9\x32\xBE\x27\x90" | ||
16160 | "\x1C\x85\xEE\x57\xE3\x4C\xB5\x1E" | ||
16161 | "\xAA\x13\x7C\x08\x71\xDA\x43\xCF" | ||
16162 | "\x38\xA1\x0A\x96\xFF\x68\xF4\x5D" | ||
16163 | "\xC6\x2F\xBB\x24\x8D\x19\x82\xEB" | ||
16164 | "\x54\xE0\x49\xB2\x1B\xA7\x10\x79" | ||
16165 | "\x05\x6E\xD7\x40\xCC\x35\x9E\x07" | ||
16166 | "\x93\xFC\x65\xF1\x5A\xC3\x2C\xB8" | ||
16167 | "\x21\x8A\x16\x7F\xE8\x51\xDD\x46" | ||
16168 | "\xAF\x18\xA4\x0D\x76\x02\x6B\xD4" | ||
16169 | "\x3D\xC9\x32\x9B\x04\x90\xF9\x62" | ||
16170 | "\xEE\x57\xC0\x29\xB5\x1E\x87\x13" | ||
16171 | "\x7C\xE5\x4E\xDA\x43\xAC\x15\xA1" | ||
16172 | "\x0A\x73\xFF\x68\xD1\x3A\xC6\x2F" | ||
16173 | "\x98\x01\x8D\xF6\x5F\xEB\x54\xBD" | ||
16174 | "\x26\xB2\x1B\x84\x10\x79\xE2\x4B" | ||
16175 | "\xD7\x40\xA9\x12\x9E\x07\x70\xFC" | ||
16176 | "\x65\xCE\x37\xC3\x2C\x95\x21\x8A" | ||
16177 | "\xF3\x5C\xE8\x51\xBA\x23\xAF\x18" | ||
16178 | "\x81\x0D\x76\xDF\x48\xD4\x3D\xA6" | ||
16179 | "\x0F\x9B\x04\x6D\xF9\x62\xCB\x34" | ||
16180 | "\xC0\x29\x92\x1E\x87\xF0\x59\xE5" | ||
16181 | "\x4E\xB7\x20\xAC\x15\x7E\x0A\x73" | ||
16182 | "\xDC\x45\xD1\x3A\xA3\x0C\x98\x01" | ||
16183 | "\x6A\xF6\x5F\xC8\x31\xBD\x26\x8F" | ||
16184 | "\x1B\x84\xED\x56\xE2\x4B\xB4\x1D" | ||
16185 | "\xA9\x12\x7B\x07\x70\xD9\x42\xCE" | ||
16186 | "\x37\xA0\x09\x95\xFE\x67\xF3\x5C" | ||
16187 | "\xC5\x2E\xBA\x23\x8C\x18\x81\xEA" | ||
16188 | "\x53\xDF\x48\xB1\x1A\xA6\x0F\x78" | ||
16189 | "\x04\x6D\xD6\x3F\xCB\x34\x9D\x06" | ||
16190 | "\x92\xFB\x64\xF0\x59\xC2\x2B\xB7" | ||
16191 | "\x20\x89\x15\x7E\xE7\x50\xDC\x45" | ||
16192 | "\xAE\x17\xA3\x0C\x75\x01\x6A\xD3" | ||
16193 | "\x3C\xC8\x31\x9A\x03\x8F\xF8\x61" | ||
16194 | "\xED\x56\xBF\x28\xB4\x1D\x86\x12" | ||
16195 | "\x7B\xE4\x4D", | ||
16196 | .rlen = 499, | ||
16197 | .also_non_np = 1, | ||
16198 | .np = 2, | ||
16199 | .tap = { 499 - 16, 16 }, | ||
16200 | }, | ||
11776 | }; | 16201 | }; |
11777 | 16202 | ||
11778 | static struct cipher_testvec aes_ctr_rfc3686_enc_tv_template[] = { | 16203 | static struct cipher_testvec aes_ctr_rfc3686_enc_tv_template[] = { |
@@ -16291,8 +20716,7 @@ static struct cipher_testvec camellia_enc_tv_template[] = { | |||
16291 | .result = "\x9a\xcc\x23\x7d\xff\x16\xd7\x6c" | 20716 | .result = "\x9a\xcc\x23\x7d\xff\x16\xd7\x6c" |
16292 | "\x20\xef\x7c\x91\x9e\x3a\x75\x09", | 20717 | "\x20\xef\x7c\x91\x9e\x3a\x75\x09", |
16293 | .rlen = 16, | 20718 | .rlen = 16, |
16294 | }, | 20719 | }, { /* Generated with Crypto++ */ |
16295 | { /* Generated with Crypto++ */ | ||
16296 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" | 20720 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" |
16297 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" | 20721 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" |
16298 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" | 20722 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" |
@@ -16303,18 +20727,130 @@ static struct cipher_testvec camellia_enc_tv_template[] = { | |||
16303 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 20727 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16304 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 20728 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16305 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 20729 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16306 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 20730 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16307 | .ilen = 48, | 20731 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
20732 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
20733 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
20734 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
20735 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
20736 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
20737 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
20738 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
20739 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
20740 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
20741 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
20742 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
20743 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
20744 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
20745 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
20746 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
20747 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
20748 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
20749 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
20750 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
20751 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
20752 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
20753 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
20754 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
20755 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
20756 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
20757 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
20758 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
20759 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
20760 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
20761 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
20762 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
20763 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
20764 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
20765 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
20766 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
20767 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
20768 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
20769 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
20770 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
20771 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
20772 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
20773 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
20774 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
20775 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
20776 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
20777 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
20778 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
20779 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
20780 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
20781 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
20782 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
20783 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
20784 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
20785 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
20786 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
20787 | .ilen = 496, | ||
16308 | .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" | 20788 | .result = "\xED\xCD\xDB\xB8\x68\xCE\xBD\xEA" |
16309 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" | 20789 | "\x9D\x9D\xCD\x9F\x4F\xFC\x4D\xB7" |
16310 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" | 20790 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" |
16311 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" | 20791 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" |
16312 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" | 20792 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" |
16313 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A", | 20793 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A" |
16314 | .rlen = 48, | 20794 | "\x8D\x7D\x1B\x9B\xC7\x68\x72\xF8" |
20795 | "\x01\x9B\x17\x0A\x29\xE7\x61\x28" | ||
20796 | "\x7F\xA7\x50\xCA\x20\x2C\x96\x3B" | ||
20797 | "\x6E\x5C\x5D\x3F\xB5\x7F\xF3\x2B" | ||
20798 | "\x04\xEF\x9D\xD4\xCE\x41\x28\x8E" | ||
20799 | "\x83\x54\xAE\x7C\x82\x46\x10\xC9" | ||
20800 | "\xC4\x8A\x1E\x1F\x4C\xA9\xFC\xEC" | ||
20801 | "\x3C\x8C\x30\xFC\x59\xD2\x54\xC4" | ||
20802 | "\x6F\x50\xC6\xCA\x8C\x14\x5B\x9C" | ||
20803 | "\x18\x56\x5B\xF8\x33\x0E\x4A\xDB" | ||
20804 | "\xEC\xB5\x6E\x5B\x31\xC4\x0E\x98" | ||
20805 | "\x9F\x32\xBA\xA2\x18\xCF\x55\x43" | ||
20806 | "\xFE\x80\x8F\x60\xCF\x05\x30\x9B" | ||
20807 | "\x70\x50\x1E\x9C\x08\x87\xE6\x20" | ||
20808 | "\xD2\xF3\x27\xF8\x2A\x8D\x12\xB2" | ||
20809 | "\xBC\x5F\xFE\x52\x52\xF6\x7F\xB6" | ||
20810 | "\xB8\x30\x86\x3B\x0F\x94\x1E\x79" | ||
20811 | "\x13\x94\x35\xA2\xB1\x35\x5B\x05" | ||
20812 | "\x2A\x98\x6B\x96\x4C\xB1\x20\xBE" | ||
20813 | "\xB6\x14\xC2\x06\xBF\xFD\x5F\x2A" | ||
20814 | "\xF5\x33\xC8\x19\x45\x14\x44\x5D" | ||
20815 | "\xFE\x94\x7B\xBB\x63\x13\x57\xC3" | ||
20816 | "\x2A\x8F\x6C\x11\x2A\x07\xA7\x6A" | ||
20817 | "\xBF\x20\xD3\x99\xC6\x00\x0B\xBF" | ||
20818 | "\x83\x46\x25\x3A\xB0\xF6\xC5\xC8" | ||
20819 | "\x00\xCA\xE5\x28\x4A\x7C\x95\x9C" | ||
20820 | "\x7B\x43\xAB\xF9\xE4\xF8\x74\xAB" | ||
20821 | "\xA7\xB8\x9C\x0F\x53\x7B\xB6\x74" | ||
20822 | "\x60\x64\x0D\x1C\x80\xD1\x20\x9E" | ||
20823 | "\xDC\x14\x27\x9B\xFC\xBD\x5C\x96" | ||
20824 | "\xD2\x51\xDC\x96\xEE\xE5\xEA\x2B" | ||
20825 | "\x02\x7C\xAA\x3C\xDC\x9D\x7B\x01" | ||
20826 | "\x20\xC3\xE1\x0B\xDD\xAB\xF3\x1E" | ||
20827 | "\x19\xA8\x84\x29\x5F\xCC\xC3\x5B" | ||
20828 | "\xE4\x33\x59\xDC\x12\xEB\x2B\x4D" | ||
20829 | "\x5B\x55\x23\xB7\x40\x31\xDE\xEE" | ||
20830 | "\x18\xC9\x3C\x4D\xBC\xED\xE0\x42" | ||
20831 | "\xAD\xDE\xA0\xA3\xC3\xFE\x44\xD3" | ||
20832 | "\xE1\x9A\xDA\xAB\x32\xFC\x1A\xBF" | ||
20833 | "\x63\xA9\xF0\x6A\x08\x46\xBD\x48" | ||
20834 | "\x83\x06\xAB\x82\x99\x01\x16\x1A" | ||
20835 | "\x03\x36\xC5\x59\x6B\xB8\x8C\x9F" | ||
20836 | "\xC6\x51\x3D\xE5\x7F\xBF\xAB\xBC" | ||
20837 | "\xC9\xA1\x88\x34\x5F\xA9\x7C\x3B" | ||
20838 | "\x9F\x1B\x98\x2B\x4F\xFB\x9B\xF0" | ||
20839 | "\xCD\xB6\x45\xB2\x29\x2E\x34\x23" | ||
20840 | "\xA9\x97\xC0\x22\x8C\x42\x9B\x5F" | ||
20841 | "\x40\xC8\xD7\x3D\x82\x9A\x6F\xAA" | ||
20842 | "\x74\x83\x29\x05\xE8\xC4\x4D\x01" | ||
20843 | "\xB5\xE5\x84\x3F\x7F\xD3\xE0\x99" | ||
20844 | "\xDA\xE7\x6F\x30\xFD\xAA\x92\x30" | ||
20845 | "\xA5\x46\x8B\xA2\xE6\x58\x62\x7C" | ||
20846 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" | ||
20847 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" | ||
20848 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" | ||
20849 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB", | ||
20850 | .rlen = 496, | ||
16315 | .also_non_np = 1, | 20851 | .also_non_np = 1, |
16316 | .np = 2, | 20852 | .np = 2, |
16317 | .tap = { 48 - 16, 16 }, | 20853 | .tap = { 496 - 16, 16 }, |
16318 | }, | 20854 | }, |
16319 | }; | 20855 | }; |
16320 | 20856 | ||
@@ -16352,8 +20888,7 @@ static struct cipher_testvec camellia_dec_tv_template[] = { | |||
16352 | .result = "\x01\x23\x45\x67\x89\xab\xcd\xef" | 20888 | .result = "\x01\x23\x45\x67\x89\xab\xcd\xef" |
16353 | "\xfe\xdc\xba\x98\x76\x54\x32\x10", | 20889 | "\xfe\xdc\xba\x98\x76\x54\x32\x10", |
16354 | .rlen = 16, | 20890 | .rlen = 16, |
16355 | }, | 20891 | }, { /* Generated with Crypto++ */ |
16356 | { /* Generated with Crypto++ */ | ||
16357 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" | 20892 | .key = "\x3F\x85\x62\x3F\x1C\xF9\xD6\x1C" |
16358 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" | 20893 | "\xF9\xD6\xB3\x90\x6D\x4A\x90\x6D" |
16359 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" | 20894 | "\x4A\x27\x04\xE1\x27\x04\xE1\xBE" |
@@ -16364,18 +20899,130 @@ static struct cipher_testvec camellia_dec_tv_template[] = { | |||
16364 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" | 20899 | "\xA5\xFF\x6F\x43\x0F\xBA\x32\x04" |
16365 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" | 20900 | "\xB3\xC2\xB9\x03\xAA\x91\x56\x29" |
16366 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" | 20901 | "\x0D\xD0\xFD\xC4\x65\xA5\x69\xB9" |
16367 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A", | 20902 | "\xF1\xF6\xB1\xA5\xB2\x75\x4F\x8A" |
16368 | .ilen = 48, | 20903 | "\x8D\x7D\x1B\x9B\xC7\x68\x72\xF8" |
20904 | "\x01\x9B\x17\x0A\x29\xE7\x61\x28" | ||
20905 | "\x7F\xA7\x50\xCA\x20\x2C\x96\x3B" | ||
20906 | "\x6E\x5C\x5D\x3F\xB5\x7F\xF3\x2B" | ||
20907 | "\x04\xEF\x9D\xD4\xCE\x41\x28\x8E" | ||
20908 | "\x83\x54\xAE\x7C\x82\x46\x10\xC9" | ||
20909 | "\xC4\x8A\x1E\x1F\x4C\xA9\xFC\xEC" | ||
20910 | "\x3C\x8C\x30\xFC\x59\xD2\x54\xC4" | ||
20911 | "\x6F\x50\xC6\xCA\x8C\x14\x5B\x9C" | ||
20912 | "\x18\x56\x5B\xF8\x33\x0E\x4A\xDB" | ||
20913 | "\xEC\xB5\x6E\x5B\x31\xC4\x0E\x98" | ||
20914 | "\x9F\x32\xBA\xA2\x18\xCF\x55\x43" | ||
20915 | "\xFE\x80\x8F\x60\xCF\x05\x30\x9B" | ||
20916 | "\x70\x50\x1E\x9C\x08\x87\xE6\x20" | ||
20917 | "\xD2\xF3\x27\xF8\x2A\x8D\x12\xB2" | ||
20918 | "\xBC\x5F\xFE\x52\x52\xF6\x7F\xB6" | ||
20919 | "\xB8\x30\x86\x3B\x0F\x94\x1E\x79" | ||
20920 | "\x13\x94\x35\xA2\xB1\x35\x5B\x05" | ||
20921 | "\x2A\x98\x6B\x96\x4C\xB1\x20\xBE" | ||
20922 | "\xB6\x14\xC2\x06\xBF\xFD\x5F\x2A" | ||
20923 | "\xF5\x33\xC8\x19\x45\x14\x44\x5D" | ||
20924 | "\xFE\x94\x7B\xBB\x63\x13\x57\xC3" | ||
20925 | "\x2A\x8F\x6C\x11\x2A\x07\xA7\x6A" | ||
20926 | "\xBF\x20\xD3\x99\xC6\x00\x0B\xBF" | ||
20927 | "\x83\x46\x25\x3A\xB0\xF6\xC5\xC8" | ||
20928 | "\x00\xCA\xE5\x28\x4A\x7C\x95\x9C" | ||
20929 | "\x7B\x43\xAB\xF9\xE4\xF8\x74\xAB" | ||
20930 | "\xA7\xB8\x9C\x0F\x53\x7B\xB6\x74" | ||
20931 | "\x60\x64\x0D\x1C\x80\xD1\x20\x9E" | ||
20932 | "\xDC\x14\x27\x9B\xFC\xBD\x5C\x96" | ||
20933 | "\xD2\x51\xDC\x96\xEE\xE5\xEA\x2B" | ||
20934 | "\x02\x7C\xAA\x3C\xDC\x9D\x7B\x01" | ||
20935 | "\x20\xC3\xE1\x0B\xDD\xAB\xF3\x1E" | ||
20936 | "\x19\xA8\x84\x29\x5F\xCC\xC3\x5B" | ||
20937 | "\xE4\x33\x59\xDC\x12\xEB\x2B\x4D" | ||
20938 | "\x5B\x55\x23\xB7\x40\x31\xDE\xEE" | ||
20939 | "\x18\xC9\x3C\x4D\xBC\xED\xE0\x42" | ||
20940 | "\xAD\xDE\xA0\xA3\xC3\xFE\x44\xD3" | ||
20941 | "\xE1\x9A\xDA\xAB\x32\xFC\x1A\xBF" | ||
20942 | "\x63\xA9\xF0\x6A\x08\x46\xBD\x48" | ||
20943 | "\x83\x06\xAB\x82\x99\x01\x16\x1A" | ||
20944 | "\x03\x36\xC5\x59\x6B\xB8\x8C\x9F" | ||
20945 | "\xC6\x51\x3D\xE5\x7F\xBF\xAB\xBC" | ||
20946 | "\xC9\xA1\x88\x34\x5F\xA9\x7C\x3B" | ||
20947 | "\x9F\x1B\x98\x2B\x4F\xFB\x9B\xF0" | ||
20948 | "\xCD\xB6\x45\xB2\x29\x2E\x34\x23" | ||
20949 | "\xA9\x97\xC0\x22\x8C\x42\x9B\x5F" | ||
20950 | "\x40\xC8\xD7\x3D\x82\x9A\x6F\xAA" | ||
20951 | "\x74\x83\x29\x05\xE8\xC4\x4D\x01" | ||
20952 | "\xB5\xE5\x84\x3F\x7F\xD3\xE0\x99" | ||
20953 | "\xDA\xE7\x6F\x30\xFD\xAA\x92\x30" | ||
20954 | "\xA5\x46\x8B\xA2\xE6\x58\x62\x7C" | ||
20955 | "\x2C\x35\x1B\x38\x85\x7D\xE8\xF3" | ||
20956 | "\x87\x4F\xDA\xD8\x5F\xFC\xB6\x44" | ||
20957 | "\xD0\xE3\x9B\x8B\xBF\xD6\xB8\xC4" | ||
20958 | "\x73\xAE\x1D\x8B\x5B\x74\x8B\xCB", | ||
20959 | .ilen = 496, | ||
16369 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 20960 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
16370 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 20961 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
16371 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 20962 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16372 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 20963 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16373 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 20964 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16374 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 20965 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16375 | .rlen = 48, | 20966 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
20967 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
20968 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
20969 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
20970 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
20971 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
20972 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
20973 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
20974 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
20975 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
20976 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
20977 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
20978 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
20979 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
20980 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
20981 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
20982 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
20983 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
20984 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
20985 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
20986 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
20987 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
20988 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
20989 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
20990 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
20991 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
20992 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
20993 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
20994 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
20995 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
20996 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
20997 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
20998 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
20999 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21000 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21001 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21002 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21003 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21004 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21005 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21006 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21007 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21008 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21009 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21010 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21011 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21012 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21013 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21014 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21015 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21016 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21017 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21018 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21019 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21020 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21021 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
21022 | .rlen = 496, | ||
16376 | .also_non_np = 1, | 21023 | .also_non_np = 1, |
16377 | .np = 2, | 21024 | .np = 2, |
16378 | .tap = { 48 - 16, 16 }, | 21025 | .tap = { 496 - 16, 16 }, |
16379 | }, | 21026 | }, |
16380 | }; | 21027 | }; |
16381 | 21028 | ||
@@ -16407,8 +21054,7 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | |||
16407 | "\x19\xb4\x3e\x57\x1c\x02\x5e\xa0" | 21054 | "\x19\xb4\x3e\x57\x1c\x02\x5e\xa0" |
16408 | "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", | 21055 | "\x15\x78\xe0\x5e\xf2\xcb\x87\x16", |
16409 | .rlen = 32, | 21056 | .rlen = 32, |
16410 | }, | 21057 | }, { /* Generated with Crypto++ */ |
16411 | { /* Generated with Crypto++ */ | ||
16412 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 21058 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16413 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 21059 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
16414 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | 21060 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" |
@@ -16421,18 +21067,130 @@ static struct cipher_testvec camellia_cbc_enc_tv_template[] = { | |||
16421 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21067 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16422 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21068 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16423 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21069 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16424 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 21070 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16425 | .ilen = 48, | 21071 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
21072 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
21073 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
21074 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21075 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21076 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21077 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21078 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21079 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21080 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21081 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
21082 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
21083 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
21084 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
21085 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
21086 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
21087 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
21088 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
21089 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
21090 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
21091 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
21092 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
21093 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
21094 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
21095 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
21096 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
21097 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
21098 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
21099 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
21100 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
21101 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
21102 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
21103 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
21104 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21105 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21106 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21107 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21108 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21109 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21110 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21111 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21112 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21113 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21114 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21115 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21116 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21117 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21118 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21119 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21120 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21121 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21122 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21123 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21124 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21125 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21126 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
21127 | .ilen = 496, | ||
16426 | .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" | 21128 | .result = "\xCD\x3E\x2A\x3B\x3E\x94\xC5\x77" |
16427 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" | 21129 | "\xBA\xBB\x5B\xB1\xDE\x7B\xA4\x40" |
16428 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" | 21130 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" |
16429 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" | 21131 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" |
16430 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" | 21132 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" |
16431 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01", | 21133 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01" |
16432 | .rlen = 48, | 21134 | "\x56\x2E\x10\xC2\x2C\xFF\xC6\x83" |
21135 | "\xB5\xDC\x4F\x63\xAD\x0E\x63\x5E" | ||
21136 | "\x56\xC8\x18\x3D\x79\x86\x97\xEF" | ||
21137 | "\x57\x0E\x63\xA1\xC1\x41\x48\xB8" | ||
21138 | "\x98\xB7\x51\x6D\x18\xF6\x19\x82" | ||
21139 | "\x37\x49\x88\xA4\xEF\x91\x21\x47" | ||
21140 | "\x03\x28\xEA\x42\xF4\xFB\x7A\x58" | ||
21141 | "\x28\x90\x77\x46\xD8\xD2\x35\x16" | ||
21142 | "\x44\xA9\x9E\x49\x52\x2A\xE4\x16" | ||
21143 | "\x5D\xF7\x65\xEB\x0F\xC9\x29\xE6" | ||
21144 | "\xCF\x76\x91\x89\x8A\x94\x39\xFA" | ||
21145 | "\x6B\x5F\x63\x53\x74\x43\x91\xF5" | ||
21146 | "\x3F\xBC\x88\x53\xB2\x1A\x02\x3F" | ||
21147 | "\x9D\x32\x84\xEB\x56\x28\xD6\x06" | ||
21148 | "\xD5\xB2\x20\xA9\xFC\xC3\x76\x62" | ||
21149 | "\x32\xCC\x86\xC8\x36\x67\x5E\x7E" | ||
21150 | "\xA4\xAA\x15\x63\x6B\xA9\x86\xAF" | ||
21151 | "\x1A\x52\x82\x36\x5F\xF4\x3F\x7A" | ||
21152 | "\x9B\x78\x62\x3B\x02\x28\x60\xB3" | ||
21153 | "\xBA\x82\xB1\xDD\xC9\x60\x8F\x47" | ||
21154 | "\xF1\x6B\xFE\xE5\x39\x34\xA0\x28" | ||
21155 | "\xA4\xB3\xC9\x7E\xED\x28\x8D\x70" | ||
21156 | "\xB2\x1D\xFD\xC6\x00\xCF\x1A\x94" | ||
21157 | "\x28\xF8\xC1\x34\xB7\x58\xA5\x6C" | ||
21158 | "\x1A\x9D\xE4\xE4\xF6\xB9\xB4\xB0" | ||
21159 | "\x5D\x51\x54\x9A\x53\xA0\xF9\x32" | ||
21160 | "\xBD\x31\x54\x14\x7B\x33\xEE\x17" | ||
21161 | "\xD3\xC7\x1F\x48\xBF\x0B\x22\xA2" | ||
21162 | "\x7D\x0C\xDF\xD0\x2E\x98\xFA\xD2" | ||
21163 | "\xFA\xCF\x24\x1D\x99\x9B\xD0\x7E" | ||
21164 | "\xF4\x4F\x88\xFF\x45\x99\x4A\xF4" | ||
21165 | "\xF2\x0A\x5B\x3B\x21\xAB\x92\xAE" | ||
21166 | "\x40\x78\x91\x95\xC4\x2F\xA3\xE8" | ||
21167 | "\x18\xC7\x07\xA6\xC8\xC0\x66\x33" | ||
21168 | "\x35\xC0\xB4\xA0\xF8\xEE\x1E\xF3" | ||
21169 | "\x40\xF5\x40\x54\xF1\x84\x8C\xEA" | ||
21170 | "\x27\x38\x1F\xF8\x77\xC7\xDF\xD8" | ||
21171 | "\x1D\xE2\xD9\x59\x40\x4F\x59\xD4" | ||
21172 | "\xF8\x17\x99\x8D\x58\x2D\x72\x44" | ||
21173 | "\x9D\x1D\x91\x64\xD6\x3F\x0A\x82" | ||
21174 | "\xC7\x57\x3D\xEF\xD3\x41\xFA\xA7" | ||
21175 | "\x68\xA3\xB8\xA5\x93\x74\x2E\x85" | ||
21176 | "\x4C\x9D\x69\x59\xCE\x15\xAE\xBF" | ||
21177 | "\x9C\x8F\x14\x64\x5D\x7F\xCF\x0B" | ||
21178 | "\xCE\x43\x5D\x28\xC0\x2F\xFB\x18" | ||
21179 | "\x79\x9A\xFC\x43\x16\x7C\x6B\x7B" | ||
21180 | "\x38\xB8\x48\x36\x66\x4E\x20\x43" | ||
21181 | "\xBA\x76\x13\x9A\xC3\xF2\xEB\x52" | ||
21182 | "\xD7\xDC\xB2\x67\x63\x14\x25\xCD" | ||
21183 | "\xB1\x13\x4B\xDE\x8C\x59\x21\x84" | ||
21184 | "\x81\x8D\x97\x23\x45\x33\x7C\xF3" | ||
21185 | "\xC5\xBC\x79\x95\xAA\x84\x68\x31" | ||
21186 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" | ||
21187 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" | ||
21188 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" | ||
21189 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20", | ||
21190 | .rlen = 496, | ||
16433 | .also_non_np = 1, | 21191 | .also_non_np = 1, |
16434 | .np = 2, | 21192 | .np = 2, |
16435 | .tap = { 48 - 16, 16 }, | 21193 | .tap = { 496 - 16, 16 }, |
16436 | }, | 21194 | }, |
16437 | }; | 21195 | }; |
16438 | 21196 | ||
@@ -16464,8 +21222,7 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | |||
16464 | "\x10\x11\x12\x13\x14\x15\x16\x17" | 21222 | "\x10\x11\x12\x13\x14\x15\x16\x17" |
16465 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", | 21223 | "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", |
16466 | .rlen = 32, | 21224 | .rlen = 32, |
16467 | }, | 21225 | }, { /* Generated with Crypto++ */ |
16468 | { /* Generated with Crypto++ */ | ||
16469 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 21226 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16470 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 21227 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
16471 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | 21228 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" |
@@ -16478,18 +21235,130 @@ static struct cipher_testvec camellia_cbc_dec_tv_template[] = { | |||
16478 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" | 21235 | "\x88\x39\xE3\xFD\x94\x4B\x25\x58" |
16479 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" | 21236 | "\xE1\x4B\xC4\x18\x7A\xFD\x17\x2B" |
16480 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" | 21237 | "\xB9\xF9\xC2\x27\x6A\xB6\x31\x27" |
16481 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01", | 21238 | "\xA6\xAD\xEF\xE5\x5D\xE4\x02\x01" |
16482 | .ilen = 48, | 21239 | "\x56\x2E\x10\xC2\x2C\xFF\xC6\x83" |
21240 | "\xB5\xDC\x4F\x63\xAD\x0E\x63\x5E" | ||
21241 | "\x56\xC8\x18\x3D\x79\x86\x97\xEF" | ||
21242 | "\x57\x0E\x63\xA1\xC1\x41\x48\xB8" | ||
21243 | "\x98\xB7\x51\x6D\x18\xF6\x19\x82" | ||
21244 | "\x37\x49\x88\xA4\xEF\x91\x21\x47" | ||
21245 | "\x03\x28\xEA\x42\xF4\xFB\x7A\x58" | ||
21246 | "\x28\x90\x77\x46\xD8\xD2\x35\x16" | ||
21247 | "\x44\xA9\x9E\x49\x52\x2A\xE4\x16" | ||
21248 | "\x5D\xF7\x65\xEB\x0F\xC9\x29\xE6" | ||
21249 | "\xCF\x76\x91\x89\x8A\x94\x39\xFA" | ||
21250 | "\x6B\x5F\x63\x53\x74\x43\x91\xF5" | ||
21251 | "\x3F\xBC\x88\x53\xB2\x1A\x02\x3F" | ||
21252 | "\x9D\x32\x84\xEB\x56\x28\xD6\x06" | ||
21253 | "\xD5\xB2\x20\xA9\xFC\xC3\x76\x62" | ||
21254 | "\x32\xCC\x86\xC8\x36\x67\x5E\x7E" | ||
21255 | "\xA4\xAA\x15\x63\x6B\xA9\x86\xAF" | ||
21256 | "\x1A\x52\x82\x36\x5F\xF4\x3F\x7A" | ||
21257 | "\x9B\x78\x62\x3B\x02\x28\x60\xB3" | ||
21258 | "\xBA\x82\xB1\xDD\xC9\x60\x8F\x47" | ||
21259 | "\xF1\x6B\xFE\xE5\x39\x34\xA0\x28" | ||
21260 | "\xA4\xB3\xC9\x7E\xED\x28\x8D\x70" | ||
21261 | "\xB2\x1D\xFD\xC6\x00\xCF\x1A\x94" | ||
21262 | "\x28\xF8\xC1\x34\xB7\x58\xA5\x6C" | ||
21263 | "\x1A\x9D\xE4\xE4\xF6\xB9\xB4\xB0" | ||
21264 | "\x5D\x51\x54\x9A\x53\xA0\xF9\x32" | ||
21265 | "\xBD\x31\x54\x14\x7B\x33\xEE\x17" | ||
21266 | "\xD3\xC7\x1F\x48\xBF\x0B\x22\xA2" | ||
21267 | "\x7D\x0C\xDF\xD0\x2E\x98\xFA\xD2" | ||
21268 | "\xFA\xCF\x24\x1D\x99\x9B\xD0\x7E" | ||
21269 | "\xF4\x4F\x88\xFF\x45\x99\x4A\xF4" | ||
21270 | "\xF2\x0A\x5B\x3B\x21\xAB\x92\xAE" | ||
21271 | "\x40\x78\x91\x95\xC4\x2F\xA3\xE8" | ||
21272 | "\x18\xC7\x07\xA6\xC8\xC0\x66\x33" | ||
21273 | "\x35\xC0\xB4\xA0\xF8\xEE\x1E\xF3" | ||
21274 | "\x40\xF5\x40\x54\xF1\x84\x8C\xEA" | ||
21275 | "\x27\x38\x1F\xF8\x77\xC7\xDF\xD8" | ||
21276 | "\x1D\xE2\xD9\x59\x40\x4F\x59\xD4" | ||
21277 | "\xF8\x17\x99\x8D\x58\x2D\x72\x44" | ||
21278 | "\x9D\x1D\x91\x64\xD6\x3F\x0A\x82" | ||
21279 | "\xC7\x57\x3D\xEF\xD3\x41\xFA\xA7" | ||
21280 | "\x68\xA3\xB8\xA5\x93\x74\x2E\x85" | ||
21281 | "\x4C\x9D\x69\x59\xCE\x15\xAE\xBF" | ||
21282 | "\x9C\x8F\x14\x64\x5D\x7F\xCF\x0B" | ||
21283 | "\xCE\x43\x5D\x28\xC0\x2F\xFB\x18" | ||
21284 | "\x79\x9A\xFC\x43\x16\x7C\x6B\x7B" | ||
21285 | "\x38\xB8\x48\x36\x66\x4E\x20\x43" | ||
21286 | "\xBA\x76\x13\x9A\xC3\xF2\xEB\x52" | ||
21287 | "\xD7\xDC\xB2\x67\x63\x14\x25\xCD" | ||
21288 | "\xB1\x13\x4B\xDE\x8C\x59\x21\x84" | ||
21289 | "\x81\x8D\x97\x23\x45\x33\x7C\xF3" | ||
21290 | "\xC5\xBC\x79\x95\xAA\x84\x68\x31" | ||
21291 | "\x2D\x1A\x68\xFE\xEC\x92\x94\xDA" | ||
21292 | "\x94\x2A\x6F\xD6\xFE\xE5\x76\x97" | ||
21293 | "\xF4\x6E\xEE\xCB\x2B\x95\x4E\x36" | ||
21294 | "\x5F\x74\x8C\x86\x5B\x71\xD0\x20", | ||
21295 | .ilen = 496, | ||
16483 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 21296 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
16484 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 21297 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
16485 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21298 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16486 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21299 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16487 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21300 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16488 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 21301 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16489 | .rlen = 48, | 21302 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
21303 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
21304 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
21305 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21306 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21307 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21308 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21309 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21310 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21311 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21312 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
21313 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
21314 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
21315 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
21316 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
21317 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
21318 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
21319 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
21320 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
21321 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
21322 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
21323 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
21324 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
21325 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
21326 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
21327 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
21328 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
21329 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
21330 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
21331 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
21332 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
21333 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
21334 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
21335 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21336 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21337 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21338 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21339 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21340 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21341 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21342 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21343 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21344 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21345 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21346 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21347 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21348 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21349 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21350 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21351 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21352 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21353 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21354 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21355 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21356 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21357 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
21358 | .rlen = 496, | ||
16490 | .also_non_np = 1, | 21359 | .also_non_np = 1, |
16491 | .np = 2, | 21360 | .np = 2, |
16492 | .tap = { 48 - 16, 16 }, | 21361 | .tap = { 496 - 16, 16 }, |
16493 | }, | 21362 | }, |
16494 | }; | 21363 | }; |
16495 | 21364 | ||
@@ -16507,17 +21376,128 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
16507 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21376 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16508 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21377 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16509 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21378 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16510 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 21379 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16511 | .ilen = 48, | 21380 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
21381 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" | ||
21382 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
21383 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21384 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21385 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21386 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21387 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21388 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21389 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21390 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
21391 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
21392 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
21393 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
21394 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
21395 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
21396 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
21397 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
21398 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
21399 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
21400 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
21401 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
21402 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
21403 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
21404 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
21405 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
21406 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
21407 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
21408 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
21409 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
21410 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
21411 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
21412 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
21413 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21414 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21415 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21416 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21417 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21418 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21419 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21420 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21421 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21422 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21423 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21424 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21425 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21426 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21427 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21428 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21429 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21430 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21431 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21432 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21433 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21434 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21435 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
21436 | .ilen = 496, | ||
16512 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | 21437 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" |
16513 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | 21438 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" |
16514 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | 21439 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" |
16515 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | 21440 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" |
16516 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | 21441 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" |
16517 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C", | 21442 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" |
16518 | .rlen = 48, | 21443 | "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0" |
16519 | }, | 21444 | "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C" |
16520 | { /* Generated with Crypto++ */ | 21445 | "\xE6\x7B\x08\xC3\x32\x66\x55\x4E" |
21446 | "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F" | ||
21447 | "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2" | ||
21448 | "\x82\x2F\x66\x83\x91\x51\xAE\xD7" | ||
21449 | "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9" | ||
21450 | "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9" | ||
21451 | "\x0F\xEA\x26\x32\xD1\x15\x19\x2D" | ||
21452 | "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60" | ||
21453 | "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B" | ||
21454 | "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1" | ||
21455 | "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3" | ||
21456 | "\x29\xE9\x59\x32\x1F\x30\x1C\x43" | ||
21457 | "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11" | ||
21458 | "\xAD\x38\x20\xC9\xB9\x8A\x64\x66" | ||
21459 | "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76" | ||
21460 | "\x36\x65\xB6\x81\x8F\x76\x09\xE5" | ||
21461 | "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD" | ||
21462 | "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A" | ||
21463 | "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80" | ||
21464 | "\xBF\x3C\x25\x06\x13\x84\xFA\x35" | ||
21465 | "\xF7\x40\xFA\xA1\x44\x13\x70\xD8" | ||
21466 | "\x01\xF9\x85\x15\x63\xEC\x7D\xB9" | ||
21467 | "\x02\xD8\xBA\x41\x6C\x92\x68\x66" | ||
21468 | "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD" | ||
21469 | "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47" | ||
21470 | "\x58\x8D\xFF\x19\x30\x75\x0D\x48" | ||
21471 | "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD" | ||
21472 | "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB" | ||
21473 | "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9" | ||
21474 | "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B" | ||
21475 | "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A" | ||
21476 | "\x79\xA2\x99\x28\x93\x1B\x00\x57" | ||
21477 | "\x35\x1E\x1A\x93\x90\xA4\x68\x95" | ||
21478 | "\x5E\x57\x40\xD5\xA9\xAA\x19\x48" | ||
21479 | "\xEC\xFF\x76\x77\xDC\x78\x89\x76" | ||
21480 | "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3" | ||
21481 | "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E" | ||
21482 | "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5" | ||
21483 | "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8" | ||
21484 | "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0" | ||
21485 | "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB" | ||
21486 | "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0" | ||
21487 | "\x76\x44\x45\xF3\x24\x11\x57\x98" | ||
21488 | "\x9A\x86\xB4\x12\x80\x28\x86\x20" | ||
21489 | "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1" | ||
21490 | "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D" | ||
21491 | "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79" | ||
21492 | "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01" | ||
21493 | "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38" | ||
21494 | "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F" | ||
21495 | "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF" | ||
21496 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | ||
21497 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | ||
21498 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D", | ||
21499 | .rlen = 496, | ||
21500 | }, { /* Generated with Crypto++ */ | ||
16521 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 21501 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16522 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 21502 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
16523 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | 21503 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" |
@@ -16531,19 +21511,131 @@ static struct cipher_testvec camellia_ctr_enc_tv_template[] = { | |||
16531 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21511 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16532 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21512 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16533 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" | 21513 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16534 | "\xDF\x76\x0D", | 21514 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
16535 | .ilen = 51, | 21515 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" |
21516 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
21517 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21518 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21519 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21520 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21521 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21522 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21523 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21524 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
21525 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
21526 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
21527 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
21528 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
21529 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
21530 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
21531 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
21532 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
21533 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
21534 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
21535 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
21536 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
21537 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
21538 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
21539 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
21540 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
21541 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
21542 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
21543 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
21544 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
21545 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
21546 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
21547 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21548 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21549 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21550 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21551 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21552 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21553 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21554 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21555 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21556 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21557 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21558 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21559 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21560 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21561 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21562 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21563 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21564 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21565 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21566 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21567 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21568 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21569 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
21570 | "\x2B\xC2\x59", | ||
21571 | .ilen = 499, | ||
16536 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" | 21572 | .result = "\xF3\x06\x3A\x84\xCD\xBA\x8E\x11" |
16537 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" | 21573 | "\xB7\x74\x6F\x5C\x97\xFB\x36\xFE" |
16538 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | 21574 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" |
16539 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | 21575 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" |
16540 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | 21576 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" |
16541 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" | 21577 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" |
16542 | "\x1E\x43\xEF", | 21578 | "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0" |
16543 | .rlen = 51, | 21579 | "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C" |
21580 | "\xE6\x7B\x08\xC3\x32\x66\x55\x4E" | ||
21581 | "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F" | ||
21582 | "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2" | ||
21583 | "\x82\x2F\x66\x83\x91\x51\xAE\xD7" | ||
21584 | "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9" | ||
21585 | "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9" | ||
21586 | "\x0F\xEA\x26\x32\xD1\x15\x19\x2D" | ||
21587 | "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60" | ||
21588 | "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B" | ||
21589 | "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1" | ||
21590 | "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3" | ||
21591 | "\x29\xE9\x59\x32\x1F\x30\x1C\x43" | ||
21592 | "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11" | ||
21593 | "\xAD\x38\x20\xC9\xB9\x8A\x64\x66" | ||
21594 | "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76" | ||
21595 | "\x36\x65\xB6\x81\x8F\x76\x09\xE5" | ||
21596 | "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD" | ||
21597 | "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A" | ||
21598 | "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80" | ||
21599 | "\xBF\x3C\x25\x06\x13\x84\xFA\x35" | ||
21600 | "\xF7\x40\xFA\xA1\x44\x13\x70\xD8" | ||
21601 | "\x01\xF9\x85\x15\x63\xEC\x7D\xB9" | ||
21602 | "\x02\xD8\xBA\x41\x6C\x92\x68\x66" | ||
21603 | "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD" | ||
21604 | "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47" | ||
21605 | "\x58\x8D\xFF\x19\x30\x75\x0D\x48" | ||
21606 | "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD" | ||
21607 | "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB" | ||
21608 | "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9" | ||
21609 | "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B" | ||
21610 | "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A" | ||
21611 | "\x79\xA2\x99\x28\x93\x1B\x00\x57" | ||
21612 | "\x35\x1E\x1A\x93\x90\xA4\x68\x95" | ||
21613 | "\x5E\x57\x40\xD5\xA9\xAA\x19\x48" | ||
21614 | "\xEC\xFF\x76\x77\xDC\x78\x89\x76" | ||
21615 | "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3" | ||
21616 | "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E" | ||
21617 | "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5" | ||
21618 | "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8" | ||
21619 | "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0" | ||
21620 | "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB" | ||
21621 | "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0" | ||
21622 | "\x76\x44\x45\xF3\x24\x11\x57\x98" | ||
21623 | "\x9A\x86\xB4\x12\x80\x28\x86\x20" | ||
21624 | "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1" | ||
21625 | "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D" | ||
21626 | "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79" | ||
21627 | "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01" | ||
21628 | "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38" | ||
21629 | "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F" | ||
21630 | "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF" | ||
21631 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | ||
21632 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | ||
21633 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" | ||
21634 | "\x93\x11\x1C", | ||
21635 | .rlen = 499, | ||
16544 | .also_non_np = 1, | 21636 | .also_non_np = 1, |
16545 | .np = 2, | 21637 | .np = 2, |
16546 | .tap = { 51 - 16, 16 }, | 21638 | .tap = { 499 - 16, 16 }, |
16547 | }, { /* Generated with Crypto++ */ | 21639 | }, { /* Generated with Crypto++ */ |
16548 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 21640 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16549 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 21641 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -16695,17 +21787,128 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
16695 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" | 21787 | "\xDE\x71\x58\xD4\x15\xD1\xC1\xA4" |
16696 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | 21788 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" |
16697 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | 21789 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" |
16698 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C", | 21790 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" |
16699 | .ilen = 48, | 21791 | "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0" |
21792 | "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C" | ||
21793 | "\xE6\x7B\x08\xC3\x32\x66\x55\x4E" | ||
21794 | "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F" | ||
21795 | "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2" | ||
21796 | "\x82\x2F\x66\x83\x91\x51\xAE\xD7" | ||
21797 | "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9" | ||
21798 | "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9" | ||
21799 | "\x0F\xEA\x26\x32\xD1\x15\x19\x2D" | ||
21800 | "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60" | ||
21801 | "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B" | ||
21802 | "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1" | ||
21803 | "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3" | ||
21804 | "\x29\xE9\x59\x32\x1F\x30\x1C\x43" | ||
21805 | "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11" | ||
21806 | "\xAD\x38\x20\xC9\xB9\x8A\x64\x66" | ||
21807 | "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76" | ||
21808 | "\x36\x65\xB6\x81\x8F\x76\x09\xE5" | ||
21809 | "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD" | ||
21810 | "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A" | ||
21811 | "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80" | ||
21812 | "\xBF\x3C\x25\x06\x13\x84\xFA\x35" | ||
21813 | "\xF7\x40\xFA\xA1\x44\x13\x70\xD8" | ||
21814 | "\x01\xF9\x85\x15\x63\xEC\x7D\xB9" | ||
21815 | "\x02\xD8\xBA\x41\x6C\x92\x68\x66" | ||
21816 | "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD" | ||
21817 | "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47" | ||
21818 | "\x58\x8D\xFF\x19\x30\x75\x0D\x48" | ||
21819 | "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD" | ||
21820 | "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB" | ||
21821 | "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9" | ||
21822 | "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B" | ||
21823 | "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A" | ||
21824 | "\x79\xA2\x99\x28\x93\x1B\x00\x57" | ||
21825 | "\x35\x1E\x1A\x93\x90\xA4\x68\x95" | ||
21826 | "\x5E\x57\x40\xD5\xA9\xAA\x19\x48" | ||
21827 | "\xEC\xFF\x76\x77\xDC\x78\x89\x76" | ||
21828 | "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3" | ||
21829 | "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E" | ||
21830 | "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5" | ||
21831 | "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8" | ||
21832 | "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0" | ||
21833 | "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB" | ||
21834 | "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0" | ||
21835 | "\x76\x44\x45\xF3\x24\x11\x57\x98" | ||
21836 | "\x9A\x86\xB4\x12\x80\x28\x86\x20" | ||
21837 | "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1" | ||
21838 | "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D" | ||
21839 | "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79" | ||
21840 | "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01" | ||
21841 | "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38" | ||
21842 | "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F" | ||
21843 | "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF" | ||
21844 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | ||
21845 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | ||
21846 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D", | ||
21847 | .ilen = 496, | ||
16700 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 21848 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
16701 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 21849 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
16702 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21850 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16703 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21851 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16704 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21852 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16705 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48", | 21853 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16706 | .rlen = 48, | 21854 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
16707 | }, | 21855 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" |
16708 | { /* Generated with Crypto++ */ | 21856 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" |
21857 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21858 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21859 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21860 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21861 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21862 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21863 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21864 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
21865 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
21866 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
21867 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
21868 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
21869 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
21870 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
21871 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
21872 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
21873 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
21874 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
21875 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
21876 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
21877 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
21878 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
21879 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
21880 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
21881 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
21882 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
21883 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
21884 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
21885 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
21886 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
21887 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
21888 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
21889 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
21890 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
21891 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
21892 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
21893 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
21894 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
21895 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
21896 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
21897 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
21898 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
21899 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
21900 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
21901 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
21902 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
21903 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
21904 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
21905 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
21906 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
21907 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
21908 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
21909 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7", | ||
21910 | .rlen = 496, | ||
21911 | }, { /* Generated with Crypto++ */ | ||
16709 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 21912 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16710 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 21913 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
16711 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" | 21914 | "\x27\x04\xE1\x27\x04\xE1\xBE\x9B" |
@@ -16719,19 +21922,131 @@ static struct cipher_testvec camellia_ctr_dec_tv_template[] = { | |||
16719 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" | 21922 | "\xC9\x28\x74\xA6\x6B\xC7\x95\xA6" |
16720 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" | 21923 | "\x6C\x77\xF7\x2F\xDF\xC7\xBB\x85" |
16721 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" | 21924 | "\x60\xFC\xE8\x94\xE8\xB5\x09\x2C" |
16722 | "\x1E\x43\xEF", | 21925 | "\x1E\x43\xEF\x6C\xE9\x98\xC5\xA0" |
16723 | .ilen = 51, | 21926 | "\x7B\x13\xE5\x7F\xF8\x49\x9A\x8C" |
21927 | "\xE6\x7B\x08\xC3\x32\x66\x55\x4E" | ||
21928 | "\xA5\x44\x1D\x2C\x18\xC7\x29\x1F" | ||
21929 | "\x61\x28\x4A\xE3\xCD\xE5\x47\xB2" | ||
21930 | "\x82\x2F\x66\x83\x91\x51\xAE\xD7" | ||
21931 | "\x1C\x91\x3C\x57\xE3\x1D\x5A\xC9" | ||
21932 | "\xFD\xC5\x58\x58\xEF\xCC\x33\xC9" | ||
21933 | "\x0F\xEA\x26\x32\xD1\x15\x19\x2D" | ||
21934 | "\x25\xB4\x7F\xB0\xDF\xFB\x88\x60" | ||
21935 | "\x4E\x4D\x06\x7D\xCC\x1F\xED\x3B" | ||
21936 | "\x68\x84\xD5\xB3\x1B\xE7\xB9\xA1" | ||
21937 | "\x68\x8B\x2C\x1A\x44\xDA\x63\xD3" | ||
21938 | "\x29\xE9\x59\x32\x1F\x30\x1C\x43" | ||
21939 | "\xEA\x3A\xA3\x6B\x54\x3C\xAA\x11" | ||
21940 | "\xAD\x38\x20\xC9\xB9\x8A\x64\x66" | ||
21941 | "\x5A\x07\x49\xDF\xA1\x9C\xF9\x76" | ||
21942 | "\x36\x65\xB6\x81\x8F\x76\x09\xE5" | ||
21943 | "\xEB\xD1\x29\xA4\xE4\xF4\x4C\xCD" | ||
21944 | "\xAF\xFC\xB9\x16\xD9\xC3\x73\x6A" | ||
21945 | "\x33\x12\xF8\x7E\xBC\xCC\x7D\x80" | ||
21946 | "\xBF\x3C\x25\x06\x13\x84\xFA\x35" | ||
21947 | "\xF7\x40\xFA\xA1\x44\x13\x70\xD8" | ||
21948 | "\x01\xF9\x85\x15\x63\xEC\x7D\xB9" | ||
21949 | "\x02\xD8\xBA\x41\x6C\x92\x68\x66" | ||
21950 | "\x95\xDD\xD6\x42\xE7\xBB\xE1\xFD" | ||
21951 | "\x28\x3E\x94\xB6\xBD\xA7\xBF\x47" | ||
21952 | "\x58\x8D\xFF\x19\x30\x75\x0D\x48" | ||
21953 | "\x94\xE9\xA6\xCD\xB3\x8E\x1E\xCD" | ||
21954 | "\x59\xBC\x1A\xAC\x3C\x4F\xA9\xEB" | ||
21955 | "\xF4\xA7\xE4\x75\x4A\x18\x40\xC9" | ||
21956 | "\x1E\xEC\x06\x9C\x28\x4B\xF7\x2B" | ||
21957 | "\xE2\xEF\xD6\x42\x2E\xBB\xFC\x0A" | ||
21958 | "\x79\xA2\x99\x28\x93\x1B\x00\x57" | ||
21959 | "\x35\x1E\x1A\x93\x90\xA4\x68\x95" | ||
21960 | "\x5E\x57\x40\xD5\xA9\xAA\x19\x48" | ||
21961 | "\xEC\xFF\x76\x77\xDC\x78\x89\x76" | ||
21962 | "\xE5\x3B\x00\xEC\x58\x4D\xD1\xE3" | ||
21963 | "\xC8\x6C\x2C\x45\x5E\x5F\xD9\x4E" | ||
21964 | "\x71\xA5\x36\x6D\x03\xF1\xC7\xD5" | ||
21965 | "\xF3\x63\xC0\xD8\xCB\x2B\xF1\xA8" | ||
21966 | "\xB9\x2B\xE6\x0B\xB9\x65\x78\xA0" | ||
21967 | "\xC4\x46\xE6\x9B\x8B\x43\x2D\xAB" | ||
21968 | "\x70\xA6\xE0\x59\x1E\xAC\x9D\xE0" | ||
21969 | "\x76\x44\x45\xF3\x24\x11\x57\x98" | ||
21970 | "\x9A\x86\xB4\x12\x80\x28\x86\x20" | ||
21971 | "\x23\x9D\x2D\xE9\x38\x32\xB1\xE1" | ||
21972 | "\xCF\x0A\x23\x73\x7D\xC5\x80\x3D" | ||
21973 | "\x9F\x6D\xA0\xD0\xEE\x93\x8A\x79" | ||
21974 | "\x3A\xDD\x1D\xBB\x9E\x26\x5D\x01" | ||
21975 | "\x44\xD0\xD4\x4E\xC3\xF1\xE4\x38" | ||
21976 | "\x09\x62\x0A\x1A\x4E\xD2\x63\x0F" | ||
21977 | "\x6E\x3E\xD2\xA4\x3A\xF4\xF3\xFF" | ||
21978 | "\x7E\x42\xEC\xB6\x6F\x4D\x6B\x48" | ||
21979 | "\xE6\xA6\x50\x80\x78\x9E\xF1\xB0" | ||
21980 | "\x4D\xB2\x0D\x3D\xFC\x40\x25\x4D" | ||
21981 | "\x93\x11\x1C", | ||
21982 | .ilen = 499, | ||
16724 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" | 21983 | .result = "\x56\xED\x84\x1B\x8F\x26\xBD\x31" |
16725 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" | 21984 | "\xC8\x5F\xF6\x6A\x01\x98\x0C\xA3" |
16726 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" | 21985 | "\x3A\xD1\x45\xDC\x73\x0A\x7E\x15" |
16727 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" | 21986 | "\xAC\x20\xB7\x4E\xE5\x59\xF0\x87" |
16728 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" | 21987 | "\x1E\x92\x29\xC0\x34\xCB\x62\xF9" |
16729 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" | 21988 | "\x6D\x04\x9B\x0F\xA6\x3D\xD4\x48" |
16730 | "\xDF\x76\x0D", | 21989 | "\xDF\x76\x0D\x81\x18\xAF\x23\xBA" |
16731 | .rlen = 51, | 21990 | "\x51\xE8\x5C\xF3\x8A\x21\x95\x2C" |
21991 | "\xC3\x37\xCE\x65\xFC\x70\x07\x9E" | ||
21992 | "\x12\xA9\x40\xD7\x4B\xE2\x79\x10" | ||
21993 | "\x84\x1B\xB2\x26\xBD\x54\xEB\x5F" | ||
21994 | "\xF6\x8D\x01\x98\x2F\xC6\x3A\xD1" | ||
21995 | "\x68\xFF\x73\x0A\xA1\x15\xAC\x43" | ||
21996 | "\xDA\x4E\xE5\x7C\x13\x87\x1E\xB5" | ||
21997 | "\x29\xC0\x57\xEE\x62\xF9\x90\x04" | ||
21998 | "\x9B\x32\xC9\x3D\xD4\x6B\x02\x76" | ||
21999 | "\x0D\xA4\x18\xAF\x46\xDD\x51\xE8" | ||
22000 | "\x7F\x16\x8A\x21\xB8\x2C\xC3\x5A" | ||
22001 | "\xF1\x65\xFC\x93\x07\x9E\x35\xCC" | ||
22002 | "\x40\xD7\x6E\x05\x79\x10\xA7\x1B" | ||
22003 | "\xB2\x49\xE0\x54\xEB\x82\x19\x8D" | ||
22004 | "\x24\xBB\x2F\xC6\x5D\xF4\x68\xFF" | ||
22005 | "\x96\x0A\xA1\x38\xCF\x43\xDA\x71" | ||
22006 | "\x08\x7C\x13\xAA\x1E\xB5\x4C\xE3" | ||
22007 | "\x57\xEE\x85\x1C\x90\x27\xBE\x32" | ||
22008 | "\xC9\x60\xF7\x6B\x02\x99\x0D\xA4" | ||
22009 | "\x3B\xD2\x46\xDD\x74\x0B\x7F\x16" | ||
22010 | "\xAD\x21\xB8\x4F\xE6\x5A\xF1\x88" | ||
22011 | "\x1F\x93\x2A\xC1\x35\xCC\x63\xFA" | ||
22012 | "\x6E\x05\x9C\x10\xA7\x3E\xD5\x49" | ||
22013 | "\xE0\x77\x0E\x82\x19\xB0\x24\xBB" | ||
22014 | "\x52\xE9\x5D\xF4\x8B\x22\x96\x2D" | ||
22015 | "\xC4\x38\xCF\x66\xFD\x71\x08\x9F" | ||
22016 | "\x13\xAA\x41\xD8\x4C\xE3\x7A\x11" | ||
22017 | "\x85\x1C\xB3\x27\xBE\x55\xEC\x60" | ||
22018 | "\xF7\x8E\x02\x99\x30\xC7\x3B\xD2" | ||
22019 | "\x69\x00\x74\x0B\xA2\x16\xAD\x44" | ||
22020 | "\xDB\x4F\xE6\x7D\x14\x88\x1F\xB6" | ||
22021 | "\x2A\xC1\x58\xEF\x63\xFA\x91\x05" | ||
22022 | "\x9C\x33\xCA\x3E\xD5\x6C\x03\x77" | ||
22023 | "\x0E\xA5\x19\xB0\x47\xDE\x52\xE9" | ||
22024 | "\x80\x17\x8B\x22\xB9\x2D\xC4\x5B" | ||
22025 | "\xF2\x66\xFD\x94\x08\x9F\x36\xCD" | ||
22026 | "\x41\xD8\x6F\x06\x7A\x11\xA8\x1C" | ||
22027 | "\xB3\x4A\xE1\x55\xEC\x83\x1A\x8E" | ||
22028 | "\x25\xBC\x30\xC7\x5E\xF5\x69\x00" | ||
22029 | "\x97\x0B\xA2\x39\xD0\x44\xDB\x72" | ||
22030 | "\x09\x7D\x14\xAB\x1F\xB6\x4D\xE4" | ||
22031 | "\x58\xEF\x86\x1D\x91\x28\xBF\x33" | ||
22032 | "\xCA\x61\xF8\x6C\x03\x9A\x0E\xA5" | ||
22033 | "\x3C\xD3\x47\xDE\x75\x0C\x80\x17" | ||
22034 | "\xAE\x22\xB9\x50\xE7\x5B\xF2\x89" | ||
22035 | "\x20\x94\x2B\xC2\x36\xCD\x64\xFB" | ||
22036 | "\x6F\x06\x9D\x11\xA8\x3F\xD6\x4A" | ||
22037 | "\xE1\x78\x0F\x83\x1A\xB1\x25\xBC" | ||
22038 | "\x53\xEA\x5E\xF5\x8C\x00\x97\x2E" | ||
22039 | "\xC5\x39\xD0\x67\xFE\x72\x09\xA0" | ||
22040 | "\x14\xAB\x42\xD9\x4D\xE4\x7B\x12" | ||
22041 | "\x86\x1D\xB4\x28\xBF\x56\xED\x61" | ||
22042 | "\xF8\x8F\x03\x9A\x31\xC8\x3C\xD3" | ||
22043 | "\x6A\x01\x75\x0C\xA3\x17\xAE\x45" | ||
22044 | "\xDC\x50\xE7\x7E\x15\x89\x20\xB7" | ||
22045 | "\x2B\xC2\x59", | ||
22046 | .rlen = 499, | ||
16732 | .also_non_np = 1, | 22047 | .also_non_np = 1, |
16733 | .np = 2, | 22048 | .np = 2, |
16734 | .tap = { 51 - 16, 16 }, | 22049 | .tap = { 499 - 16, 16 }, |
16735 | }, { /* Generated with Crypto++ */ | 22050 | }, { /* Generated with Crypto++ */ |
16736 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" | 22051 | .key = "\x85\x62\x3F\x1C\xF9\xD6\x1C\xF9" |
16737 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" | 22052 | "\xD6\xB3\x90\x6D\x4A\x90\x6D\x4A" |
@@ -19895,7 +25210,7 @@ static struct hash_testvec michael_mic_tv_template[] = { | |||
19895 | /* | 25210 | /* |
19896 | * CRC32C test vectors | 25211 | * CRC32C test vectors |
19897 | */ | 25212 | */ |
19898 | #define CRC32C_TEST_VECTORS 14 | 25213 | #define CRC32C_TEST_VECTORS 15 |
19899 | 25214 | ||
19900 | static struct hash_testvec crc32c_tv_template[] = { | 25215 | static struct hash_testvec crc32c_tv_template[] = { |
19901 | { | 25216 | { |
@@ -20066,7 +25381,268 @@ static struct hash_testvec crc32c_tv_template[] = { | |||
20066 | .digest = "\x75\xd3\xc5\x24", | 25381 | .digest = "\x75\xd3\xc5\x24", |
20067 | .np = 2, | 25382 | .np = 2, |
20068 | .tap = { 31, 209 } | 25383 | .tap = { 31, 209 } |
20069 | }, | 25384 | }, { |
25385 | .key = "\xff\xff\xff\xff", | ||
25386 | .ksize = 4, | ||
25387 | .plaintext = "\x6e\x05\x79\x10\xa7\x1b\xb2\x49" | ||
25388 | "\xe0\x54\xeb\x82\x19\x8d\x24\xbb" | ||
25389 | "\x2f\xc6\x5d\xf4\x68\xff\x96\x0a" | ||
25390 | "\xa1\x38\xcf\x43\xda\x71\x08\x7c" | ||
25391 | "\x13\xaa\x1e\xb5\x4c\xe3\x57\xee" | ||
25392 | "\x85\x1c\x90\x27\xbe\x32\xc9\x60" | ||
25393 | "\xf7\x6b\x02\x99\x0d\xa4\x3b\xd2" | ||
25394 | "\x46\xdd\x74\x0b\x7f\x16\xad\x21" | ||
25395 | "\xb8\x4f\xe6\x5a\xf1\x88\x1f\x93" | ||
25396 | "\x2a\xc1\x35\xcc\x63\xfa\x6e\x05" | ||
25397 | "\x9c\x10\xa7\x3e\xd5\x49\xe0\x77" | ||
25398 | "\x0e\x82\x19\xb0\x24\xbb\x52\xe9" | ||
25399 | "\x5d\xf4\x8b\x22\x96\x2d\xc4\x38" | ||
25400 | "\xcf\x66\xfd\x71\x08\x9f\x13\xaa" | ||
25401 | "\x41\xd8\x4c\xe3\x7a\x11\x85\x1c" | ||
25402 | "\xb3\x27\xbe\x55\xec\x60\xf7\x8e" | ||
25403 | "\x02\x99\x30\xc7\x3b\xd2\x69\x00" | ||
25404 | "\x74\x0b\xa2\x16\xad\x44\xdb\x4f" | ||
25405 | "\xe6\x7d\x14\x88\x1f\xb6\x2a\xc1" | ||
25406 | "\x58\xef\x63\xfa\x91\x05\x9c\x33" | ||
25407 | "\xca\x3e\xd5\x6c\x03\x77\x0e\xa5" | ||
25408 | "\x19\xb0\x47\xde\x52\xe9\x80\x17" | ||
25409 | "\x8b\x22\xb9\x2d\xc4\x5b\xf2\x66" | ||
25410 | "\xfd\x94\x08\x9f\x36\xcd\x41\xd8" | ||
25411 | "\x6f\x06\x7a\x11\xa8\x1c\xb3\x4a" | ||
25412 | "\xe1\x55\xec\x83\x1a\x8e\x25\xbc" | ||
25413 | "\x30\xc7\x5e\xf5\x69\x00\x97\x0b" | ||
25414 | "\xa2\x39\xd0\x44\xdb\x72\x09\x7d" | ||
25415 | "\x14\xab\x1f\xb6\x4d\xe4\x58\xef" | ||
25416 | "\x86\x1d\x91\x28\xbf\x33\xca\x61" | ||
25417 | "\xf8\x6c\x03\x9a\x0e\xa5\x3c\xd3" | ||
25418 | "\x47\xde\x75\x0c\x80\x17\xae\x22" | ||
25419 | "\xb9\x50\xe7\x5b\xf2\x89\x20\x94" | ||
25420 | "\x2b\xc2\x36\xcd\x64\xfb\x6f\x06" | ||
25421 | "\x9d\x11\xa8\x3f\xd6\x4a\xe1\x78" | ||
25422 | "\x0f\x83\x1a\xb1\x25\xbc\x53\xea" | ||
25423 | "\x5e\xf5\x8c\x00\x97\x2e\xc5\x39" | ||
25424 | "\xd0\x67\xfe\x72\x09\xa0\x14\xab" | ||
25425 | "\x42\xd9\x4d\xe4\x7b\x12\x86\x1d" | ||
25426 | "\xb4\x28\xbf\x56\xed\x61\xf8\x8f" | ||
25427 | "\x03\x9a\x31\xc8\x3c\xd3\x6a\x01" | ||
25428 | "\x75\x0c\xa3\x17\xae\x45\xdc\x50" | ||
25429 | "\xe7\x7e\x15\x89\x20\xb7\x2b\xc2" | ||
25430 | "\x59\xf0\x64\xfb\x92\x06\x9d\x34" | ||
25431 | "\xcb\x3f\xd6\x6d\x04\x78\x0f\xa6" | ||
25432 | "\x1a\xb1\x48\xdf\x53\xea\x81\x18" | ||
25433 | "\x8c\x23\xba\x2e\xc5\x5c\xf3\x67" | ||
25434 | "\xfe\x95\x09\xa0\x37\xce\x42\xd9" | ||
25435 | "\x70\x07\x7b\x12\xa9\x1d\xb4\x4b" | ||
25436 | "\xe2\x56\xed\x84\x1b\x8f\x26\xbd" | ||
25437 | "\x31\xc8\x5f\xf6\x6a\x01\x98\x0c" | ||
25438 | "\xa3\x3a\xd1\x45\xdc\x73\x0a\x7e" | ||
25439 | "\x15\xac\x20\xb7\x4e\xe5\x59\xf0" | ||
25440 | "\x87\x1e\x92\x29\xc0\x34\xcb\x62" | ||
25441 | "\xf9\x6d\x04\x9b\x0f\xa6\x3d\xd4" | ||
25442 | "\x48\xdf\x76\x0d\x81\x18\xaf\x23" | ||
25443 | "\xba\x51\xe8\x5c\xf3\x8a\x21\x95" | ||
25444 | "\x2c\xc3\x37\xce\x65\xfc\x70\x07" | ||
25445 | "\x9e\x12\xa9\x40\xd7\x4b\xe2\x79" | ||
25446 | "\x10\x84\x1b\xb2\x26\xbd\x54\xeb" | ||
25447 | "\x5f\xf6\x8d\x01\x98\x2f\xc6\x3a" | ||
25448 | "\xd1\x68\xff\x73\x0a\xa1\x15\xac" | ||
25449 | "\x43\xda\x4e\xe5\x7c\x13\x87\x1e" | ||
25450 | "\xb5\x29\xc0\x57\xee\x62\xf9\x90" | ||
25451 | "\x04\x9b\x32\xc9\x3d\xd4\x6b\x02" | ||
25452 | "\x76\x0d\xa4\x18\xaf\x46\xdd\x51" | ||
25453 | "\xe8\x7f\x16\x8a\x21\xb8\x2c\xc3" | ||
25454 | "\x5a\xf1\x65\xfc\x93\x07\x9e\x35" | ||
25455 | "\xcc\x40\xd7\x6e\x05\x79\x10\xa7" | ||
25456 | "\x1b\xb2\x49\xe0\x54\xeb\x82\x19" | ||
25457 | "\x8d\x24\xbb\x2f\xc6\x5d\xf4\x68" | ||
25458 | "\xff\x96\x0a\xa1\x38\xcf\x43\xda" | ||
25459 | "\x71\x08\x7c\x13\xaa\x1e\xb5\x4c" | ||
25460 | "\xe3\x57\xee\x85\x1c\x90\x27\xbe" | ||
25461 | "\x32\xc9\x60\xf7\x6b\x02\x99\x0d" | ||
25462 | "\xa4\x3b\xd2\x46\xdd\x74\x0b\x7f" | ||
25463 | "\x16\xad\x21\xb8\x4f\xe6\x5a\xf1" | ||
25464 | "\x88\x1f\x93\x2a\xc1\x35\xcc\x63" | ||
25465 | "\xfa\x6e\x05\x9c\x10\xa7\x3e\xd5" | ||
25466 | "\x49\xe0\x77\x0e\x82\x19\xb0\x24" | ||
25467 | "\xbb\x52\xe9\x5d\xf4\x8b\x22\x96" | ||
25468 | "\x2d\xc4\x38\xcf\x66\xfd\x71\x08" | ||
25469 | "\x9f\x13\xaa\x41\xd8\x4c\xe3\x7a" | ||
25470 | "\x11\x85\x1c\xb3\x27\xbe\x55\xec" | ||
25471 | "\x60\xf7\x8e\x02\x99\x30\xc7\x3b" | ||
25472 | "\xd2\x69\x00\x74\x0b\xa2\x16\xad" | ||
25473 | "\x44\xdb\x4f\xe6\x7d\x14\x88\x1f" | ||
25474 | "\xb6\x2a\xc1\x58\xef\x63\xfa\x91" | ||
25475 | "\x05\x9c\x33\xca\x3e\xd5\x6c\x03" | ||
25476 | "\x77\x0e\xa5\x19\xb0\x47\xde\x52" | ||
25477 | "\xe9\x80\x17\x8b\x22\xb9\x2d\xc4" | ||
25478 | "\x5b\xf2\x66\xfd\x94\x08\x9f\x36" | ||
25479 | "\xcd\x41\xd8\x6f\x06\x7a\x11\xa8" | ||
25480 | "\x1c\xb3\x4a\xe1\x55\xec\x83\x1a" | ||
25481 | "\x8e\x25\xbc\x30\xc7\x5e\xf5\x69" | ||
25482 | "\x00\x97\x0b\xa2\x39\xd0\x44\xdb" | ||
25483 | "\x72\x09\x7d\x14\xab\x1f\xb6\x4d" | ||
25484 | "\xe4\x58\xef\x86\x1d\x91\x28\xbf" | ||
25485 | "\x33\xca\x61\xf8\x6c\x03\x9a\x0e" | ||
25486 | "\xa5\x3c\xd3\x47\xde\x75\x0c\x80" | ||
25487 | "\x17\xae\x22\xb9\x50\xe7\x5b\xf2" | ||
25488 | "\x89\x20\x94\x2b\xc2\x36\xcd\x64" | ||
25489 | "\xfb\x6f\x06\x9d\x11\xa8\x3f\xd6" | ||
25490 | "\x4a\xe1\x78\x0f\x83\x1a\xb1\x25" | ||
25491 | "\xbc\x53\xea\x5e\xf5\x8c\x00\x97" | ||
25492 | "\x2e\xc5\x39\xd0\x67\xfe\x72\x09" | ||
25493 | "\xa0\x14\xab\x42\xd9\x4d\xe4\x7b" | ||
25494 | "\x12\x86\x1d\xb4\x28\xbf\x56\xed" | ||
25495 | "\x61\xf8\x8f\x03\x9a\x31\xc8\x3c" | ||
25496 | "\xd3\x6a\x01\x75\x0c\xa3\x17\xae" | ||
25497 | "\x45\xdc\x50\xe7\x7e\x15\x89\x20" | ||
25498 | "\xb7\x2b\xc2\x59\xf0\x64\xfb\x92" | ||
25499 | "\x06\x9d\x34\xcb\x3f\xd6\x6d\x04" | ||
25500 | "\x78\x0f\xa6\x1a\xb1\x48\xdf\x53" | ||
25501 | "\xea\x81\x18\x8c\x23\xba\x2e\xc5" | ||
25502 | "\x5c\xf3\x67\xfe\x95\x09\xa0\x37" | ||
25503 | "\xce\x42\xd9\x70\x07\x7b\x12\xa9" | ||
25504 | "\x1d\xb4\x4b\xe2\x56\xed\x84\x1b" | ||
25505 | "\x8f\x26\xbd\x31\xc8\x5f\xf6\x6a" | ||
25506 | "\x01\x98\x0c\xa3\x3a\xd1\x45\xdc" | ||
25507 | "\x73\x0a\x7e\x15\xac\x20\xb7\x4e" | ||
25508 | "\xe5\x59\xf0\x87\x1e\x92\x29\xc0" | ||
25509 | "\x34\xcb\x62\xf9\x6d\x04\x9b\x0f" | ||
25510 | "\xa6\x3d\xd4\x48\xdf\x76\x0d\x81" | ||
25511 | "\x18\xaf\x23\xba\x51\xe8\x5c\xf3" | ||
25512 | "\x8a\x21\x95\x2c\xc3\x37\xce\x65" | ||
25513 | "\xfc\x70\x07\x9e\x12\xa9\x40\xd7" | ||
25514 | "\x4b\xe2\x79\x10\x84\x1b\xb2\x26" | ||
25515 | "\xbd\x54\xeb\x5f\xf6\x8d\x01\x98" | ||
25516 | "\x2f\xc6\x3a\xd1\x68\xff\x73\x0a" | ||
25517 | "\xa1\x15\xac\x43\xda\x4e\xe5\x7c" | ||
25518 | "\x13\x87\x1e\xb5\x29\xc0\x57\xee" | ||
25519 | "\x62\xf9\x90\x04\x9b\x32\xc9\x3d" | ||
25520 | "\xd4\x6b\x02\x76\x0d\xa4\x18\xaf" | ||
25521 | "\x46\xdd\x51\xe8\x7f\x16\x8a\x21" | ||
25522 | "\xb8\x2c\xc3\x5a\xf1\x65\xfc\x93" | ||
25523 | "\x07\x9e\x35\xcc\x40\xd7\x6e\x05" | ||
25524 | "\x79\x10\xa7\x1b\xb2\x49\xe0\x54" | ||
25525 | "\xeb\x82\x19\x8d\x24\xbb\x2f\xc6" | ||
25526 | "\x5d\xf4\x68\xff\x96\x0a\xa1\x38" | ||
25527 | "\xcf\x43\xda\x71\x08\x7c\x13\xaa" | ||
25528 | "\x1e\xb5\x4c\xe3\x57\xee\x85\x1c" | ||
25529 | "\x90\x27\xbe\x32\xc9\x60\xf7\x6b" | ||
25530 | "\x02\x99\x0d\xa4\x3b\xd2\x46\xdd" | ||
25531 | "\x74\x0b\x7f\x16\xad\x21\xb8\x4f" | ||
25532 | "\xe6\x5a\xf1\x88\x1f\x93\x2a\xc1" | ||
25533 | "\x35\xcc\x63\xfa\x6e\x05\x9c\x10" | ||
25534 | "\xa7\x3e\xd5\x49\xe0\x77\x0e\x82" | ||
25535 | "\x19\xb0\x24\xbb\x52\xe9\x5d\xf4" | ||
25536 | "\x8b\x22\x96\x2d\xc4\x38\xcf\x66" | ||
25537 | "\xfd\x71\x08\x9f\x13\xaa\x41\xd8" | ||
25538 | "\x4c\xe3\x7a\x11\x85\x1c\xb3\x27" | ||
25539 | "\xbe\x55\xec\x60\xf7\x8e\x02\x99" | ||
25540 | "\x30\xc7\x3b\xd2\x69\x00\x74\x0b" | ||
25541 | "\xa2\x16\xad\x44\xdb\x4f\xe6\x7d" | ||
25542 | "\x14\x88\x1f\xb6\x2a\xc1\x58\xef" | ||
25543 | "\x63\xfa\x91\x05\x9c\x33\xca\x3e" | ||
25544 | "\xd5\x6c\x03\x77\x0e\xa5\x19\xb0" | ||
25545 | "\x47\xde\x52\xe9\x80\x17\x8b\x22" | ||
25546 | "\xb9\x2d\xc4\x5b\xf2\x66\xfd\x94" | ||
25547 | "\x08\x9f\x36\xcd\x41\xd8\x6f\x06" | ||
25548 | "\x7a\x11\xa8\x1c\xb3\x4a\xe1\x55" | ||
25549 | "\xec\x83\x1a\x8e\x25\xbc\x30\xc7" | ||
25550 | "\x5e\xf5\x69\x00\x97\x0b\xa2\x39" | ||
25551 | "\xd0\x44\xdb\x72\x09\x7d\x14\xab" | ||
25552 | "\x1f\xb6\x4d\xe4\x58\xef\x86\x1d" | ||
25553 | "\x91\x28\xbf\x33\xca\x61\xf8\x6c" | ||
25554 | "\x03\x9a\x0e\xa5\x3c\xd3\x47\xde" | ||
25555 | "\x75\x0c\x80\x17\xae\x22\xb9\x50" | ||
25556 | "\xe7\x5b\xf2\x89\x20\x94\x2b\xc2" | ||
25557 | "\x36\xcd\x64\xfb\x6f\x06\x9d\x11" | ||
25558 | "\xa8\x3f\xd6\x4a\xe1\x78\x0f\x83" | ||
25559 | "\x1a\xb1\x25\xbc\x53\xea\x5e\xf5" | ||
25560 | "\x8c\x00\x97\x2e\xc5\x39\xd0\x67" | ||
25561 | "\xfe\x72\x09\xa0\x14\xab\x42\xd9" | ||
25562 | "\x4d\xe4\x7b\x12\x86\x1d\xb4\x28" | ||
25563 | "\xbf\x56\xed\x61\xf8\x8f\x03\x9a" | ||
25564 | "\x31\xc8\x3c\xd3\x6a\x01\x75\x0c" | ||
25565 | "\xa3\x17\xae\x45\xdc\x50\xe7\x7e" | ||
25566 | "\x15\x89\x20\xb7\x2b\xc2\x59\xf0" | ||
25567 | "\x64\xfb\x92\x06\x9d\x34\xcb\x3f" | ||
25568 | "\xd6\x6d\x04\x78\x0f\xa6\x1a\xb1" | ||
25569 | "\x48\xdf\x53\xea\x81\x18\x8c\x23" | ||
25570 | "\xba\x2e\xc5\x5c\xf3\x67\xfe\x95" | ||
25571 | "\x09\xa0\x37\xce\x42\xd9\x70\x07" | ||
25572 | "\x7b\x12\xa9\x1d\xb4\x4b\xe2\x56" | ||
25573 | "\xed\x84\x1b\x8f\x26\xbd\x31\xc8" | ||
25574 | "\x5f\xf6\x6a\x01\x98\x0c\xa3\x3a" | ||
25575 | "\xd1\x45\xdc\x73\x0a\x7e\x15\xac" | ||
25576 | "\x20\xb7\x4e\xe5\x59\xf0\x87\x1e" | ||
25577 | "\x92\x29\xc0\x34\xcb\x62\xf9\x6d" | ||
25578 | "\x04\x9b\x0f\xa6\x3d\xd4\x48\xdf" | ||
25579 | "\x76\x0d\x81\x18\xaf\x23\xba\x51" | ||
25580 | "\xe8\x5c\xf3\x8a\x21\x95\x2c\xc3" | ||
25581 | "\x37\xce\x65\xfc\x70\x07\x9e\x12" | ||
25582 | "\xa9\x40\xd7\x4b\xe2\x79\x10\x84" | ||
25583 | "\x1b\xb2\x26\xbd\x54\xeb\x5f\xf6" | ||
25584 | "\x8d\x01\x98\x2f\xc6\x3a\xd1\x68" | ||
25585 | "\xff\x73\x0a\xa1\x15\xac\x43\xda" | ||
25586 | "\x4e\xe5\x7c\x13\x87\x1e\xb5\x29" | ||
25587 | "\xc0\x57\xee\x62\xf9\x90\x04\x9b" | ||
25588 | "\x32\xc9\x3d\xd4\x6b\x02\x76\x0d" | ||
25589 | "\xa4\x18\xaf\x46\xdd\x51\xe8\x7f" | ||
25590 | "\x16\x8a\x21\xb8\x2c\xc3\x5a\xf1" | ||
25591 | "\x65\xfc\x93\x07\x9e\x35\xcc\x40" | ||
25592 | "\xd7\x6e\x05\x79\x10\xa7\x1b\xb2" | ||
25593 | "\x49\xe0\x54\xeb\x82\x19\x8d\x24" | ||
25594 | "\xbb\x2f\xc6\x5d\xf4\x68\xff\x96" | ||
25595 | "\x0a\xa1\x38\xcf\x43\xda\x71\x08" | ||
25596 | "\x7c\x13\xaa\x1e\xb5\x4c\xe3\x57" | ||
25597 | "\xee\x85\x1c\x90\x27\xbe\x32\xc9" | ||
25598 | "\x60\xf7\x6b\x02\x99\x0d\xa4\x3b" | ||
25599 | "\xd2\x46\xdd\x74\x0b\x7f\x16\xad" | ||
25600 | "\x21\xb8\x4f\xe6\x5a\xf1\x88\x1f" | ||
25601 | "\x93\x2a\xc1\x35\xcc\x63\xfa\x6e" | ||
25602 | "\x05\x9c\x10\xa7\x3e\xd5\x49\xe0" | ||
25603 | "\x77\x0e\x82\x19\xb0\x24\xbb\x52" | ||
25604 | "\xe9\x5d\xf4\x8b\x22\x96\x2d\xc4" | ||
25605 | "\x38\xcf\x66\xfd\x71\x08\x9f\x13" | ||
25606 | "\xaa\x41\xd8\x4c\xe3\x7a\x11\x85" | ||
25607 | "\x1c\xb3\x27\xbe\x55\xec\x60\xf7" | ||
25608 | "\x8e\x02\x99\x30\xc7\x3b\xd2\x69" | ||
25609 | "\x00\x74\x0b\xa2\x16\xad\x44\xdb" | ||
25610 | "\x4f\xe6\x7d\x14\x88\x1f\xb6\x2a" | ||
25611 | "\xc1\x58\xef\x63\xfa\x91\x05\x9c" | ||
25612 | "\x33\xca\x3e\xd5\x6c\x03\x77\x0e" | ||
25613 | "\xa5\x19\xb0\x47\xde\x52\xe9\x80" | ||
25614 | "\x17\x8b\x22\xb9\x2d\xc4\x5b\xf2" | ||
25615 | "\x66\xfd\x94\x08\x9f\x36\xcd\x41" | ||
25616 | "\xd8\x6f\x06\x7a\x11\xa8\x1c\xb3" | ||
25617 | "\x4a\xe1\x55\xec\x83\x1a\x8e\x25" | ||
25618 | "\xbc\x30\xc7\x5e\xf5\x69\x00\x97" | ||
25619 | "\x0b\xa2\x39\xd0\x44\xdb\x72\x09" | ||
25620 | "\x7d\x14\xab\x1f\xb6\x4d\xe4\x58" | ||
25621 | "\xef\x86\x1d\x91\x28\xbf\x33\xca" | ||
25622 | "\x61\xf8\x6c\x03\x9a\x0e\xa5\x3c" | ||
25623 | "\xd3\x47\xde\x75\x0c\x80\x17\xae" | ||
25624 | "\x22\xb9\x50\xe7\x5b\xf2\x89\x20" | ||
25625 | "\x94\x2b\xc2\x36\xcd\x64\xfb\x6f" | ||
25626 | "\x06\x9d\x11\xa8\x3f\xd6\x4a\xe1" | ||
25627 | "\x78\x0f\x83\x1a\xb1\x25\xbc\x53" | ||
25628 | "\xea\x5e\xf5\x8c\x00\x97\x2e\xc5" | ||
25629 | "\x39\xd0\x67\xfe\x72\x09\xa0\x14" | ||
25630 | "\xab\x42\xd9\x4d\xe4\x7b\x12\x86" | ||
25631 | "\x1d\xb4\x28\xbf\x56\xed\x61\xf8" | ||
25632 | "\x8f\x03\x9a\x31\xc8\x3c\xd3\x6a" | ||
25633 | "\x01\x75\x0c\xa3\x17\xae\x45\xdc" | ||
25634 | "\x50\xe7\x7e\x15\x89\x20\xb7\x2b" | ||
25635 | "\xc2\x59\xf0\x64\xfb\x92\x06\x9d" | ||
25636 | "\x34\xcb\x3f\xd6\x6d\x04\x78\x0f" | ||
25637 | "\xa6\x1a\xb1\x48\xdf\x53\xea\x81" | ||
25638 | "\x18\x8c\x23\xba\x2e\xc5\x5c\xf3" | ||
25639 | "\x67\xfe\x95\x09\xa0\x37\xce\x42" | ||
25640 | "\xd9\x70\x07\x7b\x12\xa9\x1d\xb4" | ||
25641 | "\x4b\xe2\x56\xed\x84\x1b\x8f\x26" | ||
25642 | "\xbd\x31\xc8\x5f\xf6\x6a\x01\x98", | ||
25643 | .psize = 2048, | ||
25644 | .digest = "\xec\x26\x4d\x95", | ||
25645 | } | ||
20070 | }; | 25646 | }; |
20071 | 25647 | ||
20072 | /* | 25648 | /* |
diff --git a/crypto/vmac.c b/crypto/vmac.c index f2338ca98368..2eb11a30c29c 100644 --- a/crypto/vmac.c +++ b/crypto/vmac.c | |||
@@ -375,6 +375,11 @@ static void vhash_update(const unsigned char *m, | |||
375 | u64 pkh = ctx->polykey[0]; | 375 | u64 pkh = ctx->polykey[0]; |
376 | u64 pkl = ctx->polykey[1]; | 376 | u64 pkl = ctx->polykey[1]; |
377 | 377 | ||
378 | if (!mbytes) | ||
379 | return; | ||
380 | |||
381 | BUG_ON(mbytes % VMAC_NHBYTES); | ||
382 | |||
378 | mptr = (u64 *)m; | 383 | mptr = (u64 *)m; |
379 | i = mbytes / VMAC_NHBYTES; /* Must be non-zero */ | 384 | i = mbytes / VMAC_NHBYTES; /* Must be non-zero */ |
380 | 385 | ||
@@ -454,7 +459,7 @@ do_l3: | |||
454 | } | 459 | } |
455 | 460 | ||
456 | static u64 vmac(unsigned char m[], unsigned int mbytes, | 461 | static u64 vmac(unsigned char m[], unsigned int mbytes, |
457 | unsigned char n[16], u64 *tagl, | 462 | const unsigned char n[16], u64 *tagl, |
458 | struct vmac_ctx_t *ctx) | 463 | struct vmac_ctx_t *ctx) |
459 | { | 464 | { |
460 | u64 *in_n, *out_p; | 465 | u64 *in_n, *out_p; |
@@ -559,8 +564,33 @@ static int vmac_update(struct shash_desc *pdesc, const u8 *p, | |||
559 | { | 564 | { |
560 | struct crypto_shash *parent = pdesc->tfm; | 565 | struct crypto_shash *parent = pdesc->tfm; |
561 | struct vmac_ctx_t *ctx = crypto_shash_ctx(parent); | 566 | struct vmac_ctx_t *ctx = crypto_shash_ctx(parent); |
567 | int expand; | ||
568 | int min; | ||
569 | |||
570 | expand = VMAC_NHBYTES - ctx->partial_size > 0 ? | ||
571 | VMAC_NHBYTES - ctx->partial_size : 0; | ||
572 | |||
573 | min = len < expand ? len : expand; | ||
574 | |||
575 | memcpy(ctx->partial + ctx->partial_size, p, min); | ||
576 | ctx->partial_size += min; | ||
577 | |||
578 | if (len < expand) | ||
579 | return 0; | ||
562 | 580 | ||
563 | vhash_update(p, len, &ctx->__vmac_ctx); | 581 | vhash_update(ctx->partial, VMAC_NHBYTES, &ctx->__vmac_ctx); |
582 | ctx->partial_size = 0; | ||
583 | |||
584 | len -= expand; | ||
585 | p += expand; | ||
586 | |||
587 | if (len % VMAC_NHBYTES) { | ||
588 | memcpy(ctx->partial, p + len - (len % VMAC_NHBYTES), | ||
589 | len % VMAC_NHBYTES); | ||
590 | ctx->partial_size = len % VMAC_NHBYTES; | ||
591 | } | ||
592 | |||
593 | vhash_update(p, len - len % VMAC_NHBYTES, &ctx->__vmac_ctx); | ||
564 | 594 | ||
565 | return 0; | 595 | return 0; |
566 | } | 596 | } |
@@ -572,10 +602,20 @@ static int vmac_final(struct shash_desc *pdesc, u8 *out) | |||
572 | vmac_t mac; | 602 | vmac_t mac; |
573 | u8 nonce[16] = {}; | 603 | u8 nonce[16] = {}; |
574 | 604 | ||
575 | mac = vmac(NULL, 0, nonce, NULL, ctx); | 605 | /* vmac() ends up accessing outside the array bounds that |
606 | * we specify. In appears to access up to the next 2-word | ||
607 | * boundary. We'll just be uber cautious and zero the | ||
608 | * unwritten bytes in the buffer. | ||
609 | */ | ||
610 | if (ctx->partial_size) { | ||
611 | memset(ctx->partial + ctx->partial_size, 0, | ||
612 | VMAC_NHBYTES - ctx->partial_size); | ||
613 | } | ||
614 | mac = vmac(ctx->partial, ctx->partial_size, nonce, NULL, ctx); | ||
576 | memcpy(out, &mac, sizeof(vmac_t)); | 615 | memcpy(out, &mac, sizeof(vmac_t)); |
577 | memset(&mac, 0, sizeof(vmac_t)); | 616 | memset(&mac, 0, sizeof(vmac_t)); |
578 | memset(&ctx->__vmac_ctx, 0, sizeof(struct vmac_ctx)); | 617 | memset(&ctx->__vmac_ctx, 0, sizeof(struct vmac_ctx)); |
618 | ctx->partial_size = 0; | ||
579 | return 0; | 619 | return 0; |
580 | } | 620 | } |
581 | 621 | ||
@@ -673,4 +713,3 @@ module_exit(vmac_module_exit); | |||
673 | 713 | ||
674 | MODULE_LICENSE("GPL"); | 714 | MODULE_LICENSE("GPL"); |
675 | MODULE_DESCRIPTION("VMAC hash algorithm"); | 715 | MODULE_DESCRIPTION("VMAC hash algorithm"); |
676 | |||
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index f6644f59fd9d..87ec4d027c25 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig | |||
@@ -254,6 +254,7 @@ config CRYPTO_DEV_OMAP_AES | |||
254 | tristate "Support for OMAP AES hw engine" | 254 | tristate "Support for OMAP AES hw engine" |
255 | depends on ARCH_OMAP2 || ARCH_OMAP3 | 255 | depends on ARCH_OMAP2 || ARCH_OMAP3 |
256 | select CRYPTO_AES | 256 | select CRYPTO_AES |
257 | select CRYPTO_BLKCIPHER2 | ||
257 | help | 258 | help |
258 | OMAP processors have AES module accelerator. Select this if you | 259 | OMAP processors have AES module accelerator. Select this if you |
259 | want to use the OMAP module for AES algorithms. | 260 | want to use the OMAP module for AES algorithms. |
diff --git a/drivers/crypto/picoxcell_crypto.c b/drivers/crypto/picoxcell_crypto.c index 410a03c01ca4..c983f869d2b7 100644 --- a/drivers/crypto/picoxcell_crypto.c +++ b/drivers/crypto/picoxcell_crypto.c | |||
@@ -1863,6 +1863,7 @@ static int __devexit spacc_remove(struct platform_device *pdev) | |||
1863 | static const struct platform_device_id spacc_id_table[] = { | 1863 | static const struct platform_device_id spacc_id_table[] = { |
1864 | { "picochip,spacc-ipsec", }, | 1864 | { "picochip,spacc-ipsec", }, |
1865 | { "picochip,spacc-l2", }, | 1865 | { "picochip,spacc-l2", }, |
1866 | { } | ||
1866 | }; | 1867 | }; |
1867 | 1868 | ||
1868 | static struct platform_driver spacc_driver = { | 1869 | static struct platform_driver spacc_driver = { |
diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c index a22714412cda..49ad8cbade69 100644 --- a/drivers/crypto/s5p-sss.c +++ b/drivers/crypto/s5p-sss.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <crypto/ctr.h> | 30 | #include <crypto/ctr.h> |
31 | 31 | ||
32 | #include <plat/cpu.h> | 32 | #include <plat/cpu.h> |
33 | #include <plat/dma.h> | 33 | #include <mach/dma.h> |
34 | 34 | ||
35 | #define _SBF(s, v) ((v) << (s)) | 35 | #define _SBF(s, v) ((v) << (s)) |
36 | #define _BIT(b) _SBF(b, 1) | 36 | #define _BIT(b) _SBF(b, 1) |
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index da1112765a44..09b184adf31b 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c | |||
@@ -936,8 +936,7 @@ static int sg_to_link_tbl(struct scatterlist *sg, int sg_count, | |||
936 | sg_count--; | 936 | sg_count--; |
937 | link_tbl_ptr--; | 937 | link_tbl_ptr--; |
938 | } | 938 | } |
939 | link_tbl_ptr->len = cpu_to_be16(be16_to_cpu(link_tbl_ptr->len) | 939 | be16_add_cpu(&link_tbl_ptr->len, cryptlen); |
940 | + cryptlen); | ||
941 | 940 | ||
942 | /* tag end of link table */ | 941 | /* tag end of link table */ |
943 | link_tbl_ptr->j_extent = DESC_PTR_LNKTBL_RETURN; | 942 | link_tbl_ptr->j_extent = DESC_PTR_LNKTBL_RETURN; |
diff --git a/drivers/crypto/tegra-aes.c b/drivers/crypto/tegra-aes.c index e69f3bc473be..eb32fd8cad14 100644 --- a/drivers/crypto/tegra-aes.c +++ b/drivers/crypto/tegra-aes.c | |||
@@ -672,8 +672,10 @@ static int tegra_aes_get_random(struct crypto_rng *tfm, u8 *rdata, | |||
672 | mutex_lock(&aes_lock); | 672 | mutex_lock(&aes_lock); |
673 | 673 | ||
674 | ret = clk_prepare_enable(dd->aes_clk); | 674 | ret = clk_prepare_enable(dd->aes_clk); |
675 | if (ret) | 675 | if (ret) { |
676 | mutex_unlock(&aes_lock); | ||
676 | return ret; | 677 | return ret; |
678 | } | ||
677 | 679 | ||
678 | ctx->dd = dd; | 680 | ctx->dd = dd; |
679 | dd->ctx = ctx; | 681 | dd->ctx = ctx; |
@@ -757,8 +759,10 @@ static int tegra_aes_rng_reset(struct crypto_rng *tfm, u8 *seed, | |||
757 | dd->flags = FLAGS_ENCRYPT | FLAGS_RNG; | 759 | dd->flags = FLAGS_ENCRYPT | FLAGS_RNG; |
758 | 760 | ||
759 | ret = clk_prepare_enable(dd->aes_clk); | 761 | ret = clk_prepare_enable(dd->aes_clk); |
760 | if (ret) | 762 | if (ret) { |
763 | mutex_unlock(&aes_lock); | ||
761 | return ret; | 764 | return ret; |
765 | } | ||
762 | 766 | ||
763 | aes_set_key(dd); | 767 | aes_set_key(dd); |
764 | 768 | ||
@@ -1029,7 +1033,7 @@ out: | |||
1029 | if (dd->buf_out) | 1033 | if (dd->buf_out) |
1030 | dma_free_coherent(dev, AES_HW_DMA_BUFFER_SIZE_BYTES, | 1034 | dma_free_coherent(dev, AES_HW_DMA_BUFFER_SIZE_BYTES, |
1031 | dd->buf_out, dd->dma_buf_out); | 1035 | dd->buf_out, dd->dma_buf_out); |
1032 | if (IS_ERR(dd->aes_clk)) | 1036 | if (!IS_ERR(dd->aes_clk)) |
1033 | clk_put(dd->aes_clk); | 1037 | clk_put(dd->aes_clk); |
1034 | if (aes_wq) | 1038 | if (aes_wq) |
1035 | destroy_workqueue(aes_wq); | 1039 | destroy_workqueue(aes_wq); |
diff --git a/include/crypto/cast5.h b/include/crypto/cast5.h index 586183a0406e..14fbf39d6380 100644 --- a/include/crypto/cast5.h +++ b/include/crypto/cast5.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/crypto.h> | 5 | #include <linux/crypto.h> |
6 | #include <crypto/cast_common.h> | ||
6 | 7 | ||
7 | #define CAST5_BLOCK_SIZE 8 | 8 | #define CAST5_BLOCK_SIZE 8 |
8 | #define CAST5_MIN_KEY_SIZE 5 | 9 | #define CAST5_MIN_KEY_SIZE 5 |
@@ -19,9 +20,4 @@ int cast5_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); | |||
19 | void __cast5_encrypt(struct cast5_ctx *ctx, u8 *dst, const u8 *src); | 20 | void __cast5_encrypt(struct cast5_ctx *ctx, u8 *dst, const u8 *src); |
20 | void __cast5_decrypt(struct cast5_ctx *ctx, u8 *dst, const u8 *src); | 21 | void __cast5_decrypt(struct cast5_ctx *ctx, u8 *dst, const u8 *src); |
21 | 22 | ||
22 | extern const u32 cast5_s1[256]; | ||
23 | extern const u32 cast5_s2[256]; | ||
24 | extern const u32 cast5_s3[256]; | ||
25 | extern const u32 cast5_s4[256]; | ||
26 | |||
27 | #endif | 23 | #endif |
diff --git a/include/crypto/cast6.h b/include/crypto/cast6.h index 157af6f342c8..32b60eb8bd24 100644 --- a/include/crypto/cast6.h +++ b/include/crypto/cast6.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/crypto.h> | 5 | #include <linux/crypto.h> |
6 | #include <crypto/cast_common.h> | ||
6 | 7 | ||
7 | #define CAST6_BLOCK_SIZE 16 | 8 | #define CAST6_BLOCK_SIZE 16 |
8 | #define CAST6_MIN_KEY_SIZE 16 | 9 | #define CAST6_MIN_KEY_SIZE 16 |
@@ -20,9 +21,4 @@ int cast6_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); | |||
20 | void __cast6_encrypt(struct cast6_ctx *ctx, u8 *dst, const u8 *src); | 21 | void __cast6_encrypt(struct cast6_ctx *ctx, u8 *dst, const u8 *src); |
21 | void __cast6_decrypt(struct cast6_ctx *ctx, u8 *dst, const u8 *src); | 22 | void __cast6_decrypt(struct cast6_ctx *ctx, u8 *dst, const u8 *src); |
22 | 23 | ||
23 | extern const u32 cast6_s1[256]; | ||
24 | extern const u32 cast6_s2[256]; | ||
25 | extern const u32 cast6_s3[256]; | ||
26 | extern const u32 cast6_s4[256]; | ||
27 | |||
28 | #endif | 24 | #endif |
diff --git a/include/crypto/cast_common.h b/include/crypto/cast_common.h new file mode 100644 index 000000000000..b7df35cd9f0a --- /dev/null +++ b/include/crypto/cast_common.h | |||
@@ -0,0 +1,9 @@ | |||
1 | #ifndef _CRYPTO_CAST_COMMON_H | ||
2 | #define _CRYPTO_CAST_COMMON_H | ||
3 | |||
4 | extern const u32 cast_s1[256]; | ||
5 | extern const u32 cast_s2[256]; | ||
6 | extern const u32 cast_s3[256]; | ||
7 | extern const u32 cast_s4[256]; | ||
8 | |||
9 | #endif | ||
diff --git a/include/crypto/vmac.h b/include/crypto/vmac.h index c4467c55df1e..6b700c7b2fe1 100644 --- a/include/crypto/vmac.h +++ b/include/crypto/vmac.h | |||
@@ -56,6 +56,8 @@ typedef u64 vmac_t; | |||
56 | struct vmac_ctx_t { | 56 | struct vmac_ctx_t { |
57 | struct crypto_cipher *child; | 57 | struct crypto_cipher *child; |
58 | struct vmac_ctx __vmac_ctx; | 58 | struct vmac_ctx __vmac_ctx; |
59 | u8 partial[VMAC_NHBYTES]; /* partial block */ | ||
60 | int partial_size; /* size of the partial block */ | ||
59 | }; | 61 | }; |
60 | 62 | ||
61 | #endif /* __CRYPTO_VMAC_H */ | 63 | #endif /* __CRYPTO_VMAC_H */ |
diff --git a/kernel/padata.c b/kernel/padata.c index 89fe3d1b9efb..072f4ee4eb89 100644 --- a/kernel/padata.c +++ b/kernel/padata.c | |||
@@ -171,7 +171,7 @@ static struct padata_priv *padata_get_next(struct parallel_data *pd) | |||
171 | { | 171 | { |
172 | int cpu, num_cpus; | 172 | int cpu, num_cpus; |
173 | unsigned int next_nr, next_index; | 173 | unsigned int next_nr, next_index; |
174 | struct padata_parallel_queue *queue, *next_queue; | 174 | struct padata_parallel_queue *next_queue; |
175 | struct padata_priv *padata; | 175 | struct padata_priv *padata; |
176 | struct padata_list *reorder; | 176 | struct padata_list *reorder; |
177 | 177 | ||
@@ -204,8 +204,7 @@ static struct padata_priv *padata_get_next(struct parallel_data *pd) | |||
204 | goto out; | 204 | goto out; |
205 | } | 205 | } |
206 | 206 | ||
207 | queue = per_cpu_ptr(pd->pqueue, smp_processor_id()); | 207 | if (__this_cpu_read(pd->pqueue->cpu_index) == next_queue->cpu_index) { |
208 | if (queue->cpu_index == next_queue->cpu_index) { | ||
209 | padata = ERR_PTR(-ENODATA); | 208 | padata = ERR_PTR(-ENODATA); |
210 | goto out; | 209 | goto out; |
211 | } | 210 | } |