2 # Generic algorithms support
8 # async_tx api: hardware offloaded memory transfer/transform support
10 source "crypto/async_tx/Kconfig"
13 # Cryptographic API Configuration
16 tristate "Cryptographic API"
18 This option provides the core Cryptographic API.
22 comment "Crypto core or helper"
25 bool "FIPS 200 compliance"
26 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
29 This options enables the fips boot option which is
30 required if you want to system to operate in a FIPS 200
31 certification. You should say no unless you know what
38 This option provides the API for cryptographic algorithms.
54 config CRYPTO_BLKCIPHER
56 select CRYPTO_BLKCIPHER2
59 config CRYPTO_BLKCIPHER2
63 select CRYPTO_WORKQUEUE
83 config CRYPTO_RNG_DEFAULT
85 select CRYPTO_DRBG_MENU
87 config CRYPTO_AKCIPHER2
91 config CRYPTO_AKCIPHER
93 select CRYPTO_AKCIPHER2
106 tristate "RSA algorithm"
107 select CRYPTO_AKCIPHER
108 select CRYPTO_MANAGER
112 Generic implementation of the RSA public key algorithm.
115 tristate "Diffie-Hellman algorithm"
119 Generic implementation of the Diffie-Hellman algorithm.
122 tristate "ECDH algorithm"
125 Generic implementation of the ECDH algorithm
127 config CRYPTO_MANAGER
128 tristate "Cryptographic algorithm manager"
129 select CRYPTO_MANAGER2
131 Create default cryptographic template instantiations such as
134 config CRYPTO_MANAGER2
135 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
138 select CRYPTO_BLKCIPHER2
139 select CRYPTO_AKCIPHER2
143 tristate "Userspace cryptographic algorithm configuration"
145 select CRYPTO_MANAGER
147 Userspace configuration for cryptographic instantiations such as
150 config CRYPTO_MANAGER_DISABLE_TESTS
151 bool "Disable run-time self tests"
153 depends on CRYPTO_MANAGER2
155 Disable run-time self tests that normally take place at
156 algorithm registration.
158 config CRYPTO_GF128MUL
159 tristate "GF(2^128) multiplication functions"
161 Efficient table driven implementation of multiplications in the
162 field GF(2^128). This is needed by some cypher modes. This
163 option will be selected automatically if you select such a
164 cipher mode. Only select this option by hand if you expect to load
165 an external module that requires these functions.
168 tristate "Null algorithms"
171 These are 'Null' algorithms, used by IPsec, which do nothing.
175 select CRYPTO_ALGAPI2
176 select CRYPTO_BLKCIPHER2
180 tristate "Parallel crypto engine"
183 select CRYPTO_MANAGER
186 This converts an arbitrary crypto algorithm into a parallel
187 algorithm that executes in kernel threads.
189 config CRYPTO_WORKQUEUE
193 tristate "Software async crypto daemon"
194 select CRYPTO_BLKCIPHER
196 select CRYPTO_MANAGER
197 select CRYPTO_WORKQUEUE
199 This is a generic software asynchronous crypto daemon that
200 converts an arbitrary synchronous software crypto algorithm
201 into an asynchronous algorithm that executes in a kernel thread.
203 config CRYPTO_MCRYPTD
204 tristate "Software async multi-buffer crypto daemon"
205 select CRYPTO_BLKCIPHER
207 select CRYPTO_MANAGER
208 select CRYPTO_WORKQUEUE
210 This is a generic software asynchronous crypto daemon that
211 provides the kernel thread to assist multi-buffer crypto
212 algorithms for submitting jobs and flushing jobs in multi-buffer
213 crypto algorithms. Multi-buffer crypto algorithms are executed
214 in the context of this kernel thread and drivers can post
215 their crypto request asynchronously to be processed by this daemon.
217 config CRYPTO_AUTHENC
218 tristate "Authenc support"
220 select CRYPTO_BLKCIPHER
221 select CRYPTO_MANAGER
225 Authenc: Combined mode wrapper for IPsec.
226 This is required for IPSec.
229 tristate "Testing module"
231 select CRYPTO_MANAGER
233 Quick & dirty crypto test module.
235 config CRYPTO_ABLK_HELPER
239 config CRYPTO_GLUE_HELPER_X86
247 comment "Authenticated Encryption with Associated Data"
250 tristate "CCM support"
254 Support for Counter with CBC MAC. Required for IPsec.
257 tristate "GCM/GMAC support"
263 Support for Galois/Counter Mode (GCM) and Galois Message
264 Authentication Code (GMAC). Required for IPSec.
266 config CRYPTO_CHACHA20POLY1305
267 tristate "ChaCha20-Poly1305 AEAD support"
268 select CRYPTO_CHACHA20
269 select CRYPTO_POLY1305
272 ChaCha20-Poly1305 AEAD support, RFC7539.
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
279 tristate "Sequence Number IV Generator"
281 select CRYPTO_BLKCIPHER
283 select CRYPTO_RNG_DEFAULT
285 This IV generator generates an IV based on a sequence number by
286 xoring it with a salt. This algorithm is mainly useful for CTR
288 config CRYPTO_ECHAINIV
289 tristate "Encrypted Chain IV Generator"
292 select CRYPTO_RNG_DEFAULT
295 This IV generator generates an IV based on the encryption of
296 a sequence number xored with a salt. This is the default
299 comment "Block modes"
302 tristate "CBC support"
303 select CRYPTO_BLKCIPHER
304 select CRYPTO_MANAGER
306 CBC: Cipher Block Chaining mode
307 This block cipher algorithm is required for IPSec.
310 tristate "CTR support"
311 select CRYPTO_BLKCIPHER
313 select CRYPTO_MANAGER
316 This block cipher algorithm is required for IPSec.
319 tristate "CTS support"
320 select CRYPTO_BLKCIPHER
322 CTS: Cipher Text Stealing
323 This is the Cipher Text Stealing mode as described by
324 Section 8 of rfc2040 and referenced by rfc3962.
325 (rfc3962 includes errata information in its Appendix A)
326 This mode is required for Kerberos gss mechanism support
330 tristate "ECB support"
331 select CRYPTO_BLKCIPHER
332 select CRYPTO_MANAGER
334 ECB: Electronic CodeBook mode
335 This is the simplest block cipher algorithm. It simply encrypts
336 the input block by block.
339 tristate "LRW support"
340 select CRYPTO_BLKCIPHER
341 select CRYPTO_MANAGER
342 select CRYPTO_GF128MUL
344 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
345 narrow block cipher mode for dm-crypt. Use it with cipher
346 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
347 The first 128, 192 or 256 bits in the key are used for AES and the
348 rest is used to tie each cipher block to its logical position.
351 tristate "PCBC support"
352 select CRYPTO_BLKCIPHER
353 select CRYPTO_MANAGER
355 PCBC: Propagating Cipher Block Chaining mode
356 This block cipher algorithm is required for RxRPC.
359 tristate "XTS support"
360 select CRYPTO_BLKCIPHER
361 select CRYPTO_MANAGER
362 select CRYPTO_GF128MUL
365 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
366 key size 256, 384 or 512 bits. This implementation currently
367 can't handle a sectorsize which is not a multiple of 16 bytes.
369 config CRYPTO_KEYWRAP
370 tristate "Key wrapping support"
371 select CRYPTO_BLKCIPHER
373 Support for key wrapping (NIST SP800-38F / RFC3394) without
379 tristate "CMAC support"
381 select CRYPTO_MANAGER
383 Cipher-based Message Authentication Code (CMAC) specified by
384 The National Institute of Standards and Technology (NIST).
386 https://tools.ietf.org/html/rfc4493
387 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
390 tristate "HMAC support"
392 select CRYPTO_MANAGER
394 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
395 This is required for IPSec.
398 tristate "XCBC support"
400 select CRYPTO_MANAGER
402 XCBC: Keyed-Hashing with encryption algorithm
403 http://www.ietf.org/rfc/rfc3566.txt
404 http://csrc.nist.gov/encryption/modes/proposedmodes/
405 xcbc-mac/xcbc-mac-spec.pdf
408 tristate "VMAC support"
410 select CRYPTO_MANAGER
412 VMAC is a message authentication algorithm designed for
413 very high speed on 64-bit architectures.
416 <http://fastcrypto.org/vmac>
421 tristate "CRC32c CRC algorithm"
425 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
426 by iSCSI for header and data digests and by others.
427 See Castagnoli93. Module will be crc32c.
429 config CRYPTO_CRC32C_INTEL
430 tristate "CRC32c INTEL hardware acceleration"
434 In Intel processor with SSE4.2 supported, the processor will
435 support CRC32C implementation using hardware accelerated CRC32
436 instruction. This option will create 'crc32c-intel' module,
437 which will enable any routine to use the CRC32 instruction to
438 gain performance compared with software implementation.
439 Module will be crc32c-intel.
441 config CRYPT_CRC32C_VPMSUM
442 tristate "CRC32c CRC algorithm (powerpc64)"
443 depends on PPC64 && ALTIVEC
447 CRC32c algorithm implemented using vector polynomial multiply-sum
448 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
449 and newer processors for improved performance.
452 config CRYPTO_CRC32C_SPARC64
453 tristate "CRC32c CRC algorithm (SPARC64)"
458 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
462 tristate "CRC32 CRC algorithm"
466 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
467 Shash crypto api wrappers to crc32_le function.
469 config CRYPTO_CRC32_PCLMUL
470 tristate "CRC32 PCLMULQDQ hardware acceleration"
475 From Intel Westmere and AMD Bulldozer processor with SSE4.2
476 and PCLMULQDQ supported, the processor will support
477 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
478 instruction. This option will create 'crc32-plcmul' module,
479 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
480 and gain better performance as compared with the table implementation.
482 config CRYPTO_CRCT10DIF
483 tristate "CRCT10DIF algorithm"
486 CRC T10 Data Integrity Field computation is being cast as
487 a crypto transform. This allows for faster crc t10 diff
488 transforms to be used if they are available.
490 config CRYPTO_CRCT10DIF_PCLMUL
491 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
492 depends on X86 && 64BIT && CRC_T10DIF
495 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
496 CRC T10 DIF PCLMULQDQ computation can be hardware
497 accelerated PCLMULQDQ instruction. This option will create
498 'crct10dif-plcmul' module, which is faster when computing the
499 crct10dif checksum as compared with the generic table implementation.
502 tristate "GHASH digest algorithm"
503 select CRYPTO_GF128MUL
506 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
508 config CRYPTO_POLY1305
509 tristate "Poly1305 authenticator algorithm"
512 Poly1305 authenticator algorithm, RFC7539.
514 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
515 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
516 in IETF protocols. This is the portable C implementation of Poly1305.
518 config CRYPTO_POLY1305_X86_64
519 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
520 depends on X86 && 64BIT
521 select CRYPTO_POLY1305
523 Poly1305 authenticator algorithm, RFC7539.
525 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
526 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
527 in IETF protocols. This is the x86_64 assembler implementation using SIMD
531 tristate "MD4 digest algorithm"
534 MD4 message digest algorithm (RFC1320).
537 tristate "MD5 digest algorithm"
540 MD5 message digest algorithm (RFC1321).
542 config CRYPTO_MD5_OCTEON
543 tristate "MD5 digest algorithm (OCTEON)"
544 depends on CPU_CAVIUM_OCTEON
548 MD5 message digest algorithm (RFC1321) implemented
549 using OCTEON crypto instructions, when available.
551 config CRYPTO_MD5_PPC
552 tristate "MD5 digest algorithm (PPC)"
556 MD5 message digest algorithm (RFC1321) implemented
559 config CRYPTO_MD5_SPARC64
560 tristate "MD5 digest algorithm (SPARC64)"
565 MD5 message digest algorithm (RFC1321) implemented
566 using sparc64 crypto instructions, when available.
568 config CRYPTO_MICHAEL_MIC
569 tristate "Michael MIC keyed digest algorithm"
572 Michael MIC is used for message integrity protection in TKIP
573 (IEEE 802.11i). This algorithm is required for TKIP, but it
574 should not be used for other purposes because of the weakness
578 tristate "RIPEMD-128 digest algorithm"
581 RIPEMD-128 (ISO/IEC 10118-3:2004).
583 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
584 be used as a secure replacement for RIPEMD. For other use cases,
585 RIPEMD-160 should be used.
587 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
588 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
591 tristate "RIPEMD-160 digest algorithm"
594 RIPEMD-160 (ISO/IEC 10118-3:2004).
596 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
597 to be used as a secure replacement for the 128-bit hash functions
598 MD4, MD5 and it's predecessor RIPEMD
599 (not to be confused with RIPEMD-128).
601 It's speed is comparable to SHA1 and there are no known attacks
604 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
605 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
608 tristate "RIPEMD-256 digest algorithm"
611 RIPEMD-256 is an optional extension of RIPEMD-128 with a
612 256 bit hash. It is intended for applications that require
613 longer hash-results, without needing a larger security level
616 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
617 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
620 tristate "RIPEMD-320 digest algorithm"
623 RIPEMD-320 is an optional extension of RIPEMD-160 with a
624 320 bit hash. It is intended for applications that require
625 longer hash-results, without needing a larger security level
628 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
629 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
632 tristate "SHA1 digest algorithm"
635 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
637 config CRYPTO_SHA1_SSSE3
638 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
639 depends on X86 && 64BIT
643 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
644 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
645 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
648 config CRYPTO_SHA256_SSSE3
649 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
650 depends on X86 && 64BIT
654 SHA-256 secure hash standard (DFIPS 180-2) implemented
655 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
656 Extensions version 1 (AVX1), or Advanced Vector Extensions
657 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
658 Instructions) when available.
660 config CRYPTO_SHA512_SSSE3
661 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
662 depends on X86 && 64BIT
666 SHA-512 secure hash standard (DFIPS 180-2) implemented
667 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
668 Extensions version 1 (AVX1), or Advanced Vector Extensions
669 version 2 (AVX2) instructions, when available.
671 config CRYPTO_SHA1_OCTEON
672 tristate "SHA1 digest algorithm (OCTEON)"
673 depends on CPU_CAVIUM_OCTEON
677 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
678 using OCTEON crypto instructions, when available.
680 config CRYPTO_SHA1_SPARC64
681 tristate "SHA1 digest algorithm (SPARC64)"
686 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
687 using sparc64 crypto instructions, when available.
689 config CRYPTO_SHA1_PPC
690 tristate "SHA1 digest algorithm (powerpc)"
693 This is the powerpc hardware accelerated implementation of the
694 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
696 config CRYPTO_SHA1_PPC_SPE
697 tristate "SHA1 digest algorithm (PPC SPE)"
698 depends on PPC && SPE
700 SHA-1 secure hash standard (DFIPS 180-4) implemented
701 using powerpc SPE SIMD instruction set.
703 config CRYPTO_SHA1_MB
704 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
705 depends on X86 && 64BIT
708 select CRYPTO_MCRYPTD
710 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
711 using multi-buffer technique. This algorithm computes on
712 multiple data lanes concurrently with SIMD instructions for
713 better throughput. It should not be enabled by default but
714 used when there is significant amount of work to keep the keep
715 the data lanes filled to get performance benefit. If the data
716 lanes remain unfilled, a flush operation will be initiated to
717 process the crypto jobs, adding a slight latency.
719 config CRYPTO_SHA256_MB
720 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
721 depends on X86 && 64BIT
724 select CRYPTO_MCRYPTD
726 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
727 using multi-buffer technique. This algorithm computes on
728 multiple data lanes concurrently with SIMD instructions for
729 better throughput. It should not be enabled by default but
730 used when there is significant amount of work to keep the keep
731 the data lanes filled to get performance benefit. If the data
732 lanes remain unfilled, a flush operation will be initiated to
733 process the crypto jobs, adding a slight latency.
735 config CRYPTO_SHA512_MB
736 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
737 depends on X86 && 64BIT
740 select CRYPTO_MCRYPTD
742 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
743 using multi-buffer technique. This algorithm computes on
744 multiple data lanes concurrently with SIMD instructions for
745 better throughput. It should not be enabled by default but
746 used when there is significant amount of work to keep the keep
747 the data lanes filled to get performance benefit. If the data
748 lanes remain unfilled, a flush operation will be initiated to
749 process the crypto jobs, adding a slight latency.
752 tristate "SHA224 and SHA256 digest algorithm"
755 SHA256 secure hash standard (DFIPS 180-2).
757 This version of SHA implements a 256 bit hash with 128 bits of
758 security against collision attacks.
760 This code also includes SHA-224, a 224 bit hash with 112 bits
761 of security against collision attacks.
763 config CRYPTO_SHA256_PPC_SPE
764 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
765 depends on PPC && SPE
769 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
770 implemented using powerpc SPE SIMD instruction set.
772 config CRYPTO_SHA256_OCTEON
773 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
774 depends on CPU_CAVIUM_OCTEON
778 SHA-256 secure hash standard (DFIPS 180-2) implemented
779 using OCTEON crypto instructions, when available.
781 config CRYPTO_SHA256_SPARC64
782 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
787 SHA-256 secure hash standard (DFIPS 180-2) implemented
788 using sparc64 crypto instructions, when available.
791 tristate "SHA384 and SHA512 digest algorithms"
794 SHA512 secure hash standard (DFIPS 180-2).
796 This version of SHA implements a 512 bit hash with 256 bits of
797 security against collision attacks.
799 This code also includes SHA-384, a 384 bit hash with 192 bits
800 of security against collision attacks.
802 config CRYPTO_SHA512_OCTEON
803 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
804 depends on CPU_CAVIUM_OCTEON
808 SHA-512 secure hash standard (DFIPS 180-2) implemented
809 using OCTEON crypto instructions, when available.
811 config CRYPTO_SHA512_SPARC64
812 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
817 SHA-512 secure hash standard (DFIPS 180-2) implemented
818 using sparc64 crypto instructions, when available.
821 tristate "SHA3 digest algorithm"
824 SHA-3 secure hash standard (DFIPS 202). It's based on
825 cryptographic sponge function family called Keccak.
828 http://keccak.noekeon.org/
831 tristate "Tiger digest algorithms"
834 Tiger hash algorithm 192, 160 and 128-bit hashes
836 Tiger is a hash function optimized for 64-bit processors while
837 still having decent performance on 32-bit processors.
838 Tiger was developed by Ross Anderson and Eli Biham.
841 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
844 tristate "Whirlpool digest algorithms"
847 Whirlpool hash algorithm 512, 384 and 256-bit hashes
849 Whirlpool-512 is part of the NESSIE cryptographic primitives.
850 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
853 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
855 config CRYPTO_GHASH_CLMUL_NI_INTEL
856 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
857 depends on X86 && 64BIT
860 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
861 The implementation is accelerated by CLMUL-NI of Intel.
866 tristate "AES cipher algorithms"
869 AES cipher algorithms (FIPS-197). AES uses the Rijndael
872 Rijndael appears to be consistently a very good performer in
873 both hardware and software across a wide range of computing
874 environments regardless of its use in feedback or non-feedback
875 modes. Its key setup time is excellent, and its key agility is
876 good. Rijndael's very low memory requirements make it very well
877 suited for restricted-space environments, in which it also
878 demonstrates excellent performance. Rijndael's operations are
879 among the easiest to defend against power and timing attacks.
881 The AES specifies three key sizes: 128, 192 and 256 bits
883 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
885 config CRYPTO_AES_586
886 tristate "AES cipher algorithms (i586)"
887 depends on (X86 || UML_X86) && !64BIT
891 AES cipher algorithms (FIPS-197). AES uses the Rijndael
894 Rijndael appears to be consistently a very good performer in
895 both hardware and software across a wide range of computing
896 environments regardless of its use in feedback or non-feedback
897 modes. Its key setup time is excellent, and its key agility is
898 good. Rijndael's very low memory requirements make it very well
899 suited for restricted-space environments, in which it also
900 demonstrates excellent performance. Rijndael's operations are
901 among the easiest to defend against power and timing attacks.
903 The AES specifies three key sizes: 128, 192 and 256 bits
905 See <http://csrc.nist.gov/encryption/aes/> for more information.
907 config CRYPTO_AES_X86_64
908 tristate "AES cipher algorithms (x86_64)"
909 depends on (X86 || UML_X86) && 64BIT
913 AES cipher algorithms (FIPS-197). AES uses the Rijndael
916 Rijndael appears to be consistently a very good performer in
917 both hardware and software across a wide range of computing
918 environments regardless of its use in feedback or non-feedback
919 modes. Its key setup time is excellent, and its key agility is
920 good. Rijndael's very low memory requirements make it very well
921 suited for restricted-space environments, in which it also
922 demonstrates excellent performance. Rijndael's operations are
923 among the easiest to defend against power and timing attacks.
925 The AES specifies three key sizes: 128, 192 and 256 bits
927 See <http://csrc.nist.gov/encryption/aes/> for more information.
929 config CRYPTO_AES_NI_INTEL
930 tristate "AES cipher algorithms (AES-NI)"
932 select CRYPTO_AES_X86_64 if 64BIT
933 select CRYPTO_AES_586 if !64BIT
935 select CRYPTO_ABLK_HELPER
937 select CRYPTO_GLUE_HELPER_X86 if 64BIT
941 Use Intel AES-NI instructions for AES algorithm.
943 AES cipher algorithms (FIPS-197). AES uses the Rijndael
946 Rijndael appears to be consistently a very good performer in
947 both hardware and software across a wide range of computing
948 environments regardless of its use in feedback or non-feedback
949 modes. Its key setup time is excellent, and its key agility is
950 good. Rijndael's very low memory requirements make it very well
951 suited for restricted-space environments, in which it also
952 demonstrates excellent performance. Rijndael's operations are
953 among the easiest to defend against power and timing attacks.
955 The AES specifies three key sizes: 128, 192 and 256 bits
957 See <http://csrc.nist.gov/encryption/aes/> for more information.
959 In addition to AES cipher algorithm support, the acceleration
960 for some popular block cipher mode is supported too, including
961 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
962 acceleration for CTR.
964 config CRYPTO_AES_SPARC64
965 tristate "AES cipher algorithms (SPARC64)"
970 Use SPARC64 crypto opcodes for AES algorithm.
972 AES cipher algorithms (FIPS-197). AES uses the Rijndael
975 Rijndael appears to be consistently a very good performer in
976 both hardware and software across a wide range of computing
977 environments regardless of its use in feedback or non-feedback
978 modes. Its key setup time is excellent, and its key agility is
979 good. Rijndael's very low memory requirements make it very well
980 suited for restricted-space environments, in which it also
981 demonstrates excellent performance. Rijndael's operations are
982 among the easiest to defend against power and timing attacks.
984 The AES specifies three key sizes: 128, 192 and 256 bits
986 See <http://csrc.nist.gov/encryption/aes/> for more information.
988 In addition to AES cipher algorithm support, the acceleration
989 for some popular block cipher mode is supported too, including
992 config CRYPTO_AES_PPC_SPE
993 tristate "AES cipher algorithms (PPC SPE)"
994 depends on PPC && SPE
996 AES cipher algorithms (FIPS-197). Additionally the acceleration
997 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
998 This module should only be used for low power (router) devices
999 without hardware AES acceleration (e.g. caam crypto). It reduces the
1000 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1001 timining attacks. Nevertheless it might be not as secure as other
1002 architecture specific assembler implementations that work on 1KB
1003 tables or 256 bytes S-boxes.
1005 config CRYPTO_ANUBIS
1006 tristate "Anubis cipher algorithm"
1007 select CRYPTO_ALGAPI
1009 Anubis cipher algorithm.
1011 Anubis is a variable key length cipher which can use keys from
1012 128 bits to 320 bits in length. It was evaluated as a entrant
1013 in the NESSIE competition.
1016 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1017 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
1020 tristate "ARC4 cipher algorithm"
1021 select CRYPTO_BLKCIPHER
1023 ARC4 cipher algorithm.
1025 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1026 bits in length. This algorithm is required for driver-based
1027 WEP, but it should not be for other purposes because of the
1028 weakness of the algorithm.
1030 config CRYPTO_BLOWFISH
1031 tristate "Blowfish cipher algorithm"
1032 select CRYPTO_ALGAPI
1033 select CRYPTO_BLOWFISH_COMMON
1035 Blowfish cipher algorithm, by Bruce Schneier.
1037 This is a variable key length cipher which can use keys from 32
1038 bits to 448 bits in length. It's fast, simple and specifically
1039 designed for use on "large microprocessors".
1042 <http://www.schneier.com/blowfish.html>
1044 config CRYPTO_BLOWFISH_COMMON
1047 Common parts of the Blowfish cipher algorithm shared by the
1048 generic c and the assembler implementations.
1051 <http://www.schneier.com/blowfish.html>
1053 config CRYPTO_BLOWFISH_X86_64
1054 tristate "Blowfish cipher algorithm (x86_64)"
1055 depends on X86 && 64BIT
1056 select CRYPTO_ALGAPI
1057 select CRYPTO_BLOWFISH_COMMON
1059 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1061 This is a variable key length cipher which can use keys from 32
1062 bits to 448 bits in length. It's fast, simple and specifically
1063 designed for use on "large microprocessors".
1066 <http://www.schneier.com/blowfish.html>
1068 config CRYPTO_CAMELLIA
1069 tristate "Camellia cipher algorithms"
1071 select CRYPTO_ALGAPI
1073 Camellia cipher algorithms module.
1075 Camellia is a symmetric key block cipher developed jointly
1076 at NTT and Mitsubishi Electric Corporation.
1078 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1081 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1083 config CRYPTO_CAMELLIA_X86_64
1084 tristate "Camellia cipher algorithm (x86_64)"
1085 depends on X86 && 64BIT
1087 select CRYPTO_ALGAPI
1088 select CRYPTO_GLUE_HELPER_X86
1092 Camellia cipher algorithm module (x86_64).
1094 Camellia is a symmetric key block cipher developed jointly
1095 at NTT and Mitsubishi Electric Corporation.
1097 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1100 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1102 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1103 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1104 depends on X86 && 64BIT
1106 select CRYPTO_ALGAPI
1107 select CRYPTO_CRYPTD
1108 select CRYPTO_ABLK_HELPER
1109 select CRYPTO_GLUE_HELPER_X86
1110 select CRYPTO_CAMELLIA_X86_64
1114 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1116 Camellia is a symmetric key block cipher developed jointly
1117 at NTT and Mitsubishi Electric Corporation.
1119 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1122 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1124 config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1125 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1126 depends on X86 && 64BIT
1128 select CRYPTO_ALGAPI
1129 select CRYPTO_CRYPTD
1130 select CRYPTO_ABLK_HELPER
1131 select CRYPTO_GLUE_HELPER_X86
1132 select CRYPTO_CAMELLIA_X86_64
1133 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1137 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1139 Camellia is a symmetric key block cipher developed jointly
1140 at NTT and Mitsubishi Electric Corporation.
1142 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1145 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1147 config CRYPTO_CAMELLIA_SPARC64
1148 tristate "Camellia cipher algorithm (SPARC64)"
1151 select CRYPTO_ALGAPI
1153 Camellia cipher algorithm module (SPARC64).
1155 Camellia is a symmetric key block cipher developed jointly
1156 at NTT and Mitsubishi Electric Corporation.
1158 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1161 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1163 config CRYPTO_CAST_COMMON
1166 Common parts of the CAST cipher algorithms shared by the
1167 generic c and the assembler implementations.
1170 tristate "CAST5 (CAST-128) cipher algorithm"
1171 select CRYPTO_ALGAPI
1172 select CRYPTO_CAST_COMMON
1174 The CAST5 encryption algorithm (synonymous with CAST-128) is
1175 described in RFC2144.
1177 config CRYPTO_CAST5_AVX_X86_64
1178 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1179 depends on X86 && 64BIT
1180 select CRYPTO_ALGAPI
1181 select CRYPTO_CRYPTD
1182 select CRYPTO_ABLK_HELPER
1183 select CRYPTO_CAST_COMMON
1186 The CAST5 encryption algorithm (synonymous with CAST-128) is
1187 described in RFC2144.
1189 This module provides the Cast5 cipher algorithm that processes
1190 sixteen blocks parallel using the AVX instruction set.
1193 tristate "CAST6 (CAST-256) cipher algorithm"
1194 select CRYPTO_ALGAPI
1195 select CRYPTO_CAST_COMMON
1197 The CAST6 encryption algorithm (synonymous with CAST-256) is
1198 described in RFC2612.
1200 config CRYPTO_CAST6_AVX_X86_64
1201 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1202 depends on X86 && 64BIT
1203 select CRYPTO_ALGAPI
1204 select CRYPTO_CRYPTD
1205 select CRYPTO_ABLK_HELPER
1206 select CRYPTO_GLUE_HELPER_X86
1207 select CRYPTO_CAST_COMMON
1212 The CAST6 encryption algorithm (synonymous with CAST-256) is
1213 described in RFC2612.
1215 This module provides the Cast6 cipher algorithm that processes
1216 eight blocks parallel using the AVX instruction set.
1219 tristate "DES and Triple DES EDE cipher algorithms"
1220 select CRYPTO_ALGAPI
1222 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1224 config CRYPTO_DES_SPARC64
1225 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
1227 select CRYPTO_ALGAPI
1230 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1231 optimized using SPARC64 crypto opcodes.
1233 config CRYPTO_DES3_EDE_X86_64
1234 tristate "Triple DES EDE cipher algorithm (x86-64)"
1235 depends on X86 && 64BIT
1236 select CRYPTO_ALGAPI
1239 Triple DES EDE (FIPS 46-3) algorithm.
1241 This module provides implementation of the Triple DES EDE cipher
1242 algorithm that is optimized for x86-64 processors. Two versions of
1243 algorithm are provided; regular processing one input block and
1244 one that processes three blocks parallel.
1246 config CRYPTO_FCRYPT
1247 tristate "FCrypt cipher algorithm"
1248 select CRYPTO_ALGAPI
1249 select CRYPTO_BLKCIPHER
1251 FCrypt algorithm used by RxRPC.
1253 config CRYPTO_KHAZAD
1254 tristate "Khazad cipher algorithm"
1255 select CRYPTO_ALGAPI
1257 Khazad cipher algorithm.
1259 Khazad was a finalist in the initial NESSIE competition. It is
1260 an algorithm optimized for 64-bit processors with good performance
1261 on 32-bit processors. Khazad uses an 128 bit key size.
1264 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1266 config CRYPTO_SALSA20
1267 tristate "Salsa20 stream cipher algorithm"
1268 select CRYPTO_BLKCIPHER
1270 Salsa20 stream cipher algorithm.
1272 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1273 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1275 The Salsa20 stream cipher algorithm is designed by Daniel J.
1276 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1278 config CRYPTO_SALSA20_586
1279 tristate "Salsa20 stream cipher algorithm (i586)"
1280 depends on (X86 || UML_X86) && !64BIT
1281 select CRYPTO_BLKCIPHER
1283 Salsa20 stream cipher algorithm.
1285 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1286 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1288 The Salsa20 stream cipher algorithm is designed by Daniel J.
1289 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1291 config CRYPTO_SALSA20_X86_64
1292 tristate "Salsa20 stream cipher algorithm (x86_64)"
1293 depends on (X86 || UML_X86) && 64BIT
1294 select CRYPTO_BLKCIPHER
1296 Salsa20 stream cipher algorithm.
1298 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1299 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1301 The Salsa20 stream cipher algorithm is designed by Daniel J.
1302 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1304 config CRYPTO_CHACHA20
1305 tristate "ChaCha20 cipher algorithm"
1306 select CRYPTO_BLKCIPHER
1308 ChaCha20 cipher algorithm, RFC7539.
1310 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1311 Bernstein and further specified in RFC7539 for use in IETF protocols.
1312 This is the portable C implementation of ChaCha20.
1315 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1317 config CRYPTO_CHACHA20_X86_64
1318 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
1319 depends on X86 && 64BIT
1320 select CRYPTO_BLKCIPHER
1321 select CRYPTO_CHACHA20
1323 ChaCha20 cipher algorithm, RFC7539.
1325 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1326 Bernstein and further specified in RFC7539 for use in IETF protocols.
1327 This is the x86_64 assembler implementation using SIMD instructions.
1330 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1333 tristate "SEED cipher algorithm"
1334 select CRYPTO_ALGAPI
1336 SEED cipher algorithm (RFC4269).
1338 SEED is a 128-bit symmetric key block cipher that has been
1339 developed by KISA (Korea Information Security Agency) as a
1340 national standard encryption algorithm of the Republic of Korea.
1341 It is a 16 round block cipher with the key size of 128 bit.
1344 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1346 config CRYPTO_SERPENT
1347 tristate "Serpent cipher algorithm"
1348 select CRYPTO_ALGAPI
1350 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1352 Keys are allowed to be from 0 to 256 bits in length, in steps
1353 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1354 variant of Serpent for compatibility with old kerneli.org code.
1357 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1359 config CRYPTO_SERPENT_SSE2_X86_64
1360 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1361 depends on X86 && 64BIT
1362 select CRYPTO_ALGAPI
1363 select CRYPTO_CRYPTD
1364 select CRYPTO_ABLK_HELPER
1365 select CRYPTO_GLUE_HELPER_X86
1366 select CRYPTO_SERPENT
1370 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1372 Keys are allowed to be from 0 to 256 bits in length, in steps
1375 This module provides Serpent cipher algorithm that processes eight
1376 blocks parallel using SSE2 instruction set.
1379 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1381 config CRYPTO_SERPENT_SSE2_586
1382 tristate "Serpent cipher algorithm (i586/SSE2)"
1383 depends on X86 && !64BIT
1384 select CRYPTO_ALGAPI
1385 select CRYPTO_CRYPTD
1386 select CRYPTO_ABLK_HELPER
1387 select CRYPTO_GLUE_HELPER_X86
1388 select CRYPTO_SERPENT
1392 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1394 Keys are allowed to be from 0 to 256 bits in length, in steps
1397 This module provides Serpent cipher algorithm that processes four
1398 blocks parallel using SSE2 instruction set.
1401 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1403 config CRYPTO_SERPENT_AVX_X86_64
1404 tristate "Serpent cipher algorithm (x86_64/AVX)"
1405 depends on X86 && 64BIT
1406 select CRYPTO_ALGAPI
1407 select CRYPTO_CRYPTD
1408 select CRYPTO_ABLK_HELPER
1409 select CRYPTO_GLUE_HELPER_X86
1410 select CRYPTO_SERPENT
1414 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1416 Keys are allowed to be from 0 to 256 bits in length, in steps
1419 This module provides the Serpent cipher algorithm that processes
1420 eight blocks parallel using the AVX instruction set.
1423 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1425 config CRYPTO_SERPENT_AVX2_X86_64
1426 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1427 depends on X86 && 64BIT
1428 select CRYPTO_ALGAPI
1429 select CRYPTO_CRYPTD
1430 select CRYPTO_ABLK_HELPER
1431 select CRYPTO_GLUE_HELPER_X86
1432 select CRYPTO_SERPENT
1433 select CRYPTO_SERPENT_AVX_X86_64
1437 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1439 Keys are allowed to be from 0 to 256 bits in length, in steps
1442 This module provides Serpent cipher algorithm that processes 16
1443 blocks parallel using AVX2 instruction set.
1446 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1449 tristate "TEA, XTEA and XETA cipher algorithms"
1450 select CRYPTO_ALGAPI
1452 TEA cipher algorithm.
1454 Tiny Encryption Algorithm is a simple cipher that uses
1455 many rounds for security. It is very fast and uses
1458 Xtendend Tiny Encryption Algorithm is a modification to
1459 the TEA algorithm to address a potential key weakness
1460 in the TEA algorithm.
1462 Xtendend Encryption Tiny Algorithm is a mis-implementation
1463 of the XTEA algorithm for compatibility purposes.
1465 config CRYPTO_TWOFISH
1466 tristate "Twofish cipher algorithm"
1467 select CRYPTO_ALGAPI
1468 select CRYPTO_TWOFISH_COMMON
1470 Twofish cipher algorithm.
1472 Twofish was submitted as an AES (Advanced Encryption Standard)
1473 candidate cipher by researchers at CounterPane Systems. It is a
1474 16 round block cipher supporting key sizes of 128, 192, and 256
1478 <http://www.schneier.com/twofish.html>
1480 config CRYPTO_TWOFISH_COMMON
1483 Common parts of the Twofish cipher algorithm shared by the
1484 generic c and the assembler implementations.
1486 config CRYPTO_TWOFISH_586
1487 tristate "Twofish cipher algorithms (i586)"
1488 depends on (X86 || UML_X86) && !64BIT
1489 select CRYPTO_ALGAPI
1490 select CRYPTO_TWOFISH_COMMON
1492 Twofish cipher algorithm.
1494 Twofish was submitted as an AES (Advanced Encryption Standard)
1495 candidate cipher by researchers at CounterPane Systems. It is a
1496 16 round block cipher supporting key sizes of 128, 192, and 256
1500 <http://www.schneier.com/twofish.html>
1502 config CRYPTO_TWOFISH_X86_64
1503 tristate "Twofish cipher algorithm (x86_64)"
1504 depends on (X86 || UML_X86) && 64BIT
1505 select CRYPTO_ALGAPI
1506 select CRYPTO_TWOFISH_COMMON
1508 Twofish cipher algorithm (x86_64).
1510 Twofish was submitted as an AES (Advanced Encryption Standard)
1511 candidate cipher by researchers at CounterPane Systems. It is a
1512 16 round block cipher supporting key sizes of 128, 192, and 256
1516 <http://www.schneier.com/twofish.html>
1518 config CRYPTO_TWOFISH_X86_64_3WAY
1519 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
1520 depends on X86 && 64BIT
1521 select CRYPTO_ALGAPI
1522 select CRYPTO_TWOFISH_COMMON
1523 select CRYPTO_TWOFISH_X86_64
1524 select CRYPTO_GLUE_HELPER_X86
1528 Twofish cipher algorithm (x86_64, 3-way parallel).
1530 Twofish was submitted as an AES (Advanced Encryption Standard)
1531 candidate cipher by researchers at CounterPane Systems. It is a
1532 16 round block cipher supporting key sizes of 128, 192, and 256
1535 This module provides Twofish cipher algorithm that processes three
1536 blocks parallel, utilizing resources of out-of-order CPUs better.
1539 <http://www.schneier.com/twofish.html>
1541 config CRYPTO_TWOFISH_AVX_X86_64
1542 tristate "Twofish cipher algorithm (x86_64/AVX)"
1543 depends on X86 && 64BIT
1544 select CRYPTO_ALGAPI
1545 select CRYPTO_CRYPTD
1546 select CRYPTO_ABLK_HELPER
1547 select CRYPTO_GLUE_HELPER_X86
1548 select CRYPTO_TWOFISH_COMMON
1549 select CRYPTO_TWOFISH_X86_64
1550 select CRYPTO_TWOFISH_X86_64_3WAY
1554 Twofish cipher algorithm (x86_64/AVX).
1556 Twofish was submitted as an AES (Advanced Encryption Standard)
1557 candidate cipher by researchers at CounterPane Systems. It is a
1558 16 round block cipher supporting key sizes of 128, 192, and 256
1561 This module provides the Twofish cipher algorithm that processes
1562 eight blocks parallel using the AVX Instruction Set.
1565 <http://www.schneier.com/twofish.html>
1567 comment "Compression"
1569 config CRYPTO_DEFLATE
1570 tristate "Deflate compression algorithm"
1571 select CRYPTO_ALGAPI
1575 This is the Deflate algorithm (RFC1951), specified for use in
1576 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1578 You will most probably want this if using IPSec.
1581 tristate "LZO compression algorithm"
1582 select CRYPTO_ALGAPI
1584 select LZO_DECOMPRESS
1586 This is the LZO algorithm.
1589 tristate "842 compression algorithm"
1590 select CRYPTO_ALGAPI
1592 select 842_DECOMPRESS
1594 This is the 842 algorithm.
1597 tristate "LZ4 compression algorithm"
1598 select CRYPTO_ALGAPI
1600 select LZ4_DECOMPRESS
1602 This is the LZ4 algorithm.
1605 tristate "LZ4HC compression algorithm"
1606 select CRYPTO_ALGAPI
1607 select LZ4HC_COMPRESS
1608 select LZ4_DECOMPRESS
1610 This is the LZ4 high compression mode algorithm.
1612 comment "Random Number Generation"
1614 config CRYPTO_ANSI_CPRNG
1615 tristate "Pseudo Random Number Generation for Cryptographic modules"
1619 This option enables the generic pseudo random number generator
1620 for cryptographic modules. Uses the Algorithm specified in
1621 ANSI X9.31 A.2.4. Note that this option must be enabled if
1622 CRYPTO_FIPS is selected
1624 menuconfig CRYPTO_DRBG_MENU
1625 tristate "NIST SP800-90A DRBG"
1627 NIST SP800-90A compliant DRBG. In the following submenu, one or
1628 more of the DRBG types must be selected.
1632 config CRYPTO_DRBG_HMAC
1636 select CRYPTO_SHA256
1638 config CRYPTO_DRBG_HASH
1639 bool "Enable Hash DRBG"
1640 select CRYPTO_SHA256
1642 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1644 config CRYPTO_DRBG_CTR
1645 bool "Enable CTR DRBG"
1647 depends on CRYPTO_CTR
1649 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1653 default CRYPTO_DRBG_MENU
1655 select CRYPTO_JITTERENTROPY
1657 endif # if CRYPTO_DRBG_MENU
1659 config CRYPTO_JITTERENTROPY
1660 tristate "Jitterentropy Non-Deterministic Random Number Generator"
1663 The Jitterentropy RNG is a noise that is intended
1664 to provide seed to another RNG. The RNG does not
1665 perform any cryptographic whitening of the generated
1666 random numbers. This Jitterentropy RNG registers with
1667 the kernel crypto API and can be used by any caller.
1669 config CRYPTO_USER_API
1672 config CRYPTO_USER_API_HASH
1673 tristate "User-space interface for hash algorithms"
1676 select CRYPTO_USER_API
1678 This option enables the user-spaces interface for hash
1681 config CRYPTO_USER_API_SKCIPHER
1682 tristate "User-space interface for symmetric key cipher algorithms"
1684 select CRYPTO_BLKCIPHER
1685 select CRYPTO_USER_API
1687 This option enables the user-spaces interface for symmetric
1688 key cipher algorithms.
1690 config CRYPTO_USER_API_RNG
1691 tristate "User-space interface for random number generator algorithms"
1694 select CRYPTO_USER_API
1696 This option enables the user-spaces interface for random
1697 number generator algorithms.
1699 config CRYPTO_USER_API_AEAD
1700 tristate "User-space interface for AEAD cipher algorithms"
1703 select CRYPTO_USER_API
1705 This option enables the user-spaces interface for AEAD
1708 config CRYPTO_HASH_INFO
1711 source "drivers/crypto/Kconfig"
1712 source crypto/asymmetric_keys/Kconfig
1713 source certs/Kconfig