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
27 depends on (MODULE_SIG || !MODULES)
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
107 select CRYPTO_ALGAPI2
115 tristate "RSA algorithm"
116 select CRYPTO_AKCIPHER
117 select CRYPTO_MANAGER
121 Generic implementation of the RSA public key algorithm.
124 tristate "Diffie-Hellman algorithm"
128 Generic implementation of the Diffie-Hellman algorithm.
131 tristate "ECDH algorithm"
134 Generic implementation of the ECDH algorithm
136 config CRYPTO_MANAGER
137 tristate "Cryptographic algorithm manager"
138 select CRYPTO_MANAGER2
140 Create default cryptographic template instantiations such as
143 config CRYPTO_MANAGER2
144 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
147 select CRYPTO_BLKCIPHER2
148 select CRYPTO_AKCIPHER2
153 tristate "Userspace cryptographic algorithm configuration"
155 select CRYPTO_MANAGER
157 Userspace configuration for cryptographic instantiations such as
160 config CRYPTO_MANAGER_DISABLE_TESTS
161 bool "Disable run-time self tests"
163 depends on CRYPTO_MANAGER2
165 Disable run-time self tests that normally take place at
166 algorithm registration.
168 config CRYPTO_GF128MUL
169 tristate "GF(2^128) multiplication functions"
171 Efficient table driven implementation of multiplications in the
172 field GF(2^128). This is needed by some cypher modes. This
173 option will be selected automatically if you select such a
174 cipher mode. Only select this option by hand if you expect to load
175 an external module that requires these functions.
178 tristate "Null algorithms"
181 These are 'Null' algorithms, used by IPsec, which do nothing.
185 select CRYPTO_ALGAPI2
186 select CRYPTO_BLKCIPHER2
190 tristate "Parallel crypto engine"
193 select CRYPTO_MANAGER
196 This converts an arbitrary crypto algorithm into a parallel
197 algorithm that executes in kernel threads.
199 config CRYPTO_WORKQUEUE
203 tristate "Software async crypto daemon"
204 select CRYPTO_BLKCIPHER
206 select CRYPTO_MANAGER
207 select CRYPTO_WORKQUEUE
209 This is a generic software asynchronous crypto daemon that
210 converts an arbitrary synchronous software crypto algorithm
211 into an asynchronous algorithm that executes in a kernel thread.
213 config CRYPTO_MCRYPTD
214 tristate "Software async multi-buffer crypto daemon"
215 select CRYPTO_BLKCIPHER
217 select CRYPTO_MANAGER
218 select CRYPTO_WORKQUEUE
220 This is a generic software asynchronous crypto daemon that
221 provides the kernel thread to assist multi-buffer crypto
222 algorithms for submitting jobs and flushing jobs in multi-buffer
223 crypto algorithms. Multi-buffer crypto algorithms are executed
224 in the context of this kernel thread and drivers can post
225 their crypto request asynchronously to be processed by this daemon.
227 config CRYPTO_AUTHENC
228 tristate "Authenc support"
230 select CRYPTO_BLKCIPHER
231 select CRYPTO_MANAGER
235 Authenc: Combined mode wrapper for IPsec.
236 This is required for IPSec.
239 tristate "Testing module"
241 select CRYPTO_MANAGER
243 Quick & dirty crypto test module.
245 config CRYPTO_ABLK_HELPER
249 config CRYPTO_GLUE_HELPER_X86
257 comment "Authenticated Encryption with Associated Data"
260 tristate "CCM support"
264 Support for Counter with CBC MAC. Required for IPsec.
267 tristate "GCM/GMAC support"
273 Support for Galois/Counter Mode (GCM) and Galois Message
274 Authentication Code (GMAC). Required for IPSec.
276 config CRYPTO_CHACHA20POLY1305
277 tristate "ChaCha20-Poly1305 AEAD support"
278 select CRYPTO_CHACHA20
279 select CRYPTO_POLY1305
282 ChaCha20-Poly1305 AEAD support, RFC7539.
284 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
285 with the Poly1305 authenticator. It is defined in RFC7539 for use in
289 tristate "Sequence Number IV Generator"
291 select CRYPTO_BLKCIPHER
293 select CRYPTO_RNG_DEFAULT
295 This IV generator generates an IV based on a sequence number by
296 xoring it with a salt. This algorithm is mainly useful for CTR
298 config CRYPTO_ECHAINIV
299 tristate "Encrypted Chain IV Generator"
302 select CRYPTO_RNG_DEFAULT
305 This IV generator generates an IV based on the encryption of
306 a sequence number xored with a salt. This is the default
309 comment "Block modes"
312 tristate "CBC support"
313 select CRYPTO_BLKCIPHER
314 select CRYPTO_MANAGER
316 CBC: Cipher Block Chaining mode
317 This block cipher algorithm is required for IPSec.
320 tristate "CTR support"
321 select CRYPTO_BLKCIPHER
323 select CRYPTO_MANAGER
326 This block cipher algorithm is required for IPSec.
329 tristate "CTS support"
330 select CRYPTO_BLKCIPHER
332 CTS: Cipher Text Stealing
333 This is the Cipher Text Stealing mode as described by
334 Section 8 of rfc2040 and referenced by rfc3962.
335 (rfc3962 includes errata information in its Appendix A)
336 This mode is required for Kerberos gss mechanism support
340 tristate "ECB support"
341 select CRYPTO_BLKCIPHER
342 select CRYPTO_MANAGER
344 ECB: Electronic CodeBook mode
345 This is the simplest block cipher algorithm. It simply encrypts
346 the input block by block.
349 tristate "LRW support"
350 select CRYPTO_BLKCIPHER
351 select CRYPTO_MANAGER
352 select CRYPTO_GF128MUL
354 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
355 narrow block cipher mode for dm-crypt. Use it with cipher
356 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
357 The first 128, 192 or 256 bits in the key are used for AES and the
358 rest is used to tie each cipher block to its logical position.
361 tristate "PCBC support"
362 select CRYPTO_BLKCIPHER
363 select CRYPTO_MANAGER
365 PCBC: Propagating Cipher Block Chaining mode
366 This block cipher algorithm is required for RxRPC.
369 tristate "XTS support"
370 select CRYPTO_BLKCIPHER
371 select CRYPTO_MANAGER
372 select CRYPTO_GF128MUL
374 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
375 key size 256, 384 or 512 bits. This implementation currently
376 can't handle a sectorsize which is not a multiple of 16 bytes.
378 config CRYPTO_KEYWRAP
379 tristate "Key wrapping support"
380 select CRYPTO_BLKCIPHER
382 Support for key wrapping (NIST SP800-38F / RFC3394) without
388 tristate "CMAC support"
390 select CRYPTO_MANAGER
392 Cipher-based Message Authentication Code (CMAC) specified by
393 The National Institute of Standards and Technology (NIST).
395 https://tools.ietf.org/html/rfc4493
396 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
399 tristate "HMAC support"
401 select CRYPTO_MANAGER
403 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
404 This is required for IPSec.
407 tristate "XCBC support"
409 select CRYPTO_MANAGER
411 XCBC: Keyed-Hashing with encryption algorithm
412 http://www.ietf.org/rfc/rfc3566.txt
413 http://csrc.nist.gov/encryption/modes/proposedmodes/
414 xcbc-mac/xcbc-mac-spec.pdf
417 tristate "VMAC support"
419 select CRYPTO_MANAGER
421 VMAC is a message authentication algorithm designed for
422 very high speed on 64-bit architectures.
425 <http://fastcrypto.org/vmac>
430 tristate "CRC32c CRC algorithm"
434 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
435 by iSCSI for header and data digests and by others.
436 See Castagnoli93. Module will be crc32c.
438 config CRYPTO_CRC32C_INTEL
439 tristate "CRC32c INTEL hardware acceleration"
443 In Intel processor with SSE4.2 supported, the processor will
444 support CRC32C implementation using hardware accelerated CRC32
445 instruction. This option will create 'crc32c-intel' module,
446 which will enable any routine to use the CRC32 instruction to
447 gain performance compared with software implementation.
448 Module will be crc32c-intel.
450 config CRYPT_CRC32C_VPMSUM
451 tristate "CRC32c CRC algorithm (powerpc64)"
452 depends on PPC64 && ALTIVEC
456 CRC32c algorithm implemented using vector polynomial multiply-sum
457 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
458 and newer processors for improved performance.
461 config CRYPTO_CRC32C_SPARC64
462 tristate "CRC32c CRC algorithm (SPARC64)"
467 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
471 tristate "CRC32 CRC algorithm"
475 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
476 Shash crypto api wrappers to crc32_le function.
478 config CRYPTO_CRC32_PCLMUL
479 tristate "CRC32 PCLMULQDQ hardware acceleration"
484 From Intel Westmere and AMD Bulldozer processor with SSE4.2
485 and PCLMULQDQ supported, the processor will support
486 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
487 instruction. This option will create 'crc32-plcmul' module,
488 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
489 and gain better performance as compared with the table implementation.
491 config CRYPTO_CRCT10DIF
492 tristate "CRCT10DIF algorithm"
495 CRC T10 Data Integrity Field computation is being cast as
496 a crypto transform. This allows for faster crc t10 diff
497 transforms to be used if they are available.
499 config CRYPTO_CRCT10DIF_PCLMUL
500 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
501 depends on X86 && 64BIT && CRC_T10DIF
504 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
505 CRC T10 DIF PCLMULQDQ computation can be hardware
506 accelerated PCLMULQDQ instruction. This option will create
507 'crct10dif-plcmul' module, which is faster when computing the
508 crct10dif checksum as compared with the generic table implementation.
511 tristate "GHASH digest algorithm"
512 select CRYPTO_GF128MUL
515 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
517 config CRYPTO_POLY1305
518 tristate "Poly1305 authenticator algorithm"
521 Poly1305 authenticator algorithm, RFC7539.
523 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
524 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
525 in IETF protocols. This is the portable C implementation of Poly1305.
527 config CRYPTO_POLY1305_X86_64
528 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
529 depends on X86 && 64BIT
530 select CRYPTO_POLY1305
532 Poly1305 authenticator algorithm, RFC7539.
534 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
535 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
536 in IETF protocols. This is the x86_64 assembler implementation using SIMD
540 tristate "MD4 digest algorithm"
543 MD4 message digest algorithm (RFC1320).
546 tristate "MD5 digest algorithm"
549 MD5 message digest algorithm (RFC1321).
551 config CRYPTO_MD5_OCTEON
552 tristate "MD5 digest algorithm (OCTEON)"
553 depends on CPU_CAVIUM_OCTEON
557 MD5 message digest algorithm (RFC1321) implemented
558 using OCTEON crypto instructions, when available.
560 config CRYPTO_MD5_PPC
561 tristate "MD5 digest algorithm (PPC)"
565 MD5 message digest algorithm (RFC1321) implemented
568 config CRYPTO_MD5_SPARC64
569 tristate "MD5 digest algorithm (SPARC64)"
574 MD5 message digest algorithm (RFC1321) implemented
575 using sparc64 crypto instructions, when available.
577 config CRYPTO_MICHAEL_MIC
578 tristate "Michael MIC keyed digest algorithm"
581 Michael MIC is used for message integrity protection in TKIP
582 (IEEE 802.11i). This algorithm is required for TKIP, but it
583 should not be used for other purposes because of the weakness
587 tristate "RIPEMD-128 digest algorithm"
590 RIPEMD-128 (ISO/IEC 10118-3:2004).
592 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
593 be used as a secure replacement for RIPEMD. For other use cases,
594 RIPEMD-160 should be used.
596 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
597 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
600 tristate "RIPEMD-160 digest algorithm"
603 RIPEMD-160 (ISO/IEC 10118-3:2004).
605 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
606 to be used as a secure replacement for the 128-bit hash functions
607 MD4, MD5 and it's predecessor RIPEMD
608 (not to be confused with RIPEMD-128).
610 It's speed is comparable to SHA1 and there are no known attacks
613 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
614 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
617 tristate "RIPEMD-256 digest algorithm"
620 RIPEMD-256 is an optional extension of RIPEMD-128 with a
621 256 bit hash. It is intended for applications that require
622 longer hash-results, without needing a larger security level
625 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
626 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
629 tristate "RIPEMD-320 digest algorithm"
632 RIPEMD-320 is an optional extension of RIPEMD-160 with a
633 320 bit hash. It is intended for applications that require
634 longer hash-results, without needing a larger security level
637 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
638 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
641 tristate "SHA1 digest algorithm"
644 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
646 config CRYPTO_SHA1_SSSE3
647 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
648 depends on X86 && 64BIT
652 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
653 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
654 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
657 config CRYPTO_SHA256_SSSE3
658 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
659 depends on X86 && 64BIT
663 SHA-256 secure hash standard (DFIPS 180-2) implemented
664 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
665 Extensions version 1 (AVX1), or Advanced Vector Extensions
666 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
667 Instructions) when available.
669 config CRYPTO_SHA512_SSSE3
670 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
671 depends on X86 && 64BIT
675 SHA-512 secure hash standard (DFIPS 180-2) implemented
676 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
677 Extensions version 1 (AVX1), or Advanced Vector Extensions
678 version 2 (AVX2) instructions, when available.
680 config CRYPTO_SHA1_OCTEON
681 tristate "SHA1 digest algorithm (OCTEON)"
682 depends on CPU_CAVIUM_OCTEON
686 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
687 using OCTEON crypto instructions, when available.
689 config CRYPTO_SHA1_SPARC64
690 tristate "SHA1 digest algorithm (SPARC64)"
695 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
696 using sparc64 crypto instructions, when available.
698 config CRYPTO_SHA1_PPC
699 tristate "SHA1 digest algorithm (powerpc)"
702 This is the powerpc hardware accelerated implementation of the
703 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
705 config CRYPTO_SHA1_PPC_SPE
706 tristate "SHA1 digest algorithm (PPC SPE)"
707 depends on PPC && SPE
709 SHA-1 secure hash standard (DFIPS 180-4) implemented
710 using powerpc SPE SIMD instruction set.
712 config CRYPTO_SHA1_MB
713 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
714 depends on X86 && 64BIT
717 select CRYPTO_MCRYPTD
719 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
720 using multi-buffer technique. This algorithm computes on
721 multiple data lanes concurrently with SIMD instructions for
722 better throughput. It should not be enabled by default but
723 used when there is significant amount of work to keep the keep
724 the data lanes filled to get performance benefit. If the data
725 lanes remain unfilled, a flush operation will be initiated to
726 process the crypto jobs, adding a slight latency.
728 config CRYPTO_SHA256_MB
729 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
730 depends on X86 && 64BIT
733 select CRYPTO_MCRYPTD
735 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
736 using multi-buffer technique. This algorithm computes on
737 multiple data lanes concurrently with SIMD instructions for
738 better throughput. It should not be enabled by default but
739 used when there is significant amount of work to keep the keep
740 the data lanes filled to get performance benefit. If the data
741 lanes remain unfilled, a flush operation will be initiated to
742 process the crypto jobs, adding a slight latency.
744 config CRYPTO_SHA512_MB
745 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
746 depends on X86 && 64BIT
749 select CRYPTO_MCRYPTD
751 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
752 using multi-buffer technique. This algorithm computes on
753 multiple data lanes concurrently with SIMD instructions for
754 better throughput. It should not be enabled by default but
755 used when there is significant amount of work to keep the keep
756 the data lanes filled to get performance benefit. If the data
757 lanes remain unfilled, a flush operation will be initiated to
758 process the crypto jobs, adding a slight latency.
761 tristate "SHA224 and SHA256 digest algorithm"
764 SHA256 secure hash standard (DFIPS 180-2).
766 This version of SHA implements a 256 bit hash with 128 bits of
767 security against collision attacks.
769 This code also includes SHA-224, a 224 bit hash with 112 bits
770 of security against collision attacks.
772 config CRYPTO_SHA256_PPC_SPE
773 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
774 depends on PPC && SPE
778 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
779 implemented using powerpc SPE SIMD instruction set.
781 config CRYPTO_SHA256_OCTEON
782 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
783 depends on CPU_CAVIUM_OCTEON
787 SHA-256 secure hash standard (DFIPS 180-2) implemented
788 using OCTEON crypto instructions, when available.
790 config CRYPTO_SHA256_SPARC64
791 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
796 SHA-256 secure hash standard (DFIPS 180-2) implemented
797 using sparc64 crypto instructions, when available.
800 tristate "SHA384 and SHA512 digest algorithms"
803 SHA512 secure hash standard (DFIPS 180-2).
805 This version of SHA implements a 512 bit hash with 256 bits of
806 security against collision attacks.
808 This code also includes SHA-384, a 384 bit hash with 192 bits
809 of security against collision attacks.
811 config CRYPTO_SHA512_OCTEON
812 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
813 depends on CPU_CAVIUM_OCTEON
817 SHA-512 secure hash standard (DFIPS 180-2) implemented
818 using OCTEON crypto instructions, when available.
820 config CRYPTO_SHA512_SPARC64
821 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
826 SHA-512 secure hash standard (DFIPS 180-2) implemented
827 using sparc64 crypto instructions, when available.
830 tristate "SHA3 digest algorithm"
833 SHA-3 secure hash standard (DFIPS 202). It's based on
834 cryptographic sponge function family called Keccak.
837 http://keccak.noekeon.org/
840 tristate "Tiger digest algorithms"
843 Tiger hash algorithm 192, 160 and 128-bit hashes
845 Tiger is a hash function optimized for 64-bit processors while
846 still having decent performance on 32-bit processors.
847 Tiger was developed by Ross Anderson and Eli Biham.
850 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
853 tristate "Whirlpool digest algorithms"
856 Whirlpool hash algorithm 512, 384 and 256-bit hashes
858 Whirlpool-512 is part of the NESSIE cryptographic primitives.
859 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
862 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
864 config CRYPTO_GHASH_CLMUL_NI_INTEL
865 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
866 depends on X86 && 64BIT
869 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
870 The implementation is accelerated by CLMUL-NI of Intel.
875 tristate "AES cipher algorithms"
878 AES cipher algorithms (FIPS-197). AES uses the Rijndael
881 Rijndael appears to be consistently a very good performer in
882 both hardware and software across a wide range of computing
883 environments regardless of its use in feedback or non-feedback
884 modes. Its key setup time is excellent, and its key agility is
885 good. Rijndael's very low memory requirements make it very well
886 suited for restricted-space environments, in which it also
887 demonstrates excellent performance. Rijndael's operations are
888 among the easiest to defend against power and timing attacks.
890 The AES specifies three key sizes: 128, 192 and 256 bits
892 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
894 config CRYPTO_AES_586
895 tristate "AES cipher algorithms (i586)"
896 depends on (X86 || UML_X86) && !64BIT
900 AES cipher algorithms (FIPS-197). AES uses the Rijndael
903 Rijndael appears to be consistently a very good performer in
904 both hardware and software across a wide range of computing
905 environments regardless of its use in feedback or non-feedback
906 modes. Its key setup time is excellent, and its key agility is
907 good. Rijndael's very low memory requirements make it very well
908 suited for restricted-space environments, in which it also
909 demonstrates excellent performance. Rijndael's operations are
910 among the easiest to defend against power and timing attacks.
912 The AES specifies three key sizes: 128, 192 and 256 bits
914 See <http://csrc.nist.gov/encryption/aes/> for more information.
916 config CRYPTO_AES_X86_64
917 tristate "AES cipher algorithms (x86_64)"
918 depends on (X86 || UML_X86) && 64BIT
922 AES cipher algorithms (FIPS-197). AES uses the Rijndael
925 Rijndael appears to be consistently a very good performer in
926 both hardware and software across a wide range of computing
927 environments regardless of its use in feedback or non-feedback
928 modes. Its key setup time is excellent, and its key agility is
929 good. Rijndael's very low memory requirements make it very well
930 suited for restricted-space environments, in which it also
931 demonstrates excellent performance. Rijndael's operations are
932 among the easiest to defend against power and timing attacks.
934 The AES specifies three key sizes: 128, 192 and 256 bits
936 See <http://csrc.nist.gov/encryption/aes/> for more information.
938 config CRYPTO_AES_NI_INTEL
939 tristate "AES cipher algorithms (AES-NI)"
941 select CRYPTO_AES_X86_64 if 64BIT
942 select CRYPTO_AES_586 if !64BIT
944 select CRYPTO_ABLK_HELPER
946 select CRYPTO_GLUE_HELPER_X86 if 64BIT
950 Use Intel AES-NI instructions for AES algorithm.
952 AES cipher algorithms (FIPS-197). AES uses the Rijndael
955 Rijndael appears to be consistently a very good performer in
956 both hardware and software across a wide range of computing
957 environments regardless of its use in feedback or non-feedback
958 modes. Its key setup time is excellent, and its key agility is
959 good. Rijndael's very low memory requirements make it very well
960 suited for restricted-space environments, in which it also
961 demonstrates excellent performance. Rijndael's operations are
962 among the easiest to defend against power and timing attacks.
964 The AES specifies three key sizes: 128, 192 and 256 bits
966 See <http://csrc.nist.gov/encryption/aes/> for more information.
968 In addition to AES cipher algorithm support, the acceleration
969 for some popular block cipher mode is supported too, including
970 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
971 acceleration for CTR.
973 config CRYPTO_AES_SPARC64
974 tristate "AES cipher algorithms (SPARC64)"
979 Use SPARC64 crypto opcodes for AES algorithm.
981 AES cipher algorithms (FIPS-197). AES uses the Rijndael
984 Rijndael appears to be consistently a very good performer in
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.
993 The AES specifies three key sizes: 128, 192 and 256 bits
995 See <http://csrc.nist.gov/encryption/aes/> for more information.
997 In addition to AES cipher algorithm support, the acceleration
998 for some popular block cipher mode is supported too, including
1001 config CRYPTO_AES_PPC_SPE
1002 tristate "AES cipher algorithms (PPC SPE)"
1003 depends on PPC && SPE
1005 AES cipher algorithms (FIPS-197). Additionally the acceleration
1006 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1007 This module should only be used for low power (router) devices
1008 without hardware AES acceleration (e.g. caam crypto). It reduces the
1009 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1010 timining attacks. Nevertheless it might be not as secure as other
1011 architecture specific assembler implementations that work on 1KB
1012 tables or 256 bytes S-boxes.
1014 config CRYPTO_ANUBIS
1015 tristate "Anubis cipher algorithm"
1016 select CRYPTO_ALGAPI
1018 Anubis cipher algorithm.
1020 Anubis is a variable key length cipher which can use keys from
1021 128 bits to 320 bits in length. It was evaluated as a entrant
1022 in the NESSIE competition.
1025 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1026 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
1029 tristate "ARC4 cipher algorithm"
1030 select CRYPTO_BLKCIPHER
1032 ARC4 cipher algorithm.
1034 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1035 bits in length. This algorithm is required for driver-based
1036 WEP, but it should not be for other purposes because of the
1037 weakness of the algorithm.
1039 config CRYPTO_BLOWFISH
1040 tristate "Blowfish cipher algorithm"
1041 select CRYPTO_ALGAPI
1042 select CRYPTO_BLOWFISH_COMMON
1044 Blowfish cipher algorithm, by Bruce Schneier.
1046 This is a variable key length cipher which can use keys from 32
1047 bits to 448 bits in length. It's fast, simple and specifically
1048 designed for use on "large microprocessors".
1051 <http://www.schneier.com/blowfish.html>
1053 config CRYPTO_BLOWFISH_COMMON
1056 Common parts of the Blowfish cipher algorithm shared by the
1057 generic c and the assembler implementations.
1060 <http://www.schneier.com/blowfish.html>
1062 config CRYPTO_BLOWFISH_X86_64
1063 tristate "Blowfish cipher algorithm (x86_64)"
1064 depends on X86 && 64BIT
1065 select CRYPTO_ALGAPI
1066 select CRYPTO_BLOWFISH_COMMON
1068 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1070 This is a variable key length cipher which can use keys from 32
1071 bits to 448 bits in length. It's fast, simple and specifically
1072 designed for use on "large microprocessors".
1075 <http://www.schneier.com/blowfish.html>
1077 config CRYPTO_CAMELLIA
1078 tristate "Camellia cipher algorithms"
1080 select CRYPTO_ALGAPI
1082 Camellia cipher algorithms module.
1084 Camellia is a symmetric key block cipher developed jointly
1085 at NTT and Mitsubishi Electric Corporation.
1087 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1090 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1092 config CRYPTO_CAMELLIA_X86_64
1093 tristate "Camellia cipher algorithm (x86_64)"
1094 depends on X86 && 64BIT
1096 select CRYPTO_ALGAPI
1097 select CRYPTO_GLUE_HELPER_X86
1101 Camellia cipher algorithm module (x86_64).
1103 Camellia is a symmetric key block cipher developed jointly
1104 at NTT and Mitsubishi Electric Corporation.
1106 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1109 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1111 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1112 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1113 depends on X86 && 64BIT
1115 select CRYPTO_ALGAPI
1116 select CRYPTO_CRYPTD
1117 select CRYPTO_ABLK_HELPER
1118 select CRYPTO_GLUE_HELPER_X86
1119 select CRYPTO_CAMELLIA_X86_64
1123 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1125 Camellia is a symmetric key block cipher developed jointly
1126 at NTT and Mitsubishi Electric Corporation.
1128 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1131 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1133 config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1134 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1135 depends on X86 && 64BIT
1137 select CRYPTO_ALGAPI
1138 select CRYPTO_CRYPTD
1139 select CRYPTO_ABLK_HELPER
1140 select CRYPTO_GLUE_HELPER_X86
1141 select CRYPTO_CAMELLIA_X86_64
1142 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1146 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1148 Camellia is a symmetric key block cipher developed jointly
1149 at NTT and Mitsubishi Electric Corporation.
1151 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1154 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1156 config CRYPTO_CAMELLIA_SPARC64
1157 tristate "Camellia cipher algorithm (SPARC64)"
1160 select CRYPTO_ALGAPI
1162 Camellia cipher algorithm module (SPARC64).
1164 Camellia is a symmetric key block cipher developed jointly
1165 at NTT and Mitsubishi Electric Corporation.
1167 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1170 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1172 config CRYPTO_CAST_COMMON
1175 Common parts of the CAST cipher algorithms shared by the
1176 generic c and the assembler implementations.
1179 tristate "CAST5 (CAST-128) cipher algorithm"
1180 select CRYPTO_ALGAPI
1181 select CRYPTO_CAST_COMMON
1183 The CAST5 encryption algorithm (synonymous with CAST-128) is
1184 described in RFC2144.
1186 config CRYPTO_CAST5_AVX_X86_64
1187 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1188 depends on X86 && 64BIT
1189 select CRYPTO_ALGAPI
1190 select CRYPTO_CRYPTD
1191 select CRYPTO_ABLK_HELPER
1192 select CRYPTO_CAST_COMMON
1195 The CAST5 encryption algorithm (synonymous with CAST-128) is
1196 described in RFC2144.
1198 This module provides the Cast5 cipher algorithm that processes
1199 sixteen blocks parallel using the AVX instruction set.
1202 tristate "CAST6 (CAST-256) cipher algorithm"
1203 select CRYPTO_ALGAPI
1204 select CRYPTO_CAST_COMMON
1206 The CAST6 encryption algorithm (synonymous with CAST-256) is
1207 described in RFC2612.
1209 config CRYPTO_CAST6_AVX_X86_64
1210 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1211 depends on X86 && 64BIT
1212 select CRYPTO_ALGAPI
1213 select CRYPTO_CRYPTD
1214 select CRYPTO_ABLK_HELPER
1215 select CRYPTO_GLUE_HELPER_X86
1216 select CRYPTO_CAST_COMMON
1221 The CAST6 encryption algorithm (synonymous with CAST-256) is
1222 described in RFC2612.
1224 This module provides the Cast6 cipher algorithm that processes
1225 eight blocks parallel using the AVX instruction set.
1228 tristate "DES and Triple DES EDE cipher algorithms"
1229 select CRYPTO_ALGAPI
1231 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1233 config CRYPTO_DES_SPARC64
1234 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
1236 select CRYPTO_ALGAPI
1239 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1240 optimized using SPARC64 crypto opcodes.
1242 config CRYPTO_DES3_EDE_X86_64
1243 tristate "Triple DES EDE cipher algorithm (x86-64)"
1244 depends on X86 && 64BIT
1245 select CRYPTO_ALGAPI
1248 Triple DES EDE (FIPS 46-3) algorithm.
1250 This module provides implementation of the Triple DES EDE cipher
1251 algorithm that is optimized for x86-64 processors. Two versions of
1252 algorithm are provided; regular processing one input block and
1253 one that processes three blocks parallel.
1255 config CRYPTO_FCRYPT
1256 tristate "FCrypt cipher algorithm"
1257 select CRYPTO_ALGAPI
1258 select CRYPTO_BLKCIPHER
1260 FCrypt algorithm used by RxRPC.
1262 config CRYPTO_KHAZAD
1263 tristate "Khazad cipher algorithm"
1264 select CRYPTO_ALGAPI
1266 Khazad cipher algorithm.
1268 Khazad was a finalist in the initial NESSIE competition. It is
1269 an algorithm optimized for 64-bit processors with good performance
1270 on 32-bit processors. Khazad uses an 128 bit key size.
1273 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1275 config CRYPTO_SALSA20
1276 tristate "Salsa20 stream cipher algorithm"
1277 select CRYPTO_BLKCIPHER
1279 Salsa20 stream cipher algorithm.
1281 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1282 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1284 The Salsa20 stream cipher algorithm is designed by Daniel J.
1285 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1287 config CRYPTO_SALSA20_586
1288 tristate "Salsa20 stream cipher algorithm (i586)"
1289 depends on (X86 || UML_X86) && !64BIT
1290 select CRYPTO_BLKCIPHER
1292 Salsa20 stream cipher algorithm.
1294 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1295 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1297 The Salsa20 stream cipher algorithm is designed by Daniel J.
1298 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1300 config CRYPTO_SALSA20_X86_64
1301 tristate "Salsa20 stream cipher algorithm (x86_64)"
1302 depends on (X86 || UML_X86) && 64BIT
1303 select CRYPTO_BLKCIPHER
1305 Salsa20 stream cipher algorithm.
1307 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1308 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1310 The Salsa20 stream cipher algorithm is designed by Daniel J.
1311 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1313 config CRYPTO_CHACHA20
1314 tristate "ChaCha20 cipher algorithm"
1315 select CRYPTO_BLKCIPHER
1317 ChaCha20 cipher algorithm, RFC7539.
1319 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1320 Bernstein and further specified in RFC7539 for use in IETF protocols.
1321 This is the portable C implementation of ChaCha20.
1324 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1326 config CRYPTO_CHACHA20_X86_64
1327 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
1328 depends on X86 && 64BIT
1329 select CRYPTO_BLKCIPHER
1330 select CRYPTO_CHACHA20
1332 ChaCha20 cipher algorithm, RFC7539.
1334 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1335 Bernstein and further specified in RFC7539 for use in IETF protocols.
1336 This is the x86_64 assembler implementation using SIMD instructions.
1339 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1342 tristate "SEED cipher algorithm"
1343 select CRYPTO_ALGAPI
1345 SEED cipher algorithm (RFC4269).
1347 SEED is a 128-bit symmetric key block cipher that has been
1348 developed by KISA (Korea Information Security Agency) as a
1349 national standard encryption algorithm of the Republic of Korea.
1350 It is a 16 round block cipher with the key size of 128 bit.
1353 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1355 config CRYPTO_SERPENT
1356 tristate "Serpent cipher algorithm"
1357 select CRYPTO_ALGAPI
1359 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1361 Keys are allowed to be from 0 to 256 bits in length, in steps
1362 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1363 variant of Serpent for compatibility with old kerneli.org code.
1366 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1368 config CRYPTO_SERPENT_SSE2_X86_64
1369 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1370 depends on X86 && 64BIT
1371 select CRYPTO_ALGAPI
1372 select CRYPTO_CRYPTD
1373 select CRYPTO_ABLK_HELPER
1374 select CRYPTO_GLUE_HELPER_X86
1375 select CRYPTO_SERPENT
1379 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1381 Keys are allowed to be from 0 to 256 bits in length, in steps
1384 This module provides Serpent cipher algorithm that processes eight
1385 blocks parallel using SSE2 instruction set.
1388 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1390 config CRYPTO_SERPENT_SSE2_586
1391 tristate "Serpent cipher algorithm (i586/SSE2)"
1392 depends on X86 && !64BIT
1393 select CRYPTO_ALGAPI
1394 select CRYPTO_CRYPTD
1395 select CRYPTO_ABLK_HELPER
1396 select CRYPTO_GLUE_HELPER_X86
1397 select CRYPTO_SERPENT
1401 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1403 Keys are allowed to be from 0 to 256 bits in length, in steps
1406 This module provides Serpent cipher algorithm that processes four
1407 blocks parallel using SSE2 instruction set.
1410 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1412 config CRYPTO_SERPENT_AVX_X86_64
1413 tristate "Serpent cipher algorithm (x86_64/AVX)"
1414 depends on X86 && 64BIT
1415 select CRYPTO_ALGAPI
1416 select CRYPTO_CRYPTD
1417 select CRYPTO_ABLK_HELPER
1418 select CRYPTO_GLUE_HELPER_X86
1419 select CRYPTO_SERPENT
1423 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1425 Keys are allowed to be from 0 to 256 bits in length, in steps
1428 This module provides the Serpent cipher algorithm that processes
1429 eight blocks parallel using the AVX instruction set.
1432 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1434 config CRYPTO_SERPENT_AVX2_X86_64
1435 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1436 depends on X86 && 64BIT
1437 select CRYPTO_ALGAPI
1438 select CRYPTO_CRYPTD
1439 select CRYPTO_ABLK_HELPER
1440 select CRYPTO_GLUE_HELPER_X86
1441 select CRYPTO_SERPENT
1442 select CRYPTO_SERPENT_AVX_X86_64
1446 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1448 Keys are allowed to be from 0 to 256 bits in length, in steps
1451 This module provides Serpent cipher algorithm that processes 16
1452 blocks parallel using AVX2 instruction set.
1455 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1458 tristate "TEA, XTEA and XETA cipher algorithms"
1459 select CRYPTO_ALGAPI
1461 TEA cipher algorithm.
1463 Tiny Encryption Algorithm is a simple cipher that uses
1464 many rounds for security. It is very fast and uses
1467 Xtendend Tiny Encryption Algorithm is a modification to
1468 the TEA algorithm to address a potential key weakness
1469 in the TEA algorithm.
1471 Xtendend Encryption Tiny Algorithm is a mis-implementation
1472 of the XTEA algorithm for compatibility purposes.
1474 config CRYPTO_TWOFISH
1475 tristate "Twofish cipher algorithm"
1476 select CRYPTO_ALGAPI
1477 select CRYPTO_TWOFISH_COMMON
1479 Twofish cipher algorithm.
1481 Twofish was submitted as an AES (Advanced Encryption Standard)
1482 candidate cipher by researchers at CounterPane Systems. It is a
1483 16 round block cipher supporting key sizes of 128, 192, and 256
1487 <http://www.schneier.com/twofish.html>
1489 config CRYPTO_TWOFISH_COMMON
1492 Common parts of the Twofish cipher algorithm shared by the
1493 generic c and the assembler implementations.
1495 config CRYPTO_TWOFISH_586
1496 tristate "Twofish cipher algorithms (i586)"
1497 depends on (X86 || UML_X86) && !64BIT
1498 select CRYPTO_ALGAPI
1499 select CRYPTO_TWOFISH_COMMON
1501 Twofish cipher algorithm.
1503 Twofish was submitted as an AES (Advanced Encryption Standard)
1504 candidate cipher by researchers at CounterPane Systems. It is a
1505 16 round block cipher supporting key sizes of 128, 192, and 256
1509 <http://www.schneier.com/twofish.html>
1511 config CRYPTO_TWOFISH_X86_64
1512 tristate "Twofish cipher algorithm (x86_64)"
1513 depends on (X86 || UML_X86) && 64BIT
1514 select CRYPTO_ALGAPI
1515 select CRYPTO_TWOFISH_COMMON
1517 Twofish cipher algorithm (x86_64).
1519 Twofish was submitted as an AES (Advanced Encryption Standard)
1520 candidate cipher by researchers at CounterPane Systems. It is a
1521 16 round block cipher supporting key sizes of 128, 192, and 256
1525 <http://www.schneier.com/twofish.html>
1527 config CRYPTO_TWOFISH_X86_64_3WAY
1528 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
1529 depends on X86 && 64BIT
1530 select CRYPTO_ALGAPI
1531 select CRYPTO_TWOFISH_COMMON
1532 select CRYPTO_TWOFISH_X86_64
1533 select CRYPTO_GLUE_HELPER_X86
1537 Twofish cipher algorithm (x86_64, 3-way parallel).
1539 Twofish was submitted as an AES (Advanced Encryption Standard)
1540 candidate cipher by researchers at CounterPane Systems. It is a
1541 16 round block cipher supporting key sizes of 128, 192, and 256
1544 This module provides Twofish cipher algorithm that processes three
1545 blocks parallel, utilizing resources of out-of-order CPUs better.
1548 <http://www.schneier.com/twofish.html>
1550 config CRYPTO_TWOFISH_AVX_X86_64
1551 tristate "Twofish cipher algorithm (x86_64/AVX)"
1552 depends on X86 && 64BIT
1553 select CRYPTO_ALGAPI
1554 select CRYPTO_CRYPTD
1555 select CRYPTO_ABLK_HELPER
1556 select CRYPTO_GLUE_HELPER_X86
1557 select CRYPTO_TWOFISH_COMMON
1558 select CRYPTO_TWOFISH_X86_64
1559 select CRYPTO_TWOFISH_X86_64_3WAY
1563 Twofish cipher algorithm (x86_64/AVX).
1565 Twofish was submitted as an AES (Advanced Encryption Standard)
1566 candidate cipher by researchers at CounterPane Systems. It is a
1567 16 round block cipher supporting key sizes of 128, 192, and 256
1570 This module provides the Twofish cipher algorithm that processes
1571 eight blocks parallel using the AVX Instruction Set.
1574 <http://www.schneier.com/twofish.html>
1576 comment "Compression"
1578 config CRYPTO_DEFLATE
1579 tristate "Deflate compression algorithm"
1580 select CRYPTO_ALGAPI
1584 This is the Deflate algorithm (RFC1951), specified for use in
1585 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1587 You will most probably want this if using IPSec.
1590 tristate "LZO compression algorithm"
1591 select CRYPTO_ALGAPI
1592 select CRYPTO_ACOMP2
1594 select LZO_DECOMPRESS
1596 This is the LZO algorithm.
1599 tristate "842 compression algorithm"
1600 select CRYPTO_ALGAPI
1602 select 842_DECOMPRESS
1604 This is the 842 algorithm.
1607 tristate "LZ4 compression algorithm"
1608 select CRYPTO_ALGAPI
1610 select LZ4_DECOMPRESS
1612 This is the LZ4 algorithm.
1615 tristate "LZ4HC compression algorithm"
1616 select CRYPTO_ALGAPI
1617 select LZ4HC_COMPRESS
1618 select LZ4_DECOMPRESS
1620 This is the LZ4 high compression mode algorithm.
1622 comment "Random Number Generation"
1624 config CRYPTO_ANSI_CPRNG
1625 tristate "Pseudo Random Number Generation for Cryptographic modules"
1629 This option enables the generic pseudo random number generator
1630 for cryptographic modules. Uses the Algorithm specified in
1631 ANSI X9.31 A.2.4. Note that this option must be enabled if
1632 CRYPTO_FIPS is selected
1634 menuconfig CRYPTO_DRBG_MENU
1635 tristate "NIST SP800-90A DRBG"
1637 NIST SP800-90A compliant DRBG. In the following submenu, one or
1638 more of the DRBG types must be selected.
1642 config CRYPTO_DRBG_HMAC
1646 select CRYPTO_SHA256
1648 config CRYPTO_DRBG_HASH
1649 bool "Enable Hash DRBG"
1650 select CRYPTO_SHA256
1652 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1654 config CRYPTO_DRBG_CTR
1655 bool "Enable CTR DRBG"
1657 depends on CRYPTO_CTR
1659 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1663 default CRYPTO_DRBG_MENU
1665 select CRYPTO_JITTERENTROPY
1667 endif # if CRYPTO_DRBG_MENU
1669 config CRYPTO_JITTERENTROPY
1670 tristate "Jitterentropy Non-Deterministic Random Number Generator"
1673 The Jitterentropy RNG is a noise that is intended
1674 to provide seed to another RNG. The RNG does not
1675 perform any cryptographic whitening of the generated
1676 random numbers. This Jitterentropy RNG registers with
1677 the kernel crypto API and can be used by any caller.
1679 config CRYPTO_USER_API
1682 config CRYPTO_USER_API_HASH
1683 tristate "User-space interface for hash algorithms"
1686 select CRYPTO_USER_API
1688 This option enables the user-spaces interface for hash
1691 config CRYPTO_USER_API_SKCIPHER
1692 tristate "User-space interface for symmetric key cipher algorithms"
1694 select CRYPTO_BLKCIPHER
1695 select CRYPTO_USER_API
1697 This option enables the user-spaces interface for symmetric
1698 key cipher algorithms.
1700 config CRYPTO_USER_API_RNG
1701 tristate "User-space interface for random number generator algorithms"
1704 select CRYPTO_USER_API
1706 This option enables the user-spaces interface for random
1707 number generator algorithms.
1709 config CRYPTO_USER_API_AEAD
1710 tristate "User-space interface for AEAD cipher algorithms"
1713 select CRYPTO_USER_API
1715 This option enables the user-spaces interface for AEAD
1718 config CRYPTO_HASH_INFO
1721 source "drivers/crypto/Kconfig"
1722 source crypto/asymmetric_keys/Kconfig
1723 source certs/Kconfig