xref: /linux/arch/x86/crypto/Kconfig (revision 37d8d3ae7a58cb16fa3f4f1992d2ee36bc621438)
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
307*37d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
308*37d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
309*37d8d3aeSTaehee Yoo	depends on X86 && 64BIT
310*37d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
311*37d8d3aeSTaehee Yoo	select CRYPTO_SIMD
312*37d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
313*37d8d3aeSTaehee Yoo	select CRYPTO_ARIA
314*37d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
315*37d8d3aeSTaehee Yoo	help
316*37d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
317*37d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
318*37d8d3aeSTaehee Yoo
319*37d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
320*37d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
321*37d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
322*37d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
323*37d8d3aeSTaehee Yoo
324*37d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
325*37d8d3aeSTaehee Yoo
32628a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64
327cf514b2aSRobert Elliott	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
32828a936efSRobert Elliott	depends on X86 && 64BIT
32928a936efSRobert Elliott	select CRYPTO_SKCIPHER
33028a936efSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
33128a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_CHACHA
33228a936efSRobert Elliott	help
333cf514b2aSRobert Elliott	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
334cf514b2aSRobert Elliott	  stream cipher algorithms
335cf514b2aSRobert Elliott
336cf514b2aSRobert Elliott	  Architecture: x86_64 using:
337cf514b2aSRobert Elliott	  - SSSE3 (Supplemental SSE3)
338cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
339cf514b2aSRobert Elliott	  - AVX-512VL (Advanced Vector Extensions-512VL)
34028a936efSRobert Elliott
34128a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
342e3d2eaddSRobert Elliott	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
34328a936efSRobert Elliott	depends on X86 && 64BIT
34428a936efSRobert Elliott	select CRYPTO_AEAD
34528a936efSRobert Elliott	select CRYPTO_SIMD
34628a936efSRobert Elliott	help
347e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
348e3d2eaddSRobert Elliott
349e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
350e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
351e3d2eaddSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
35228a936efSRobert Elliott
35328a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3543f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
35528a936efSRobert Elliott	depends on X86 && 64BIT
35628a936efSRobert Elliott	select CRYPTO_NHPOLY1305
35728a936efSRobert Elliott	help
3583f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3593f342a23SRobert Elliott
3603f342a23SRobert Elliott	  Architecture: x86_64 using:
3613f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
36228a936efSRobert Elliott
36328a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3643f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
36528a936efSRobert Elliott	depends on X86 && 64BIT
36628a936efSRobert Elliott	select CRYPTO_NHPOLY1305
36728a936efSRobert Elliott	help
3683f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3693f342a23SRobert Elliott
3703f342a23SRobert Elliott	  Architecture: x86_64 using:
3713f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
37228a936efSRobert Elliott
37328a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86
3743f342a23SRobert Elliott	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
37528a936efSRobert Elliott	depends on X86 && 64BIT
37628a936efSRobert Elliott	select CRYPTO_LIB_BLAKE2S_GENERIC
37728a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3783f342a23SRobert Elliott	help
3793f342a23SRobert Elliott	  BLAKE2s cryptographic hash function (RFC 7693)
3803f342a23SRobert Elliott
3813f342a23SRobert Elliott	  Architecture: x86_64 using:
3823f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
3833f342a23SRobert Elliott	  - AVX-512 (Advanced Vector Extensions-512)
38428a936efSRobert Elliott
38528a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
3863f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
38728a936efSRobert Elliott	depends on X86 && 64BIT
38828a936efSRobert Elliott	select CRYPTO_POLYVAL
38928a936efSRobert Elliott	help
3903f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
3913f342a23SRobert Elliott
3923f342a23SRobert Elliott	  Architecture: x86_64 using:
3933f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
39428a936efSRobert Elliott
39528a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64
3963f342a23SRobert Elliott	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
39728a936efSRobert Elliott	depends on X86 && 64BIT
39828a936efSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
39928a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_POLY1305
40028a936efSRobert Elliott	help
4013f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
40228a936efSRobert Elliott
4033f342a23SRobert Elliott	  Architecture: x86_64 using:
4043f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
4053f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
40628a936efSRobert Elliott
40728a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3
4083f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
40928a936efSRobert Elliott	depends on X86 && 64BIT
41028a936efSRobert Elliott	select CRYPTO_SHA1
41128a936efSRobert Elliott	select CRYPTO_HASH
41228a936efSRobert Elliott	help
4133f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
4143f342a23SRobert Elliott
4153f342a23SRobert Elliott	  Architecture: x86_64 using:
4163f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4173f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4183f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4193f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
42028a936efSRobert Elliott
42128a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3
4223f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
42328a936efSRobert Elliott	depends on X86 && 64BIT
42428a936efSRobert Elliott	select CRYPTO_SHA256
42528a936efSRobert Elliott	select CRYPTO_HASH
42628a936efSRobert Elliott	help
4273f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
4283f342a23SRobert Elliott
4293f342a23SRobert Elliott	  Architecture: x86_64 using:
4303f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4313f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4323f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4333f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
43428a936efSRobert Elliott
43528a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3
4363f342a23SRobert Elliott	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
43728a936efSRobert Elliott	depends on X86 && 64BIT
43828a936efSRobert Elliott	select CRYPTO_SHA512
43928a936efSRobert Elliott	select CRYPTO_HASH
44028a936efSRobert Elliott	help
4413f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
4423f342a23SRobert Elliott
4433f342a23SRobert Elliott	  Architecture: x86_64 using:
4443f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4453f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4463f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
44728a936efSRobert Elliott
44828a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
4493f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
45028a936efSRobert Elliott	depends on X86 && 64BIT
45128a936efSRobert Elliott	select CRYPTO_HASH
45228a936efSRobert Elliott	select CRYPTO_SM3
45328a936efSRobert Elliott	help
4543f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
4553f342a23SRobert Elliott
4563f342a23SRobert Elliott	  Architecture: x86_64 using:
4573f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
45828a936efSRobert Elliott
45928a936efSRobert Elliott	  If unsure, say N.
46028a936efSRobert Elliott
46128a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
4623f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
46328a936efSRobert Elliott	depends on X86 && 64BIT
46428a936efSRobert Elliott	select CRYPTO_CRYPTD
46528a936efSRobert Elliott	help
4663f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
4673f342a23SRobert Elliott
4683f342a23SRobert Elliott	  Architecture: x86_64 using:
4693f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
47028a936efSRobert Elliott
47128a936efSRobert Elliottconfig CRYPTO_CRC32C_INTEL
472ec84348dSRobert Elliott	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
47328a936efSRobert Elliott	depends on X86
47428a936efSRobert Elliott	select CRYPTO_HASH
47528a936efSRobert Elliott	help
476ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
477ec84348dSRobert Elliott
478ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
479ec84348dSRobert Elliott	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
480ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
48128a936efSRobert Elliott
48228a936efSRobert Elliottconfig CRYPTO_CRC32_PCLMUL
483ec84348dSRobert Elliott	tristate "CRC32 (PCLMULQDQ)"
48428a936efSRobert Elliott	depends on X86
48528a936efSRobert Elliott	select CRYPTO_HASH
48628a936efSRobert Elliott	select CRC32
48728a936efSRobert Elliott	help
488ec84348dSRobert Elliott	  CRC32 CRC algorithm (IEEE 802.3)
489ec84348dSRobert Elliott
490ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
491ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
49228a936efSRobert Elliott
49328a936efSRobert Elliottconfig CRYPTO_CRCT10DIF_PCLMUL
494ec84348dSRobert Elliott	tristate "CRCT10DIF (PCLMULQDQ)"
49528a936efSRobert Elliott	depends on X86 && 64BIT && CRC_T10DIF
49628a936efSRobert Elliott	select CRYPTO_HASH
49728a936efSRobert Elliott	help
498ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
499ec84348dSRobert Elliott
500ec84348dSRobert Elliott	  Architecture: x86_64 using:
501ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
50228a936efSRobert Elliott
50328a936efSRobert Elliottendmenu
504