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 bd7ce120bc1..fc9ce6f1688 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 5bacb4a226a..e0ca7c9ac38 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 00000000000..2306d2e4816 --- /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 00000000000..96cbb6068fc --- /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 42ffd2bbab5..5cb86ccd4ac 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 a41a3aaba22..15b00ac7cbd 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 e0ea14f9547..c6631813dc1 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 218d283772f..2569d0da841 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 15e5f85a501..92f7ca24790 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 493f959261f..6812ad98355 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 00000000000..93c6d39237a --- /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 00000000000..f7b6ea2ddfd --- /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 30b3927bd73..22ce4f683e5 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 504106bf04a..02b0e9fe997 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 3f543a04cf1..52abaaf28e7 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 9107a9908c4..97a356ece24 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 1585abb13dd..ebac16bfa83 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 e7708b5442e..94ac91d26e4 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 aa3eb358b7e..13e63b3e1df 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 00000000000..98038add801 --- /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 3e408bddc96..e2d65b061d2 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 432deedd294..0da1d3e2a55 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 9d2c514bd5f..878c51ceebb 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 6563366bae8..4641d95651d 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 8cf61ffe351..d59dec74980 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 bc525dbd8a4..5558f630a0e 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 1acd2f1c48f..de732528a43 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 00000000000..a15f523d5f5 --- /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 e87fa60f583..7ae2130e1b0 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 941d75cd1f7..edf4a081877 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 76d7f6cc82f..b5721e0b979 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 f2338ca9836..2eb11a30c29 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 f6644f59fd9..87ec4d027c2 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 410a03c01ca..c983f869d2b 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 a22714412cd..49ad8cbade6 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 da1112765a4..09b184adf31 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 e69f3bc473b..eb32fd8cad1 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 586183a0406..14fbf39d638 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 157af6f342c..32b60eb8bd2 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 00000000000..b7df35cd9f0 --- /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 c4467c55df1..6b700c7b2fe 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 89fe3d1b9ef..072f4ee4eb8 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 | } |
