xref: /linux/arch/x86/crypto/Kconfig (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
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
6*17ec3e71SHerbert Xu	tristate
728a936efSRobert Elliott	depends on X86 && 64BIT
8*17ec3e71SHerbert Xu	select CRYPTO_KPP
928a936efSRobert Elliott	select CRYPTO_LIB_CURVE25519_GENERIC
10*17ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
11*17ec3e71SHerbert Xu	default CRYPTO_LIB_CURVE25519_INTERNAL
1205b37465SRobert Elliott	help
1305b37465SRobert Elliott	  Curve25519 algorithm
1405b37465SRobert Elliott
1505b37465SRobert Elliott	  Architecture: x86_64 using:
1605b37465SRobert Elliott	  - ADX (large integer arithmetic)
1728a936efSRobert Elliott
1828a936efSRobert Elliottconfig CRYPTO_AES_NI_INTEL
19c299d7afSEric Biggers	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
2028a936efSRobert Elliott	depends on X86
2128a936efSRobert Elliott	select CRYPTO_AEAD
2228a936efSRobert Elliott	select CRYPTO_LIB_AES
23b06affb1SEric Biggers	select CRYPTO_LIB_GF128MUL
2428a936efSRobert Elliott	select CRYPTO_ALGAPI
2528a936efSRobert Elliott	select CRYPTO_SKCIPHER
2628a936efSRobert Elliott	select CRYPTO_SIMD
2728a936efSRobert Elliott	help
28cf514b2aSRobert Elliott	  Block cipher: AES cipher algorithms
29cf514b2aSRobert Elliott	  AEAD cipher: AES with GCM
30c299d7afSEric Biggers	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
3128a936efSRobert Elliott
32cf514b2aSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
33cf514b2aSRobert Elliott	  - AES-NI (AES new instructions)
34c299d7afSEric Biggers	  - VAES (Vector AES)
35c299d7afSEric Biggers
36c299d7afSEric Biggers	  Some algorithm implementations are supported only in 64-bit builds,
37c299d7afSEric Biggers	  and some have additional prerequisites such as AVX2 or AVX512.
3828a936efSRobert Elliott
3928a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64
40cf514b2aSRobert Elliott	tristate "Ciphers: Blowfish, modes: ECB, CBC"
4128a936efSRobert Elliott	depends on X86 && 64BIT
4228a936efSRobert Elliott	select CRYPTO_SKCIPHER
4328a936efSRobert Elliott	select CRYPTO_BLOWFISH_COMMON
4428a936efSRobert Elliott	imply CRYPTO_CTR
4528a936efSRobert Elliott	help
46cf514b2aSRobert Elliott	  Block cipher: Blowfish cipher algorithm
47cf514b2aSRobert Elliott	  Length-preserving ciphers: Blowfish with ECB and CBC modes
4828a936efSRobert Elliott
49cf514b2aSRobert Elliott	  Architecture: x86_64
5028a936efSRobert Elliott
5128a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64
52cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC"
5328a936efSRobert Elliott	depends on X86 && 64BIT
5428a936efSRobert Elliott	select CRYPTO_SKCIPHER
5528a936efSRobert Elliott	imply CRYPTO_CTR
5628a936efSRobert Elliott	help
57cf514b2aSRobert Elliott	  Block cipher: Camellia cipher algorithms
58cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
5928a936efSRobert Elliott
60cf514b2aSRobert Elliott	  Architecture: x86_64
6128a936efSRobert Elliott
6228a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
63cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
6428a936efSRobert Elliott	depends on X86 && 64BIT
6528a936efSRobert Elliott	select CRYPTO_SKCIPHER
6628a936efSRobert Elliott	select CRYPTO_CAMELLIA_X86_64
6728a936efSRobert Elliott	select CRYPTO_SIMD
6828a936efSRobert Elliott	imply CRYPTO_XTS
6928a936efSRobert Elliott	help
70cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
7128a936efSRobert Elliott
72cf514b2aSRobert Elliott	  Architecture: x86_64 using:
73cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
74cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
7528a936efSRobert Elliott
7628a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
77cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
7828a936efSRobert Elliott	depends on X86 && 64BIT
7928a936efSRobert Elliott	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
8028a936efSRobert Elliott	help
81cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
8228a936efSRobert Elliott
83cf514b2aSRobert Elliott	  Architecture: x86_64 using:
84cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
85cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
8628a936efSRobert Elliott
8728a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64
88cf514b2aSRobert Elliott	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
8928a936efSRobert Elliott	depends on X86 && 64BIT
9028a936efSRobert Elliott	select CRYPTO_SKCIPHER
9128a936efSRobert Elliott	select CRYPTO_CAST5
9228a936efSRobert Elliott	select CRYPTO_CAST_COMMON
9328a936efSRobert Elliott	select CRYPTO_SIMD
9428a936efSRobert Elliott	imply CRYPTO_CTR
9528a936efSRobert Elliott	help
96cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
97cf514b2aSRobert Elliott	  (RFC2144) with ECB and CBC modes
9828a936efSRobert Elliott
99cf514b2aSRobert Elliott	  Architecture: x86_64 using:
100cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
101cf514b2aSRobert Elliott
102cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
10328a936efSRobert Elliott
10428a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64
105cf514b2aSRobert Elliott	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
10628a936efSRobert Elliott	depends on X86 && 64BIT
10728a936efSRobert Elliott	select CRYPTO_SKCIPHER
10828a936efSRobert Elliott	select CRYPTO_CAST6
10928a936efSRobert Elliott	select CRYPTO_CAST_COMMON
11028a936efSRobert Elliott	select CRYPTO_SIMD
11128a936efSRobert Elliott	imply CRYPTO_XTS
11228a936efSRobert Elliott	imply CRYPTO_CTR
11328a936efSRobert Elliott	help
114cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
115cf514b2aSRobert Elliott	  (RFC2612) with ECB and CBC modes
11628a936efSRobert Elliott
117cf514b2aSRobert Elliott	  Architecture: x86_64 using:
118cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
119cf514b2aSRobert Elliott
120cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
12128a936efSRobert Elliott
12228a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64
123cf514b2aSRobert Elliott	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
12428a936efSRobert Elliott	depends on X86 && 64BIT
12528a936efSRobert Elliott	select CRYPTO_SKCIPHER
12628a936efSRobert Elliott	select CRYPTO_LIB_DES
12728a936efSRobert Elliott	imply CRYPTO_CTR
12828a936efSRobert Elliott	help
129cf514b2aSRobert Elliott	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
130cf514b2aSRobert Elliott	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
13128a936efSRobert Elliott
132cf514b2aSRobert Elliott	  Architecture: x86_64
133cf514b2aSRobert Elliott
134cf514b2aSRobert Elliott	  Processes one or three blocks in parallel.
13528a936efSRobert Elliott
13628a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64
137cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
13828a936efSRobert Elliott	depends on X86 && 64BIT
13928a936efSRobert Elliott	select CRYPTO_SKCIPHER
14028a936efSRobert Elliott	select CRYPTO_SERPENT
14128a936efSRobert Elliott	select CRYPTO_SIMD
14228a936efSRobert Elliott	imply CRYPTO_CTR
14328a936efSRobert Elliott	help
144cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
145cf514b2aSRobert Elliott	  with ECB and CBC modes
14628a936efSRobert Elliott
147cf514b2aSRobert Elliott	  Architecture: x86_64 using:
148cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
14928a936efSRobert Elliott
150cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
15128a936efSRobert Elliott
15228a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586
153cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
15428a936efSRobert Elliott	depends on X86 && !64BIT
15528a936efSRobert Elliott	select CRYPTO_SKCIPHER
15628a936efSRobert Elliott	select CRYPTO_SERPENT
15728a936efSRobert Elliott	select CRYPTO_SIMD
15828a936efSRobert Elliott	imply CRYPTO_CTR
15928a936efSRobert Elliott	help
160cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
161cf514b2aSRobert Elliott	  with ECB and CBC modes
16228a936efSRobert Elliott
163cf514b2aSRobert Elliott	  Architecture: x86 (32-bit) using:
164cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
16528a936efSRobert Elliott
166cf514b2aSRobert Elliott	  Processes four blocks in parallel.
16728a936efSRobert Elliott
16828a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX_X86_64
169cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
17028a936efSRobert Elliott	depends on X86 && 64BIT
17128a936efSRobert Elliott	select CRYPTO_SKCIPHER
17228a936efSRobert Elliott	select CRYPTO_SERPENT
17328a936efSRobert Elliott	select CRYPTO_SIMD
17428a936efSRobert Elliott	imply CRYPTO_XTS
17528a936efSRobert Elliott	imply CRYPTO_CTR
17628a936efSRobert Elliott	help
177cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
178cf514b2aSRobert Elliott	  with ECB and CBC modes
17928a936efSRobert Elliott
180cf514b2aSRobert Elliott	  Architecture: x86_64 using:
181cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
18228a936efSRobert Elliott
183cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
18428a936efSRobert Elliott
18528a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64
186cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
18728a936efSRobert Elliott	depends on X86 && 64BIT
18828a936efSRobert Elliott	select CRYPTO_SERPENT_AVX_X86_64
18928a936efSRobert Elliott	help
190cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
191cf514b2aSRobert Elliott	  with ECB and CBC modes
19228a936efSRobert Elliott
193cf514b2aSRobert Elliott	  Architecture: x86_64 using:
194cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
19528a936efSRobert Elliott
196cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
19728a936efSRobert Elliott
19828a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64
19905bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
20028a936efSRobert Elliott	depends on X86 && 64BIT
20128a936efSRobert Elliott	select CRYPTO_SKCIPHER
20228a936efSRobert Elliott	select CRYPTO_SIMD
20328a936efSRobert Elliott	select CRYPTO_ALGAPI
20428a936efSRobert Elliott	select CRYPTO_SM4
20528a936efSRobert Elliott	help
206cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
20705bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
20828a936efSRobert Elliott
209cf514b2aSRobert Elliott	  Architecture: x86_64 using:
210cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
211cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
21228a936efSRobert Elliott
213cf514b2aSRobert Elliott	  Through two affine transforms,
21428a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
21528a936efSRobert Elliott	  effect of instruction acceleration.
21628a936efSRobert Elliott
21728a936efSRobert Elliott	  If unsure, say N.
21828a936efSRobert Elliott
21928a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64
22005bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
22128a936efSRobert Elliott	depends on X86 && 64BIT
22228a936efSRobert Elliott	select CRYPTO_SKCIPHER
22328a936efSRobert Elliott	select CRYPTO_SIMD
22428a936efSRobert Elliott	select CRYPTO_ALGAPI
22528a936efSRobert Elliott	select CRYPTO_SM4
22628a936efSRobert Elliott	select CRYPTO_SM4_AESNI_AVX_X86_64
22728a936efSRobert Elliott	help
228cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
22905bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
23028a936efSRobert Elliott
231cf514b2aSRobert Elliott	  Architecture: x86_64 using:
232cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
233cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
23428a936efSRobert Elliott
235cf514b2aSRobert Elliott	  Through two affine transforms,
23628a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
23728a936efSRobert Elliott	  effect of instruction acceleration.
23828a936efSRobert Elliott
23928a936efSRobert Elliott	  If unsure, say N.
24028a936efSRobert Elliott
24128a936efSRobert Elliottconfig CRYPTO_TWOFISH_586
242cf514b2aSRobert Elliott	tristate "Ciphers: Twofish (32-bit)"
24328a936efSRobert Elliott	depends on (X86 || UML_X86) && !64BIT
24428a936efSRobert Elliott	select CRYPTO_ALGAPI
24528a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
24628a936efSRobert Elliott	imply CRYPTO_CTR
24728a936efSRobert Elliott	help
248cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
24928a936efSRobert Elliott
250cf514b2aSRobert Elliott	  Architecture: x86 (32-bit)
25128a936efSRobert Elliott
25228a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64
253cf514b2aSRobert Elliott	tristate "Ciphers: Twofish"
25428a936efSRobert Elliott	depends on (X86 || UML_X86) && 64BIT
25528a936efSRobert Elliott	select CRYPTO_ALGAPI
25628a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
25728a936efSRobert Elliott	imply CRYPTO_CTR
25828a936efSRobert Elliott	help
259cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
26028a936efSRobert Elliott
261cf514b2aSRobert Elliott	  Architecture: x86_64
26228a936efSRobert Elliott
26328a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY
264cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
26528a936efSRobert Elliott	depends on X86 && 64BIT
26628a936efSRobert Elliott	select CRYPTO_SKCIPHER
26728a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
26828a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
26928a936efSRobert Elliott	help
270cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
271cf514b2aSRobert Elliott	  with ECB and CBC modes
27228a936efSRobert Elliott
273cf514b2aSRobert Elliott	  Architecture: x86_64
27428a936efSRobert Elliott
275cf514b2aSRobert Elliott	  Processes three blocks in parallel, better utilizing resources of
276cf514b2aSRobert Elliott	  out-of-order CPUs.
27728a936efSRobert Elliott
27828a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64
279cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
28028a936efSRobert Elliott	depends on X86 && 64BIT
28128a936efSRobert Elliott	select CRYPTO_SKCIPHER
28228a936efSRobert Elliott	select CRYPTO_SIMD
28328a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
28428a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
28528a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64_3WAY
28628a936efSRobert Elliott	imply CRYPTO_XTS
28728a936efSRobert Elliott	help
288cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
289cf514b2aSRobert Elliott	  with ECB and CBC modes
29028a936efSRobert Elliott
291cf514b2aSRobert Elliott	  Architecture: x86_64 using:
292cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
29328a936efSRobert Elliott
294cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
29528a936efSRobert Elliott
296ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
297ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
298ba3579e6STaehee Yoo	depends on X86 && 64BIT
299ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
300ba3579e6STaehee Yoo	select CRYPTO_SIMD
301ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
302ba3579e6STaehee Yoo	select CRYPTO_ARIA
303ba3579e6STaehee Yoo	help
304ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
305ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
306ba3579e6STaehee Yoo
307ba3579e6STaehee Yoo	  Architecture: x86_64 using:
308ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
309ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
310ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
311ba3579e6STaehee Yoo
312ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
313ba3579e6STaehee Yoo
31437d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
31537d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
31637d8d3aeSTaehee Yoo	depends on X86 && 64BIT
31737d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
31837d8d3aeSTaehee Yoo	select CRYPTO_SIMD
31937d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
32037d8d3aeSTaehee Yoo	select CRYPTO_ARIA
32137d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
32237d8d3aeSTaehee Yoo	help
32337d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
32437d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
32537d8d3aeSTaehee Yoo
32637d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
32737d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
32837d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
32937d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
33037d8d3aeSTaehee Yoo
33137d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
33237d8d3aeSTaehee Yoo
333c970d420STaehee Yooconfig CRYPTO_ARIA_GFNI_AVX512_X86_64
334c970d420STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
335d6b7ec11STaehee Yoo	depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
336c970d420STaehee Yoo	select CRYPTO_SKCIPHER
337c970d420STaehee Yoo	select CRYPTO_SIMD
338c970d420STaehee Yoo	select CRYPTO_ALGAPI
339c970d420STaehee Yoo	select CRYPTO_ARIA
340c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
341c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX2_X86_64
342c970d420STaehee Yoo	help
343c970d420STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
344c970d420STaehee Yoo	  (RFC 5794) with ECB and CTR modes
345c970d420STaehee Yoo
346c970d420STaehee Yoo	  Architecture: x86_64 using:
347c970d420STaehee Yoo	  - AVX512 (Advanced Vector Extensions)
348c970d420STaehee Yoo	  - GFNI (Galois Field New Instructions)
349c970d420STaehee Yoo
350c970d420STaehee Yoo	  Processes 64 blocks in parallel.
351c970d420STaehee Yoo
35228a936efSRobert Elliottconfig CRYPTO_CHACHA20_X86_64
353*17ec3e71SHerbert Xu	tristate
35428a936efSRobert Elliott	depends on X86 && 64BIT
35528a936efSRobert Elliott	select CRYPTO_SKCIPHER
35628a936efSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
357*17ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_CHACHA
358*17ec3e71SHerbert Xu	default CRYPTO_LIB_CHACHA_INTERNAL
35928a936efSRobert Elliott	help
360cf514b2aSRobert Elliott	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
361cf514b2aSRobert Elliott	  stream cipher algorithms
362cf514b2aSRobert Elliott
363cf514b2aSRobert Elliott	  Architecture: x86_64 using:
364cf514b2aSRobert Elliott	  - SSSE3 (Supplemental SSE3)
365cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
366cf514b2aSRobert Elliott	  - AVX-512VL (Advanced Vector Extensions-512VL)
36728a936efSRobert Elliott
36828a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
369af2aff7cSEric Biggers	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
37028a936efSRobert Elliott	depends on X86 && 64BIT
37128a936efSRobert Elliott	select CRYPTO_AEAD
37228a936efSRobert Elliott	select CRYPTO_SIMD
37328a936efSRobert Elliott	help
374e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
375e3d2eaddSRobert Elliott
376e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
377e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
378af2aff7cSEric Biggers	  - SSE4.1 (Streaming SIMD Extensions 4.1)
37928a936efSRobert Elliott
38028a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3813f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
38228a936efSRobert Elliott	depends on X86 && 64BIT
38328a936efSRobert Elliott	select CRYPTO_NHPOLY1305
38428a936efSRobert Elliott	help
3853f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3863f342a23SRobert Elliott
3873f342a23SRobert Elliott	  Architecture: x86_64 using:
3883f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
38928a936efSRobert Elliott
39028a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3913f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
39228a936efSRobert Elliott	depends on X86 && 64BIT
39328a936efSRobert Elliott	select CRYPTO_NHPOLY1305
39428a936efSRobert Elliott	help
3953f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3963f342a23SRobert Elliott
3973f342a23SRobert Elliott	  Architecture: x86_64 using:
3983f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
39928a936efSRobert Elliott
40028a936efSRobert Elliottconfig CRYPTO_BLAKE2S_X86
4013f342a23SRobert Elliott	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
40228a936efSRobert Elliott	depends on X86 && 64BIT
40328a936efSRobert Elliott	select CRYPTO_LIB_BLAKE2S_GENERIC
40428a936efSRobert Elliott	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
4053f342a23SRobert Elliott	help
4063f342a23SRobert Elliott	  BLAKE2s cryptographic hash function (RFC 7693)
4073f342a23SRobert Elliott
4083f342a23SRobert Elliott	  Architecture: x86_64 using:
4093f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4103f342a23SRobert Elliott	  - AVX-512 (Advanced Vector Extensions-512)
41128a936efSRobert Elliott
41228a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
4133f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
41428a936efSRobert Elliott	depends on X86 && 64BIT
41528a936efSRobert Elliott	select CRYPTO_POLYVAL
41628a936efSRobert Elliott	help
4173f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
4183f342a23SRobert Elliott
4193f342a23SRobert Elliott	  Architecture: x86_64 using:
4203f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
42128a936efSRobert Elliott
42228a936efSRobert Elliottconfig CRYPTO_POLY1305_X86_64
423*17ec3e71SHerbert Xu	tristate
42428a936efSRobert Elliott	depends on X86 && 64BIT
425*17ec3e71SHerbert Xu	select CRYPTO_HASH
42628a936efSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
427*17ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_POLY1305
428*17ec3e71SHerbert Xu	default CRYPTO_LIB_POLY1305_INTERNAL
42928a936efSRobert Elliott	help
4303f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
43128a936efSRobert Elliott
4323f342a23SRobert Elliott	  Architecture: x86_64 using:
4333f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
4343f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
43528a936efSRobert Elliott
43628a936efSRobert Elliottconfig CRYPTO_SHA1_SSSE3
4373f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
43828a936efSRobert Elliott	depends on X86 && 64BIT
43928a936efSRobert Elliott	select CRYPTO_SHA1
44028a936efSRobert Elliott	select CRYPTO_HASH
44128a936efSRobert Elliott	help
4423f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
4433f342a23SRobert Elliott
4443f342a23SRobert Elliott	  Architecture: x86_64 using:
4453f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4463f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4473f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4483f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
44928a936efSRobert Elliott
45028a936efSRobert Elliottconfig CRYPTO_SHA256_SSSE3
4513f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
45228a936efSRobert Elliott	depends on X86 && 64BIT
45328a936efSRobert Elliott	select CRYPTO_SHA256
45428a936efSRobert Elliott	select CRYPTO_HASH
45528a936efSRobert Elliott	help
4563f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
4573f342a23SRobert Elliott
4583f342a23SRobert Elliott	  Architecture: x86_64 using:
4593f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4603f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4613f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
4623f342a23SRobert Elliott	  - SHA-NI (SHA Extensions New Instructions)
46328a936efSRobert Elliott
46428a936efSRobert Elliottconfig CRYPTO_SHA512_SSSE3
4653f342a23SRobert Elliott	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
46628a936efSRobert Elliott	depends on X86 && 64BIT
46728a936efSRobert Elliott	select CRYPTO_SHA512
46828a936efSRobert Elliott	select CRYPTO_HASH
46928a936efSRobert Elliott	help
4703f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
4713f342a23SRobert Elliott
4723f342a23SRobert Elliott	  Architecture: x86_64 using:
4733f342a23SRobert Elliott	  - SSSE3 (Supplemental SSE3)
4743f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
4753f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
47628a936efSRobert Elliott
47728a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
4783f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
47928a936efSRobert Elliott	depends on X86 && 64BIT
48028a936efSRobert Elliott	select CRYPTO_HASH
48128a936efSRobert Elliott	select CRYPTO_SM3
48228a936efSRobert Elliott	help
4833f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
4843f342a23SRobert Elliott
4853f342a23SRobert Elliott	  Architecture: x86_64 using:
4863f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
48728a936efSRobert Elliott
48828a936efSRobert Elliott	  If unsure, say N.
48928a936efSRobert Elliott
49028a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
4913f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
49228a936efSRobert Elliott	depends on X86 && 64BIT
49328a936efSRobert Elliott	select CRYPTO_CRYPTD
49428a936efSRobert Elliott	help
4953f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
4963f342a23SRobert Elliott
4973f342a23SRobert Elliott	  Architecture: x86_64 using:
4983f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
49928a936efSRobert Elliott
50028a936efSRobert Elliottendmenu
501