xref: /linux/arch/x86/crypto/Kconfig (revision 53597deca0e38c30e6cd4ba2114fa42d2bcd85bb)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (x86)"
4
5config CRYPTO_AES_NI_INTEL
6	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
7	select CRYPTO_AEAD
8	select CRYPTO_LIB_AES
9	select CRYPTO_LIB_GF128MUL
10	select CRYPTO_SKCIPHER
11	help
12	  AEAD cipher: AES with GCM
13	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
14
15	  Architecture: x86 (32-bit and 64-bit) using:
16	  - AES-NI (AES new instructions)
17	  - VAES (Vector AES)
18
19	  Some algorithm implementations are supported only in 64-bit builds,
20	  and some have additional prerequisites such as AVX2 or AVX512.
21
22config CRYPTO_BLOWFISH_X86_64
23	tristate "Ciphers: Blowfish, modes: ECB, CBC"
24	depends on 64BIT
25	select CRYPTO_SKCIPHER
26	select CRYPTO_BLOWFISH_COMMON
27	imply CRYPTO_CTR
28	help
29	  Block cipher: Blowfish cipher algorithm
30	  Length-preserving ciphers: Blowfish with ECB and CBC modes
31
32	  Architecture: x86_64
33
34config CRYPTO_CAMELLIA_X86_64
35	tristate "Ciphers: Camellia with modes: ECB, CBC"
36	depends on 64BIT
37	select CRYPTO_SKCIPHER
38	imply CRYPTO_CTR
39	help
40	  Block cipher: Camellia cipher algorithms
41	  Length-preserving ciphers: Camellia with ECB and CBC modes
42
43	  Architecture: x86_64
44
45config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
46	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
47	depends on 64BIT
48	select CRYPTO_SKCIPHER
49	select CRYPTO_CAMELLIA_X86_64
50	imply CRYPTO_XTS
51	help
52	  Length-preserving ciphers: Camellia with ECB and CBC modes
53
54	  Architecture: x86_64 using:
55	  - AES-NI (AES New Instructions)
56	  - AVX (Advanced Vector Extensions)
57
58config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
59	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
60	depends on 64BIT
61	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
62	help
63	  Length-preserving ciphers: Camellia with ECB and CBC modes
64
65	  Architecture: x86_64 using:
66	  - AES-NI (AES New Instructions)
67	  - AVX2 (Advanced Vector Extensions 2)
68
69config CRYPTO_CAST5_AVX_X86_64
70	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
71	depends on 64BIT
72	select CRYPTO_SKCIPHER
73	select CRYPTO_CAST5
74	select CRYPTO_CAST_COMMON
75	imply CRYPTO_CTR
76	help
77	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
78	  (RFC2144) with ECB and CBC modes
79
80	  Architecture: x86_64 using:
81	  - AVX (Advanced Vector Extensions)
82
83	  Processes 16 blocks in parallel.
84
85config CRYPTO_CAST6_AVX_X86_64
86	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
87	depends on 64BIT
88	select CRYPTO_SKCIPHER
89	select CRYPTO_CAST6
90	select CRYPTO_CAST_COMMON
91	imply CRYPTO_XTS
92	imply CRYPTO_CTR
93	help
94	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
95	  (RFC2612) with ECB and CBC modes
96
97	  Architecture: x86_64 using:
98	  - AVX (Advanced Vector Extensions)
99
100	  Processes eight blocks in parallel.
101
102config CRYPTO_SERPENT_SSE2_X86_64
103	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
104	depends on 64BIT
105	select CRYPTO_SKCIPHER
106	select CRYPTO_SERPENT
107	imply CRYPTO_CTR
108	help
109	  Length-preserving ciphers: Serpent cipher algorithm
110	  with ECB and CBC modes
111
112	  Architecture: x86_64 using:
113	  - SSE2 (Streaming SIMD Extensions 2)
114
115	  Processes eight blocks in parallel.
116
117config CRYPTO_SERPENT_SSE2_586
118	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
119	depends on !64BIT
120	select CRYPTO_SKCIPHER
121	select CRYPTO_SERPENT
122	imply CRYPTO_CTR
123	help
124	  Length-preserving ciphers: Serpent cipher algorithm
125	  with ECB and CBC modes
126
127	  Architecture: x86 (32-bit) using:
128	  - SSE2 (Streaming SIMD Extensions 2)
129
130	  Processes four blocks in parallel.
131
132config CRYPTO_SERPENT_AVX_X86_64
133	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
134	depends on 64BIT
135	select CRYPTO_SKCIPHER
136	select CRYPTO_SERPENT
137	imply CRYPTO_XTS
138	imply CRYPTO_CTR
139	help
140	  Length-preserving ciphers: Serpent cipher algorithm
141	  with ECB and CBC modes
142
143	  Architecture: x86_64 using:
144	  - AVX (Advanced Vector Extensions)
145
146	  Processes eight blocks in parallel.
147
148config CRYPTO_SERPENT_AVX2_X86_64
149	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
150	depends on 64BIT
151	select CRYPTO_SERPENT_AVX_X86_64
152	help
153	  Length-preserving ciphers: Serpent cipher algorithm
154	  with ECB and CBC modes
155
156	  Architecture: x86_64 using:
157	  - AVX2 (Advanced Vector Extensions 2)
158
159	  Processes 16 blocks in parallel.
160
161config CRYPTO_SM4_AESNI_AVX_X86_64
162	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
163	depends on 64BIT
164	select CRYPTO_SKCIPHER
165	select CRYPTO_ALGAPI
166	select CRYPTO_SM4
167	help
168	  Length-preserving ciphers: SM4 cipher algorithms
169	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
170
171	  Architecture: x86_64 using:
172	  - AES-NI (AES New Instructions)
173	  - AVX (Advanced Vector Extensions)
174
175	  Through two affine transforms,
176	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
177	  effect of instruction acceleration.
178
179	  If unsure, say N.
180
181config CRYPTO_SM4_AESNI_AVX2_X86_64
182	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
183	depends on 64BIT
184	select CRYPTO_SKCIPHER
185	select CRYPTO_ALGAPI
186	select CRYPTO_SM4
187	select CRYPTO_SM4_AESNI_AVX_X86_64
188	help
189	  Length-preserving ciphers: SM4 cipher algorithms
190	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
191
192	  Architecture: x86_64 using:
193	  - AES-NI (AES New Instructions)
194	  - AVX2 (Advanced Vector Extensions 2)
195
196	  Through two affine transforms,
197	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
198	  effect of instruction acceleration.
199
200	  If unsure, say N.
201
202config CRYPTO_TWOFISH_586
203	tristate "Ciphers: Twofish (32-bit)"
204	depends on !64BIT
205	select CRYPTO_ALGAPI
206	select CRYPTO_TWOFISH_COMMON
207	imply CRYPTO_CTR
208	help
209	  Block cipher: Twofish cipher algorithm
210
211	  Architecture: x86 (32-bit)
212
213config CRYPTO_TWOFISH_X86_64
214	tristate "Ciphers: Twofish"
215	depends on 64BIT
216	select CRYPTO_ALGAPI
217	select CRYPTO_TWOFISH_COMMON
218	imply CRYPTO_CTR
219	help
220	  Block cipher: Twofish cipher algorithm
221
222	  Architecture: x86_64
223
224config CRYPTO_TWOFISH_X86_64_3WAY
225	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
226	depends on 64BIT
227	select CRYPTO_SKCIPHER
228	select CRYPTO_TWOFISH_COMMON
229	select CRYPTO_TWOFISH_X86_64
230	help
231	  Length-preserving cipher: Twofish cipher algorithm
232	  with ECB and CBC modes
233
234	  Architecture: x86_64
235
236	  Processes three blocks in parallel, better utilizing resources of
237	  out-of-order CPUs.
238
239config CRYPTO_TWOFISH_AVX_X86_64
240	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
241	depends on 64BIT
242	select CRYPTO_SKCIPHER
243	select CRYPTO_TWOFISH_COMMON
244	select CRYPTO_TWOFISH_X86_64
245	select CRYPTO_TWOFISH_X86_64_3WAY
246	imply CRYPTO_XTS
247	help
248	  Length-preserving cipher: Twofish cipher algorithm
249	  with ECB and CBC modes
250
251	  Architecture: x86_64 using:
252	  - AVX (Advanced Vector Extensions)
253
254	  Processes eight blocks in parallel.
255
256config CRYPTO_ARIA_AESNI_AVX_X86_64
257	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
258	depends on 64BIT
259	select CRYPTO_SKCIPHER
260	select CRYPTO_ALGAPI
261	select CRYPTO_ARIA
262	help
263	  Length-preserving cipher: ARIA cipher algorithms
264	  (RFC 5794) with ECB and CTR modes
265
266	  Architecture: x86_64 using:
267	  - AES-NI (AES New Instructions)
268	  - AVX (Advanced Vector Extensions)
269	  - GFNI (Galois Field New Instructions)
270
271	  Processes 16 blocks in parallel.
272
273config CRYPTO_ARIA_AESNI_AVX2_X86_64
274	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
275	depends on 64BIT
276	select CRYPTO_SKCIPHER
277	select CRYPTO_ALGAPI
278	select CRYPTO_ARIA
279	select CRYPTO_ARIA_AESNI_AVX_X86_64
280	help
281	  Length-preserving cipher: ARIA cipher algorithms
282	  (RFC 5794) with ECB and CTR modes
283
284	  Architecture: x86_64 using:
285	  - AES-NI (AES New Instructions)
286	  - AVX2 (Advanced Vector Extensions)
287	  - GFNI (Galois Field New Instructions)
288
289	  Processes 32 blocks in parallel.
290
291config CRYPTO_ARIA_GFNI_AVX512_X86_64
292	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
293	depends on 64BIT
294	select CRYPTO_SKCIPHER
295	select CRYPTO_ALGAPI
296	select CRYPTO_ARIA
297	select CRYPTO_ARIA_AESNI_AVX_X86_64
298	select CRYPTO_ARIA_AESNI_AVX2_X86_64
299	help
300	  Length-preserving cipher: ARIA cipher algorithms
301	  (RFC 5794) with ECB and CTR modes
302
303	  Architecture: x86_64 using:
304	  - AVX512 (Advanced Vector Extensions)
305	  - GFNI (Galois Field New Instructions)
306
307	  Processes 64 blocks in parallel.
308
309config CRYPTO_AEGIS128_AESNI_SSE2
310	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
311	depends on 64BIT
312	select CRYPTO_AEAD
313	help
314	  AEGIS-128 AEAD algorithm
315
316	  Architecture: x86_64 using:
317	  - AES-NI (AES New Instructions)
318	  - SSE4.1 (Streaming SIMD Extensions 4.1)
319
320endmenu
321