xref: /linux/arch/x86/crypto/Kconfig (revision 13150742b09e720fdf021de14cd2b98b37415a89)
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
617ec3e71SHerbert Xu	tristate
7*67128a90SEric Biggers	depends on 64BIT
817ec3e71SHerbert Xu	select CRYPTO_KPP
928a936efSRobert Elliott	select CRYPTO_LIB_CURVE25519_GENERIC
1017ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
1117ec3e71SHerbert 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	select CRYPTO_AEAD
2128a936efSRobert Elliott	select CRYPTO_LIB_AES
22b06affb1SEric Biggers	select CRYPTO_LIB_GF128MUL
2328a936efSRobert Elliott	select CRYPTO_ALGAPI
2428a936efSRobert Elliott	select CRYPTO_SKCIPHER
2528a936efSRobert Elliott	help
26cf514b2aSRobert Elliott	  Block cipher: AES cipher algorithms
27cf514b2aSRobert Elliott	  AEAD cipher: AES with GCM
28c299d7afSEric Biggers	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
2928a936efSRobert Elliott
30cf514b2aSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
31cf514b2aSRobert Elliott	  - AES-NI (AES new instructions)
32c299d7afSEric Biggers	  - VAES (Vector AES)
33c299d7afSEric Biggers
34c299d7afSEric Biggers	  Some algorithm implementations are supported only in 64-bit builds,
35c299d7afSEric Biggers	  and some have additional prerequisites such as AVX2 or AVX512.
3628a936efSRobert Elliott
3728a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64
38cf514b2aSRobert Elliott	tristate "Ciphers: Blowfish, modes: ECB, CBC"
39*67128a90SEric Biggers	depends on 64BIT
4028a936efSRobert Elliott	select CRYPTO_SKCIPHER
4128a936efSRobert Elliott	select CRYPTO_BLOWFISH_COMMON
4228a936efSRobert Elliott	imply CRYPTO_CTR
4328a936efSRobert Elliott	help
44cf514b2aSRobert Elliott	  Block cipher: Blowfish cipher algorithm
45cf514b2aSRobert Elliott	  Length-preserving ciphers: Blowfish with ECB and CBC modes
4628a936efSRobert Elliott
47cf514b2aSRobert Elliott	  Architecture: x86_64
4828a936efSRobert Elliott
4928a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64
50cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC"
51*67128a90SEric Biggers	depends on 64BIT
5228a936efSRobert Elliott	select CRYPTO_SKCIPHER
5328a936efSRobert Elliott	imply CRYPTO_CTR
5428a936efSRobert Elliott	help
55cf514b2aSRobert Elliott	  Block cipher: Camellia cipher algorithms
56cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
5728a936efSRobert Elliott
58cf514b2aSRobert Elliott	  Architecture: x86_64
5928a936efSRobert Elliott
6028a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
61cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
62*67128a90SEric Biggers	depends on 64BIT
6328a936efSRobert Elliott	select CRYPTO_SKCIPHER
6428a936efSRobert Elliott	select CRYPTO_CAMELLIA_X86_64
6528a936efSRobert Elliott	imply CRYPTO_XTS
6628a936efSRobert Elliott	help
67cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
6828a936efSRobert Elliott
69cf514b2aSRobert Elliott	  Architecture: x86_64 using:
70cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
71cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
7228a936efSRobert Elliott
7328a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
74cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
75*67128a90SEric Biggers	depends on 64BIT
7628a936efSRobert Elliott	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
7728a936efSRobert Elliott	help
78cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
7928a936efSRobert Elliott
80cf514b2aSRobert Elliott	  Architecture: x86_64 using:
81cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
82cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
8328a936efSRobert Elliott
8428a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64
85cf514b2aSRobert Elliott	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
86*67128a90SEric Biggers	depends on 64BIT
8728a936efSRobert Elliott	select CRYPTO_SKCIPHER
8828a936efSRobert Elliott	select CRYPTO_CAST5
8928a936efSRobert Elliott	select CRYPTO_CAST_COMMON
9028a936efSRobert Elliott	imply CRYPTO_CTR
9128a936efSRobert Elliott	help
92cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
93cf514b2aSRobert Elliott	  (RFC2144) with ECB and CBC modes
9428a936efSRobert Elliott
95cf514b2aSRobert Elliott	  Architecture: x86_64 using:
96cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
97cf514b2aSRobert Elliott
98cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
9928a936efSRobert Elliott
10028a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64
101cf514b2aSRobert Elliott	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
102*67128a90SEric Biggers	depends on 64BIT
10328a936efSRobert Elliott	select CRYPTO_SKCIPHER
10428a936efSRobert Elliott	select CRYPTO_CAST6
10528a936efSRobert Elliott	select CRYPTO_CAST_COMMON
10628a936efSRobert Elliott	imply CRYPTO_XTS
10728a936efSRobert Elliott	imply CRYPTO_CTR
10828a936efSRobert Elliott	help
109cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
110cf514b2aSRobert Elliott	  (RFC2612) with ECB and CBC modes
11128a936efSRobert Elliott
112cf514b2aSRobert Elliott	  Architecture: x86_64 using:
113cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
114cf514b2aSRobert Elliott
115cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
11628a936efSRobert Elliott
11728a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64
118cf514b2aSRobert Elliott	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
119*67128a90SEric Biggers	depends on 64BIT
12028a936efSRobert Elliott	select CRYPTO_SKCIPHER
12128a936efSRobert Elliott	select CRYPTO_LIB_DES
12228a936efSRobert Elliott	imply CRYPTO_CTR
12328a936efSRobert Elliott	help
124cf514b2aSRobert Elliott	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
125cf514b2aSRobert Elliott	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
12628a936efSRobert Elliott
127cf514b2aSRobert Elliott	  Architecture: x86_64
128cf514b2aSRobert Elliott
129cf514b2aSRobert Elliott	  Processes one or three blocks in parallel.
13028a936efSRobert Elliott
13128a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64
132cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
133*67128a90SEric Biggers	depends on 64BIT
13428a936efSRobert Elliott	select CRYPTO_SKCIPHER
13528a936efSRobert Elliott	select CRYPTO_SERPENT
13628a936efSRobert Elliott	imply CRYPTO_CTR
13728a936efSRobert Elliott	help
138cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
139cf514b2aSRobert Elliott	  with ECB and CBC modes
14028a936efSRobert Elliott
141cf514b2aSRobert Elliott	  Architecture: x86_64 using:
142cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
14328a936efSRobert Elliott
144cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
14528a936efSRobert Elliott
14628a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586
147cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
148*67128a90SEric Biggers	depends on !64BIT
14928a936efSRobert Elliott	select CRYPTO_SKCIPHER
15028a936efSRobert Elliott	select CRYPTO_SERPENT
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)"
163*67128a90SEric Biggers	depends on 64BIT
16428a936efSRobert Elliott	select CRYPTO_SKCIPHER
16528a936efSRobert Elliott	select CRYPTO_SERPENT
16628a936efSRobert Elliott	imply CRYPTO_XTS
16728a936efSRobert Elliott	imply CRYPTO_CTR
16828a936efSRobert Elliott	help
169cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
170cf514b2aSRobert Elliott	  with ECB and CBC modes
17128a936efSRobert Elliott
172cf514b2aSRobert Elliott	  Architecture: x86_64 using:
173cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
17428a936efSRobert Elliott
175cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
17628a936efSRobert Elliott
17728a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64
178cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
179*67128a90SEric Biggers	depends on 64BIT
18028a936efSRobert Elliott	select CRYPTO_SERPENT_AVX_X86_64
18128a936efSRobert Elliott	help
182cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
183cf514b2aSRobert Elliott	  with ECB and CBC modes
18428a936efSRobert Elliott
185cf514b2aSRobert Elliott	  Architecture: x86_64 using:
186cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
18728a936efSRobert Elliott
188cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
18928a936efSRobert Elliott
19028a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64
19105bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
192*67128a90SEric Biggers	depends on 64BIT
19328a936efSRobert Elliott	select CRYPTO_SKCIPHER
19428a936efSRobert Elliott	select CRYPTO_ALGAPI
19528a936efSRobert Elliott	select CRYPTO_SM4
19628a936efSRobert Elliott	help
197cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
19805bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
19928a936efSRobert Elliott
200cf514b2aSRobert Elliott	  Architecture: x86_64 using:
201cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
202cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
20328a936efSRobert Elliott
204cf514b2aSRobert Elliott	  Through two affine transforms,
20528a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
20628a936efSRobert Elliott	  effect of instruction acceleration.
20728a936efSRobert Elliott
20828a936efSRobert Elliott	  If unsure, say N.
20928a936efSRobert Elliott
21028a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64
21105bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
212*67128a90SEric Biggers	depends on 64BIT
21328a936efSRobert Elliott	select CRYPTO_SKCIPHER
21428a936efSRobert Elliott	select CRYPTO_ALGAPI
21528a936efSRobert Elliott	select CRYPTO_SM4
21628a936efSRobert Elliott	select CRYPTO_SM4_AESNI_AVX_X86_64
21728a936efSRobert Elliott	help
218cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
21905bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
22028a936efSRobert Elliott
221cf514b2aSRobert Elliott	  Architecture: x86_64 using:
222cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
223cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
22428a936efSRobert Elliott
225cf514b2aSRobert Elliott	  Through two affine transforms,
22628a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
22728a936efSRobert Elliott	  effect of instruction acceleration.
22828a936efSRobert Elliott
22928a936efSRobert Elliott	  If unsure, say N.
23028a936efSRobert Elliott
23128a936efSRobert Elliottconfig CRYPTO_TWOFISH_586
232cf514b2aSRobert Elliott	tristate "Ciphers: Twofish (32-bit)"
233*67128a90SEric Biggers	depends on !64BIT
23428a936efSRobert Elliott	select CRYPTO_ALGAPI
23528a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
23628a936efSRobert Elliott	imply CRYPTO_CTR
23728a936efSRobert Elliott	help
238cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
23928a936efSRobert Elliott
240cf514b2aSRobert Elliott	  Architecture: x86 (32-bit)
24128a936efSRobert Elliott
24228a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64
243cf514b2aSRobert Elliott	tristate "Ciphers: Twofish"
244*67128a90SEric Biggers	depends on 64BIT
24528a936efSRobert Elliott	select CRYPTO_ALGAPI
24628a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
24728a936efSRobert Elliott	imply CRYPTO_CTR
24828a936efSRobert Elliott	help
249cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
25028a936efSRobert Elliott
251cf514b2aSRobert Elliott	  Architecture: x86_64
25228a936efSRobert Elliott
25328a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY
254cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
255*67128a90SEric Biggers	depends on 64BIT
25628a936efSRobert Elliott	select CRYPTO_SKCIPHER
25728a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
25828a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
25928a936efSRobert Elliott	help
260cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
261cf514b2aSRobert Elliott	  with ECB and CBC modes
26228a936efSRobert Elliott
263cf514b2aSRobert Elliott	  Architecture: x86_64
26428a936efSRobert Elliott
265cf514b2aSRobert Elliott	  Processes three blocks in parallel, better utilizing resources of
266cf514b2aSRobert Elliott	  out-of-order CPUs.
26728a936efSRobert Elliott
26828a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64
269cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
270*67128a90SEric Biggers	depends on 64BIT
27128a936efSRobert Elliott	select CRYPTO_SKCIPHER
27228a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
27328a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
27428a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64_3WAY
27528a936efSRobert Elliott	imply CRYPTO_XTS
27628a936efSRobert Elliott	help
277cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
278cf514b2aSRobert Elliott	  with ECB and CBC modes
27928a936efSRobert Elliott
280cf514b2aSRobert Elliott	  Architecture: x86_64 using:
281cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
28228a936efSRobert Elliott
283cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
28428a936efSRobert Elliott
285ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
286ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
287*67128a90SEric Biggers	depends on 64BIT
288ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
289ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
290ba3579e6STaehee Yoo	select CRYPTO_ARIA
291ba3579e6STaehee Yoo	help
292ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
293ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
294ba3579e6STaehee Yoo
295ba3579e6STaehee Yoo	  Architecture: x86_64 using:
296ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
297ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
298ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
299ba3579e6STaehee Yoo
300ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
301ba3579e6STaehee Yoo
30237d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
30337d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
304*67128a90SEric Biggers	depends on 64BIT
30537d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
30637d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
30737d8d3aeSTaehee Yoo	select CRYPTO_ARIA
30837d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
30937d8d3aeSTaehee Yoo	help
31037d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
31137d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
31237d8d3aeSTaehee Yoo
31337d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
31437d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
31537d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
31637d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
31737d8d3aeSTaehee Yoo
31837d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
31937d8d3aeSTaehee Yoo
320c970d420STaehee Yooconfig CRYPTO_ARIA_GFNI_AVX512_X86_64
321c970d420STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
322*67128a90SEric Biggers	depends on 64BIT && AS_GFNI
323c970d420STaehee Yoo	select CRYPTO_SKCIPHER
324c970d420STaehee Yoo	select CRYPTO_ALGAPI
325c970d420STaehee Yoo	select CRYPTO_ARIA
326c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
327c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX2_X86_64
328c970d420STaehee Yoo	help
329c970d420STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
330c970d420STaehee Yoo	  (RFC 5794) with ECB and CTR modes
331c970d420STaehee Yoo
332c970d420STaehee Yoo	  Architecture: x86_64 using:
333c970d420STaehee Yoo	  - AVX512 (Advanced Vector Extensions)
334c970d420STaehee Yoo	  - GFNI (Galois Field New Instructions)
335c970d420STaehee Yoo
336c970d420STaehee Yoo	  Processes 64 blocks in parallel.
337c970d420STaehee Yoo
33828a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
339af2aff7cSEric Biggers	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
340*67128a90SEric Biggers	depends on 64BIT
34128a936efSRobert Elliott	select CRYPTO_AEAD
34228a936efSRobert Elliott	help
343e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
344e3d2eaddSRobert Elliott
345e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
346e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
347af2aff7cSEric Biggers	  - SSE4.1 (Streaming SIMD Extensions 4.1)
34828a936efSRobert Elliott
34928a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3503f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
351*67128a90SEric Biggers	depends on 64BIT
35228a936efSRobert Elliott	select CRYPTO_NHPOLY1305
35328a936efSRobert Elliott	help
3543f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3553f342a23SRobert Elliott
3563f342a23SRobert Elliott	  Architecture: x86_64 using:
3573f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
35828a936efSRobert Elliott
35928a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3603f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
361*67128a90SEric Biggers	depends on 64BIT
36228a936efSRobert Elliott	select CRYPTO_NHPOLY1305
36328a936efSRobert Elliott	help
3643f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3653f342a23SRobert Elliott
3663f342a23SRobert Elliott	  Architecture: x86_64 using:
3673f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
36828a936efSRobert Elliott
36928a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
3703f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
371*67128a90SEric Biggers	depends on 64BIT
37228a936efSRobert Elliott	select CRYPTO_POLYVAL
37328a936efSRobert Elliott	help
3743f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
3753f342a23SRobert Elliott
3763f342a23SRobert Elliott	  Architecture: x86_64 using:
3773f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
37828a936efSRobert Elliott
37928a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
3803f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
381*67128a90SEric Biggers	depends on 64BIT
38228a936efSRobert Elliott	select CRYPTO_HASH
383f4065b2fSHerbert Xu	select CRYPTO_LIB_SM3
38428a936efSRobert Elliott	help
3853f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
3863f342a23SRobert Elliott
3873f342a23SRobert Elliott	  Architecture: x86_64 using:
3883f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
38928a936efSRobert Elliott
39028a936efSRobert Elliott	  If unsure, say N.
39128a936efSRobert Elliott
39228a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
3933f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
394*67128a90SEric Biggers	depends on 64BIT
39528a936efSRobert Elliott	select CRYPTO_CRYPTD
39628a936efSRobert Elliott	help
3973f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
3983f342a23SRobert Elliott
3993f342a23SRobert Elliott	  Architecture: x86_64 using:
4003f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
40128a936efSRobert Elliott
40228a936efSRobert Elliottendmenu
403