Loading...
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (x86)"
4
5config CRYPTO_CURVE25519_X86
6 tristate "Public key crypto: Curve25519 (ADX)"
7 depends on X86 && 64BIT
8 select CRYPTO_LIB_CURVE25519_GENERIC
9 select CRYPTO_ARCH_HAVE_LIB_CURVE25519
10 help
11 Curve25519 algorithm
12
13 Architecture: x86_64 using:
14 - ADX (large integer arithmetic)
15
16config CRYPTO_AES_NI_INTEL
17 tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
18 depends on X86
19 select CRYPTO_AEAD
20 select CRYPTO_LIB_AES
21 select CRYPTO_ALGAPI
22 select CRYPTO_SKCIPHER
23 select CRYPTO_SIMD
24 help
25 Block cipher: AES cipher algorithms
26 AEAD cipher: AES with GCM
27 Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS
28
29 Architecture: x86 (32-bit and 64-bit) using:
30 - AES-NI (AES new instructions)
31
32config CRYPTO_BLOWFISH_X86_64
33 tristate "Ciphers: Blowfish, modes: ECB, CBC"
34 depends on X86 && 64BIT
35 select CRYPTO_SKCIPHER
36 select CRYPTO_BLOWFISH_COMMON
37 imply CRYPTO_CTR
38 help
39 Block cipher: Blowfish cipher algorithm
40 Length-preserving ciphers: Blowfish with ECB and CBC modes
41
42 Architecture: x86_64
43
44config CRYPTO_CAMELLIA_X86_64
45 tristate "Ciphers: Camellia with modes: ECB, CBC"
46 depends on X86 && 64BIT
47 select CRYPTO_SKCIPHER
48 imply CRYPTO_CTR
49 help
50 Block cipher: Camellia cipher algorithms
51 Length-preserving ciphers: Camellia with ECB and CBC modes
52
53 Architecture: x86_64
54
55config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
56 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
57 depends on X86 && 64BIT
58 select CRYPTO_SKCIPHER
59 select CRYPTO_CAMELLIA_X86_64
60 select CRYPTO_SIMD
61 imply CRYPTO_XTS
62 help
63 Length-preserving ciphers: Camellia with ECB and CBC modes
64
65 Architecture: x86_64 using:
66 - AES-NI (AES New Instructions)
67 - AVX (Advanced Vector Extensions)
68
69config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
70 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
71 depends on X86 && 64BIT
72 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
73 help
74 Length-preserving ciphers: Camellia with ECB and CBC modes
75
76 Architecture: x86_64 using:
77 - AES-NI (AES New Instructions)
78 - AVX2 (Advanced Vector Extensions 2)
79
80config CRYPTO_CAST5_AVX_X86_64
81 tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
82 depends on X86 && 64BIT
83 select CRYPTO_SKCIPHER
84 select CRYPTO_CAST5
85 select CRYPTO_CAST_COMMON
86 select CRYPTO_SIMD
87 imply CRYPTO_CTR
88 help
89 Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
90 (RFC2144) with ECB and CBC modes
91
92 Architecture: x86_64 using:
93 - AVX (Advanced Vector Extensions)
94
95 Processes 16 blocks in parallel.
96
97config CRYPTO_CAST6_AVX_X86_64
98 tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
99 depends on X86 && 64BIT
100 select CRYPTO_SKCIPHER
101 select CRYPTO_CAST6
102 select CRYPTO_CAST_COMMON
103 select CRYPTO_SIMD
104 imply CRYPTO_XTS
105 imply CRYPTO_CTR
106 help
107 Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
108 (RFC2612) with ECB and CBC modes
109
110 Architecture: x86_64 using:
111 - AVX (Advanced Vector Extensions)
112
113 Processes eight blocks in parallel.
114
115config CRYPTO_DES3_EDE_X86_64
116 tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
117 depends on X86 && 64BIT
118 select CRYPTO_SKCIPHER
119 select CRYPTO_LIB_DES
120 imply CRYPTO_CTR
121 help
122 Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
123 Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
124
125 Architecture: x86_64
126
127 Processes one or three blocks in parallel.
128
129config CRYPTO_SERPENT_SSE2_X86_64
130 tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
131 depends on X86 && 64BIT
132 select CRYPTO_SKCIPHER
133 select CRYPTO_SERPENT
134 select CRYPTO_SIMD
135 imply CRYPTO_CTR
136 help
137 Length-preserving ciphers: Serpent cipher algorithm
138 with ECB and CBC modes
139
140 Architecture: x86_64 using:
141 - SSE2 (Streaming SIMD Extensions 2)
142
143 Processes eight blocks in parallel.
144
145config CRYPTO_SERPENT_SSE2_586
146 tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
147 depends on X86 && !64BIT
148 select CRYPTO_SKCIPHER
149 select CRYPTO_SERPENT
150 select CRYPTO_SIMD
151 imply CRYPTO_CTR
152 help
153 Length-preserving ciphers: Serpent cipher algorithm
154 with ECB and CBC modes
155
156 Architecture: x86 (32-bit) using:
157 - SSE2 (Streaming SIMD Extensions 2)
158
159 Processes four blocks in parallel.
160
161config CRYPTO_SERPENT_AVX_X86_64
162 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
163 depends on X86 && 64BIT
164 select CRYPTO_SKCIPHER
165 select CRYPTO_SERPENT
166 select CRYPTO_SIMD
167 imply CRYPTO_XTS
168 imply CRYPTO_CTR
169 help
170 Length-preserving ciphers: Serpent cipher algorithm
171 with ECB and CBC modes
172
173 Architecture: x86_64 using:
174 - AVX (Advanced Vector Extensions)
175
176 Processes eight blocks in parallel.
177
178config CRYPTO_SERPENT_AVX2_X86_64
179 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
180 depends on X86 && 64BIT
181 select CRYPTO_SERPENT_AVX_X86_64
182 help
183 Length-preserving ciphers: Serpent cipher algorithm
184 with ECB and CBC modes
185
186 Architecture: x86_64 using:
187 - AVX2 (Advanced Vector Extensions 2)
188
189 Processes 16 blocks in parallel.
190
191config CRYPTO_SM4_AESNI_AVX_X86_64
192 tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX)"
193 depends on X86 && 64BIT
194 select CRYPTO_SKCIPHER
195 select CRYPTO_SIMD
196 select CRYPTO_ALGAPI
197 select CRYPTO_SM4
198 help
199 Length-preserving ciphers: SM4 cipher algorithms
200 (OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
201
202 Architecture: x86_64 using:
203 - AES-NI (AES New Instructions)
204 - AVX (Advanced Vector Extensions)
205
206 Through two affine transforms,
207 we can use the AES S-Box to simulate the SM4 S-Box to achieve the
208 effect of instruction acceleration.
209
210 If unsure, say N.
211
212config CRYPTO_SM4_AESNI_AVX2_X86_64
213 tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX2)"
214 depends on X86 && 64BIT
215 select CRYPTO_SKCIPHER
216 select CRYPTO_SIMD
217 select CRYPTO_ALGAPI
218 select CRYPTO_SM4
219 select CRYPTO_SM4_AESNI_AVX_X86_64
220 help
221 Length-preserving ciphers: SM4 cipher algorithms
222 (OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
223
224 Architecture: x86_64 using:
225 - AES-NI (AES New Instructions)
226 - AVX2 (Advanced Vector Extensions 2)
227
228 Through two affine transforms,
229 we can use the AES S-Box to simulate the SM4 S-Box to achieve the
230 effect of instruction acceleration.
231
232 If unsure, say N.
233
234config CRYPTO_TWOFISH_586
235 tristate "Ciphers: Twofish (32-bit)"
236 depends on (X86 || UML_X86) && !64BIT
237 select CRYPTO_ALGAPI
238 select CRYPTO_TWOFISH_COMMON
239 imply CRYPTO_CTR
240 help
241 Block cipher: Twofish cipher algorithm
242
243 Architecture: x86 (32-bit)
244
245config CRYPTO_TWOFISH_X86_64
246 tristate "Ciphers: Twofish"
247 depends on (X86 || UML_X86) && 64BIT
248 select CRYPTO_ALGAPI
249 select CRYPTO_TWOFISH_COMMON
250 imply CRYPTO_CTR
251 help
252 Block cipher: Twofish cipher algorithm
253
254 Architecture: x86_64
255
256config CRYPTO_TWOFISH_X86_64_3WAY
257 tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
258 depends on X86 && 64BIT
259 select CRYPTO_SKCIPHER
260 select CRYPTO_TWOFISH_COMMON
261 select CRYPTO_TWOFISH_X86_64
262 help
263 Length-preserving cipher: Twofish cipher algorithm
264 with ECB and CBC modes
265
266 Architecture: x86_64
267
268 Processes three blocks in parallel, better utilizing resources of
269 out-of-order CPUs.
270
271config CRYPTO_TWOFISH_AVX_X86_64
272 tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
273 depends on X86 && 64BIT
274 select CRYPTO_SKCIPHER
275 select CRYPTO_SIMD
276 select CRYPTO_TWOFISH_COMMON
277 select CRYPTO_TWOFISH_X86_64
278 select CRYPTO_TWOFISH_X86_64_3WAY
279 imply CRYPTO_XTS
280 help
281 Length-preserving cipher: Twofish cipher algorithm
282 with ECB and CBC modes
283
284 Architecture: x86_64 using:
285 - AVX (Advanced Vector Extensions)
286
287 Processes eight blocks in parallel.
288
289config CRYPTO_ARIA_AESNI_AVX_X86_64
290 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
291 depends on X86 && 64BIT
292 select CRYPTO_SKCIPHER
293 select CRYPTO_SIMD
294 select CRYPTO_ALGAPI
295 select CRYPTO_ARIA
296 help
297 Length-preserving cipher: ARIA cipher algorithms
298 (RFC 5794) with ECB and CTR modes
299
300 Architecture: x86_64 using:
301 - AES-NI (AES New Instructions)
302 - AVX (Advanced Vector Extensions)
303 - GFNI (Galois Field New Instructions)
304
305 Processes 16 blocks in parallel.
306
307config CRYPTO_CHACHA20_X86_64
308 tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
309 depends on X86 && 64BIT
310 select CRYPTO_SKCIPHER
311 select CRYPTO_LIB_CHACHA_GENERIC
312 select CRYPTO_ARCH_HAVE_LIB_CHACHA
313 help
314 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
315 stream cipher algorithms
316
317 Architecture: x86_64 using:
318 - SSSE3 (Supplemental SSE3)
319 - AVX2 (Advanced Vector Extensions 2)
320 - AVX-512VL (Advanced Vector Extensions-512VL)
321
322config CRYPTO_AEGIS128_AESNI_SSE2
323 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
324 depends on X86 && 64BIT
325 select CRYPTO_AEAD
326 select CRYPTO_SIMD
327 help
328 AEGIS-128 AEAD algorithm
329
330 Architecture: x86_64 using:
331 - AES-NI (AES New Instructions)
332 - SSE2 (Streaming SIMD Extensions 2)
333
334config CRYPTO_NHPOLY1305_SSE2
335 tristate "Hash functions: NHPoly1305 (SSE2)"
336 depends on X86 && 64BIT
337 select CRYPTO_NHPOLY1305
338 help
339 NHPoly1305 hash function for Adiantum
340
341 Architecture: x86_64 using:
342 - SSE2 (Streaming SIMD Extensions 2)
343
344config CRYPTO_NHPOLY1305_AVX2
345 tristate "Hash functions: NHPoly1305 (AVX2)"
346 depends on X86 && 64BIT
347 select CRYPTO_NHPOLY1305
348 help
349 NHPoly1305 hash function for Adiantum
350
351 Architecture: x86_64 using:
352 - AVX2 (Advanced Vector Extensions 2)
353
354config CRYPTO_BLAKE2S_X86
355 bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
356 depends on X86 && 64BIT
357 select CRYPTO_LIB_BLAKE2S_GENERIC
358 select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
359 help
360 BLAKE2s cryptographic hash function (RFC 7693)
361
362 Architecture: x86_64 using:
363 - SSSE3 (Supplemental SSE3)
364 - AVX-512 (Advanced Vector Extensions-512)
365
366config CRYPTO_POLYVAL_CLMUL_NI
367 tristate "Hash functions: POLYVAL (CLMUL-NI)"
368 depends on X86 && 64BIT
369 select CRYPTO_POLYVAL
370 help
371 POLYVAL hash function for HCTR2
372
373 Architecture: x86_64 using:
374 - CLMUL-NI (carry-less multiplication new instructions)
375
376config CRYPTO_POLY1305_X86_64
377 tristate "Hash functions: Poly1305 (SSE2/AVX2)"
378 depends on X86 && 64BIT
379 select CRYPTO_LIB_POLY1305_GENERIC
380 select CRYPTO_ARCH_HAVE_LIB_POLY1305
381 help
382 Poly1305 authenticator algorithm (RFC7539)
383
384 Architecture: x86_64 using:
385 - SSE2 (Streaming SIMD Extensions 2)
386 - AVX2 (Advanced Vector Extensions 2)
387
388config CRYPTO_SHA1_SSSE3
389 tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
390 depends on X86 && 64BIT
391 select CRYPTO_SHA1
392 select CRYPTO_HASH
393 help
394 SHA-1 secure hash algorithm (FIPS 180)
395
396 Architecture: x86_64 using:
397 - SSSE3 (Supplemental SSE3)
398 - AVX (Advanced Vector Extensions)
399 - AVX2 (Advanced Vector Extensions 2)
400 - SHA-NI (SHA Extensions New Instructions)
401
402config CRYPTO_SHA256_SSSE3
403 tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
404 depends on X86 && 64BIT
405 select CRYPTO_SHA256
406 select CRYPTO_HASH
407 help
408 SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
409
410 Architecture: x86_64 using:
411 - SSSE3 (Supplemental SSE3)
412 - AVX (Advanced Vector Extensions)
413 - AVX2 (Advanced Vector Extensions 2)
414 - SHA-NI (SHA Extensions New Instructions)
415
416config CRYPTO_SHA512_SSSE3
417 tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
418 depends on X86 && 64BIT
419 select CRYPTO_SHA512
420 select CRYPTO_HASH
421 help
422 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
423
424 Architecture: x86_64 using:
425 - SSSE3 (Supplemental SSE3)
426 - AVX (Advanced Vector Extensions)
427 - AVX2 (Advanced Vector Extensions 2)
428
429config CRYPTO_SM3_AVX_X86_64
430 tristate "Hash functions: SM3 (AVX)"
431 depends on X86 && 64BIT
432 select CRYPTO_HASH
433 select CRYPTO_SM3
434 help
435 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
436
437 Architecture: x86_64 using:
438 - AVX (Advanced Vector Extensions)
439
440 If unsure, say N.
441
442config CRYPTO_GHASH_CLMUL_NI_INTEL
443 tristate "Hash functions: GHASH (CLMUL-NI)"
444 depends on X86 && 64BIT
445 select CRYPTO_CRYPTD
446 help
447 GCM GHASH hash function (NIST SP800-38D)
448
449 Architecture: x86_64 using:
450 - CLMUL-NI (carry-less multiplication new instructions)
451
452config CRYPTO_CRC32C_INTEL
453 tristate "CRC32c (SSE4.2/PCLMULQDQ)"
454 depends on X86
455 select CRYPTO_HASH
456 help
457 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
458
459 Architecture: x86 (32-bit and 64-bit) using:
460 - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
461 - PCLMULQDQ (carry-less multiplication)
462
463config CRYPTO_CRC32_PCLMUL
464 tristate "CRC32 (PCLMULQDQ)"
465 depends on X86
466 select CRYPTO_HASH
467 select CRC32
468 help
469 CRC32 CRC algorithm (IEEE 802.3)
470
471 Architecture: x86 (32-bit and 64-bit) using:
472 - PCLMULQDQ (carry-less multiplication)
473
474config CRYPTO_CRCT10DIF_PCLMUL
475 tristate "CRCT10DIF (PCLMULQDQ)"
476 depends on X86 && 64BIT && CRC_T10DIF
477 select CRYPTO_HASH
478 help
479 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
480
481 Architecture: x86_64 using:
482 - PCLMULQDQ (carry-less multiplication)
483
484endmenu
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (x86)"
4
5config CRYPTO_CURVE25519_X86
6 tristate "Public key crypto: Curve25519 (ADX)"
7 depends on X86 && 64BIT
8 select CRYPTO_LIB_CURVE25519_GENERIC
9 select CRYPTO_ARCH_HAVE_LIB_CURVE25519
10 help
11 Curve25519 algorithm
12
13 Architecture: x86_64 using:
14 - ADX (large integer arithmetic)
15
16config CRYPTO_AES_NI_INTEL
17 tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
18 depends on X86
19 select CRYPTO_AEAD
20 select CRYPTO_LIB_AES
21 select CRYPTO_LIB_GF128MUL
22 select CRYPTO_ALGAPI
23 select CRYPTO_SKCIPHER
24 select CRYPTO_SIMD
25 help
26 Block cipher: AES cipher algorithms
27 AEAD cipher: AES with GCM
28 Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
29
30 Architecture: x86 (32-bit and 64-bit) using:
31 - AES-NI (AES new instructions)
32 - VAES (Vector AES)
33
34 Some algorithm implementations are supported only in 64-bit builds,
35 and some have additional prerequisites such as AVX2 or AVX512.
36
37config CRYPTO_BLOWFISH_X86_64
38 tristate "Ciphers: Blowfish, modes: ECB, CBC"
39 depends on X86 && 64BIT
40 select CRYPTO_SKCIPHER
41 select CRYPTO_BLOWFISH_COMMON
42 imply CRYPTO_CTR
43 help
44 Block cipher: Blowfish cipher algorithm
45 Length-preserving ciphers: Blowfish with ECB and CBC modes
46
47 Architecture: x86_64
48
49config CRYPTO_CAMELLIA_X86_64
50 tristate "Ciphers: Camellia with modes: ECB, CBC"
51 depends on X86 && 64BIT
52 select CRYPTO_SKCIPHER
53 imply CRYPTO_CTR
54 help
55 Block cipher: Camellia cipher algorithms
56 Length-preserving ciphers: Camellia with ECB and CBC modes
57
58 Architecture: x86_64
59
60config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
61 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
62 depends on X86 && 64BIT
63 select CRYPTO_SKCIPHER
64 select CRYPTO_CAMELLIA_X86_64
65 select CRYPTO_SIMD
66 imply CRYPTO_XTS
67 help
68 Length-preserving ciphers: Camellia with ECB and CBC modes
69
70 Architecture: x86_64 using:
71 - AES-NI (AES New Instructions)
72 - AVX (Advanced Vector Extensions)
73
74config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
75 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
76 depends on X86 && 64BIT
77 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
78 help
79 Length-preserving ciphers: Camellia with ECB and CBC modes
80
81 Architecture: x86_64 using:
82 - AES-NI (AES New Instructions)
83 - AVX2 (Advanced Vector Extensions 2)
84
85config CRYPTO_CAST5_AVX_X86_64
86 tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
87 depends on X86 && 64BIT
88 select CRYPTO_SKCIPHER
89 select CRYPTO_CAST5
90 select CRYPTO_CAST_COMMON
91 select CRYPTO_SIMD
92 imply CRYPTO_CTR
93 help
94 Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
95 (RFC2144) with ECB and CBC modes
96
97 Architecture: x86_64 using:
98 - AVX (Advanced Vector Extensions)
99
100 Processes 16 blocks in parallel.
101
102config CRYPTO_CAST6_AVX_X86_64
103 tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
104 depends on X86 && 64BIT
105 select CRYPTO_SKCIPHER
106 select CRYPTO_CAST6
107 select CRYPTO_CAST_COMMON
108 select CRYPTO_SIMD
109 imply CRYPTO_XTS
110 imply CRYPTO_CTR
111 help
112 Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
113 (RFC2612) with ECB and CBC modes
114
115 Architecture: x86_64 using:
116 - AVX (Advanced Vector Extensions)
117
118 Processes eight blocks in parallel.
119
120config CRYPTO_DES3_EDE_X86_64
121 tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
122 depends on X86 && 64BIT
123 select CRYPTO_SKCIPHER
124 select CRYPTO_LIB_DES
125 imply CRYPTO_CTR
126 help
127 Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
128 Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
129
130 Architecture: x86_64
131
132 Processes one or three blocks in parallel.
133
134config CRYPTO_SERPENT_SSE2_X86_64
135 tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
136 depends on X86 && 64BIT
137 select CRYPTO_SKCIPHER
138 select CRYPTO_SERPENT
139 select CRYPTO_SIMD
140 imply CRYPTO_CTR
141 help
142 Length-preserving ciphers: Serpent cipher algorithm
143 with ECB and CBC modes
144
145 Architecture: x86_64 using:
146 - SSE2 (Streaming SIMD Extensions 2)
147
148 Processes eight blocks in parallel.
149
150config CRYPTO_SERPENT_SSE2_586
151 tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
152 depends on X86 && !64BIT
153 select CRYPTO_SKCIPHER
154 select CRYPTO_SERPENT
155 select CRYPTO_SIMD
156 imply CRYPTO_CTR
157 help
158 Length-preserving ciphers: Serpent cipher algorithm
159 with ECB and CBC modes
160
161 Architecture: x86 (32-bit) using:
162 - SSE2 (Streaming SIMD Extensions 2)
163
164 Processes four blocks in parallel.
165
166config CRYPTO_SERPENT_AVX_X86_64
167 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
168 depends on X86 && 64BIT
169 select CRYPTO_SKCIPHER
170 select CRYPTO_SERPENT
171 select CRYPTO_SIMD
172 imply CRYPTO_XTS
173 imply CRYPTO_CTR
174 help
175 Length-preserving ciphers: Serpent cipher algorithm
176 with ECB and CBC modes
177
178 Architecture: x86_64 using:
179 - AVX (Advanced Vector Extensions)
180
181 Processes eight blocks in parallel.
182
183config CRYPTO_SERPENT_AVX2_X86_64
184 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
185 depends on X86 && 64BIT
186 select CRYPTO_SERPENT_AVX_X86_64
187 help
188 Length-preserving ciphers: Serpent cipher algorithm
189 with ECB and CBC modes
190
191 Architecture: x86_64 using:
192 - AVX2 (Advanced Vector Extensions 2)
193
194 Processes 16 blocks in parallel.
195
196config CRYPTO_SM4_AESNI_AVX_X86_64
197 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
198 depends on X86 && 64BIT
199 select CRYPTO_SKCIPHER
200 select CRYPTO_SIMD
201 select CRYPTO_ALGAPI
202 select CRYPTO_SM4
203 help
204 Length-preserving ciphers: SM4 cipher algorithms
205 (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
206
207 Architecture: x86_64 using:
208 - AES-NI (AES New Instructions)
209 - AVX (Advanced Vector Extensions)
210
211 Through two affine transforms,
212 we can use the AES S-Box to simulate the SM4 S-Box to achieve the
213 effect of instruction acceleration.
214
215 If unsure, say N.
216
217config CRYPTO_SM4_AESNI_AVX2_X86_64
218 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
219 depends on X86 && 64BIT
220 select CRYPTO_SKCIPHER
221 select CRYPTO_SIMD
222 select CRYPTO_ALGAPI
223 select CRYPTO_SM4
224 select CRYPTO_SM4_AESNI_AVX_X86_64
225 help
226 Length-preserving ciphers: SM4 cipher algorithms
227 (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
228
229 Architecture: x86_64 using:
230 - AES-NI (AES New Instructions)
231 - AVX2 (Advanced Vector Extensions 2)
232
233 Through two affine transforms,
234 we can use the AES S-Box to simulate the SM4 S-Box to achieve the
235 effect of instruction acceleration.
236
237 If unsure, say N.
238
239config CRYPTO_TWOFISH_586
240 tristate "Ciphers: Twofish (32-bit)"
241 depends on (X86 || UML_X86) && !64BIT
242 select CRYPTO_ALGAPI
243 select CRYPTO_TWOFISH_COMMON
244 imply CRYPTO_CTR
245 help
246 Block cipher: Twofish cipher algorithm
247
248 Architecture: x86 (32-bit)
249
250config CRYPTO_TWOFISH_X86_64
251 tristate "Ciphers: Twofish"
252 depends on (X86 || UML_X86) && 64BIT
253 select CRYPTO_ALGAPI
254 select CRYPTO_TWOFISH_COMMON
255 imply CRYPTO_CTR
256 help
257 Block cipher: Twofish cipher algorithm
258
259 Architecture: x86_64
260
261config CRYPTO_TWOFISH_X86_64_3WAY
262 tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
263 depends on X86 && 64BIT
264 select CRYPTO_SKCIPHER
265 select CRYPTO_TWOFISH_COMMON
266 select CRYPTO_TWOFISH_X86_64
267 help
268 Length-preserving cipher: Twofish cipher algorithm
269 with ECB and CBC modes
270
271 Architecture: x86_64
272
273 Processes three blocks in parallel, better utilizing resources of
274 out-of-order CPUs.
275
276config CRYPTO_TWOFISH_AVX_X86_64
277 tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
278 depends on X86 && 64BIT
279 select CRYPTO_SKCIPHER
280 select CRYPTO_SIMD
281 select CRYPTO_TWOFISH_COMMON
282 select CRYPTO_TWOFISH_X86_64
283 select CRYPTO_TWOFISH_X86_64_3WAY
284 imply CRYPTO_XTS
285 help
286 Length-preserving cipher: Twofish cipher algorithm
287 with ECB and CBC modes
288
289 Architecture: x86_64 using:
290 - AVX (Advanced Vector Extensions)
291
292 Processes eight blocks in parallel.
293
294config CRYPTO_ARIA_AESNI_AVX_X86_64
295 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
296 depends on X86 && 64BIT
297 select CRYPTO_SKCIPHER
298 select CRYPTO_SIMD
299 select CRYPTO_ALGAPI
300 select CRYPTO_ARIA
301 help
302 Length-preserving cipher: ARIA cipher algorithms
303 (RFC 5794) with ECB and CTR modes
304
305 Architecture: x86_64 using:
306 - AES-NI (AES New Instructions)
307 - AVX (Advanced Vector Extensions)
308 - GFNI (Galois Field New Instructions)
309
310 Processes 16 blocks in parallel.
311
312config CRYPTO_ARIA_AESNI_AVX2_X86_64
313 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
314 depends on X86 && 64BIT
315 select CRYPTO_SKCIPHER
316 select CRYPTO_SIMD
317 select CRYPTO_ALGAPI
318 select CRYPTO_ARIA
319 select CRYPTO_ARIA_AESNI_AVX_X86_64
320 help
321 Length-preserving cipher: ARIA cipher algorithms
322 (RFC 5794) with ECB and CTR modes
323
324 Architecture: x86_64 using:
325 - AES-NI (AES New Instructions)
326 - AVX2 (Advanced Vector Extensions)
327 - GFNI (Galois Field New Instructions)
328
329 Processes 32 blocks in parallel.
330
331config CRYPTO_ARIA_GFNI_AVX512_X86_64
332 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
333 depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
334 select CRYPTO_SKCIPHER
335 select CRYPTO_SIMD
336 select CRYPTO_ALGAPI
337 select CRYPTO_ARIA
338 select CRYPTO_ARIA_AESNI_AVX_X86_64
339 select CRYPTO_ARIA_AESNI_AVX2_X86_64
340 help
341 Length-preserving cipher: ARIA cipher algorithms
342 (RFC 5794) with ECB and CTR modes
343
344 Architecture: x86_64 using:
345 - AVX512 (Advanced Vector Extensions)
346 - GFNI (Galois Field New Instructions)
347
348 Processes 64 blocks in parallel.
349
350config CRYPTO_CHACHA20_X86_64
351 tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
352 depends on X86 && 64BIT
353 select CRYPTO_SKCIPHER
354 select CRYPTO_LIB_CHACHA_GENERIC
355 select CRYPTO_ARCH_HAVE_LIB_CHACHA
356 help
357 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
358 stream cipher algorithms
359
360 Architecture: x86_64 using:
361 - SSSE3 (Supplemental SSE3)
362 - AVX2 (Advanced Vector Extensions 2)
363 - AVX-512VL (Advanced Vector Extensions-512VL)
364
365config CRYPTO_AEGIS128_AESNI_SSE2
366 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
367 depends on X86 && 64BIT
368 select CRYPTO_AEAD
369 select CRYPTO_SIMD
370 help
371 AEGIS-128 AEAD algorithm
372
373 Architecture: x86_64 using:
374 - AES-NI (AES New Instructions)
375 - SSE4.1 (Streaming SIMD Extensions 4.1)
376
377config CRYPTO_NHPOLY1305_SSE2
378 tristate "Hash functions: NHPoly1305 (SSE2)"
379 depends on X86 && 64BIT
380 select CRYPTO_NHPOLY1305
381 help
382 NHPoly1305 hash function for Adiantum
383
384 Architecture: x86_64 using:
385 - SSE2 (Streaming SIMD Extensions 2)
386
387config CRYPTO_NHPOLY1305_AVX2
388 tristate "Hash functions: NHPoly1305 (AVX2)"
389 depends on X86 && 64BIT
390 select CRYPTO_NHPOLY1305
391 help
392 NHPoly1305 hash function for Adiantum
393
394 Architecture: x86_64 using:
395 - AVX2 (Advanced Vector Extensions 2)
396
397config CRYPTO_BLAKE2S_X86
398 bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
399 depends on X86 && 64BIT
400 select CRYPTO_LIB_BLAKE2S_GENERIC
401 select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
402 help
403 BLAKE2s cryptographic hash function (RFC 7693)
404
405 Architecture: x86_64 using:
406 - SSSE3 (Supplemental SSE3)
407 - AVX-512 (Advanced Vector Extensions-512)
408
409config CRYPTO_POLYVAL_CLMUL_NI
410 tristate "Hash functions: POLYVAL (CLMUL-NI)"
411 depends on X86 && 64BIT
412 select CRYPTO_POLYVAL
413 help
414 POLYVAL hash function for HCTR2
415
416 Architecture: x86_64 using:
417 - CLMUL-NI (carry-less multiplication new instructions)
418
419config CRYPTO_POLY1305_X86_64
420 tristate "Hash functions: Poly1305 (SSE2/AVX2)"
421 depends on X86 && 64BIT
422 select CRYPTO_LIB_POLY1305_GENERIC
423 select CRYPTO_ARCH_HAVE_LIB_POLY1305
424 help
425 Poly1305 authenticator algorithm (RFC7539)
426
427 Architecture: x86_64 using:
428 - SSE2 (Streaming SIMD Extensions 2)
429 - AVX2 (Advanced Vector Extensions 2)
430
431config CRYPTO_SHA1_SSSE3
432 tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
433 depends on X86 && 64BIT
434 select CRYPTO_SHA1
435 select CRYPTO_HASH
436 help
437 SHA-1 secure hash algorithm (FIPS 180)
438
439 Architecture: x86_64 using:
440 - SSSE3 (Supplemental SSE3)
441 - AVX (Advanced Vector Extensions)
442 - AVX2 (Advanced Vector Extensions 2)
443 - SHA-NI (SHA Extensions New Instructions)
444
445config CRYPTO_SHA256_SSSE3
446 tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
447 depends on X86 && 64BIT
448 select CRYPTO_SHA256
449 select CRYPTO_HASH
450 help
451 SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
452
453 Architecture: x86_64 using:
454 - SSSE3 (Supplemental SSE3)
455 - AVX (Advanced Vector Extensions)
456 - AVX2 (Advanced Vector Extensions 2)
457 - SHA-NI (SHA Extensions New Instructions)
458
459config CRYPTO_SHA512_SSSE3
460 tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
461 depends on X86 && 64BIT
462 select CRYPTO_SHA512
463 select CRYPTO_HASH
464 help
465 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
466
467 Architecture: x86_64 using:
468 - SSSE3 (Supplemental SSE3)
469 - AVX (Advanced Vector Extensions)
470 - AVX2 (Advanced Vector Extensions 2)
471
472config CRYPTO_SM3_AVX_X86_64
473 tristate "Hash functions: SM3 (AVX)"
474 depends on X86 && 64BIT
475 select CRYPTO_HASH
476 select CRYPTO_SM3
477 help
478 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
479
480 Architecture: x86_64 using:
481 - AVX (Advanced Vector Extensions)
482
483 If unsure, say N.
484
485config CRYPTO_GHASH_CLMUL_NI_INTEL
486 tristate "Hash functions: GHASH (CLMUL-NI)"
487 depends on X86 && 64BIT
488 select CRYPTO_CRYPTD
489 help
490 GCM GHASH hash function (NIST SP800-38D)
491
492 Architecture: x86_64 using:
493 - CLMUL-NI (carry-less multiplication new instructions)
494
495config CRYPTO_CRC32C_INTEL
496 tristate "CRC32c (SSE4.2/PCLMULQDQ)"
497 depends on X86
498 select CRYPTO_HASH
499 help
500 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
501
502 Architecture: x86 (32-bit and 64-bit) using:
503 - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
504 - PCLMULQDQ (carry-less multiplication)
505
506config CRYPTO_CRC32_PCLMUL
507 tristate "CRC32 (PCLMULQDQ)"
508 depends on X86
509 select CRYPTO_HASH
510 select CRC32
511 help
512 CRC32 CRC algorithm (IEEE 802.3)
513
514 Architecture: x86 (32-bit and 64-bit) using:
515 - PCLMULQDQ (carry-less multiplication)
516
517config CRYPTO_CRCT10DIF_PCLMUL
518 tristate "CRCT10DIF (PCLMULQDQ)"
519 depends on X86 && 64BIT && CRC_T10DIF
520 select CRYPTO_HASH
521 help
522 CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
523
524 Architecture: x86_64 using:
525 - PCLMULQDQ (carry-less multiplication)
526
527endmenu