xref: /linux/arch/x86/crypto/Kconfig (revision b06affb1cb580e135d1b454d5318fdbe6e24828a)
128a936efSRobert Elliott# SPDX-License-Identifier: GPL-2.0
228a936efSRobert Elliott
328a936efSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (x86)"
428a936efSRobert Elliott
528a936efSRobert Elliottconfig CRYPTO_CURVE25519_X86
605b37465SRobert Elliott	tristate "Public key crypto: Curve25519 (ADX)"
728a936efSRobert Elliott	depends on X86 && 64BIT
828a936efSRobert Elliott	select CRYPTO_LIB_CURVE25519_GENERIC
928a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
1005b37465SRobert Elliott	help
1105b37465SRobert Elliott	  Curve25519 algorithm
1205b37465SRobert Elliott
1305b37465SRobert Elliott	  Architecture: x86_64 using:
1405b37465SRobert Elliott	  - ADX (large integer arithmetic)
1528a936efSRobert Elliott
1628a936efSRobert Elliottconfig CRYPTO_AES_NI_INTEL
17cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
1828a936efSRobert Elliott	depends on X86
1928a936efSRobert Elliott	select CRYPTO_AEAD
2028a936efSRobert Elliott	select CRYPTO_LIB_AES
21*b06affb1SEric Biggers	select CRYPTO_LIB_GF128MUL
2228a936efSRobert Elliott	select CRYPTO_ALGAPI
2328a936efSRobert Elliott	select CRYPTO_SKCIPHER
2428a936efSRobert Elliott	select CRYPTO_SIMD
2528a936efSRobert Elliott	help
26cf514b2aSRobert Elliott	  Block cipher: AES cipher algorithms
27cf514b2aSRobert Elliott	  AEAD cipher: AES with GCM
28cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS
2928a936efSRobert Elliott
30cf514b2aSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
31cf514b2aSRobert Elliott	  - AES-NI (AES new instructions)
3228a936efSRobert Elliott
3328a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64
34cf514b2aSRobert Elliott	tristate "Ciphers: Blowfish, modes: ECB, CBC"
3528a936efSRobert Elliott	depends on X86 && 64BIT
3628a936efSRobert Elliott	select CRYPTO_SKCIPHER
3728a936efSRobert Elliott	select CRYPTO_BLOWFISH_COMMON
3828a936efSRobert Elliott	imply CRYPTO_CTR
3928a936efSRobert Elliott	help
40cf514b2aSRobert Elliott	  Block cipher: Blowfish cipher algorithm
41cf514b2aSRobert Elliott	  Length-preserving ciphers: Blowfish with ECB and CBC modes
4228a936efSRobert Elliott
43cf514b2aSRobert Elliott	  Architecture: x86_64
4428a936efSRobert Elliott
4528a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64
46cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC"
4728a936efSRobert Elliott	depends on X86 && 64BIT
4828a936efSRobert Elliott	select CRYPTO_SKCIPHER
4928a936efSRobert Elliott	imply CRYPTO_CTR
5028a936efSRobert Elliott	help
51cf514b2aSRobert Elliott	  Block cipher: Camellia cipher algorithms
52cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
5328a936efSRobert Elliott
54cf514b2aSRobert Elliott	  Architecture: x86_64
5528a936efSRobert Elliott
5628a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
57cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
5828a936efSRobert Elliott	depends on X86 && 64BIT
5928a936efSRobert Elliott	select CRYPTO_SKCIPHER
6028a936efSRobert Elliott	select CRYPTO_CAMELLIA_X86_64
6128a936efSRobert Elliott	select CRYPTO_SIMD
6228a936efSRobert Elliott	imply CRYPTO_XTS
6328a936efSRobert Elliott	help
64cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
6528a936efSRobert Elliott
66cf514b2aSRobert Elliott	  Architecture: x86_64 using:
67cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
68cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
6928a936efSRobert Elliott
7028a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
71cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
7228a936efSRobert Elliott	depends on X86 && 64BIT
7328a936efSRobert Elliott	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
7428a936efSRobert Elliott	help
75cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
7628a936efSRobert Elliott
77cf514b2aSRobert Elliott	  Architecture: x86_64 using:
78cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
79cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
8028a936efSRobert Elliott
8128a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64
82cf514b2aSRobert Elliott	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
8328a936efSRobert Elliott	depends on X86 && 64BIT
8428a936efSRobert Elliott	select CRYPTO_SKCIPHER
8528a936efSRobert Elliott	select CRYPTO_CAST5
8628a936efSRobert Elliott	select CRYPTO_CAST_COMMON
8728a936efSRobert Elliott	select CRYPTO_SIMD
8828a936efSRobert Elliott	imply CRYPTO_CTR
8928a936efSRobert Elliott	help
90cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
91cf514b2aSRobert Elliott	  (RFC2144) with ECB and CBC modes
9228a936efSRobert Elliott
93cf514b2aSRobert Elliott	  Architecture: x86_64 using:
94cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
95cf514b2aSRobert Elliott
96cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
9728a936efSRobert Elliott
9828a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64
99cf514b2aSRobert Elliott	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
10028a936efSRobert Elliott	depends on X86 && 64BIT
10128a936efSRobert Elliott	select CRYPTO_SKCIPHER
10228a936efSRobert Elliott	select CRYPTO_CAST6
10328a936efSRobert Elliott	select CRYPTO_CAST_COMMON
10428a936efSRobert Elliott	select CRYPTO_SIMD
10528a936efSRobert Elliott	imply CRYPTO_XTS
10628a936efSRobert Elliott	imply CRYPTO_CTR
10728a936efSRobert Elliott	help
108cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
109cf514b2aSRobert Elliott	  (RFC2612) with ECB and CBC modes
11028a936efSRobert Elliott
111cf514b2aSRobert Elliott	  Architecture: x86_64 using:
112cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
113cf514b2aSRobert Elliott
114cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
11528a936efSRobert Elliott
11628a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64
117cf514b2aSRobert Elliott	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
11828a936efSRobert Elliott	depends on X86 && 64BIT
11928a936efSRobert Elliott	select CRYPTO_SKCIPHER
12028a936efSRobert Elliott	select CRYPTO_LIB_DES
12128a936efSRobert Elliott	imply CRYPTO_CTR
12228a936efSRobert Elliott	help
123cf514b2aSRobert Elliott	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
124cf514b2aSRobert Elliott	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
12528a936efSRobert Elliott
126cf514b2aSRobert Elliott	  Architecture: x86_64
127cf514b2aSRobert Elliott
128cf514b2aSRobert Elliott	  Processes one or three blocks in parallel.
12928a936efSRobert Elliott
13028a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64
131cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
13228a936efSRobert Elliott	depends on X86 && 64BIT
13328a936efSRobert Elliott	select CRYPTO_SKCIPHER
13428a936efSRobert Elliott	select CRYPTO_SERPENT
13528a936efSRobert Elliott	select CRYPTO_SIMD
13628a936efSRobert Elliott	imply CRYPTO_CTR
13728a936efSRobert Elliott	help
138cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
139cf514b2aSRobert Elliott	  with ECB and CBC modes
14028a936efSRobert Elliott
141cf514b2aSRobert Elliott	  Architecture: x86_64 using:
142cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
14328a936efSRobert Elliott
144cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
14528a936efSRobert Elliott
14628a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586
147cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
14828a936efSRobert Elliott	depends on X86 && !64BIT
14928a936efSRobert Elliott	select CRYPTO_SKCIPHER
15028a936efSRobert Elliott	select CRYPTO_SERPENT
15128a936efSRobert Elliott	select CRYPTO_SIMD
15228a936efSRobert Elliott	imply CRYPTO_CTR
15328a936efSRobert Elliott	help
154cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
155cf514b2aSRobert Elliott	  with ECB and CBC modes
15628a936efSRobert Elliott
157cf514b2aSRobert Elliott	  Architecture: x86 (32-bit) using:
158cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
15928a936efSRobert Elliott
160cf514b2aSRobert Elliott	  Processes four blocks in parallel.
16128a936efSRobert Elliott
16228a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX_X86_64
163cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
16428a936efSRobert Elliott	depends on X86 && 64BIT
16528a936efSRobert Elliott	select CRYPTO_SKCIPHER
16628a936efSRobert Elliott	select CRYPTO_SERPENT
16728a936efSRobert Elliott	select CRYPTO_SIMD
16828a936efSRobert Elliott	imply CRYPTO_XTS
16928a936efSRobert Elliott	imply CRYPTO_CTR
17028a936efSRobert Elliott	help
171cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
172cf514b2aSRobert Elliott	  with ECB and CBC modes
17328a936efSRobert Elliott
174cf514b2aSRobert Elliott	  Architecture: x86_64 using:
175cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
17628a936efSRobert Elliott
177cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
17828a936efSRobert Elliott
17928a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64
180cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
18128a936efSRobert Elliott	depends on X86 && 64BIT
18228a936efSRobert Elliott	select CRYPTO_SERPENT_AVX_X86_64
18328a936efSRobert Elliott	help
184cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
185cf514b2aSRobert Elliott	  with ECB and CBC modes
18628a936efSRobert Elliott
187cf514b2aSRobert Elliott	  Architecture: x86_64 using:
188cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
18928a936efSRobert Elliott
190cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
19128a936efSRobert Elliott
19228a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64
19305bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
19428a936efSRobert Elliott	depends on X86 && 64BIT
19528a936efSRobert Elliott	select CRYPTO_SKCIPHER
19628a936efSRobert Elliott	select CRYPTO_SIMD
19728a936efSRobert Elliott	select CRYPTO_ALGAPI
19828a936efSRobert Elliott	select CRYPTO_SM4
19928a936efSRobert Elliott	help
200cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
20105bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
20228a936efSRobert Elliott
203cf514b2aSRobert Elliott	  Architecture: x86_64 using:
204cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
205cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
20628a936efSRobert Elliott
207cf514b2aSRobert Elliott	  Through two affine transforms,
20828a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
20928a936efSRobert Elliott	  effect of instruction acceleration.
21028a936efSRobert Elliott
21128a936efSRobert Elliott	  If unsure, say N.
21228a936efSRobert Elliott
21328a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64
21405bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
21528a936efSRobert Elliott	depends on X86 && 64BIT
21628a936efSRobert Elliott	select CRYPTO_SKCIPHER
21728a936efSRobert Elliott	select CRYPTO_SIMD
21828a936efSRobert Elliott	select CRYPTO_ALGAPI
21928a936efSRobert Elliott	select CRYPTO_SM4
22028a936efSRobert Elliott	select CRYPTO_SM4_AESNI_AVX_X86_64
22128a936efSRobert Elliott	help
222cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
22305bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
22428a936efSRobert Elliott
225cf514b2aSRobert Elliott	  Architecture: x86_64 using:
226cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
227cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
22828a936efSRobert Elliott
229cf514b2aSRobert Elliott	  Through two affine transforms,
23028a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
23128a936efSRobert Elliott	  effect of instruction acceleration.
23228a936efSRobert Elliott
23328a936efSRobert Elliott	  If unsure, say N.
23428a936efSRobert Elliott
23528a936efSRobert Elliottconfig CRYPTO_TWOFISH_586
236cf514b2aSRobert Elliott	tristate "Ciphers: Twofish (32-bit)"
23728a936efSRobert Elliott	depends on (X86 || UML_X86) && !64BIT
23828a936efSRobert Elliott	select CRYPTO_ALGAPI
23928a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
24028a936efSRobert Elliott	imply CRYPTO_CTR
24128a936efSRobert Elliott	help
242cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
24328a936efSRobert Elliott
244cf514b2aSRobert Elliott	  Architecture: x86 (32-bit)
24528a936efSRobert Elliott
24628a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64
247cf514b2aSRobert Elliott	tristate "Ciphers: Twofish"
24828a936efSRobert Elliott	depends on (X86 || UML_X86) && 64BIT
24928a936efSRobert Elliott	select CRYPTO_ALGAPI
25028a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
25128a936efSRobert Elliott	imply CRYPTO_CTR
25228a936efSRobert Elliott	help
253cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
25428a936efSRobert Elliott
255cf514b2aSRobert Elliott	  Architecture: x86_64
25628a936efSRobert Elliott
25728a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY
258cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
25928a936efSRobert Elliott	depends on X86 && 64BIT
26028a936efSRobert Elliott	select CRYPTO_SKCIPHER
26128a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
26228a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
26328a936efSRobert Elliott	help
264cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
265cf514b2aSRobert Elliott	  with ECB and CBC modes
26628a936efSRobert Elliott
267cf514b2aSRobert Elliott	  Architecture: x86_64
26828a936efSRobert Elliott
269cf514b2aSRobert Elliott	  Processes three blocks in parallel, better utilizing resources of
270cf514b2aSRobert Elliott	  out-of-order CPUs.
27128a936efSRobert Elliott
27228a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64
273cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
27428a936efSRobert Elliott	depends on X86 && 64BIT
27528a936efSRobert Elliott	select CRYPTO_SKCIPHER
27628a936efSRobert Elliott	select CRYPTO_SIMD
27728a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
27828a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
27928a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64_3WAY
28028a936efSRobert Elliott	imply CRYPTO_XTS
28128a936efSRobert Elliott	help
282cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
283cf514b2aSRobert Elliott	  with ECB and CBC modes
28428a936efSRobert Elliott
285cf514b2aSRobert Elliott	  Architecture: x86_64 using:
286cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
28728a936efSRobert Elliott
288cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
28928a936efSRobert Elliott
290ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
291ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
292ba3579e6STaehee Yoo	depends on X86 && 64BIT
293ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
294ba3579e6STaehee Yoo	select CRYPTO_SIMD
295ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
296ba3579e6STaehee Yoo	select CRYPTO_ARIA
297ba3579e6STaehee Yoo	help
298ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
299ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
300ba3579e6STaehee Yoo
301ba3579e6STaehee Yoo	  Architecture: x86_64 using:
302ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
303ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
304ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
305ba3579e6STaehee Yoo
306ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
307ba3579e6STaehee Yoo
30837d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
30937d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
31037d8d3aeSTaehee Yoo	depends on X86 && 64BIT
31137d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
31237d8d3aeSTaehee Yoo	select CRYPTO_SIMD
31337d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
31437d8d3aeSTaehee Yoo	select CRYPTO_ARIA
31537d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
31637d8d3aeSTaehee Yoo	help
31737d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
31837d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
31937d8d3aeSTaehee Yoo
32037d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
32137d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
32237d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
32337d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
32437d8d3aeSTaehee Yoo
32537d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
32637d8d3aeSTaehee Yoo
327c970d420STaehee Yooconfig CRYPTO_ARIA_GFNI_AVX512_X86_64
328c970d420STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
329d6b7ec11STaehee Yoo	depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
330c970d420STaehee Yoo	select CRYPTO_SKCIPHER
331c970d420STaehee Yoo	select CRYPTO_SIMD
332c970d420STaehee Yoo	select CRYPTO_ALGAPI
333c970d420STaehee Yoo	select CRYPTO_ARIA
334c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
335c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX2_X86_64
336c970d420STaehee Yoo	help
337c970d420STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
338c970d420STaehee Yoo	  (RFC 5794) with ECB and CTR modes
339c970d420STaehee Yoo
340c970d420STaehee Yoo	  Architecture: x86_64 using:
341c970d420STaehee Yoo	  - AVX512 (Advanced Vector Extensions)
342c970d420STaehee Yoo	  - GFNI (Galois Field New Instructions)
343c970d420STaehee Yoo
344c970d420STaehee Yoo	  Processes 64 blocks in parallel.
345c970d420STaehee Yoo
34628a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64
347cf514b2aSRobert Elliott	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
34828a936efSRobert Elliott	depends on X86 && 64BIT
34928a936efSRobert Elliott	select CRYPTO_SKCIPHER
35028a936efSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
35128a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_CHACHA
35228a936efSRobert Elliott	help
353cf514b2aSRobert Elliott	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
354cf514b2aSRobert Elliott	  stream cipher algorithms
355cf514b2aSRobert Elliott
356cf514b2aSRobert Elliott	  Architecture: x86_64 using:
357cf514b2aSRobert Elliott	  - SSSE3 (Supplemental SSE3)
358cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
359cf514b2aSRobert Elliott	  - AVX-512VL (Advanced Vector Extensions-512VL)
36028a936efSRobert Elliott
36128a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
362e3d2eaddSRobert Elliott	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
36328a936efSRobert Elliott	depends on X86 && 64BIT
36428a936efSRobert Elliott	select CRYPTO_AEAD
36528a936efSRobert Elliott	select CRYPTO_SIMD
36628a936efSRobert Elliott	help
367e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
368e3d2eaddSRobert Elliott
369e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
370e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
371e3d2eaddSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
37228a936efSRobert Elliott
37328a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3743f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
37528a936efSRobert Elliott	depends on X86 && 64BIT
37628a936efSRobert Elliott	select CRYPTO_NHPOLY1305
37728a936efSRobert Elliott	help
3783f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3793f342a23SRobert Elliott
3803f342a23SRobert Elliott	  Architecture: x86_64 using:
3813f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
38228a936efSRobert Elliott
38328a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3843f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
38528a936efSRobert Elliott	depends on X86 && 64BIT
38628a936efSRobert Elliott	select CRYPTO_NHPOLY1305
38728a936efSRobert Elliott	help
3883f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3893f342a23SRobert Elliott
3903f342a23SRobert Elliott	  Architecture: x86_64 using:
3913f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
39228a936efSRobert Elliott
39328a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86
3943f342a23SRobert Elliott	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
39528a936efSRobert Elliott	depends on X86 && 64BIT
39628a936efSRobert Elliott	select CRYPTO_LIB_BLAKE2S_GENERIC
39728a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3983f342a23SRobert Elliott	help
3993f342a23SRobert Elliott	  BLAKE2s cryptographic hash function (RFC 7693)
4003f342a23SRobert Elliott
4013f342a23SRobert Elliott	  Architecture: x86_64 using:
4023f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4033f342a23SRobert Elliott	  - AVX-512 (Advanced Vector Extensions-512)
40428a936efSRobert Elliott
40528a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
4063f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
40728a936efSRobert Elliott	depends on X86 && 64BIT
40828a936efSRobert Elliott	select CRYPTO_POLYVAL
40928a936efSRobert Elliott	help
4103f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
4113f342a23SRobert Elliott
4123f342a23SRobert Elliott	  Architecture: x86_64 using:
4133f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
41428a936efSRobert Elliott
41528a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64
4163f342a23SRobert Elliott	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
41728a936efSRobert Elliott	depends on X86 && 64BIT
41828a936efSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
41928a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_POLY1305
42028a936efSRobert Elliott	help
4213f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
42228a936efSRobert Elliott
4233f342a23SRobert Elliott	  Architecture: x86_64 using:
4243f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
4253f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
42628a936efSRobert Elliott
42728a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3
4283f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
42928a936efSRobert Elliott	depends on X86 && 64BIT
43028a936efSRobert Elliott	select CRYPTO_SHA1
43128a936efSRobert Elliott	select CRYPTO_HASH
43228a936efSRobert Elliott	help
4333f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
4343f342a23SRobert Elliott
4353f342a23SRobert Elliott	  Architecture: x86_64 using:
4363f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4373f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4383f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4393f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
44028a936efSRobert Elliott
44128a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3
4423f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
44328a936efSRobert Elliott	depends on X86 && 64BIT
44428a936efSRobert Elliott	select CRYPTO_SHA256
44528a936efSRobert Elliott	select CRYPTO_HASH
44628a936efSRobert Elliott	help
4473f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
4483f342a23SRobert Elliott
4493f342a23SRobert Elliott	  Architecture: x86_64 using:
4503f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4513f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4523f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4533f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
45428a936efSRobert Elliott
45528a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3
4563f342a23SRobert Elliott	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
45728a936efSRobert Elliott	depends on X86 && 64BIT
45828a936efSRobert Elliott	select CRYPTO_SHA512
45928a936efSRobert Elliott	select CRYPTO_HASH
46028a936efSRobert Elliott	help
4613f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
4623f342a23SRobert Elliott
4633f342a23SRobert Elliott	  Architecture: x86_64 using:
4643f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4653f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4663f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
46728a936efSRobert Elliott
46828a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
4693f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
47028a936efSRobert Elliott	depends on X86 && 64BIT
47128a936efSRobert Elliott	select CRYPTO_HASH
47228a936efSRobert Elliott	select CRYPTO_SM3
47328a936efSRobert Elliott	help
4743f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
4753f342a23SRobert Elliott
4763f342a23SRobert Elliott	  Architecture: x86_64 using:
4773f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
47828a936efSRobert Elliott
47928a936efSRobert Elliott	  If unsure, say N.
48028a936efSRobert Elliott
48128a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
4823f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
48328a936efSRobert Elliott	depends on X86 && 64BIT
48428a936efSRobert Elliott	select CRYPTO_CRYPTD
48528a936efSRobert Elliott	help
4863f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
4873f342a23SRobert Elliott
4883f342a23SRobert Elliott	  Architecture: x86_64 using:
4893f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
49028a936efSRobert Elliott
49128a936efSRobert Elliottconfig CRYPTO_CRC32C_INTEL
492ec84348dSRobert Elliott	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
49328a936efSRobert Elliott	depends on X86
49428a936efSRobert Elliott	select CRYPTO_HASH
49528a936efSRobert Elliott	help
496ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
497ec84348dSRobert Elliott
498ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
499ec84348dSRobert Elliott	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
500ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
50128a936efSRobert Elliott
50228a936efSRobert Elliottconfig CRYPTO_CRC32_PCLMUL
503ec84348dSRobert Elliott	tristate "CRC32 (PCLMULQDQ)"
50428a936efSRobert Elliott	depends on X86
50528a936efSRobert Elliott	select CRYPTO_HASH
50628a936efSRobert Elliott	select CRC32
50728a936efSRobert Elliott	help
508ec84348dSRobert Elliott	  CRC32 CRC algorithm (IEEE 802.3)
509ec84348dSRobert Elliott
510ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
511ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
51228a936efSRobert Elliott
51328a936efSRobert Elliottconfig CRYPTO_CRCT10DIF_PCLMUL
514ec84348dSRobert Elliott	tristate "CRCT10DIF (PCLMULQDQ)"
51528a936efSRobert Elliott	depends on X86 && 64BIT && CRC_T10DIF
51628a936efSRobert Elliott	select CRYPTO_HASH
51728a936efSRobert Elliott	help
518ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
519ec84348dSRobert Elliott
520ec84348dSRobert Elliott	  Architecture: x86_64 using:
521ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
52228a936efSRobert Elliott
52328a936efSRobert Elliottendmenu
524