xref: /linux/arch/x86/crypto/Kconfig (revision 2f0a7504530c24f55daec7d2364d933bb1a1fa68)
128a936efSRobert Elliott# SPDX-License-Identifier: GPL-2.0
228a936efSRobert Elliott
328a936efSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (x86)"
428a936efSRobert Elliott
528a936efSRobert Elliottconfig CRYPTO_AES_NI_INTEL
6c299d7afSEric Biggers	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
728a936efSRobert Elliott	select CRYPTO_AEAD
828a936efSRobert Elliott	select CRYPTO_LIB_AES
9b06affb1SEric Biggers	select CRYPTO_LIB_GF128MUL
1028a936efSRobert Elliott	select CRYPTO_ALGAPI
1128a936efSRobert Elliott	select CRYPTO_SKCIPHER
1228a936efSRobert Elliott	help
13cf514b2aSRobert Elliott	  Block cipher: AES cipher algorithms
14cf514b2aSRobert Elliott	  AEAD cipher: AES with GCM
15c299d7afSEric Biggers	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
1628a936efSRobert Elliott
17cf514b2aSRobert Elliott	  Architecture: x86 (32-bit and 64-bit) using:
18cf514b2aSRobert Elliott	  - AES-NI (AES new instructions)
19c299d7afSEric Biggers	  - VAES (Vector AES)
20c299d7afSEric Biggers
21c299d7afSEric Biggers	  Some algorithm implementations are supported only in 64-bit builds,
22c299d7afSEric Biggers	  and some have additional prerequisites such as AVX2 or AVX512.
2328a936efSRobert Elliott
2428a936efSRobert Elliottconfig CRYPTO_BLOWFISH_X86_64
25cf514b2aSRobert Elliott	tristate "Ciphers: Blowfish, modes: ECB, CBC"
2667128a90SEric Biggers	depends on 64BIT
2728a936efSRobert Elliott	select CRYPTO_SKCIPHER
2828a936efSRobert Elliott	select CRYPTO_BLOWFISH_COMMON
2928a936efSRobert Elliott	imply CRYPTO_CTR
3028a936efSRobert Elliott	help
31cf514b2aSRobert Elliott	  Block cipher: Blowfish cipher algorithm
32cf514b2aSRobert Elliott	  Length-preserving ciphers: Blowfish with ECB and CBC modes
3328a936efSRobert Elliott
34cf514b2aSRobert Elliott	  Architecture: x86_64
3528a936efSRobert Elliott
3628a936efSRobert Elliottconfig CRYPTO_CAMELLIA_X86_64
37cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC"
3867128a90SEric Biggers	depends on 64BIT
3928a936efSRobert Elliott	select CRYPTO_SKCIPHER
4028a936efSRobert Elliott	imply CRYPTO_CTR
4128a936efSRobert Elliott	help
42cf514b2aSRobert Elliott	  Block cipher: Camellia cipher algorithms
43cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
4428a936efSRobert Elliott
45cf514b2aSRobert Elliott	  Architecture: x86_64
4628a936efSRobert Elliott
4728a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
48cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
4967128a90SEric Biggers	depends on 64BIT
5028a936efSRobert Elliott	select CRYPTO_SKCIPHER
5128a936efSRobert Elliott	select CRYPTO_CAMELLIA_X86_64
5228a936efSRobert Elliott	imply CRYPTO_XTS
5328a936efSRobert Elliott	help
54cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
5528a936efSRobert Elliott
56cf514b2aSRobert Elliott	  Architecture: x86_64 using:
57cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
58cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
5928a936efSRobert Elliott
6028a936efSRobert Elliottconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
61cf514b2aSRobert Elliott	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
6267128a90SEric Biggers	depends on 64BIT
6328a936efSRobert Elliott	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
6428a936efSRobert Elliott	help
65cf514b2aSRobert Elliott	  Length-preserving ciphers: Camellia with ECB and CBC modes
6628a936efSRobert Elliott
67cf514b2aSRobert Elliott	  Architecture: x86_64 using:
68cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
69cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
7028a936efSRobert Elliott
7128a936efSRobert Elliottconfig CRYPTO_CAST5_AVX_X86_64
72cf514b2aSRobert Elliott	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
7367128a90SEric Biggers	depends on 64BIT
7428a936efSRobert Elliott	select CRYPTO_SKCIPHER
7528a936efSRobert Elliott	select CRYPTO_CAST5
7628a936efSRobert Elliott	select CRYPTO_CAST_COMMON
7728a936efSRobert Elliott	imply CRYPTO_CTR
7828a936efSRobert Elliott	help
79cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
80cf514b2aSRobert Elliott	  (RFC2144) with ECB and CBC modes
8128a936efSRobert Elliott
82cf514b2aSRobert Elliott	  Architecture: x86_64 using:
83cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
84cf514b2aSRobert Elliott
85cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
8628a936efSRobert Elliott
8728a936efSRobert Elliottconfig CRYPTO_CAST6_AVX_X86_64
88cf514b2aSRobert Elliott	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
8967128a90SEric Biggers	depends on 64BIT
9028a936efSRobert Elliott	select CRYPTO_SKCIPHER
9128a936efSRobert Elliott	select CRYPTO_CAST6
9228a936efSRobert Elliott	select CRYPTO_CAST_COMMON
9328a936efSRobert Elliott	imply CRYPTO_XTS
9428a936efSRobert Elliott	imply CRYPTO_CTR
9528a936efSRobert Elliott	help
96cf514b2aSRobert Elliott	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
97cf514b2aSRobert Elliott	  (RFC2612) with ECB and CBC modes
9828a936efSRobert Elliott
99cf514b2aSRobert Elliott	  Architecture: x86_64 using:
100cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
101cf514b2aSRobert Elliott
102cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
10328a936efSRobert Elliott
10428a936efSRobert Elliottconfig CRYPTO_DES3_EDE_X86_64
105cf514b2aSRobert Elliott	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
10667128a90SEric Biggers	depends on 64BIT
10728a936efSRobert Elliott	select CRYPTO_SKCIPHER
10828a936efSRobert Elliott	select CRYPTO_LIB_DES
10928a936efSRobert Elliott	imply CRYPTO_CTR
11028a936efSRobert Elliott	help
111cf514b2aSRobert Elliott	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
112cf514b2aSRobert Elliott	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
11328a936efSRobert Elliott
114cf514b2aSRobert Elliott	  Architecture: x86_64
115cf514b2aSRobert Elliott
116cf514b2aSRobert Elliott	  Processes one or three blocks in parallel.
11728a936efSRobert Elliott
11828a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_X86_64
119cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
12067128a90SEric Biggers	depends on 64BIT
12128a936efSRobert Elliott	select CRYPTO_SKCIPHER
12228a936efSRobert Elliott	select CRYPTO_SERPENT
12328a936efSRobert Elliott	imply CRYPTO_CTR
12428a936efSRobert Elliott	help
125cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
126cf514b2aSRobert Elliott	  with ECB and CBC modes
12728a936efSRobert Elliott
128cf514b2aSRobert Elliott	  Architecture: x86_64 using:
129cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
13028a936efSRobert Elliott
131cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
13228a936efSRobert Elliott
13328a936efSRobert Elliottconfig CRYPTO_SERPENT_SSE2_586
134cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
13567128a90SEric Biggers	depends on !64BIT
13628a936efSRobert Elliott	select CRYPTO_SKCIPHER
13728a936efSRobert Elliott	select CRYPTO_SERPENT
13828a936efSRobert Elliott	imply CRYPTO_CTR
13928a936efSRobert Elliott	help
140cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
141cf514b2aSRobert Elliott	  with ECB and CBC modes
14228a936efSRobert Elliott
143cf514b2aSRobert Elliott	  Architecture: x86 (32-bit) using:
144cf514b2aSRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
14528a936efSRobert Elliott
146cf514b2aSRobert Elliott	  Processes four blocks in parallel.
14728a936efSRobert Elliott
14828a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX_X86_64
149cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
15067128a90SEric Biggers	depends on 64BIT
15128a936efSRobert Elliott	select CRYPTO_SKCIPHER
15228a936efSRobert Elliott	select CRYPTO_SERPENT
15328a936efSRobert Elliott	imply CRYPTO_XTS
15428a936efSRobert Elliott	imply CRYPTO_CTR
15528a936efSRobert Elliott	help
156cf514b2aSRobert Elliott	  Length-preserving ciphers: Serpent cipher algorithm
157cf514b2aSRobert Elliott	  with ECB and CBC modes
15828a936efSRobert Elliott
159cf514b2aSRobert Elliott	  Architecture: x86_64 using:
160cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
16128a936efSRobert Elliott
162cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
16328a936efSRobert Elliott
16428a936efSRobert Elliottconfig CRYPTO_SERPENT_AVX2_X86_64
165cf514b2aSRobert Elliott	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
16667128a90SEric Biggers	depends on 64BIT
16728a936efSRobert Elliott	select CRYPTO_SERPENT_AVX_X86_64
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	  - AVX2 (Advanced Vector Extensions 2)
17428a936efSRobert Elliott
175cf514b2aSRobert Elliott	  Processes 16 blocks in parallel.
17628a936efSRobert Elliott
17728a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX_X86_64
17805bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
17967128a90SEric Biggers	depends on 64BIT
18028a936efSRobert Elliott	select CRYPTO_SKCIPHER
18128a936efSRobert Elliott	select CRYPTO_ALGAPI
18228a936efSRobert Elliott	select CRYPTO_SM4
18328a936efSRobert Elliott	help
184cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
18505bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
18628a936efSRobert Elliott
187cf514b2aSRobert Elliott	  Architecture: x86_64 using:
188cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
189cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
19028a936efSRobert Elliott
191cf514b2aSRobert Elliott	  Through two affine transforms,
19228a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
19328a936efSRobert Elliott	  effect of instruction acceleration.
19428a936efSRobert Elliott
19528a936efSRobert Elliott	  If unsure, say N.
19628a936efSRobert Elliott
19728a936efSRobert Elliottconfig CRYPTO_SM4_AESNI_AVX2_X86_64
19805bd1e2aSHerbert Xu	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
19967128a90SEric Biggers	depends on 64BIT
20028a936efSRobert Elliott	select CRYPTO_SKCIPHER
20128a936efSRobert Elliott	select CRYPTO_ALGAPI
20228a936efSRobert Elliott	select CRYPTO_SM4
20328a936efSRobert Elliott	select CRYPTO_SM4_AESNI_AVX_X86_64
20428a936efSRobert Elliott	help
205cf514b2aSRobert Elliott	  Length-preserving ciphers: SM4 cipher algorithms
20605bd1e2aSHerbert Xu	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
20728a936efSRobert Elliott
208cf514b2aSRobert Elliott	  Architecture: x86_64 using:
209cf514b2aSRobert Elliott	  - AES-NI (AES New Instructions)
210cf514b2aSRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
21128a936efSRobert Elliott
212cf514b2aSRobert Elliott	  Through two affine transforms,
21328a936efSRobert Elliott	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
21428a936efSRobert Elliott	  effect of instruction acceleration.
21528a936efSRobert Elliott
21628a936efSRobert Elliott	  If unsure, say N.
21728a936efSRobert Elliott
21828a936efSRobert Elliottconfig CRYPTO_TWOFISH_586
219cf514b2aSRobert Elliott	tristate "Ciphers: Twofish (32-bit)"
22067128a90SEric Biggers	depends on !64BIT
22128a936efSRobert Elliott	select CRYPTO_ALGAPI
22228a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
22328a936efSRobert Elliott	imply CRYPTO_CTR
22428a936efSRobert Elliott	help
225cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
22628a936efSRobert Elliott
227cf514b2aSRobert Elliott	  Architecture: x86 (32-bit)
22828a936efSRobert Elliott
22928a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64
230cf514b2aSRobert Elliott	tristate "Ciphers: Twofish"
23167128a90SEric Biggers	depends on 64BIT
23228a936efSRobert Elliott	select CRYPTO_ALGAPI
23328a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
23428a936efSRobert Elliott	imply CRYPTO_CTR
23528a936efSRobert Elliott	help
236cf514b2aSRobert Elliott	  Block cipher: Twofish cipher algorithm
23728a936efSRobert Elliott
238cf514b2aSRobert Elliott	  Architecture: x86_64
23928a936efSRobert Elliott
24028a936efSRobert Elliottconfig CRYPTO_TWOFISH_X86_64_3WAY
241cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
24267128a90SEric Biggers	depends on 64BIT
24328a936efSRobert Elliott	select CRYPTO_SKCIPHER
24428a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
24528a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
24628a936efSRobert Elliott	help
247cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
248cf514b2aSRobert Elliott	  with ECB and CBC modes
24928a936efSRobert Elliott
250cf514b2aSRobert Elliott	  Architecture: x86_64
25128a936efSRobert Elliott
252cf514b2aSRobert Elliott	  Processes three blocks in parallel, better utilizing resources of
253cf514b2aSRobert Elliott	  out-of-order CPUs.
25428a936efSRobert Elliott
25528a936efSRobert Elliottconfig CRYPTO_TWOFISH_AVX_X86_64
256cf514b2aSRobert Elliott	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
25767128a90SEric Biggers	depends on 64BIT
25828a936efSRobert Elliott	select CRYPTO_SKCIPHER
25928a936efSRobert Elliott	select CRYPTO_TWOFISH_COMMON
26028a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64
26128a936efSRobert Elliott	select CRYPTO_TWOFISH_X86_64_3WAY
26228a936efSRobert Elliott	imply CRYPTO_XTS
26328a936efSRobert Elliott	help
264cf514b2aSRobert Elliott	  Length-preserving cipher: Twofish cipher algorithm
265cf514b2aSRobert Elliott	  with ECB and CBC modes
26628a936efSRobert Elliott
267cf514b2aSRobert Elliott	  Architecture: x86_64 using:
268cf514b2aSRobert Elliott	  - AVX (Advanced Vector Extensions)
26928a936efSRobert Elliott
270cf514b2aSRobert Elliott	  Processes eight blocks in parallel.
27128a936efSRobert Elliott
272ba3579e6STaehee Yooconfig CRYPTO_ARIA_AESNI_AVX_X86_64
273ba3579e6STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
27467128a90SEric Biggers	depends on 64BIT
275ba3579e6STaehee Yoo	select CRYPTO_SKCIPHER
276ba3579e6STaehee Yoo	select CRYPTO_ALGAPI
277ba3579e6STaehee Yoo	select CRYPTO_ARIA
278ba3579e6STaehee Yoo	help
279ba3579e6STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
280ba3579e6STaehee Yoo	  (RFC 5794) with ECB and CTR modes
281ba3579e6STaehee Yoo
282ba3579e6STaehee Yoo	  Architecture: x86_64 using:
283ba3579e6STaehee Yoo	  - AES-NI (AES New Instructions)
284ba3579e6STaehee Yoo	  - AVX (Advanced Vector Extensions)
285ba3579e6STaehee Yoo	  - GFNI (Galois Field New Instructions)
286ba3579e6STaehee Yoo
287ba3579e6STaehee Yoo	  Processes 16 blocks in parallel.
288ba3579e6STaehee Yoo
28937d8d3aeSTaehee Yooconfig CRYPTO_ARIA_AESNI_AVX2_X86_64
29037d8d3aeSTaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
29167128a90SEric Biggers	depends on 64BIT
29237d8d3aeSTaehee Yoo	select CRYPTO_SKCIPHER
29337d8d3aeSTaehee Yoo	select CRYPTO_ALGAPI
29437d8d3aeSTaehee Yoo	select CRYPTO_ARIA
29537d8d3aeSTaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
29637d8d3aeSTaehee Yoo	help
29737d8d3aeSTaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
29837d8d3aeSTaehee Yoo	  (RFC 5794) with ECB and CTR modes
29937d8d3aeSTaehee Yoo
30037d8d3aeSTaehee Yoo	  Architecture: x86_64 using:
30137d8d3aeSTaehee Yoo	  - AES-NI (AES New Instructions)
30237d8d3aeSTaehee Yoo	  - AVX2 (Advanced Vector Extensions)
30337d8d3aeSTaehee Yoo	  - GFNI (Galois Field New Instructions)
30437d8d3aeSTaehee Yoo
30537d8d3aeSTaehee Yoo	  Processes 32 blocks in parallel.
30637d8d3aeSTaehee Yoo
307c970d420STaehee Yooconfig CRYPTO_ARIA_GFNI_AVX512_X86_64
308c970d420STaehee Yoo	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
309*a35da573SUros Bizjak	depends on 64BIT
310c970d420STaehee Yoo	select CRYPTO_SKCIPHER
311c970d420STaehee Yoo	select CRYPTO_ALGAPI
312c970d420STaehee Yoo	select CRYPTO_ARIA
313c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX_X86_64
314c970d420STaehee Yoo	select CRYPTO_ARIA_AESNI_AVX2_X86_64
315c970d420STaehee Yoo	help
316c970d420STaehee Yoo	  Length-preserving cipher: ARIA cipher algorithms
317c970d420STaehee Yoo	  (RFC 5794) with ECB and CTR modes
318c970d420STaehee Yoo
319c970d420STaehee Yoo	  Architecture: x86_64 using:
320c970d420STaehee Yoo	  - AVX512 (Advanced Vector Extensions)
321c970d420STaehee Yoo	  - GFNI (Galois Field New Instructions)
322c970d420STaehee Yoo
323c970d420STaehee Yoo	  Processes 64 blocks in parallel.
324c970d420STaehee Yoo
32528a936efSRobert Elliottconfig CRYPTO_AEGIS128_AESNI_SSE2
326af2aff7cSEric Biggers	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
32767128a90SEric Biggers	depends on 64BIT
32828a936efSRobert Elliott	select CRYPTO_AEAD
32928a936efSRobert Elliott	help
330e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
331e3d2eaddSRobert Elliott
332e3d2eaddSRobert Elliott	  Architecture: x86_64 using:
333e3d2eaddSRobert Elliott	  - AES-NI (AES New Instructions)
334af2aff7cSEric Biggers	  - SSE4.1 (Streaming SIMD Extensions 4.1)
33528a936efSRobert Elliott
33628a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_SSE2
3373f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (SSE2)"
33867128a90SEric Biggers	depends on 64BIT
33928a936efSRobert Elliott	select CRYPTO_NHPOLY1305
34028a936efSRobert Elliott	help
3413f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3423f342a23SRobert Elliott
3433f342a23SRobert Elliott	  Architecture: x86_64 using:
3443f342a23SRobert Elliott	  - SSE2 (Streaming SIMD Extensions 2)
34528a936efSRobert Elliott
34628a936efSRobert Elliottconfig CRYPTO_NHPOLY1305_AVX2
3473f342a23SRobert Elliott	tristate "Hash functions: NHPoly1305 (AVX2)"
34867128a90SEric Biggers	depends on 64BIT
34928a936efSRobert Elliott	select CRYPTO_NHPOLY1305
35028a936efSRobert Elliott	help
3513f342a23SRobert Elliott	  NHPoly1305 hash function for Adiantum
3523f342a23SRobert Elliott
3533f342a23SRobert Elliott	  Architecture: x86_64 using:
3543f342a23SRobert Elliott	  - AVX2 (Advanced Vector Extensions 2)
35528a936efSRobert Elliott
35628a936efSRobert Elliottconfig CRYPTO_POLYVAL_CLMUL_NI
3573f342a23SRobert Elliott	tristate "Hash functions: POLYVAL (CLMUL-NI)"
35867128a90SEric Biggers	depends on 64BIT
35928a936efSRobert Elliott	select CRYPTO_POLYVAL
36028a936efSRobert Elliott	help
3613f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
3623f342a23SRobert Elliott
3633f342a23SRobert Elliott	  Architecture: x86_64 using:
3643f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
36528a936efSRobert Elliott
36628a936efSRobert Elliottconfig CRYPTO_SM3_AVX_X86_64
3673f342a23SRobert Elliott	tristate "Hash functions: SM3 (AVX)"
36867128a90SEric Biggers	depends on 64BIT
36928a936efSRobert Elliott	select CRYPTO_HASH
370f4065b2fSHerbert Xu	select CRYPTO_LIB_SM3
37128a936efSRobert Elliott	help
3723f342a23SRobert Elliott	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
3733f342a23SRobert Elliott
3743f342a23SRobert Elliott	  Architecture: x86_64 using:
3753f342a23SRobert Elliott	  - AVX (Advanced Vector Extensions)
37628a936efSRobert Elliott
37728a936efSRobert Elliott	  If unsure, say N.
37828a936efSRobert Elliott
37928a936efSRobert Elliottconfig CRYPTO_GHASH_CLMUL_NI_INTEL
3803f342a23SRobert Elliott	tristate "Hash functions: GHASH (CLMUL-NI)"
38167128a90SEric Biggers	depends on 64BIT
38228a936efSRobert Elliott	select CRYPTO_CRYPTD
38328a936efSRobert Elliott	help
3843f342a23SRobert Elliott	  GCM GHASH hash function (NIST SP800-38D)
3853f342a23SRobert Elliott
3863f342a23SRobert Elliott	  Architecture: x86_64 using:
3873f342a23SRobert Elliott	  - CLMUL-NI (carry-less multiplication new instructions)
38828a936efSRobert Elliott
38928a936efSRobert Elliottendmenu
390