summaryrefslogtreecommitdiff
path: root/arch/x86/crypto/Kconfig
blob: c9e59589a1cee1f76177110c5e6f2b34810f1c9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
# SPDX-License-Identifier: GPL-2.0

menu "Accelerated Cryptographic Algorithms for CPU (x86)"

config CRYPTO_CURVE25519_X86
	tristate "Public key crypto: Curve25519 (ADX)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_CURVE25519_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
	help
	  Curve25519 algorithm

	  Architecture: x86_64 using:
	  - ADX (large integer arithmetic)

config CRYPTO_AES_NI_INTEL
	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
	depends on X86
	select CRYPTO_AEAD
	select CRYPTO_LIB_AES
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	help
	  Block cipher: AES cipher algorithms
	  AEAD cipher: AES with GCM
	  Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS

	  Architecture: x86 (32-bit and 64-bit) using:
	  - AES-NI (AES new instructions)

config CRYPTO_BLOWFISH_X86_64
	tristate "Ciphers: Blowfish, modes: ECB, CBC"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_BLOWFISH_COMMON
	imply CRYPTO_CTR
	help
	  Block cipher: Blowfish cipher algorithm
	  Length-preserving ciphers: Blowfish with ECB and CBC modes

	  Architecture: x86_64

config CRYPTO_CAMELLIA_X86_64
	tristate "Ciphers: Camellia with modes: ECB, CBC"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	imply CRYPTO_CTR
	help
	  Block cipher: Camellia cipher algorithms
	  Length-preserving ciphers: Camellia with ECB and CBC modes

	  Architecture: x86_64

config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAMELLIA_X86_64
	select CRYPTO_SIMD
	imply CRYPTO_XTS
	help
	  Length-preserving ciphers: Camellia with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX (Advanced Vector Extensions)

config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
	tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
	help
	  Length-preserving ciphers: Camellia with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_CAST5_AVX_X86_64
	tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAST5
	select CRYPTO_CAST_COMMON
	select CRYPTO_SIMD
	imply CRYPTO_CTR
	help
	  Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
	  (RFC2144) with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  Processes 16 blocks in parallel.

config CRYPTO_CAST6_AVX_X86_64
	tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAST6
	select CRYPTO_CAST_COMMON
	select CRYPTO_SIMD
	imply CRYPTO_XTS
	imply CRYPTO_CTR
	help
	  Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
	  (RFC2612) with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  Processes eight blocks in parallel.

config CRYPTO_DES3_EDE_X86_64
	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_DES
	imply CRYPTO_CTR
	help
	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes

	  Architecture: x86_64

	  Processes one or three blocks in parallel.

config CRYPTO_SERPENT_SSE2_X86_64
	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	imply CRYPTO_CTR
	help
	  Length-preserving ciphers: Serpent cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86_64 using:
	  - SSE2 (Streaming SIMD Extensions 2)

	  Processes eight blocks in parallel.

config CRYPTO_SERPENT_SSE2_586
	tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
	depends on X86 && !64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	imply CRYPTO_CTR
	help
	  Length-preserving ciphers: Serpent cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86 (32-bit) using:
	  - SSE2 (Streaming SIMD Extensions 2)

	  Processes four blocks in parallel.

config CRYPTO_SERPENT_AVX_X86_64
	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	imply CRYPTO_XTS
	imply CRYPTO_CTR
	help
	  Length-preserving ciphers: Serpent cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  Processes eight blocks in parallel.

config CRYPTO_SERPENT_AVX2_X86_64
	tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_SERPENT_AVX_X86_64
	help
	  Length-preserving ciphers: Serpent cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AVX2 (Advanced Vector Extensions 2)

	  Processes 16 blocks in parallel.

config CRYPTO_SM4_AESNI_AVX_X86_64
	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_ALGAPI
	select CRYPTO_SM4
	help
	  Length-preserving ciphers: SM4 cipher algorithms
	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX (Advanced Vector Extensions)

	  Through two affine transforms,
	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
	  effect of instruction acceleration.

	  If unsure, say N.

config CRYPTO_SM4_AESNI_AVX2_X86_64
	tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_ALGAPI
	select CRYPTO_SM4
	select CRYPTO_SM4_AESNI_AVX_X86_64
	help
	  Length-preserving ciphers: SM4 cipher algorithms
	  (OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX2 (Advanced Vector Extensions 2)

	  Through two affine transforms,
	  we can use the AES S-Box to simulate the SM4 S-Box to achieve the
	  effect of instruction acceleration.

	  If unsure, say N.

config CRYPTO_TWOFISH_586
	tristate "Ciphers: Twofish (32-bit)"
	depends on (X86 || UML_X86) && !64BIT
	select CRYPTO_ALGAPI
	select CRYPTO_TWOFISH_COMMON
	imply CRYPTO_CTR
	help
	  Block cipher: Twofish cipher algorithm

	  Architecture: x86 (32-bit)

config CRYPTO_TWOFISH_X86_64
	tristate "Ciphers: Twofish"
	depends on (X86 || UML_X86) && 64BIT
	select CRYPTO_ALGAPI
	select CRYPTO_TWOFISH_COMMON
	imply CRYPTO_CTR
	help
	  Block cipher: Twofish cipher algorithm

	  Architecture: x86_64

config CRYPTO_TWOFISH_X86_64_3WAY
	tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_TWOFISH_COMMON
	select CRYPTO_TWOFISH_X86_64
	help
	  Length-preserving cipher: Twofish cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86_64

	  Processes three blocks in parallel, better utilizing resources of
	  out-of-order CPUs.

config CRYPTO_TWOFISH_AVX_X86_64
	tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_TWOFISH_COMMON
	select CRYPTO_TWOFISH_X86_64
	select CRYPTO_TWOFISH_X86_64_3WAY
	imply CRYPTO_XTS
	help
	  Length-preserving cipher: Twofish cipher algorithm
	  with ECB and CBC modes

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  Processes eight blocks in parallel.

config CRYPTO_ARIA_AESNI_AVX_X86_64
	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_ALGAPI
	select CRYPTO_ARIA
	help
	  Length-preserving cipher: ARIA cipher algorithms
	  (RFC 5794) with ECB and CTR modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX (Advanced Vector Extensions)
	  - GFNI (Galois Field New Instructions)

	  Processes 16 blocks in parallel.

config CRYPTO_ARIA_AESNI_AVX2_X86_64
	tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_ALGAPI
	select CRYPTO_ARIA
	select CRYPTO_ARIA_AESNI_AVX_X86_64
	help
	  Length-preserving cipher: ARIA cipher algorithms
	  (RFC 5794) with ECB and CTR modes

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - AVX2 (Advanced Vector Extensions)
	  - GFNI (Galois Field New Instructions)

	  Processes 32 blocks in parallel.

config CRYPTO_ARIA_GFNI_AVX512_X86_64
	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
	depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	select CRYPTO_ALGAPI
	select CRYPTO_ARIA
	select CRYPTO_ARIA_AESNI_AVX_X86_64
	select CRYPTO_ARIA_AESNI_AVX2_X86_64
	help
	  Length-preserving cipher: ARIA cipher algorithms
	  (RFC 5794) with ECB and CTR modes

	  Architecture: x86_64 using:
	  - AVX512 (Advanced Vector Extensions)
	  - GFNI (Galois Field New Instructions)

	  Processes 64 blocks in parallel.

config CRYPTO_CHACHA20_X86_64
	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_CHACHA_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CHACHA
	help
	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
	  stream cipher algorithms

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX2 (Advanced Vector Extensions 2)
	  - AVX-512VL (Advanced Vector Extensions-512VL)

config CRYPTO_AEGIS128_AESNI_SSE2
	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_AEAD
	select CRYPTO_SIMD
	help
	  AEGIS-128 AEAD algorithm

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - SSE2 (Streaming SIMD Extensions 2)

config CRYPTO_NHPOLY1305_SSE2
	tristate "Hash functions: NHPoly1305 (SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_NHPOLY1305
	help
	  NHPoly1305 hash function for Adiantum

	  Architecture: x86_64 using:
	  - SSE2 (Streaming SIMD Extensions 2)

config CRYPTO_NHPOLY1305_AVX2
	tristate "Hash functions: NHPoly1305 (AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_NHPOLY1305
	help
	  NHPoly1305 hash function for Adiantum

	  Architecture: x86_64 using:
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_BLAKE2S_X86
	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_BLAKE2S_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
	help
	  BLAKE2s cryptographic hash function (RFC 7693)

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX-512 (Advanced Vector Extensions-512)

config CRYPTO_POLYVAL_CLMUL_NI
	tristate "Hash functions: POLYVAL (CLMUL-NI)"
	depends on X86 && 64BIT
	select CRYPTO_POLYVAL
	help
	  POLYVAL hash function for HCTR2

	  Architecture: x86_64 using:
	  - CLMUL-NI (carry-less multiplication new instructions)

config CRYPTO_POLY1305_X86_64
	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_POLY1305_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_POLY1305
	help
	  Poly1305 authenticator algorithm (RFC7539)

	  Architecture: x86_64 using:
	  - SSE2 (Streaming SIMD Extensions 2)
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_SHA1_SSSE3
	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
	depends on X86 && 64BIT
	select CRYPTO_SHA1
	select CRYPTO_HASH
	help
	  SHA-1 secure hash algorithm (FIPS 180)

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX (Advanced Vector Extensions)
	  - AVX2 (Advanced Vector Extensions 2)
	  - SHA-NI (SHA Extensions New Instructions)

config CRYPTO_SHA256_SSSE3
	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
	depends on X86 && 64BIT
	select CRYPTO_SHA256
	select CRYPTO_HASH
	help
	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX (Advanced Vector Extensions)
	  - AVX2 (Advanced Vector Extensions 2)
	  - SHA-NI (SHA Extensions New Instructions)

config CRYPTO_SHA512_SSSE3
	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_SHA512
	select CRYPTO_HASH
	help
	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180)

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX (Advanced Vector Extensions)
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_SM3_AVX_X86_64
	tristate "Hash functions: SM3 (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_HASH
	select CRYPTO_SM3
	help
	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  If unsure, say N.

config CRYPTO_GHASH_CLMUL_NI_INTEL
	tristate "Hash functions: GHASH (CLMUL-NI)"
	depends on X86 && 64BIT
	select CRYPTO_CRYPTD
	help
	  GCM GHASH hash function (NIST SP800-38D)

	  Architecture: x86_64 using:
	  - CLMUL-NI (carry-less multiplication new instructions)

config CRYPTO_CRC32C_INTEL
	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
	depends on X86
	select CRYPTO_HASH
	help
	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)

	  Architecture: x86 (32-bit and 64-bit) using:
	  - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
	  - PCLMULQDQ (carry-less multiplication)

config CRYPTO_CRC32_PCLMUL
	tristate "CRC32 (PCLMULQDQ)"
	depends on X86
	select CRYPTO_HASH
	select CRC32
	help
	  CRC32 CRC algorithm (IEEE 802.3)

	  Architecture: x86 (32-bit and 64-bit) using:
	  - PCLMULQDQ (carry-less multiplication)

config CRYPTO_CRCT10DIF_PCLMUL
	tristate "CRCT10DIF (PCLMULQDQ)"
	depends on X86 && 64BIT && CRC_T10DIF
	select CRYPTO_HASH
	help
	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)

	  Architecture: x86_64 using:
	  - PCLMULQDQ (carry-less multiplication)

endmenu