]> Git Repo - linux.git/blame - crypto/Kconfig
crypto: aes-ce - Remove duplicate header
[linux.git] / crypto / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
685784aa
DW
2#
3# Generic algorithms support
4#
5config XOR_BLOCKS
6 tristate
7
1da177e4 8#
9bc89cd8 9# async_tx api: hardware offloaded memory transfer/transform support
1da177e4 10#
9bc89cd8 11source "crypto/async_tx/Kconfig"
1da177e4 12
9bc89cd8
DW
13#
14# Cryptographic API Configuration
15#
2e290f43 16menuconfig CRYPTO
c3715cb9 17 tristate "Cryptographic API"
1da177e4
LT
18 help
19 This option provides the core Cryptographic API.
20
cce9e06d
HX
21if CRYPTO
22
584fffc8
SS
23comment "Crypto core or helper"
24
ccb778e1
NH
25config CRYPTO_FIPS
26 bool "FIPS 200 compliance"
f2c89a10 27 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
1f696097 28 depends on (MODULE_SIG || !MODULES)
ccb778e1
NH
29 help
30 This options enables the fips boot option which is
31 required if you want to system to operate in a FIPS 200
32 certification. You should say no unless you know what
e84c5480 33 this is.
ccb778e1 34
cce9e06d
HX
35config CRYPTO_ALGAPI
36 tristate
6a0fcbb4 37 select CRYPTO_ALGAPI2
cce9e06d
HX
38 help
39 This option provides the API for cryptographic algorithms.
40
6a0fcbb4
HX
41config CRYPTO_ALGAPI2
42 tristate
43
1ae97820
HX
44config CRYPTO_AEAD
45 tristate
6a0fcbb4 46 select CRYPTO_AEAD2
1ae97820
HX
47 select CRYPTO_ALGAPI
48
6a0fcbb4
HX
49config CRYPTO_AEAD2
50 tristate
51 select CRYPTO_ALGAPI2
149a3971
HX
52 select CRYPTO_NULL2
53 select CRYPTO_RNG2
6a0fcbb4 54
5cde0af2
HX
55config CRYPTO_BLKCIPHER
56 tristate
6a0fcbb4 57 select CRYPTO_BLKCIPHER2
5cde0af2 58 select CRYPTO_ALGAPI
6a0fcbb4
HX
59
60config CRYPTO_BLKCIPHER2
61 tristate
62 select CRYPTO_ALGAPI2
63 select CRYPTO_RNG2
0a2e821d 64 select CRYPTO_WORKQUEUE
5cde0af2 65
055bcee3
HX
66config CRYPTO_HASH
67 tristate
6a0fcbb4 68 select CRYPTO_HASH2
055bcee3
HX
69 select CRYPTO_ALGAPI
70
6a0fcbb4
HX
71config CRYPTO_HASH2
72 tristate
73 select CRYPTO_ALGAPI2
74
17f0f4a4
NH
75config CRYPTO_RNG
76 tristate
6a0fcbb4 77 select CRYPTO_RNG2
17f0f4a4
NH
78 select CRYPTO_ALGAPI
79
6a0fcbb4
HX
80config CRYPTO_RNG2
81 tristate
82 select CRYPTO_ALGAPI2
83
401e4238
HX
84config CRYPTO_RNG_DEFAULT
85 tristate
86 select CRYPTO_DRBG_MENU
87
3c339ab8
TS
88config CRYPTO_AKCIPHER2
89 tristate
90 select CRYPTO_ALGAPI2
91
92config CRYPTO_AKCIPHER
93 tristate
94 select CRYPTO_AKCIPHER2
95 select CRYPTO_ALGAPI
96
4e5f2c40
SB
97config CRYPTO_KPP2
98 tristate
99 select CRYPTO_ALGAPI2
100
101config CRYPTO_KPP
102 tristate
103 select CRYPTO_ALGAPI
104 select CRYPTO_KPP2
105
2ebda74f
GC
106config CRYPTO_ACOMP2
107 tristate
108 select CRYPTO_ALGAPI2
8cd579d2 109 select SGL_ALLOC
2ebda74f
GC
110
111config CRYPTO_ACOMP
112 tristate
113 select CRYPTO_ALGAPI
114 select CRYPTO_ACOMP2
115
cfc2bb32
TS
116config CRYPTO_RSA
117 tristate "RSA algorithm"
425e0172 118 select CRYPTO_AKCIPHER
58446fef 119 select CRYPTO_MANAGER
cfc2bb32
TS
120 select MPILIB
121 select ASN1
122 help
123 Generic implementation of the RSA public key algorithm.
124
802c7f1c
SB
125config CRYPTO_DH
126 tristate "Diffie-Hellman algorithm"
127 select CRYPTO_KPP
128 select MPILIB
129 help
130 Generic implementation of the Diffie-Hellman algorithm.
131
3c4b2390
SB
132config CRYPTO_ECDH
133 tristate "ECDH algorithm"
b5b90077 134 select CRYPTO_KPP
6755fd26 135 select CRYPTO_RNG_DEFAULT
3c4b2390
SB
136 help
137 Generic implementation of the ECDH algorithm
802c7f1c 138
2b8c19db
HX
139config CRYPTO_MANAGER
140 tristate "Cryptographic algorithm manager"
6a0fcbb4 141 select CRYPTO_MANAGER2
2b8c19db
HX
142 help
143 Create default cryptographic template instantiations such as
144 cbc(aes).
145
6a0fcbb4
HX
146config CRYPTO_MANAGER2
147 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
148 select CRYPTO_AEAD2
149 select CRYPTO_HASH2
150 select CRYPTO_BLKCIPHER2
946cc463 151 select CRYPTO_AKCIPHER2
4e5f2c40 152 select CRYPTO_KPP2
2ebda74f 153 select CRYPTO_ACOMP2
6a0fcbb4 154
a38f7907
SK
155config CRYPTO_USER
156 tristate "Userspace cryptographic algorithm configuration"
5db017aa 157 depends on NET
a38f7907
SK
158 select CRYPTO_MANAGER
159 help
d19978f5 160 Userspace configuration for cryptographic instantiations such as
a38f7907
SK
161 cbc(aes).
162
326a6346
HX
163config CRYPTO_MANAGER_DISABLE_TESTS
164 bool "Disable run-time self tests"
00ca28a5
HX
165 default y
166 depends on CRYPTO_MANAGER2
0b767f96 167 help
326a6346
HX
168 Disable run-time self tests that normally take place at
169 algorithm registration.
0b767f96 170
584fffc8 171config CRYPTO_GF128MUL
08c70fc3 172 tristate "GF(2^128) multiplication functions"
333b0d7e 173 help
584fffc8
SS
174 Efficient table driven implementation of multiplications in the
175 field GF(2^128). This is needed by some cypher modes. This
176 option will be selected automatically if you select such a
177 cipher mode. Only select this option by hand if you expect to load
178 an external module that requires these functions.
333b0d7e 179
1da177e4
LT
180config CRYPTO_NULL
181 tristate "Null algorithms"
149a3971 182 select CRYPTO_NULL2
1da177e4
LT
183 help
184 These are 'Null' algorithms, used by IPsec, which do nothing.
185
149a3971 186config CRYPTO_NULL2
dd43c4e9 187 tristate
149a3971
HX
188 select CRYPTO_ALGAPI2
189 select CRYPTO_BLKCIPHER2
190 select CRYPTO_HASH2
191
5068c7a8 192config CRYPTO_PCRYPT
3b4afaf2
KC
193 tristate "Parallel crypto engine"
194 depends on SMP
5068c7a8
SK
195 select PADATA
196 select CRYPTO_MANAGER
197 select CRYPTO_AEAD
198 help
199 This converts an arbitrary crypto algorithm into a parallel
200 algorithm that executes in kernel threads.
201
25c38d3f
YH
202config CRYPTO_WORKQUEUE
203 tristate
204
584fffc8
SS
205config CRYPTO_CRYPTD
206 tristate "Software async crypto daemon"
207 select CRYPTO_BLKCIPHER
b8a28251 208 select CRYPTO_HASH
584fffc8 209 select CRYPTO_MANAGER
254eff77 210 select CRYPTO_WORKQUEUE
1da177e4 211 help
584fffc8
SS
212 This is a generic software asynchronous crypto daemon that
213 converts an arbitrary synchronous software crypto algorithm
214 into an asynchronous algorithm that executes in a kernel thread.
1da177e4 215
584fffc8
SS
216config CRYPTO_AUTHENC
217 tristate "Authenc support"
218 select CRYPTO_AEAD
219 select CRYPTO_BLKCIPHER
220 select CRYPTO_MANAGER
221 select CRYPTO_HASH
e94c6a7a 222 select CRYPTO_NULL
1da177e4 223 help
584fffc8
SS
224 Authenc: Combined mode wrapper for IPsec.
225 This is required for IPSec.
1da177e4 226
584fffc8
SS
227config CRYPTO_TEST
228 tristate "Testing module"
229 depends on m
da7f033d 230 select CRYPTO_MANAGER
1da177e4 231 help
584fffc8 232 Quick & dirty crypto test module.
1da177e4 233
266d0516
HX
234config CRYPTO_SIMD
235 tristate
ffaf9156
JK
236 select CRYPTO_CRYPTD
237
596d8750
JK
238config CRYPTO_GLUE_HELPER_X86
239 tristate
240 depends on X86
065ce327 241 select CRYPTO_BLKCIPHER
596d8750 242
735d37b5
BW
243config CRYPTO_ENGINE
244 tristate
245
584fffc8 246comment "Authenticated Encryption with Associated Data"
cd12fb90 247
584fffc8
SS
248config CRYPTO_CCM
249 tristate "CCM support"
250 select CRYPTO_CTR
f15f05b0 251 select CRYPTO_HASH
584fffc8 252 select CRYPTO_AEAD
1da177e4 253 help
584fffc8 254 Support for Counter with CBC MAC. Required for IPsec.
1da177e4 255
584fffc8
SS
256config CRYPTO_GCM
257 tristate "GCM/GMAC support"
258 select CRYPTO_CTR
259 select CRYPTO_AEAD
9382d97a 260 select CRYPTO_GHASH
9489667d 261 select CRYPTO_NULL
1da177e4 262 help
584fffc8
SS
263 Support for Galois/Counter Mode (GCM) and Galois Message
264 Authentication Code (GMAC). Required for IPSec.
1da177e4 265
71ebc4d1
MW
266config CRYPTO_CHACHA20POLY1305
267 tristate "ChaCha20-Poly1305 AEAD support"
268 select CRYPTO_CHACHA20
269 select CRYPTO_POLY1305
270 select CRYPTO_AEAD
271 help
272 ChaCha20-Poly1305 AEAD support, RFC7539.
273
274 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
275 with the Poly1305 authenticator. It is defined in RFC7539 for use in
276 IETF protocols.
277
f606a88e
OM
278config CRYPTO_AEGIS128
279 tristate "AEGIS-128 AEAD algorithm"
280 select CRYPTO_AEAD
281 select CRYPTO_AES # for AES S-box tables
282 help
283 Support for the AEGIS-128 dedicated AEAD algorithm.
284
285config CRYPTO_AEGIS128L
286 tristate "AEGIS-128L AEAD algorithm"
287 select CRYPTO_AEAD
288 select CRYPTO_AES # for AES S-box tables
289 help
290 Support for the AEGIS-128L dedicated AEAD algorithm.
291
292config CRYPTO_AEGIS256
293 tristate "AEGIS-256 AEAD algorithm"
294 select CRYPTO_AEAD
295 select CRYPTO_AES # for AES S-box tables
296 help
297 Support for the AEGIS-256 dedicated AEAD algorithm.
298
1d373d4e
OM
299config CRYPTO_AEGIS128_AESNI_SSE2
300 tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
301 depends on X86 && 64BIT
302 select CRYPTO_AEAD
303 select CRYPTO_CRYPTD
304 help
305 AESNI+SSE2 implementation of the AEGSI-128 dedicated AEAD algorithm.
306
307config CRYPTO_AEGIS128L_AESNI_SSE2
308 tristate "AEGIS-128L AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
309 depends on X86 && 64BIT
310 select CRYPTO_AEAD
311 select CRYPTO_CRYPTD
312 help
313 AESNI+SSE2 implementation of the AEGSI-128L dedicated AEAD algorithm.
314
315config CRYPTO_AEGIS256_AESNI_SSE2
316 tristate "AEGIS-256 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
317 depends on X86 && 64BIT
318 select CRYPTO_AEAD
319 select CRYPTO_CRYPTD
320 help
321 AESNI+SSE2 implementation of the AEGSI-256 dedicated AEAD algorithm.
322
396be41f
OM
323config CRYPTO_MORUS640
324 tristate "MORUS-640 AEAD algorithm"
325 select CRYPTO_AEAD
326 help
327 Support for the MORUS-640 dedicated AEAD algorithm.
328
56e8e57f 329config CRYPTO_MORUS640_GLUE
2808f173
OM
330 tristate
331 depends on X86
56e8e57f
OM
332 select CRYPTO_AEAD
333 select CRYPTO_CRYPTD
334 help
335 Common glue for SIMD optimizations of the MORUS-640 dedicated AEAD
336 algorithm.
337
6ecc9d9f
OM
338config CRYPTO_MORUS640_SSE2
339 tristate "MORUS-640 AEAD algorithm (x86_64 SSE2 implementation)"
340 depends on X86 && 64BIT
341 select CRYPTO_AEAD
342 select CRYPTO_MORUS640_GLUE
343 help
344 SSE2 implementation of the MORUS-640 dedicated AEAD algorithm.
345
396be41f
OM
346config CRYPTO_MORUS1280
347 tristate "MORUS-1280 AEAD algorithm"
348 select CRYPTO_AEAD
349 help
350 Support for the MORUS-1280 dedicated AEAD algorithm.
351
56e8e57f 352config CRYPTO_MORUS1280_GLUE
2808f173
OM
353 tristate
354 depends on X86
56e8e57f
OM
355 select CRYPTO_AEAD
356 select CRYPTO_CRYPTD
357 help
358 Common glue for SIMD optimizations of the MORUS-1280 dedicated AEAD
6ecc9d9f
OM
359 algorithm.
360
361config CRYPTO_MORUS1280_SSE2
362 tristate "MORUS-1280 AEAD algorithm (x86_64 SSE2 implementation)"
363 depends on X86 && 64BIT
364 select CRYPTO_AEAD
365 select CRYPTO_MORUS1280_GLUE
366 help
367 SSE2 optimizedimplementation of the MORUS-1280 dedicated AEAD
368 algorithm.
369
370config CRYPTO_MORUS1280_AVX2
371 tristate "MORUS-1280 AEAD algorithm (x86_64 AVX2 implementation)"
372 depends on X86 && 64BIT
373 select CRYPTO_AEAD
374 select CRYPTO_MORUS1280_GLUE
375 help
376 AVX2 optimized implementation of the MORUS-1280 dedicated AEAD
56e8e57f
OM
377 algorithm.
378
584fffc8
SS
379config CRYPTO_SEQIV
380 tristate "Sequence Number IV Generator"
381 select CRYPTO_AEAD
382 select CRYPTO_BLKCIPHER
856e3f40 383 select CRYPTO_NULL
401e4238 384 select CRYPTO_RNG_DEFAULT
1da177e4 385 help
584fffc8
SS
386 This IV generator generates an IV based on a sequence number by
387 xoring it with a salt. This algorithm is mainly useful for CTR
1da177e4 388
a10f554f
HX
389config CRYPTO_ECHAINIV
390 tristate "Encrypted Chain IV Generator"
391 select CRYPTO_AEAD
392 select CRYPTO_NULL
401e4238 393 select CRYPTO_RNG_DEFAULT
3491244c 394 default m
a10f554f
HX
395 help
396 This IV generator generates an IV based on the encryption of
397 a sequence number xored with a salt. This is the default
398 algorithm for CBC.
399
584fffc8 400comment "Block modes"
c494e070 401
584fffc8
SS
402config CRYPTO_CBC
403 tristate "CBC support"
db131ef9 404 select CRYPTO_BLKCIPHER
43518407 405 select CRYPTO_MANAGER
db131ef9 406 help
584fffc8
SS
407 CBC: Cipher Block Chaining mode
408 This block cipher algorithm is required for IPSec.
db131ef9 409
a7d85e06
JB
410config CRYPTO_CFB
411 tristate "CFB support"
412 select CRYPTO_BLKCIPHER
413 select CRYPTO_MANAGER
414 help
415 CFB: Cipher FeedBack mode
416 This block cipher algorithm is required for TPM2 Cryptography.
417
584fffc8
SS
418config CRYPTO_CTR
419 tristate "CTR support"
db131ef9 420 select CRYPTO_BLKCIPHER
584fffc8 421 select CRYPTO_SEQIV
43518407 422 select CRYPTO_MANAGER
db131ef9 423 help
584fffc8 424 CTR: Counter mode
db131ef9
HX
425 This block cipher algorithm is required for IPSec.
426
584fffc8
SS
427config CRYPTO_CTS
428 tristate "CTS support"
429 select CRYPTO_BLKCIPHER
430 help
431 CTS: Cipher Text Stealing
432 This is the Cipher Text Stealing mode as described by
ecd6d5c9
GBY
433 Section 8 of rfc2040 and referenced by rfc3962
434 (rfc3962 includes errata information in its Appendix A) or
435 CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010.
584fffc8
SS
436 This mode is required for Kerberos gss mechanism support
437 for AES encryption.
438
ecd6d5c9
GBY
439 See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final
440
584fffc8
SS
441config CRYPTO_ECB
442 tristate "ECB support"
91652be5
DH
443 select CRYPTO_BLKCIPHER
444 select CRYPTO_MANAGER
91652be5 445 help
584fffc8
SS
446 ECB: Electronic CodeBook mode
447 This is the simplest block cipher algorithm. It simply encrypts
448 the input block by block.
91652be5 449
64470f1b 450config CRYPTO_LRW
2470a2b2 451 tristate "LRW support"
64470f1b
RS
452 select CRYPTO_BLKCIPHER
453 select CRYPTO_MANAGER
454 select CRYPTO_GF128MUL
455 help
456 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
457 narrow block cipher mode for dm-crypt. Use it with cipher
458 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
459 The first 128, 192 or 256 bits in the key are used for AES and the
460 rest is used to tie each cipher block to its logical position.
461
e497c518
GBY
462config CRYPTO_OFB
463 tristate "OFB support"
464 select CRYPTO_BLKCIPHER
465 select CRYPTO_MANAGER
466 help
467 OFB: the Output Feedback mode makes a block cipher into a synchronous
468 stream cipher. It generates keystream blocks, which are then XORed
469 with the plaintext blocks to get the ciphertext. Flipping a bit in the
470 ciphertext produces a flipped bit in the plaintext at the same
471 location. This property allows many error correcting codes to function
472 normally even when applied before encryption.
473
584fffc8
SS
474config CRYPTO_PCBC
475 tristate "PCBC support"
476 select CRYPTO_BLKCIPHER
477 select CRYPTO_MANAGER
478 help
479 PCBC: Propagating Cipher Block Chaining mode
480 This block cipher algorithm is required for RxRPC.
481
f19f5111 482config CRYPTO_XTS
5bcf8e6d 483 tristate "XTS support"
f19f5111
RS
484 select CRYPTO_BLKCIPHER
485 select CRYPTO_MANAGER
12cb3a1c 486 select CRYPTO_ECB
f19f5111
RS
487 help
488 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
489 key size 256, 384 or 512 bits. This implementation currently
490 can't handle a sectorsize which is not a multiple of 16 bytes.
491
1c49678e
SM
492config CRYPTO_KEYWRAP
493 tristate "Key wrapping support"
494 select CRYPTO_BLKCIPHER
495 help
496 Support for key wrapping (NIST SP800-38F / RFC3394) without
497 padding.
498
584fffc8
SS
499comment "Hash modes"
500
93b5e86a
JK
501config CRYPTO_CMAC
502 tristate "CMAC support"
503 select CRYPTO_HASH
504 select CRYPTO_MANAGER
505 help
506 Cipher-based Message Authentication Code (CMAC) specified by
507 The National Institute of Standards and Technology (NIST).
508
509 https://tools.ietf.org/html/rfc4493
510 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
511
584fffc8
SS
512config CRYPTO_HMAC
513 tristate "HMAC support"
514 select CRYPTO_HASH
23e353c8 515 select CRYPTO_MANAGER
23e353c8 516 help
584fffc8
SS
517 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
518 This is required for IPSec.
23e353c8 519
584fffc8
SS
520config CRYPTO_XCBC
521 tristate "XCBC support"
584fffc8
SS
522 select CRYPTO_HASH
523 select CRYPTO_MANAGER
76cb9521 524 help
584fffc8
SS
525 XCBC: Keyed-Hashing with encryption algorithm
526 http://www.ietf.org/rfc/rfc3566.txt
527 http://csrc.nist.gov/encryption/modes/proposedmodes/
528 xcbc-mac/xcbc-mac-spec.pdf
76cb9521 529
f1939f7c
SW
530config CRYPTO_VMAC
531 tristate "VMAC support"
f1939f7c
SW
532 select CRYPTO_HASH
533 select CRYPTO_MANAGER
534 help
535 VMAC is a message authentication algorithm designed for
536 very high speed on 64-bit architectures.
537
538 See also:
539 <http://fastcrypto.org/vmac>
540
584fffc8 541comment "Digest"
28db8e3e 542
584fffc8
SS
543config CRYPTO_CRC32C
544 tristate "CRC32c CRC algorithm"
5773a3e6 545 select CRYPTO_HASH
6a0962b2 546 select CRC32
4a49b499 547 help
584fffc8
SS
548 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
549 by iSCSI for header and data digests and by others.
69c35efc 550 See Castagnoli93. Module will be crc32c.
4a49b499 551
8cb51ba8
AZ
552config CRYPTO_CRC32C_INTEL
553 tristate "CRC32c INTEL hardware acceleration"
554 depends on X86
555 select CRYPTO_HASH
556 help
557 In Intel processor with SSE4.2 supported, the processor will
558 support CRC32C implementation using hardware accelerated CRC32
559 instruction. This option will create 'crc32c-intel' module,
560 which will enable any routine to use the CRC32 instruction to
561 gain performance compared with software implementation.
562 Module will be crc32c-intel.
563
7cf31864 564config CRYPTO_CRC32C_VPMSUM
6dd7a82c 565 tristate "CRC32c CRC algorithm (powerpc64)"
c12abf34 566 depends on PPC64 && ALTIVEC
6dd7a82c
AB
567 select CRYPTO_HASH
568 select CRC32
569 help
570 CRC32c algorithm implemented using vector polynomial multiply-sum
571 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
572 and newer processors for improved performance.
573
574
442a7c40
DM
575config CRYPTO_CRC32C_SPARC64
576 tristate "CRC32c CRC algorithm (SPARC64)"
577 depends on SPARC64
578 select CRYPTO_HASH
579 select CRC32
580 help
581 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
582 when available.
583
78c37d19
AB
584config CRYPTO_CRC32
585 tristate "CRC32 CRC algorithm"
586 select CRYPTO_HASH
587 select CRC32
588 help
589 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
590 Shash crypto api wrappers to crc32_le function.
591
592config CRYPTO_CRC32_PCLMUL
593 tristate "CRC32 PCLMULQDQ hardware acceleration"
594 depends on X86
595 select CRYPTO_HASH
596 select CRC32
597 help
598 From Intel Westmere and AMD Bulldozer processor with SSE4.2
599 and PCLMULQDQ supported, the processor will support
600 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
601 instruction. This option will create 'crc32-plcmul' module,
602 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
603 and gain better performance as compared with the table implementation.
604
4a5dc51e
MN
605config CRYPTO_CRC32_MIPS
606 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
607 depends on MIPS_CRC_SUPPORT
608 select CRYPTO_HASH
609 help
610 CRC32c and CRC32 CRC algorithms implemented using mips crypto
611 instructions, when available.
612
613
68411521
HX
614config CRYPTO_CRCT10DIF
615 tristate "CRCT10DIF algorithm"
616 select CRYPTO_HASH
617 help
618 CRC T10 Data Integrity Field computation is being cast as
619 a crypto transform. This allows for faster crc t10 diff
620 transforms to be used if they are available.
621
622config CRYPTO_CRCT10DIF_PCLMUL
623 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
624 depends on X86 && 64BIT && CRC_T10DIF
625 select CRYPTO_HASH
626 help
627 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
628 CRC T10 DIF PCLMULQDQ computation can be hardware
629 accelerated PCLMULQDQ instruction. This option will create
630 'crct10dif-plcmul' module, which is faster when computing the
631 crct10dif checksum as compared with the generic table implementation.
632
b01df1c1
DA
633config CRYPTO_CRCT10DIF_VPMSUM
634 tristate "CRC32T10DIF powerpc64 hardware acceleration"
635 depends on PPC64 && ALTIVEC && CRC_T10DIF
636 select CRYPTO_HASH
637 help
638 CRC10T10DIF algorithm implemented using vector polynomial
639 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
640 POWER8 and newer processors for improved performance.
641
146c8688
DA
642config CRYPTO_VPMSUM_TESTER
643 tristate "Powerpc64 vpmsum hardware acceleration tester"
644 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
645 help
646 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
647 POWER8 vpmsum instructions.
648 Unless you are testing these algorithms, you don't need this.
649
2cdc6899
YH
650config CRYPTO_GHASH
651 tristate "GHASH digest algorithm"
2cdc6899 652 select CRYPTO_GF128MUL
578c60fb 653 select CRYPTO_HASH
2cdc6899
YH
654 help
655 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
656
f979e014
MW
657config CRYPTO_POLY1305
658 tristate "Poly1305 authenticator algorithm"
578c60fb 659 select CRYPTO_HASH
f979e014
MW
660 help
661 Poly1305 authenticator algorithm, RFC7539.
662
663 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
664 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
665 in IETF protocols. This is the portable C implementation of Poly1305.
666
c70f4abe 667config CRYPTO_POLY1305_X86_64
b1ccc8f4 668 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
c70f4abe
MW
669 depends on X86 && 64BIT
670 select CRYPTO_POLY1305
671 help
672 Poly1305 authenticator algorithm, RFC7539.
673
674 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
675 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
676 in IETF protocols. This is the x86_64 assembler implementation using SIMD
677 instructions.
678
584fffc8
SS
679config CRYPTO_MD4
680 tristate "MD4 digest algorithm"
808a1763 681 select CRYPTO_HASH
124b53d0 682 help
584fffc8 683 MD4 message digest algorithm (RFC1320).
124b53d0 684
584fffc8
SS
685config CRYPTO_MD5
686 tristate "MD5 digest algorithm"
14b75ba7 687 select CRYPTO_HASH
1da177e4 688 help
584fffc8 689 MD5 message digest algorithm (RFC1321).
1da177e4 690
d69e75de
AK
691config CRYPTO_MD5_OCTEON
692 tristate "MD5 digest algorithm (OCTEON)"
693 depends on CPU_CAVIUM_OCTEON
694 select CRYPTO_MD5
695 select CRYPTO_HASH
696 help
697 MD5 message digest algorithm (RFC1321) implemented
698 using OCTEON crypto instructions, when available.
699
e8e59953
MS
700config CRYPTO_MD5_PPC
701 tristate "MD5 digest algorithm (PPC)"
702 depends on PPC
703 select CRYPTO_HASH
704 help
705 MD5 message digest algorithm (RFC1321) implemented
706 in PPC assembler.
707
fa4dfedc
DM
708config CRYPTO_MD5_SPARC64
709 tristate "MD5 digest algorithm (SPARC64)"
710 depends on SPARC64
711 select CRYPTO_MD5
712 select CRYPTO_HASH
713 help
714 MD5 message digest algorithm (RFC1321) implemented
715 using sparc64 crypto instructions, when available.
716
584fffc8
SS
717config CRYPTO_MICHAEL_MIC
718 tristate "Michael MIC keyed digest algorithm"
19e2bf14 719 select CRYPTO_HASH
90831639 720 help
584fffc8
SS
721 Michael MIC is used for message integrity protection in TKIP
722 (IEEE 802.11i). This algorithm is required for TKIP, but it
723 should not be used for other purposes because of the weakness
724 of the algorithm.
90831639 725
82798f90 726config CRYPTO_RMD128
b6d44341 727 tristate "RIPEMD-128 digest algorithm"
7c4468bc 728 select CRYPTO_HASH
b6d44341
AB
729 help
730 RIPEMD-128 (ISO/IEC 10118-3:2004).
82798f90 731
b6d44341 732 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
35ed4b35 733 be used as a secure replacement for RIPEMD. For other use cases,
b6d44341 734 RIPEMD-160 should be used.
82798f90 735
b6d44341 736 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 737 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90
AKR
738
739config CRYPTO_RMD160
b6d44341 740 tristate "RIPEMD-160 digest algorithm"
e5835fba 741 select CRYPTO_HASH
b6d44341
AB
742 help
743 RIPEMD-160 (ISO/IEC 10118-3:2004).
82798f90 744
b6d44341
AB
745 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
746 to be used as a secure replacement for the 128-bit hash functions
747 MD4, MD5 and it's predecessor RIPEMD
748 (not to be confused with RIPEMD-128).
82798f90 749
b6d44341
AB
750 It's speed is comparable to SHA1 and there are no known attacks
751 against RIPEMD-160.
534fe2c1 752
b6d44341 753 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 754 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
755
756config CRYPTO_RMD256
b6d44341 757 tristate "RIPEMD-256 digest algorithm"
d8a5e2e9 758 select CRYPTO_HASH
b6d44341
AB
759 help
760 RIPEMD-256 is an optional extension of RIPEMD-128 with a
761 256 bit hash. It is intended for applications that require
762 longer hash-results, without needing a larger security level
763 (than RIPEMD-128).
534fe2c1 764
b6d44341 765 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 766 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
767
768config CRYPTO_RMD320
b6d44341 769 tristate "RIPEMD-320 digest algorithm"
3b8efb4c 770 select CRYPTO_HASH
b6d44341
AB
771 help
772 RIPEMD-320 is an optional extension of RIPEMD-160 with a
773 320 bit hash. It is intended for applications that require
774 longer hash-results, without needing a larger security level
775 (than RIPEMD-160).
534fe2c1 776
b6d44341 777 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 778 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90 779
584fffc8
SS
780config CRYPTO_SHA1
781 tristate "SHA1 digest algorithm"
54ccb367 782 select CRYPTO_HASH
1da177e4 783 help
584fffc8 784 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
1da177e4 785
66be8951 786config CRYPTO_SHA1_SSSE3
e38b6b7f 787 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
66be8951
MK
788 depends on X86 && 64BIT
789 select CRYPTO_SHA1
790 select CRYPTO_HASH
791 help
792 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
793 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
e38b6b7f 794 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
795 when available.
66be8951 796
8275d1aa 797config CRYPTO_SHA256_SSSE3
e38b6b7f 798 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
8275d1aa
TC
799 depends on X86 && 64BIT
800 select CRYPTO_SHA256
801 select CRYPTO_HASH
802 help
803 SHA-256 secure hash standard (DFIPS 180-2) implemented
804 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
805 Extensions version 1 (AVX1), or Advanced Vector Extensions
e38b6b7f 806 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
807 Instructions) when available.
87de4579
TC
808
809config CRYPTO_SHA512_SSSE3
810 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
811 depends on X86 && 64BIT
812 select CRYPTO_SHA512
813 select CRYPTO_HASH
814 help
815 SHA-512 secure hash standard (DFIPS 180-2) implemented
816 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
817 Extensions version 1 (AVX1), or Advanced Vector Extensions
8275d1aa
TC
818 version 2 (AVX2) instructions, when available.
819
efdb6f6e
AK
820config CRYPTO_SHA1_OCTEON
821 tristate "SHA1 digest algorithm (OCTEON)"
822 depends on CPU_CAVIUM_OCTEON
823 select CRYPTO_SHA1
824 select CRYPTO_HASH
825 help
826 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
827 using OCTEON crypto instructions, when available.
828
4ff28d4c
DM
829config CRYPTO_SHA1_SPARC64
830 tristate "SHA1 digest algorithm (SPARC64)"
831 depends on SPARC64
832 select CRYPTO_SHA1
833 select CRYPTO_HASH
834 help
835 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
836 using sparc64 crypto instructions, when available.
837
323a6bf1
ME
838config CRYPTO_SHA1_PPC
839 tristate "SHA1 digest algorithm (powerpc)"
840 depends on PPC
841 help
842 This is the powerpc hardware accelerated implementation of the
843 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
844
d9850fc5
MS
845config CRYPTO_SHA1_PPC_SPE
846 tristate "SHA1 digest algorithm (PPC SPE)"
847 depends on PPC && SPE
848 help
849 SHA-1 secure hash standard (DFIPS 180-4) implemented
850 using powerpc SPE SIMD instruction set.
851
584fffc8
SS
852config CRYPTO_SHA256
853 tristate "SHA224 and SHA256 digest algorithm"
50e109b5 854 select CRYPTO_HASH
1da177e4 855 help
584fffc8 856 SHA256 secure hash standard (DFIPS 180-2).
1da177e4 857
584fffc8
SS
858 This version of SHA implements a 256 bit hash with 128 bits of
859 security against collision attacks.
2729bb42 860
b6d44341
AB
861 This code also includes SHA-224, a 224 bit hash with 112 bits
862 of security against collision attacks.
584fffc8 863
2ecc1e95
MS
864config CRYPTO_SHA256_PPC_SPE
865 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
866 depends on PPC && SPE
867 select CRYPTO_SHA256
868 select CRYPTO_HASH
869 help
870 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
871 implemented using powerpc SPE SIMD instruction set.
872
efdb6f6e
AK
873config CRYPTO_SHA256_OCTEON
874 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
875 depends on CPU_CAVIUM_OCTEON
876 select CRYPTO_SHA256
877 select CRYPTO_HASH
878 help
879 SHA-256 secure hash standard (DFIPS 180-2) implemented
880 using OCTEON crypto instructions, when available.
881
86c93b24
DM
882config CRYPTO_SHA256_SPARC64
883 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
884 depends on SPARC64
885 select CRYPTO_SHA256
886 select CRYPTO_HASH
887 help
888 SHA-256 secure hash standard (DFIPS 180-2) implemented
889 using sparc64 crypto instructions, when available.
890
584fffc8
SS
891config CRYPTO_SHA512
892 tristate "SHA384 and SHA512 digest algorithms"
bd9d20db 893 select CRYPTO_HASH
b9f535ff 894 help
584fffc8 895 SHA512 secure hash standard (DFIPS 180-2).
b9f535ff 896
584fffc8
SS
897 This version of SHA implements a 512 bit hash with 256 bits of
898 security against collision attacks.
b9f535ff 899
584fffc8
SS
900 This code also includes SHA-384, a 384 bit hash with 192 bits
901 of security against collision attacks.
b9f535ff 902
efdb6f6e
AK
903config CRYPTO_SHA512_OCTEON
904 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
905 depends on CPU_CAVIUM_OCTEON
906 select CRYPTO_SHA512
907 select CRYPTO_HASH
908 help
909 SHA-512 secure hash standard (DFIPS 180-2) implemented
910 using OCTEON crypto instructions, when available.
911
775e0c69
DM
912config CRYPTO_SHA512_SPARC64
913 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
914 depends on SPARC64
915 select CRYPTO_SHA512
916 select CRYPTO_HASH
917 help
918 SHA-512 secure hash standard (DFIPS 180-2) implemented
919 using sparc64 crypto instructions, when available.
920
53964b9e
JG
921config CRYPTO_SHA3
922 tristate "SHA3 digest algorithm"
923 select CRYPTO_HASH
924 help
925 SHA-3 secure hash standard (DFIPS 202). It's based on
926 cryptographic sponge function family called Keccak.
927
928 References:
929 http://keccak.noekeon.org/
930
4f0fc160
GBY
931config CRYPTO_SM3
932 tristate "SM3 digest algorithm"
933 select CRYPTO_HASH
934 help
935 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
936 It is part of the Chinese Commercial Cryptography suite.
937
938 References:
939 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
940 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
941
584fffc8
SS
942config CRYPTO_TGR192
943 tristate "Tiger digest algorithms"
f63fbd3d 944 select CRYPTO_HASH
eaf44088 945 help
584fffc8 946 Tiger hash algorithm 192, 160 and 128-bit hashes
eaf44088 947
584fffc8
SS
948 Tiger is a hash function optimized for 64-bit processors while
949 still having decent performance on 32-bit processors.
950 Tiger was developed by Ross Anderson and Eli Biham.
eaf44088
JF
951
952 See also:
584fffc8 953 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
eaf44088 954
584fffc8
SS
955config CRYPTO_WP512
956 tristate "Whirlpool digest algorithms"
4946510b 957 select CRYPTO_HASH
1da177e4 958 help
584fffc8 959 Whirlpool hash algorithm 512, 384 and 256-bit hashes
1da177e4 960
584fffc8
SS
961 Whirlpool-512 is part of the NESSIE cryptographic primitives.
962 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1da177e4
LT
963
964 See also:
6d8de74c 965 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
584fffc8 966
0e1227d3
YH
967config CRYPTO_GHASH_CLMUL_NI_INTEL
968 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
8af00860 969 depends on X86 && 64BIT
0e1227d3
YH
970 select CRYPTO_CRYPTD
971 help
972 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
973 The implementation is accelerated by CLMUL-NI of Intel.
974
584fffc8 975comment "Ciphers"
1da177e4
LT
976
977config CRYPTO_AES
978 tristate "AES cipher algorithms"
cce9e06d 979 select CRYPTO_ALGAPI
1da177e4 980 help
584fffc8 981 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
982 algorithm.
983
984 Rijndael appears to be consistently a very good performer in
584fffc8
SS
985 both hardware and software across a wide range of computing
986 environments regardless of its use in feedback or non-feedback
987 modes. Its key setup time is excellent, and its key agility is
988 good. Rijndael's very low memory requirements make it very well
989 suited for restricted-space environments, in which it also
990 demonstrates excellent performance. Rijndael's operations are
991 among the easiest to defend against power and timing attacks.
1da177e4 992
584fffc8 993 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
994
995 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
996
b5e0b032
AB
997config CRYPTO_AES_TI
998 tristate "Fixed time AES cipher"
999 select CRYPTO_ALGAPI
1000 help
1001 This is a generic implementation of AES that attempts to eliminate
1002 data dependent latencies as much as possible without affecting
1003 performance too much. It is intended for use by the generic CCM
1004 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
1005 solely on encryption (although decryption is supported as well, but
1006 with a more dramatic performance hit)
1007
1008 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
1009 8 for decryption), this implementation only uses just two S-boxes of
1010 256 bytes each, and attempts to eliminate data dependent latencies by
1011 prefetching the entire table into the cache at the start of each
0a6a40c2
EB
1012 block. Interrupts are also disabled to avoid races where cachelines
1013 are evicted when the CPU is interrupted to do something else.
b5e0b032 1014
1da177e4
LT
1015config CRYPTO_AES_586
1016 tristate "AES cipher algorithms (i586)"
cce9e06d
HX
1017 depends on (X86 || UML_X86) && !64BIT
1018 select CRYPTO_ALGAPI
5157dea8 1019 select CRYPTO_AES
1da177e4 1020 help
584fffc8 1021 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
1022 algorithm.
1023
1024 Rijndael appears to be consistently a very good performer in
584fffc8
SS
1025 both hardware and software across a wide range of computing
1026 environments regardless of its use in feedback or non-feedback
1027 modes. Its key setup time is excellent, and its key agility is
1028 good. Rijndael's very low memory requirements make it very well
1029 suited for restricted-space environments, in which it also
1030 demonstrates excellent performance. Rijndael's operations are
1031 among the easiest to defend against power and timing attacks.
1da177e4 1032
584fffc8 1033 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
1034
1035 See <http://csrc.nist.gov/encryption/aes/> for more information.
1036
1037config CRYPTO_AES_X86_64
1038 tristate "AES cipher algorithms (x86_64)"
cce9e06d
HX
1039 depends on (X86 || UML_X86) && 64BIT
1040 select CRYPTO_ALGAPI
81190b32 1041 select CRYPTO_AES
a2a892a2 1042 help
584fffc8 1043 AES cipher algorithms (FIPS-197). AES uses the Rijndael
a2a892a2
AS
1044 algorithm.
1045
1046 Rijndael appears to be consistently a very good performer in
584fffc8
SS
1047 both hardware and software across a wide range of computing
1048 environments regardless of its use in feedback or non-feedback
1049 modes. Its key setup time is excellent, and its key agility is
54b6a1bd
YH
1050 good. Rijndael's very low memory requirements make it very well
1051 suited for restricted-space environments, in which it also
1052 demonstrates excellent performance. Rijndael's operations are
1053 among the easiest to defend against power and timing attacks.
1054
1055 The AES specifies three key sizes: 128, 192 and 256 bits
1056
1057 See <http://csrc.nist.gov/encryption/aes/> for more information.
1058
1059config CRYPTO_AES_NI_INTEL
1060 tristate "AES cipher algorithms (AES-NI)"
8af00860 1061 depends on X86
85671860 1062 select CRYPTO_AEAD
0d258efb
MK
1063 select CRYPTO_AES_X86_64 if 64BIT
1064 select CRYPTO_AES_586 if !64BIT
54b6a1bd 1065 select CRYPTO_ALGAPI
85671860 1066 select CRYPTO_BLKCIPHER
7643a11a 1067 select CRYPTO_GLUE_HELPER_X86 if 64BIT
85671860 1068 select CRYPTO_SIMD
54b6a1bd
YH
1069 help
1070 Use Intel AES-NI instructions for AES algorithm.
1071
1072 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1073 algorithm.
1074
1075 Rijndael appears to be consistently a very good performer in
1076 both hardware and software across a wide range of computing
1077 environments regardless of its use in feedback or non-feedback
1078 modes. Its key setup time is excellent, and its key agility is
584fffc8
SS
1079 good. Rijndael's very low memory requirements make it very well
1080 suited for restricted-space environments, in which it also
1081 demonstrates excellent performance. Rijndael's operations are
1082 among the easiest to defend against power and timing attacks.
a2a892a2 1083
584fffc8 1084 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
1085
1086 See <http://csrc.nist.gov/encryption/aes/> for more information.
1087
0d258efb
MK
1088 In addition to AES cipher algorithm support, the acceleration
1089 for some popular block cipher mode is supported too, including
944585a6 1090 ECB, CBC, LRW, XTS. The 64 bit version has additional
0d258efb 1091 acceleration for CTR.
2cf4ac8b 1092
9bf4852d
DM
1093config CRYPTO_AES_SPARC64
1094 tristate "AES cipher algorithms (SPARC64)"
1095 depends on SPARC64
1096 select CRYPTO_CRYPTD
1097 select CRYPTO_ALGAPI
1098 help
1099 Use SPARC64 crypto opcodes for AES algorithm.
1100
1101 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1102 algorithm.
1103
1104 Rijndael appears to be consistently a very good performer in
1105 both hardware and software across a wide range of computing
1106 environments regardless of its use in feedback or non-feedback
1107 modes. Its key setup time is excellent, and its key agility is
1108 good. Rijndael's very low memory requirements make it very well
1109 suited for restricted-space environments, in which it also
1110 demonstrates excellent performance. Rijndael's operations are
1111 among the easiest to defend against power and timing attacks.
1112
1113 The AES specifies three key sizes: 128, 192 and 256 bits
1114
1115 See <http://csrc.nist.gov/encryption/aes/> for more information.
1116
1117 In addition to AES cipher algorithm support, the acceleration
1118 for some popular block cipher mode is supported too, including
1119 ECB and CBC.
1120
504c6143
MS
1121config CRYPTO_AES_PPC_SPE
1122 tristate "AES cipher algorithms (PPC SPE)"
1123 depends on PPC && SPE
1124 help
1125 AES cipher algorithms (FIPS-197). Additionally the acceleration
1126 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1127 This module should only be used for low power (router) devices
1128 without hardware AES acceleration (e.g. caam crypto). It reduces the
1129 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1130 timining attacks. Nevertheless it might be not as secure as other
1131 architecture specific assembler implementations that work on 1KB
1132 tables or 256 bytes S-boxes.
1133
584fffc8
SS
1134config CRYPTO_ANUBIS
1135 tristate "Anubis cipher algorithm"
1136 select CRYPTO_ALGAPI
1137 help
1138 Anubis cipher algorithm.
1139
1140 Anubis is a variable key length cipher which can use keys from
1141 128 bits to 320 bits in length. It was evaluated as a entrant
1142 in the NESSIE competition.
1143
1144 See also:
6d8de74c
JM
1145 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1146 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
584fffc8
SS
1147
1148config CRYPTO_ARC4
1149 tristate "ARC4 cipher algorithm"
b9b0f080 1150 select CRYPTO_BLKCIPHER
584fffc8
SS
1151 help
1152 ARC4 cipher algorithm.
1153
1154 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1155 bits in length. This algorithm is required for driver-based
1156 WEP, but it should not be for other purposes because of the
1157 weakness of the algorithm.
1158
1159config CRYPTO_BLOWFISH
1160 tristate "Blowfish cipher algorithm"
1161 select CRYPTO_ALGAPI
52ba867c 1162 select CRYPTO_BLOWFISH_COMMON
584fffc8
SS
1163 help
1164 Blowfish cipher algorithm, by Bruce Schneier.
1165
1166 This is a variable key length cipher which can use keys from 32
1167 bits to 448 bits in length. It's fast, simple and specifically
1168 designed for use on "large microprocessors".
1169
1170 See also:
1171 <http://www.schneier.com/blowfish.html>
1172
52ba867c
JK
1173config CRYPTO_BLOWFISH_COMMON
1174 tristate
1175 help
1176 Common parts of the Blowfish cipher algorithm shared by the
1177 generic c and the assembler implementations.
1178
1179 See also:
1180 <http://www.schneier.com/blowfish.html>
1181
64b94cea
JK
1182config CRYPTO_BLOWFISH_X86_64
1183 tristate "Blowfish cipher algorithm (x86_64)"
f21a7c19 1184 depends on X86 && 64BIT
c1679171 1185 select CRYPTO_BLKCIPHER
64b94cea
JK
1186 select CRYPTO_BLOWFISH_COMMON
1187 help
1188 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1189
1190 This is a variable key length cipher which can use keys from 32
1191 bits to 448 bits in length. It's fast, simple and specifically
1192 designed for use on "large microprocessors".
1193
1194 See also:
1195 <http://www.schneier.com/blowfish.html>
1196
584fffc8
SS
1197config CRYPTO_CAMELLIA
1198 tristate "Camellia cipher algorithms"
1199 depends on CRYPTO
1200 select CRYPTO_ALGAPI
1201 help
1202 Camellia cipher algorithms module.
1203
1204 Camellia is a symmetric key block cipher developed jointly
1205 at NTT and Mitsubishi Electric Corporation.
1206
1207 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1208
1209 See also:
1210 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1211
0b95ec56
JK
1212config CRYPTO_CAMELLIA_X86_64
1213 tristate "Camellia cipher algorithm (x86_64)"
f21a7c19 1214 depends on X86 && 64BIT
0b95ec56 1215 depends on CRYPTO
1af6d037 1216 select CRYPTO_BLKCIPHER
964263af 1217 select CRYPTO_GLUE_HELPER_X86
0b95ec56
JK
1218 help
1219 Camellia cipher algorithm module (x86_64).
1220
1221 Camellia is a symmetric key block cipher developed jointly
1222 at NTT and Mitsubishi Electric Corporation.
1223
1224 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1225
1226 See also:
d9b1d2e7
JK
1227 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1228
1229config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1230 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1231 depends on X86 && 64BIT
1232 depends on CRYPTO
44893bc2 1233 select CRYPTO_BLKCIPHER
d9b1d2e7 1234 select CRYPTO_CAMELLIA_X86_64
44893bc2
EB
1235 select CRYPTO_GLUE_HELPER_X86
1236 select CRYPTO_SIMD
d9b1d2e7
JK
1237 select CRYPTO_XTS
1238 help
1239 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1240
1241 Camellia is a symmetric key block cipher developed jointly
1242 at NTT and Mitsubishi Electric Corporation.
1243
1244 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1245
1246 See also:
0b95ec56
JK
1247 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1248
f3f935a7
JK
1249config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1250 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1251 depends on X86 && 64BIT
1252 depends on CRYPTO
f3f935a7 1253 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
f3f935a7
JK
1254 help
1255 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1256
1257 Camellia is a symmetric key block cipher developed jointly
1258 at NTT and Mitsubishi Electric Corporation.
1259
1260 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1261
1262 See also:
1263 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1264
81658ad0
DM
1265config CRYPTO_CAMELLIA_SPARC64
1266 tristate "Camellia cipher algorithm (SPARC64)"
1267 depends on SPARC64
1268 depends on CRYPTO
1269 select CRYPTO_ALGAPI
1270 help
1271 Camellia cipher algorithm module (SPARC64).
1272
1273 Camellia is a symmetric key block cipher developed jointly
1274 at NTT and Mitsubishi Electric Corporation.
1275
1276 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1277
1278 See also:
1279 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1280
044ab525
JK
1281config CRYPTO_CAST_COMMON
1282 tristate
1283 help
1284 Common parts of the CAST cipher algorithms shared by the
1285 generic c and the assembler implementations.
1286
1da177e4
LT
1287config CRYPTO_CAST5
1288 tristate "CAST5 (CAST-128) cipher algorithm"
cce9e06d 1289 select CRYPTO_ALGAPI
044ab525 1290 select CRYPTO_CAST_COMMON
1da177e4
LT
1291 help
1292 The CAST5 encryption algorithm (synonymous with CAST-128) is
1293 described in RFC2144.
1294
4d6d6a2c
JG
1295config CRYPTO_CAST5_AVX_X86_64
1296 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1297 depends on X86 && 64BIT
1e63183a 1298 select CRYPTO_BLKCIPHER
4d6d6a2c 1299 select CRYPTO_CAST5
1e63183a
EB
1300 select CRYPTO_CAST_COMMON
1301 select CRYPTO_SIMD
4d6d6a2c
JG
1302 help
1303 The CAST5 encryption algorithm (synonymous with CAST-128) is
1304 described in RFC2144.
1305
1306 This module provides the Cast5 cipher algorithm that processes
1307 sixteen blocks parallel using the AVX instruction set.
1308
1da177e4
LT
1309config CRYPTO_CAST6
1310 tristate "CAST6 (CAST-256) cipher algorithm"
cce9e06d 1311 select CRYPTO_ALGAPI
044ab525 1312 select CRYPTO_CAST_COMMON
1da177e4
LT
1313 help
1314 The CAST6 encryption algorithm (synonymous with CAST-256) is
1315 described in RFC2612.
1316
4ea1277d
JG
1317config CRYPTO_CAST6_AVX_X86_64
1318 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1319 depends on X86 && 64BIT
4bd96924 1320 select CRYPTO_BLKCIPHER
4ea1277d 1321 select CRYPTO_CAST6
4bd96924
EB
1322 select CRYPTO_CAST_COMMON
1323 select CRYPTO_GLUE_HELPER_X86
1324 select CRYPTO_SIMD
4ea1277d
JG
1325 select CRYPTO_XTS
1326 help
1327 The CAST6 encryption algorithm (synonymous with CAST-256) is
1328 described in RFC2612.
1329
1330 This module provides the Cast6 cipher algorithm that processes
1331 eight blocks parallel using the AVX instruction set.
1332
584fffc8
SS
1333config CRYPTO_DES
1334 tristate "DES and Triple DES EDE cipher algorithms"
cce9e06d 1335 select CRYPTO_ALGAPI
1da177e4 1336 help
584fffc8 1337 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
fb4f10ed 1338
c5aac2df
DM
1339config CRYPTO_DES_SPARC64
1340 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
97da37b3 1341 depends on SPARC64
c5aac2df
DM
1342 select CRYPTO_ALGAPI
1343 select CRYPTO_DES
1344 help
1345 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1346 optimized using SPARC64 crypto opcodes.
1347
6574e6c6
JK
1348config CRYPTO_DES3_EDE_X86_64
1349 tristate "Triple DES EDE cipher algorithm (x86-64)"
1350 depends on X86 && 64BIT
09c0f03b 1351 select CRYPTO_BLKCIPHER
6574e6c6
JK
1352 select CRYPTO_DES
1353 help
1354 Triple DES EDE (FIPS 46-3) algorithm.
1355
1356 This module provides implementation of the Triple DES EDE cipher
1357 algorithm that is optimized for x86-64 processors. Two versions of
1358 algorithm are provided; regular processing one input block and
1359 one that processes three blocks parallel.
1360
584fffc8
SS
1361config CRYPTO_FCRYPT
1362 tristate "FCrypt cipher algorithm"
cce9e06d 1363 select CRYPTO_ALGAPI
584fffc8 1364 select CRYPTO_BLKCIPHER
1da177e4 1365 help
584fffc8 1366 FCrypt algorithm used by RxRPC.
1da177e4
LT
1367
1368config CRYPTO_KHAZAD
1369 tristate "Khazad cipher algorithm"
cce9e06d 1370 select CRYPTO_ALGAPI
1da177e4
LT
1371 help
1372 Khazad cipher algorithm.
1373
1374 Khazad was a finalist in the initial NESSIE competition. It is
1375 an algorithm optimized for 64-bit processors with good performance
1376 on 32-bit processors. Khazad uses an 128 bit key size.
1377
1378 See also:
6d8de74c 1379 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1da177e4 1380
2407d608 1381config CRYPTO_SALSA20
3b4afaf2 1382 tristate "Salsa20 stream cipher algorithm"
2407d608
TSH
1383 select CRYPTO_BLKCIPHER
1384 help
1385 Salsa20 stream cipher algorithm.
1386
1387 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1388 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
974e4b75
TSH
1389
1390 The Salsa20 stream cipher algorithm is designed by Daniel J.
1391 Bernstein <[email protected]>. See <http://cr.yp.to/snuffle.html>
1392
c08d0e64
MW
1393config CRYPTO_CHACHA20
1394 tristate "ChaCha20 cipher algorithm"
1395 select CRYPTO_BLKCIPHER
1396 help
1397 ChaCha20 cipher algorithm, RFC7539.
1398
1399 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1400 Bernstein and further specified in RFC7539 for use in IETF protocols.
1401 This is the portable C implementation of ChaCha20.
1402
1403 See also:
1404 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1405
c9320b6d 1406config CRYPTO_CHACHA20_X86_64
3d1e93cd 1407 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
c9320b6d
MW
1408 depends on X86 && 64BIT
1409 select CRYPTO_BLKCIPHER
1410 select CRYPTO_CHACHA20
1411 help
1412 ChaCha20 cipher algorithm, RFC7539.
1413
1414 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1415 Bernstein and further specified in RFC7539 for use in IETF protocols.
1416 This is the x86_64 assembler implementation using SIMD instructions.
1417
1418 See also:
1419 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1420
584fffc8
SS
1421config CRYPTO_SEED
1422 tristate "SEED cipher algorithm"
cce9e06d 1423 select CRYPTO_ALGAPI
1da177e4 1424 help
584fffc8 1425 SEED cipher algorithm (RFC4269).
1da177e4 1426
584fffc8
SS
1427 SEED is a 128-bit symmetric key block cipher that has been
1428 developed by KISA (Korea Information Security Agency) as a
1429 national standard encryption algorithm of the Republic of Korea.
1430 It is a 16 round block cipher with the key size of 128 bit.
1431
1432 See also:
1433 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1434
1435config CRYPTO_SERPENT
1436 tristate "Serpent cipher algorithm"
cce9e06d 1437 select CRYPTO_ALGAPI
1da177e4 1438 help
584fffc8 1439 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1da177e4 1440
584fffc8
SS
1441 Keys are allowed to be from 0 to 256 bits in length, in steps
1442 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1443 variant of Serpent for compatibility with old kerneli.org code.
1444
1445 See also:
1446 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1447
937c30d7
JK
1448config CRYPTO_SERPENT_SSE2_X86_64
1449 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1450 depends on X86 && 64BIT
e0f409dc 1451 select CRYPTO_BLKCIPHER
596d8750 1452 select CRYPTO_GLUE_HELPER_X86
937c30d7 1453 select CRYPTO_SERPENT
e0f409dc 1454 select CRYPTO_SIMD
937c30d7
JK
1455 help
1456 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1457
1458 Keys are allowed to be from 0 to 256 bits in length, in steps
1459 of 8 bits.
1460
1e6232f8 1461 This module provides Serpent cipher algorithm that processes eight
937c30d7
JK
1462 blocks parallel using SSE2 instruction set.
1463
1464 See also:
1465 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1466
251496db
JK
1467config CRYPTO_SERPENT_SSE2_586
1468 tristate "Serpent cipher algorithm (i586/SSE2)"
1469 depends on X86 && !64BIT
e0f409dc 1470 select CRYPTO_BLKCIPHER
596d8750 1471 select CRYPTO_GLUE_HELPER_X86
251496db 1472 select CRYPTO_SERPENT
e0f409dc 1473 select CRYPTO_SIMD
251496db
JK
1474 help
1475 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1476
1477 Keys are allowed to be from 0 to 256 bits in length, in steps
1478 of 8 bits.
1479
1480 This module provides Serpent cipher algorithm that processes four
1481 blocks parallel using SSE2 instruction set.
1482
1483 See also:
1484 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
7efe4076
JG
1485
1486config CRYPTO_SERPENT_AVX_X86_64
1487 tristate "Serpent cipher algorithm (x86_64/AVX)"
1488 depends on X86 && 64BIT
e16bf974 1489 select CRYPTO_BLKCIPHER
1d0debbd 1490 select CRYPTO_GLUE_HELPER_X86
7efe4076 1491 select CRYPTO_SERPENT
e16bf974 1492 select CRYPTO_SIMD
7efe4076
JG
1493 select CRYPTO_XTS
1494 help
1495 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1496
1497 Keys are allowed to be from 0 to 256 bits in length, in steps
1498 of 8 bits.
1499
1500 This module provides the Serpent cipher algorithm that processes
1501 eight blocks parallel using the AVX instruction set.
1502
1503 See also:
1504 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
251496db 1505
56d76c96
JK
1506config CRYPTO_SERPENT_AVX2_X86_64
1507 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1508 depends on X86 && 64BIT
56d76c96 1509 select CRYPTO_SERPENT_AVX_X86_64
56d76c96
JK
1510 help
1511 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1512
1513 Keys are allowed to be from 0 to 256 bits in length, in steps
1514 of 8 bits.
1515
1516 This module provides Serpent cipher algorithm that processes 16
1517 blocks parallel using AVX2 instruction set.
1518
1519 See also:
1520 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1521
747c8ce4
GBY
1522config CRYPTO_SM4
1523 tristate "SM4 cipher algorithm"
1524 select CRYPTO_ALGAPI
1525 help
1526 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1527
1528 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1529 Organization of State Commercial Administration of China (OSCCA)
1530 as an authorized cryptographic algorithms for the use within China.
1531
1532 SMS4 was originally created for use in protecting wireless
1533 networks, and is mandated in the Chinese National Standard for
1534 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1535 (GB.15629.11-2003).
1536
1537 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1538 standardized through TC 260 of the Standardization Administration
1539 of the People's Republic of China (SAC).
1540
1541 The input, output, and key of SMS4 are each 128 bits.
1542
1543 See also: <https://eprint.iacr.org/2008/329.pdf>
1544
1545 If unsure, say N.
1546
584fffc8
SS
1547config CRYPTO_TEA
1548 tristate "TEA, XTEA and XETA cipher algorithms"
cce9e06d 1549 select CRYPTO_ALGAPI
1da177e4 1550 help
584fffc8 1551 TEA cipher algorithm.
1da177e4 1552
584fffc8
SS
1553 Tiny Encryption Algorithm is a simple cipher that uses
1554 many rounds for security. It is very fast and uses
1555 little memory.
1556
1557 Xtendend Tiny Encryption Algorithm is a modification to
1558 the TEA algorithm to address a potential key weakness
1559 in the TEA algorithm.
1560
1561 Xtendend Encryption Tiny Algorithm is a mis-implementation
1562 of the XTEA algorithm for compatibility purposes.
1563
1564config CRYPTO_TWOFISH
1565 tristate "Twofish cipher algorithm"
04ac7db3 1566 select CRYPTO_ALGAPI
584fffc8 1567 select CRYPTO_TWOFISH_COMMON
04ac7db3 1568 help
584fffc8 1569 Twofish cipher algorithm.
04ac7db3 1570
584fffc8
SS
1571 Twofish was submitted as an AES (Advanced Encryption Standard)
1572 candidate cipher by researchers at CounterPane Systems. It is a
1573 16 round block cipher supporting key sizes of 128, 192, and 256
1574 bits.
04ac7db3 1575
584fffc8
SS
1576 See also:
1577 <http://www.schneier.com/twofish.html>
1578
1579config CRYPTO_TWOFISH_COMMON
1580 tristate
1581 help
1582 Common parts of the Twofish cipher algorithm shared by the
1583 generic c and the assembler implementations.
1584
1585config CRYPTO_TWOFISH_586
1586 tristate "Twofish cipher algorithms (i586)"
1587 depends on (X86 || UML_X86) && !64BIT
1588 select CRYPTO_ALGAPI
1589 select CRYPTO_TWOFISH_COMMON
1590 help
1591 Twofish cipher algorithm.
1592
1593 Twofish was submitted as an AES (Advanced Encryption Standard)
1594 candidate cipher by researchers at CounterPane Systems. It is a
1595 16 round block cipher supporting key sizes of 128, 192, and 256
1596 bits.
04ac7db3
NT
1597
1598 See also:
584fffc8 1599 <http://www.schneier.com/twofish.html>
04ac7db3 1600
584fffc8
SS
1601config CRYPTO_TWOFISH_X86_64
1602 tristate "Twofish cipher algorithm (x86_64)"
1603 depends on (X86 || UML_X86) && 64BIT
cce9e06d 1604 select CRYPTO_ALGAPI
584fffc8 1605 select CRYPTO_TWOFISH_COMMON
1da177e4 1606 help
584fffc8 1607 Twofish cipher algorithm (x86_64).
1da177e4 1608
584fffc8
SS
1609 Twofish was submitted as an AES (Advanced Encryption Standard)
1610 candidate cipher by researchers at CounterPane Systems. It is a
1611 16 round block cipher supporting key sizes of 128, 192, and 256
1612 bits.
1613
1614 See also:
1615 <http://www.schneier.com/twofish.html>
1616
8280daad
JK
1617config CRYPTO_TWOFISH_X86_64_3WAY
1618 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
f21a7c19 1619 depends on X86 && 64BIT
37992fa4 1620 select CRYPTO_BLKCIPHER
8280daad
JK
1621 select CRYPTO_TWOFISH_COMMON
1622 select CRYPTO_TWOFISH_X86_64
414cb5e7 1623 select CRYPTO_GLUE_HELPER_X86
8280daad
JK
1624 help
1625 Twofish cipher algorithm (x86_64, 3-way parallel).
1626
1627 Twofish was submitted as an AES (Advanced Encryption Standard)
1628 candidate cipher by researchers at CounterPane Systems. It is a
1629 16 round block cipher supporting key sizes of 128, 192, and 256
1630 bits.
1631
1632 This module provides Twofish cipher algorithm that processes three
1633 blocks parallel, utilizing resources of out-of-order CPUs better.
1634
1635 See also:
1636 <http://www.schneier.com/twofish.html>
1637
107778b5
JG
1638config CRYPTO_TWOFISH_AVX_X86_64
1639 tristate "Twofish cipher algorithm (x86_64/AVX)"
1640 depends on X86 && 64BIT
0e6ab46d 1641 select CRYPTO_BLKCIPHER
a7378d4e 1642 select CRYPTO_GLUE_HELPER_X86
0e6ab46d 1643 select CRYPTO_SIMD
107778b5
JG
1644 select CRYPTO_TWOFISH_COMMON
1645 select CRYPTO_TWOFISH_X86_64
1646 select CRYPTO_TWOFISH_X86_64_3WAY
107778b5
JG
1647 help
1648 Twofish cipher algorithm (x86_64/AVX).
1649
1650 Twofish was submitted as an AES (Advanced Encryption Standard)
1651 candidate cipher by researchers at CounterPane Systems. It is a
1652 16 round block cipher supporting key sizes of 128, 192, and 256
1653 bits.
1654
1655 This module provides the Twofish cipher algorithm that processes
1656 eight blocks parallel using the AVX Instruction Set.
1657
1658 See also:
1659 <http://www.schneier.com/twofish.html>
1660
584fffc8
SS
1661comment "Compression"
1662
1663config CRYPTO_DEFLATE
1664 tristate "Deflate compression algorithm"
1665 select CRYPTO_ALGAPI
f6ded09d 1666 select CRYPTO_ACOMP2
584fffc8
SS
1667 select ZLIB_INFLATE
1668 select ZLIB_DEFLATE
3c09f17c 1669 help
584fffc8
SS
1670 This is the Deflate algorithm (RFC1951), specified for use in
1671 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1672
1673 You will most probably want this if using IPSec.
3c09f17c 1674
0b77abb3
ZS
1675config CRYPTO_LZO
1676 tristate "LZO compression algorithm"
1677 select CRYPTO_ALGAPI
ac9d2c4b 1678 select CRYPTO_ACOMP2
0b77abb3
ZS
1679 select LZO_COMPRESS
1680 select LZO_DECOMPRESS
1681 help
1682 This is the LZO algorithm.
1683
35a1fc18
SJ
1684config CRYPTO_842
1685 tristate "842 compression algorithm"
2062c5b6 1686 select CRYPTO_ALGAPI
6a8de3ae 1687 select CRYPTO_ACOMP2
2062c5b6
DS
1688 select 842_COMPRESS
1689 select 842_DECOMPRESS
35a1fc18
SJ
1690 help
1691 This is the 842 algorithm.
0ea8530d
CM
1692
1693config CRYPTO_LZ4
1694 tristate "LZ4 compression algorithm"
1695 select CRYPTO_ALGAPI
8cd9330e 1696 select CRYPTO_ACOMP2
0ea8530d
CM
1697 select LZ4_COMPRESS
1698 select LZ4_DECOMPRESS
1699 help
1700 This is the LZ4 algorithm.
1701
1702config CRYPTO_LZ4HC
1703 tristate "LZ4HC compression algorithm"
1704 select CRYPTO_ALGAPI
91d53d96 1705 select CRYPTO_ACOMP2
0ea8530d
CM
1706 select LZ4HC_COMPRESS
1707 select LZ4_DECOMPRESS
1708 help
1709 This is the LZ4 high compression mode algorithm.
35a1fc18 1710
d28fc3db
NT
1711config CRYPTO_ZSTD
1712 tristate "Zstd compression algorithm"
1713 select CRYPTO_ALGAPI
1714 select CRYPTO_ACOMP2
1715 select ZSTD_COMPRESS
1716 select ZSTD_DECOMPRESS
1717 help
1718 This is the zstd algorithm.
1719
17f0f4a4
NH
1720comment "Random Number Generation"
1721
1722config CRYPTO_ANSI_CPRNG
1723 tristate "Pseudo Random Number Generation for Cryptographic modules"
1724 select CRYPTO_AES
1725 select CRYPTO_RNG
17f0f4a4
NH
1726 help
1727 This option enables the generic pseudo random number generator
1728 for cryptographic modules. Uses the Algorithm specified in
7dd607e8
JK
1729 ANSI X9.31 A.2.4. Note that this option must be enabled if
1730 CRYPTO_FIPS is selected
17f0f4a4 1731
f2c89a10 1732menuconfig CRYPTO_DRBG_MENU
419090c6 1733 tristate "NIST SP800-90A DRBG"
419090c6
SM
1734 help
1735 NIST SP800-90A compliant DRBG. In the following submenu, one or
1736 more of the DRBG types must be selected.
1737
f2c89a10 1738if CRYPTO_DRBG_MENU
419090c6
SM
1739
1740config CRYPTO_DRBG_HMAC
401e4238 1741 bool
419090c6 1742 default y
419090c6 1743 select CRYPTO_HMAC
826775bb 1744 select CRYPTO_SHA256
419090c6
SM
1745
1746config CRYPTO_DRBG_HASH
1747 bool "Enable Hash DRBG"
826775bb 1748 select CRYPTO_SHA256
419090c6
SM
1749 help
1750 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1751
1752config CRYPTO_DRBG_CTR
1753 bool "Enable CTR DRBG"
419090c6 1754 select CRYPTO_AES
35591285 1755 depends on CRYPTO_CTR
419090c6
SM
1756 help
1757 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1758
f2c89a10
HX
1759config CRYPTO_DRBG
1760 tristate
401e4238 1761 default CRYPTO_DRBG_MENU
f2c89a10 1762 select CRYPTO_RNG
bb5530e4 1763 select CRYPTO_JITTERENTROPY
f2c89a10
HX
1764
1765endif # if CRYPTO_DRBG_MENU
419090c6 1766
bb5530e4
SM
1767config CRYPTO_JITTERENTROPY
1768 tristate "Jitterentropy Non-Deterministic Random Number Generator"
2f313e02 1769 select CRYPTO_RNG
bb5530e4
SM
1770 help
1771 The Jitterentropy RNG is a noise that is intended
1772 to provide seed to another RNG. The RNG does not
1773 perform any cryptographic whitening of the generated
1774 random numbers. This Jitterentropy RNG registers with
1775 the kernel crypto API and can be used by any caller.
1776
03c8efc1
HX
1777config CRYPTO_USER_API
1778 tristate
1779
fe869cdb
HX
1780config CRYPTO_USER_API_HASH
1781 tristate "User-space interface for hash algorithms"
7451708f 1782 depends on NET
fe869cdb
HX
1783 select CRYPTO_HASH
1784 select CRYPTO_USER_API
1785 help
1786 This option enables the user-spaces interface for hash
1787 algorithms.
1788
8ff59090
HX
1789config CRYPTO_USER_API_SKCIPHER
1790 tristate "User-space interface for symmetric key cipher algorithms"
7451708f 1791 depends on NET
8ff59090
HX
1792 select CRYPTO_BLKCIPHER
1793 select CRYPTO_USER_API
1794 help
1795 This option enables the user-spaces interface for symmetric
1796 key cipher algorithms.
1797
2f375538
SM
1798config CRYPTO_USER_API_RNG
1799 tristate "User-space interface for random number generator algorithms"
1800 depends on NET
1801 select CRYPTO_RNG
1802 select CRYPTO_USER_API
1803 help
1804 This option enables the user-spaces interface for random
1805 number generator algorithms.
1806
b64a2d95
HX
1807config CRYPTO_USER_API_AEAD
1808 tristate "User-space interface for AEAD cipher algorithms"
1809 depends on NET
1810 select CRYPTO_AEAD
72548b09
SM
1811 select CRYPTO_BLKCIPHER
1812 select CRYPTO_NULL
b64a2d95
HX
1813 select CRYPTO_USER_API
1814 help
1815 This option enables the user-spaces interface for AEAD
1816 cipher algorithms.
1817
cac5818c
CL
1818config CRYPTO_STATS
1819 bool "Crypto usage statistics for User-space"
1820 help
1821 This option enables the gathering of crypto stats.
1822 This will collect:
1823 - encrypt/decrypt size and numbers of symmeric operations
1824 - compress/decompress size and numbers of compress operations
1825 - size and numbers of hash operations
1826 - encrypt/decrypt/sign/verify numbers for asymmetric operations
1827 - generate/seed numbers for rng operations
1828
ee08997f
DK
1829config CRYPTO_HASH_INFO
1830 bool
1831
1da177e4 1832source "drivers/crypto/Kconfig"
964f3b3b 1833source crypto/asymmetric_keys/Kconfig
cfc411e7 1834source certs/Kconfig
1da177e4 1835
cce9e06d 1836endif # if CRYPTO
This page took 1.010522 seconds and 4 git commands to generate.