xref: /openbmc/linux/arch/x86/crypto/Kconfig (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
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
2128a936efSRobert Elliott	select CRYPTO_ALGAPI
2228a936efSRobert Elliott	select CRYPTO_SKCIPHER
2328a936efSRobert Elliott	select CRYPTO_SIMD
2428a936efSRobert Elliott	help
25cf514b2aSRobert Elliott	  Block cipher: AES cipher algorithms
26cf514b2aSRobert Elliott	  AEAD cipher: AES with GCM
27cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS
2828a936efSRobert Elliott
29cf514b2aSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
30cf514b2aSRobert Elliott	  - AES-NI (AES new instructions)
3128a936efSRobert Elliott
3228a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64
33cf514b2aSRobert Elliott	tristate "Ciphers: Blowfish, modes: ECB, CBC"
3428a936efSRobert Elliott	depends on X86 && 64BIT
3528a936efSRobert Elliott	select CRYPTO_SKCIPHER
3628a936efSRobert Elliott	select CRYPTO_BLOWFISH_COMMON
3728a936efSRobert Elliott	imply CRYPTO_CTR
3828a936efSRobert Elliott	help
39cf514b2aSRobert Elliott	  Block cipher: Blowfish cipher algorithm
40cf514b2aSRobert Elliott	  Length-preserving ciphers: Blowfish with ECB and CBC modes
4128a936efSRobert Elliott
42cf514b2aSRobert Elliott	  Architecture: x86_64
4328a936efSRobert Elliott
4428a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64
45cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC"
4628a936efSRobert Elliott	depends on X86 && 64BIT
4728a936efSRobert Elliott	select CRYPTO_SKCIPHER
4828a936efSRobert Elliott	imply CRYPTO_CTR
4928a936efSRobert Elliott	help
50cf514b2aSRobert Elliott	  Block cipher: Camellia cipher algorithms
51cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
5228a936efSRobert Elliott
53cf514b2aSRobert Elliott	  Architecture: x86_64
5428a936efSRobert Elliott
5528a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
56cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
5728a936efSRobert Elliott	depends on X86 && 64BIT
5828a936efSRobert Elliott	select CRYPTO_SKCIPHER
5928a936efSRobert Elliott	select CRYPTO_CAMELLIA_X86_64
6028a936efSRobert Elliott	select CRYPTO_SIMD
6128a936efSRobert Elliott	imply CRYPTO_XTS
6228a936efSRobert Elliott	help
63cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
6428a936efSRobert Elliott
65cf514b2aSRobert Elliott	  Architecture: x86_64 using:
66cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
67cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
6828a936efSRobert Elliott
6928a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
70cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
7128a936efSRobert Elliott	depends on X86 && 64BIT
7228a936efSRobert Elliott	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
7328a936efSRobert Elliott	help
74cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
7528a936efSRobert Elliott
76cf514b2aSRobert Elliott	  Architecture: x86_64 using:
77cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
78cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
7928a936efSRobert Elliott
8028a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64
81cf514b2aSRobert Elliott	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
8228a936efSRobert Elliott	depends on X86 && 64BIT
8328a936efSRobert Elliott	select CRYPTO_SKCIPHER
8428a936efSRobert Elliott	select CRYPTO_CAST5
8528a936efSRobert Elliott	select CRYPTO_CAST_COMMON
8628a936efSRobert Elliott	select CRYPTO_SIMD
8728a936efSRobert Elliott	imply CRYPTO_CTR
8828a936efSRobert Elliott	help
89cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
90cf514b2aSRobert Elliott	  (RFC2144) with ECB and CBC modes
9128a936efSRobert Elliott
92cf514b2aSRobert Elliott	  Architecture: x86_64 using:
93cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
94cf514b2aSRobert Elliott
95cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
9628a936efSRobert Elliott
9728a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64
98cf514b2aSRobert Elliott	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
9928a936efSRobert Elliott	depends on X86 && 64BIT
10028a936efSRobert Elliott	select CRYPTO_SKCIPHER
10128a936efSRobert Elliott	select CRYPTO_CAST6
10228a936efSRobert Elliott	select CRYPTO_CAST_COMMON
10328a936efSRobert Elliott	select CRYPTO_SIMD
10428a936efSRobert Elliott	imply CRYPTO_XTS
10528a936efSRobert Elliott	imply CRYPTO_CTR
10628a936efSRobert Elliott	help
107cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
108cf514b2aSRobert Elliott	  (RFC2612) with ECB and CBC modes
10928a936efSRobert Elliott
110cf514b2aSRobert Elliott	  Architecture: x86_64 using:
111cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
112cf514b2aSRobert Elliott
113cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
11428a936efSRobert Elliott
11528a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64
116cf514b2aSRobert Elliott	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
11728a936efSRobert Elliott	depends on X86 && 64BIT
11828a936efSRobert Elliott	select CRYPTO_SKCIPHER
11928a936efSRobert Elliott	select CRYPTO_LIB_DES
12028a936efSRobert Elliott	imply CRYPTO_CTR
12128a936efSRobert Elliott	help
122cf514b2aSRobert Elliott	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
123cf514b2aSRobert Elliott	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
12428a936efSRobert Elliott
125cf514b2aSRobert Elliott	  Architecture: x86_64
126cf514b2aSRobert Elliott
127cf514b2aSRobert Elliott	  Processes one or three blocks in parallel.
12828a936efSRobert Elliott
12928a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64
130cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
13128a936efSRobert Elliott	depends on X86 && 64BIT
13228a936efSRobert Elliott	select CRYPTO_SKCIPHER
13328a936efSRobert Elliott	select CRYPTO_SERPENT
13428a936efSRobert Elliott	select CRYPTO_SIMD
13528a936efSRobert Elliott	imply CRYPTO_CTR
13628a936efSRobert Elliott	help
137cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
138cf514b2aSRobert Elliott	  with ECB and CBC modes
13928a936efSRobert Elliott
140cf514b2aSRobert Elliott	  Architecture: x86_64 using:
141cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
14228a936efSRobert Elliott
143cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
14428a936efSRobert Elliott
14528a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586
146cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
14728a936efSRobert Elliott	depends on X86 && !64BIT
14828a936efSRobert Elliott	select CRYPTO_SKCIPHER
14928a936efSRobert Elliott	select CRYPTO_SERPENT
15028a936efSRobert Elliott	select CRYPTO_SIMD
15128a936efSRobert Elliott	imply CRYPTO_CTR
15228a936efSRobert Elliott	help
153cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
154cf514b2aSRobert Elliott	  with ECB and CBC modes
15528a936efSRobert Elliott
156cf514b2aSRobert Elliott	  Architecture: x86 (32-bit) using:
157cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
15828a936efSRobert Elliott
159cf514b2aSRobert Elliott	  Processes four blocks in parallel.
16028a936efSRobert Elliott
16128a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX_X86_64
162cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
16328a936efSRobert Elliott	depends on X86 && 64BIT
16428a936efSRobert Elliott	select CRYPTO_SKCIPHER
16528a936efSRobert Elliott	select CRYPTO_SERPENT
16628a936efSRobert Elliott	select CRYPTO_SIMD
16728a936efSRobert Elliott	imply CRYPTO_XTS
16828a936efSRobert Elliott	imply CRYPTO_CTR
16928a936efSRobert Elliott	help
170cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
171cf514b2aSRobert Elliott	  with ECB and CBC modes
17228a936efSRobert Elliott
173cf514b2aSRobert Elliott	  Architecture: x86_64 using:
174cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
17528a936efSRobert Elliott
176cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
17728a936efSRobert Elliott
17828a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64
179cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
18028a936efSRobert Elliott	depends on X86 && 64BIT
18128a936efSRobert Elliott	select CRYPTO_SERPENT_AVX_X86_64
18228a936efSRobert Elliott	help
183cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
184cf514b2aSRobert Elliott	  with ECB and CBC modes
18528a936efSRobert Elliott
186cf514b2aSRobert Elliott	  Architecture: x86_64 using:
187cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
18828a936efSRobert Elliott
189cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
19028a936efSRobert Elliott
19128a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64
192cf514b2aSRobert Elliott	tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX)"
19328a936efSRobert Elliott	depends on X86 && 64BIT
19428a936efSRobert Elliott	select CRYPTO_SKCIPHER
19528a936efSRobert Elliott	select CRYPTO_SIMD
19628a936efSRobert Elliott	select CRYPTO_ALGAPI
19728a936efSRobert Elliott	select CRYPTO_SM4
19828a936efSRobert Elliott	help
199cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
200cf514b2aSRobert Elliott	  (OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
20128a936efSRobert Elliott
202cf514b2aSRobert Elliott	  Architecture: x86_64 using:
203cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
204cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
20528a936efSRobert Elliott
206cf514b2aSRobert Elliott	  Through two affine transforms,
20728a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
20828a936efSRobert Elliott	  effect of instruction acceleration.
20928a936efSRobert Elliott
21028a936efSRobert Elliott	  If unsure, say N.
21128a936efSRobert Elliott
21228a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64
213cf514b2aSRobert Elliott	tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX2)"
21428a936efSRobert Elliott	depends on X86 && 64BIT
21528a936efSRobert Elliott	select CRYPTO_SKCIPHER
21628a936efSRobert Elliott	select CRYPTO_SIMD
21728a936efSRobert Elliott	select CRYPTO_ALGAPI
21828a936efSRobert Elliott	select CRYPTO_SM4
21928a936efSRobert Elliott	select CRYPTO_SM4_AESNI_AVX_X86_64
22028a936efSRobert Elliott	help
221cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
222cf514b2aSRobert Elliott	  (OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
22328a936efSRobert Elliott
224cf514b2aSRobert Elliott	  Architecture: x86_64 using:
225cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
226cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
22728a936efSRobert Elliott
228cf514b2aSRobert Elliott	  Through two affine transforms,
22928a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
23028a936efSRobert Elliott	  effect of instruction acceleration.
23128a936efSRobert Elliott
23228a936efSRobert Elliott	  If unsure, say N.
23328a936efSRobert Elliott
23428a936efSRobert Elliottconfig CRYPTO_TWOFISH_586
235cf514b2aSRobert Elliott	tristate "Ciphers: Twofish (32-bit)"
23628a936efSRobert Elliott	depends on (X86 || UML_X86) && !64BIT
23728a936efSRobert Elliott	select CRYPTO_ALGAPI
23828a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
23928a936efSRobert Elliott	imply CRYPTO_CTR
24028a936efSRobert Elliott	help
241cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
24228a936efSRobert Elliott
243cf514b2aSRobert Elliott	  Architecture: x86 (32-bit)
24428a936efSRobert Elliott
24528a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64
246cf514b2aSRobert Elliott	tristate "Ciphers: Twofish"
24728a936efSRobert Elliott	depends on (X86 || UML_X86) && 64BIT
24828a936efSRobert Elliott	select CRYPTO_ALGAPI
24928a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
25028a936efSRobert Elliott	imply CRYPTO_CTR
25128a936efSRobert Elliott	help
252cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
25328a936efSRobert Elliott
254cf514b2aSRobert Elliott	  Architecture: x86_64
25528a936efSRobert Elliott
25628a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY
257cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
25828a936efSRobert Elliott	depends on X86 && 64BIT
25928a936efSRobert Elliott	select CRYPTO_SKCIPHER
26028a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
26128a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
26228a936efSRobert Elliott	help
263cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
264cf514b2aSRobert Elliott	  with ECB and CBC modes
26528a936efSRobert Elliott
266cf514b2aSRobert Elliott	  Architecture: x86_64
26728a936efSRobert Elliott
268cf514b2aSRobert Elliott	  Processes three blocks in parallel, better utilizing resources of
269cf514b2aSRobert Elliott	  out-of-order CPUs.
27028a936efSRobert Elliott
27128a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64
272cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
27328a936efSRobert Elliott	depends on X86 && 64BIT
27428a936efSRobert Elliott	select CRYPTO_SKCIPHER
27528a936efSRobert Elliott	select CRYPTO_SIMD
27628a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
27728a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
27828a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64_3WAY
27928a936efSRobert Elliott	imply CRYPTO_XTS
28028a936efSRobert Elliott	help
281cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
282cf514b2aSRobert Elliott	  with ECB and CBC modes
28328a936efSRobert Elliott
284cf514b2aSRobert Elliott	  Architecture: x86_64 using:
285cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
28628a936efSRobert Elliott
287cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
28828a936efSRobert Elliott
289ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
290ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
291ba3579e6STaehee Yoo	depends on X86 && 64BIT
292ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
293ba3579e6STaehee Yoo	select CRYPTO_SIMD
294ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
295ba3579e6STaehee Yoo	select CRYPTO_ARIA
296ba3579e6STaehee Yoo	help
297ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
298ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
299ba3579e6STaehee Yoo
300ba3579e6STaehee Yoo	  Architecture: x86_64 using:
301ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
302ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
303ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
304ba3579e6STaehee Yoo
305ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
306ba3579e6STaehee Yoo
30737d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
30837d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
30937d8d3aeSTaehee Yoo	depends on X86 && 64BIT
31037d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
31137d8d3aeSTaehee Yoo	select CRYPTO_SIMD
31237d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
31337d8d3aeSTaehee Yoo	select CRYPTO_ARIA
31437d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
31537d8d3aeSTaehee Yoo	help
31637d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
31737d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
31837d8d3aeSTaehee Yoo
31937d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
32037d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
32137d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
32237d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
32337d8d3aeSTaehee Yoo
32437d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
32537d8d3aeSTaehee Yoo
326c970d420STaehee Yooconfig CRYPTO_ARIA_GFNI_AVX512_X86_64
327c970d420STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
328*d6b7ec11STaehee Yoo	depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
329c970d420STaehee Yoo	select CRYPTO_SKCIPHER
330c970d420STaehee Yoo	select CRYPTO_SIMD
331c970d420STaehee Yoo	select CRYPTO_ALGAPI
332c970d420STaehee Yoo	select CRYPTO_ARIA
333c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
334c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX2_X86_64
335c970d420STaehee Yoo	help
336c970d420STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
337c970d420STaehee Yoo	  (RFC 5794) with ECB and CTR modes
338c970d420STaehee Yoo
339c970d420STaehee Yoo	  Architecture: x86_64 using:
340c970d420STaehee Yoo	  - AVX512 (Advanced Vector Extensions)
341c970d420STaehee Yoo	  - GFNI (Galois Field New Instructions)
342c970d420STaehee Yoo
343c970d420STaehee Yoo	  Processes 64 blocks in parallel.
344c970d420STaehee Yoo
34528a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64
346cf514b2aSRobert Elliott	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
34728a936efSRobert Elliott	depends on X86 && 64BIT
34828a936efSRobert Elliott	select CRYPTO_SKCIPHER
34928a936efSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
35028a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_CHACHA
35128a936efSRobert Elliott	help
352cf514b2aSRobert Elliott	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
353cf514b2aSRobert Elliott	  stream cipher algorithms
354cf514b2aSRobert Elliott
355cf514b2aSRobert Elliott	  Architecture: x86_64 using:
356cf514b2aSRobert Elliott	  - SSSE3 (Supplemental SSE3)
357cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
358cf514b2aSRobert Elliott	  - AVX-512VL (Advanced Vector Extensions-512VL)
35928a936efSRobert Elliott
36028a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
361e3d2eaddSRobert Elliott	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
36228a936efSRobert Elliott	depends on X86 && 64BIT
36328a936efSRobert Elliott	select CRYPTO_AEAD
36428a936efSRobert Elliott	select CRYPTO_SIMD
36528a936efSRobert Elliott	help
366e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
367e3d2eaddSRobert Elliott
368e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
369e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
370e3d2eaddSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
37128a936efSRobert Elliott
37228a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3733f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
37428a936efSRobert Elliott	depends on X86 && 64BIT
37528a936efSRobert Elliott	select CRYPTO_NHPOLY1305
37628a936efSRobert Elliott	help
3773f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3783f342a23SRobert Elliott
3793f342a23SRobert Elliott	  Architecture: x86_64 using:
3803f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
38128a936efSRobert Elliott
38228a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3833f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
38428a936efSRobert Elliott	depends on X86 && 64BIT
38528a936efSRobert Elliott	select CRYPTO_NHPOLY1305
38628a936efSRobert Elliott	help
3873f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3883f342a23SRobert Elliott
3893f342a23SRobert Elliott	  Architecture: x86_64 using:
3903f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
39128a936efSRobert Elliott
39228a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86
3933f342a23SRobert Elliott	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
39428a936efSRobert Elliott	depends on X86 && 64BIT
39528a936efSRobert Elliott	select CRYPTO_LIB_BLAKE2S_GENERIC
39628a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3973f342a23SRobert Elliott	help
3983f342a23SRobert Elliott	  BLAKE2s cryptographic hash function (RFC 7693)
3993f342a23SRobert Elliott
4003f342a23SRobert Elliott	  Architecture: x86_64 using:
4013f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4023f342a23SRobert Elliott	  - AVX-512 (Advanced Vector Extensions-512)
40328a936efSRobert Elliott
40428a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
4053f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
40628a936efSRobert Elliott	depends on X86 && 64BIT
40728a936efSRobert Elliott	select CRYPTO_POLYVAL
40828a936efSRobert Elliott	help
4093f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
4103f342a23SRobert Elliott
4113f342a23SRobert Elliott	  Architecture: x86_64 using:
4123f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
41328a936efSRobert Elliott
41428a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64
4153f342a23SRobert Elliott	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
41628a936efSRobert Elliott	depends on X86 && 64BIT
41728a936efSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
41828a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_POLY1305
41928a936efSRobert Elliott	help
4203f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
42128a936efSRobert Elliott
4223f342a23SRobert Elliott	  Architecture: x86_64 using:
4233f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
4243f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
42528a936efSRobert Elliott
42628a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3
4273f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
42828a936efSRobert Elliott	depends on X86 && 64BIT
42928a936efSRobert Elliott	select CRYPTO_SHA1
43028a936efSRobert Elliott	select CRYPTO_HASH
43128a936efSRobert Elliott	help
4323f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
4333f342a23SRobert Elliott
4343f342a23SRobert Elliott	  Architecture: x86_64 using:
4353f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4363f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4373f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4383f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
43928a936efSRobert Elliott
44028a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3
4413f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
44228a936efSRobert Elliott	depends on X86 && 64BIT
44328a936efSRobert Elliott	select CRYPTO_SHA256
44428a936efSRobert Elliott	select CRYPTO_HASH
44528a936efSRobert Elliott	help
4463f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
4473f342a23SRobert Elliott
4483f342a23SRobert Elliott	  Architecture: x86_64 using:
4493f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4503f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4513f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4523f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
45328a936efSRobert Elliott
45428a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3
4553f342a23SRobert Elliott	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
45628a936efSRobert Elliott	depends on X86 && 64BIT
45728a936efSRobert Elliott	select CRYPTO_SHA512
45828a936efSRobert Elliott	select CRYPTO_HASH
45928a936efSRobert Elliott	help
4603f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
4613f342a23SRobert Elliott
4623f342a23SRobert Elliott	  Architecture: x86_64 using:
4633f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4643f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4653f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
46628a936efSRobert Elliott
46728a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
4683f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
46928a936efSRobert Elliott	depends on X86 && 64BIT
47028a936efSRobert Elliott	select CRYPTO_HASH
47128a936efSRobert Elliott	select CRYPTO_SM3
47228a936efSRobert Elliott	help
4733f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
4743f342a23SRobert Elliott
4753f342a23SRobert Elliott	  Architecture: x86_64 using:
4763f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
47728a936efSRobert Elliott
47828a936efSRobert Elliott	  If unsure, say N.
47928a936efSRobert Elliott
48028a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
4813f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
48228a936efSRobert Elliott	depends on X86 && 64BIT
48328a936efSRobert Elliott	select CRYPTO_CRYPTD
48428a936efSRobert Elliott	help
4853f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
4863f342a23SRobert Elliott
4873f342a23SRobert Elliott	  Architecture: x86_64 using:
4883f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
48928a936efSRobert Elliott
49028a936efSRobert Elliottconfig CRYPTO_CRC32C_INTEL
491ec84348dSRobert Elliott	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
49228a936efSRobert Elliott	depends on X86
49328a936efSRobert Elliott	select CRYPTO_HASH
49428a936efSRobert Elliott	help
495ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
496ec84348dSRobert Elliott
497ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
498ec84348dSRobert Elliott	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
499ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
50028a936efSRobert Elliott
50128a936efSRobert Elliottconfig CRYPTO_CRC32_PCLMUL
502ec84348dSRobert Elliott	tristate "CRC32 (PCLMULQDQ)"
50328a936efSRobert Elliott	depends on X86
50428a936efSRobert Elliott	select CRYPTO_HASH
50528a936efSRobert Elliott	select CRC32
50628a936efSRobert Elliott	help
507ec84348dSRobert Elliott	  CRC32 CRC algorithm (IEEE 802.3)
508ec84348dSRobert Elliott
509ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
510ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
51128a936efSRobert Elliott
51228a936efSRobert Elliottconfig CRYPTO_CRCT10DIF_PCLMUL
513ec84348dSRobert Elliott	tristate "CRCT10DIF (PCLMULQDQ)"
51428a936efSRobert Elliott	depends on X86 && 64BIT && CRC_T10DIF
51528a936efSRobert Elliott	select CRYPTO_HASH
51628a936efSRobert Elliott	help
517ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
518ec84348dSRobert Elliott
519ec84348dSRobert Elliott	  Architecture: x86_64 using:
520ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
52128a936efSRobert Elliott
52228a936efSRobert Elliottendmenu
523