xref: /linux/arch/x86/crypto/Kconfig (revision ba3579e6e45c693495a50c516278749c5e3d9977)
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
289*ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
290*ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
291*ba3579e6STaehee Yoo	depends on X86 && 64BIT
292*ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
293*ba3579e6STaehee Yoo	select CRYPTO_SIMD
294*ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
295*ba3579e6STaehee Yoo	select CRYPTO_ARIA
296*ba3579e6STaehee Yoo	help
297*ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
298*ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
299*ba3579e6STaehee Yoo
300*ba3579e6STaehee Yoo	  Architecture: x86_64 using:
301*ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
302*ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
303*ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
304*ba3579e6STaehee Yoo
305*ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
306*ba3579e6STaehee Yoo
30728a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64
308cf514b2aSRobert Elliott	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
30928a936efSRobert Elliott	depends on X86 && 64BIT
31028a936efSRobert Elliott	select CRYPTO_SKCIPHER
31128a936efSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
31228a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_CHACHA
31328a936efSRobert Elliott	help
314cf514b2aSRobert Elliott	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
315cf514b2aSRobert Elliott	  stream cipher algorithms
316cf514b2aSRobert Elliott
317cf514b2aSRobert Elliott	  Architecture: x86_64 using:
318cf514b2aSRobert Elliott	  - SSSE3 (Supplemental SSE3)
319cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
320cf514b2aSRobert Elliott	  - AVX-512VL (Advanced Vector Extensions-512VL)
32128a936efSRobert Elliott
32228a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
323e3d2eaddSRobert Elliott	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
32428a936efSRobert Elliott	depends on X86 && 64BIT
32528a936efSRobert Elliott	select CRYPTO_AEAD
32628a936efSRobert Elliott	select CRYPTO_SIMD
32728a936efSRobert Elliott	help
328e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
329e3d2eaddSRobert Elliott
330e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
331e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
332e3d2eaddSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
33328a936efSRobert Elliott
33428a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3353f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
33628a936efSRobert Elliott	depends on X86 && 64BIT
33728a936efSRobert Elliott	select CRYPTO_NHPOLY1305
33828a936efSRobert Elliott	help
3393f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3403f342a23SRobert Elliott
3413f342a23SRobert Elliott	  Architecture: x86_64 using:
3423f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
34328a936efSRobert Elliott
34428a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3453f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
34628a936efSRobert Elliott	depends on X86 && 64BIT
34728a936efSRobert Elliott	select CRYPTO_NHPOLY1305
34828a936efSRobert Elliott	help
3493f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3503f342a23SRobert Elliott
3513f342a23SRobert Elliott	  Architecture: x86_64 using:
3523f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
35328a936efSRobert Elliott
35428a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86
3553f342a23SRobert Elliott	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
35628a936efSRobert Elliott	depends on X86 && 64BIT
35728a936efSRobert Elliott	select CRYPTO_LIB_BLAKE2S_GENERIC
35828a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3593f342a23SRobert Elliott	help
3603f342a23SRobert Elliott	  BLAKE2s cryptographic hash function (RFC 7693)
3613f342a23SRobert Elliott
3623f342a23SRobert Elliott	  Architecture: x86_64 using:
3633f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
3643f342a23SRobert Elliott	  - AVX-512 (Advanced Vector Extensions-512)
36528a936efSRobert Elliott
36628a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
3673f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
36828a936efSRobert Elliott	depends on X86 && 64BIT
36928a936efSRobert Elliott	select CRYPTO_POLYVAL
37028a936efSRobert Elliott	help
3713f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
3723f342a23SRobert Elliott
3733f342a23SRobert Elliott	  Architecture: x86_64 using:
3743f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
37528a936efSRobert Elliott
37628a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64
3773f342a23SRobert Elliott	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
37828a936efSRobert Elliott	depends on X86 && 64BIT
37928a936efSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
38028a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_POLY1305
38128a936efSRobert Elliott	help
3823f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
38328a936efSRobert Elliott
3843f342a23SRobert Elliott	  Architecture: x86_64 using:
3853f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
3863f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
38728a936efSRobert Elliott
38828a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3
3893f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
39028a936efSRobert Elliott	depends on X86 && 64BIT
39128a936efSRobert Elliott	select CRYPTO_SHA1
39228a936efSRobert Elliott	select CRYPTO_HASH
39328a936efSRobert Elliott	help
3943f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
3953f342a23SRobert Elliott
3963f342a23SRobert Elliott	  Architecture: x86_64 using:
3973f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
3983f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
3993f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4003f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
40128a936efSRobert Elliott
40228a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3
4033f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
40428a936efSRobert Elliott	depends on X86 && 64BIT
40528a936efSRobert Elliott	select CRYPTO_SHA256
40628a936efSRobert Elliott	select CRYPTO_HASH
40728a936efSRobert Elliott	help
4083f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
4093f342a23SRobert Elliott
4103f342a23SRobert Elliott	  Architecture: x86_64 using:
4113f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4123f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4133f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4143f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
41528a936efSRobert Elliott
41628a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3
4173f342a23SRobert Elliott	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
41828a936efSRobert Elliott	depends on X86 && 64BIT
41928a936efSRobert Elliott	select CRYPTO_SHA512
42028a936efSRobert Elliott	select CRYPTO_HASH
42128a936efSRobert Elliott	help
4223f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
4233f342a23SRobert Elliott
4243f342a23SRobert Elliott	  Architecture: x86_64 using:
4253f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4263f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4273f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
42828a936efSRobert Elliott
42928a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
4303f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
43128a936efSRobert Elliott	depends on X86 && 64BIT
43228a936efSRobert Elliott	select CRYPTO_HASH
43328a936efSRobert Elliott	select CRYPTO_SM3
43428a936efSRobert Elliott	help
4353f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
4363f342a23SRobert Elliott
4373f342a23SRobert Elliott	  Architecture: x86_64 using:
4383f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
43928a936efSRobert Elliott
44028a936efSRobert Elliott	  If unsure, say N.
44128a936efSRobert Elliott
44228a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
4433f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
44428a936efSRobert Elliott	depends on X86 && 64BIT
44528a936efSRobert Elliott	select CRYPTO_CRYPTD
44628a936efSRobert Elliott	help
4473f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
4483f342a23SRobert Elliott
4493f342a23SRobert Elliott	  Architecture: x86_64 using:
4503f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
45128a936efSRobert Elliott
45228a936efSRobert Elliottconfig CRYPTO_CRC32C_INTEL
453ec84348dSRobert Elliott	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
45428a936efSRobert Elliott	depends on X86
45528a936efSRobert Elliott	select CRYPTO_HASH
45628a936efSRobert Elliott	help
457ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
458ec84348dSRobert Elliott
459ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
460ec84348dSRobert Elliott	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
461ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
46228a936efSRobert Elliott
46328a936efSRobert Elliottconfig CRYPTO_CRC32_PCLMUL
464ec84348dSRobert Elliott	tristate "CRC32 (PCLMULQDQ)"
46528a936efSRobert Elliott	depends on X86
46628a936efSRobert Elliott	select CRYPTO_HASH
46728a936efSRobert Elliott	select CRC32
46828a936efSRobert Elliott	help
469ec84348dSRobert Elliott	  CRC32 CRC algorithm (IEEE 802.3)
470ec84348dSRobert Elliott
471ec84348dSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
472ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
47328a936efSRobert Elliott
47428a936efSRobert Elliottconfig CRYPTO_CRCT10DIF_PCLMUL
475ec84348dSRobert Elliott	tristate "CRCT10DIF (PCLMULQDQ)"
47628a936efSRobert Elliott	depends on X86 && 64BIT && CRC_T10DIF
47728a936efSRobert Elliott	select CRYPTO_HASH
47828a936efSRobert Elliott	help
479ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
480ec84348dSRobert Elliott
481ec84348dSRobert Elliott	  Architecture: x86_64 using:
482ec84348dSRobert Elliott	  - PCLMULQDQ (carry-less multiplication)
48328a936efSRobert Elliott
48428a936efSRobert Elliottendmenu
485