1904 lines · 54.8 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0## Generic algorithms support#config XOR_BLOCKS	tristate ## async_tx api: hardware offloaded memory transfer/transform support#source "crypto/async_tx/Kconfig" ## Cryptographic API Configuration#menuconfig CRYPTO	tristate "Cryptographic API"	help	  This option provides the core Cryptographic API. if CRYPTO comment "Crypto core or helper" config CRYPTO_FIPS	bool "FIPS 200 compliance"	depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS	depends on (MODULE_SIG || !MODULES)	help	  This option enables the fips boot option which is	  required if you want the system to operate in a FIPS 200	  certification.  You should say no unless you know what	  this is. config CRYPTO_ALGAPI	tristate	select CRYPTO_ALGAPI2	help	  This option provides the API for cryptographic algorithms. config CRYPTO_ALGAPI2	tristate config CRYPTO_AEAD	tristate	select CRYPTO_AEAD2	select CRYPTO_ALGAPI config CRYPTO_AEAD2	tristate	select CRYPTO_ALGAPI2	select CRYPTO_NULL2	select CRYPTO_RNG2 config CRYPTO_SKCIPHER	tristate	select CRYPTO_SKCIPHER2	select CRYPTO_ALGAPI config CRYPTO_SKCIPHER2	tristate	select CRYPTO_ALGAPI2	select CRYPTO_RNG2 config CRYPTO_HASH	tristate	select CRYPTO_HASH2	select CRYPTO_ALGAPI config CRYPTO_HASH2	tristate	select CRYPTO_ALGAPI2 config CRYPTO_RNG	tristate	select CRYPTO_RNG2	select CRYPTO_ALGAPI config CRYPTO_RNG2	tristate	select CRYPTO_ALGAPI2 config CRYPTO_RNG_DEFAULT	tristate	select CRYPTO_DRBG_MENU config CRYPTO_AKCIPHER2	tristate	select CRYPTO_ALGAPI2 config CRYPTO_AKCIPHER	tristate	select CRYPTO_AKCIPHER2	select CRYPTO_ALGAPI config CRYPTO_KPP2	tristate	select CRYPTO_ALGAPI2 config CRYPTO_KPP	tristate	select CRYPTO_ALGAPI	select CRYPTO_KPP2 config CRYPTO_ACOMP2	tristate	select CRYPTO_ALGAPI2	select SGL_ALLOC config CRYPTO_ACOMP	tristate	select CRYPTO_ALGAPI	select CRYPTO_ACOMP2 config CRYPTO_MANAGER	tristate "Cryptographic algorithm manager"	select CRYPTO_MANAGER2	help	  Create default cryptographic template instantiations such as	  cbc(aes). config CRYPTO_MANAGER2	def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)	select CRYPTO_AEAD2	select CRYPTO_HASH2	select CRYPTO_SKCIPHER2	select CRYPTO_AKCIPHER2	select CRYPTO_KPP2	select CRYPTO_ACOMP2 config CRYPTO_USER	tristate "Userspace cryptographic algorithm configuration"	depends on NET	select CRYPTO_MANAGER	help	  Userspace configuration for cryptographic instantiations such as	  cbc(aes). config CRYPTO_MANAGER_DISABLE_TESTS	bool "Disable run-time self tests"	default y	help	  Disable run-time self tests that normally take place at	  algorithm registration. config CRYPTO_MANAGER_EXTRA_TESTS	bool "Enable extra run-time crypto self tests"	depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS	help	  Enable extra run-time self tests of registered crypto algorithms,	  including randomized fuzz tests. 	  This is intended for developer use only, as these tests take much	  longer to run than the normal self tests. config CRYPTO_GF128MUL	tristate config CRYPTO_NULL	tristate "Null algorithms"	select CRYPTO_NULL2	help	  These are 'Null' algorithms, used by IPsec, which do nothing. config CRYPTO_NULL2	tristate	select CRYPTO_ALGAPI2	select CRYPTO_SKCIPHER2	select CRYPTO_HASH2 config CRYPTO_PCRYPT	tristate "Parallel crypto engine"	depends on SMP	select PADATA	select CRYPTO_MANAGER	select CRYPTO_AEAD	help	  This converts an arbitrary crypto algorithm into a parallel	  algorithm that executes in kernel threads. config CRYPTO_CRYPTD	tristate "Software async crypto daemon"	select CRYPTO_SKCIPHER	select CRYPTO_HASH	select CRYPTO_MANAGER	help	  This is a generic software asynchronous crypto daemon that	  converts an arbitrary synchronous software crypto algorithm	  into an asynchronous algorithm that executes in a kernel thread. config CRYPTO_AUTHENC	tristate "Authenc support"	select CRYPTO_AEAD	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	select CRYPTO_HASH	select CRYPTO_NULL	help	  Authenc: Combined mode wrapper for IPsec.	  This is required for IPSec. config CRYPTO_TEST	tristate "Testing module"	depends on m	select CRYPTO_MANAGER	help	  Quick & dirty crypto test module. config CRYPTO_SIMD	tristate	select CRYPTO_CRYPTD config CRYPTO_GLUE_HELPER_X86	tristate	depends on X86	select CRYPTO_SKCIPHER config CRYPTO_ENGINE	tristate comment "Public-key cryptography" config CRYPTO_RSA	tristate "RSA algorithm"	select CRYPTO_AKCIPHER	select CRYPTO_MANAGER	select MPILIB	select ASN1	help	  Generic implementation of the RSA public key algorithm. config CRYPTO_DH	tristate "Diffie-Hellman algorithm"	select CRYPTO_KPP	select MPILIB	help	  Generic implementation of the Diffie-Hellman algorithm. config CRYPTO_ECC	tristate config CRYPTO_ECDH	tristate "ECDH algorithm"	select CRYPTO_ECC	select CRYPTO_KPP	select CRYPTO_RNG_DEFAULT	help	  Generic implementation of the ECDH algorithm config CRYPTO_ECRDSA	tristate "EC-RDSA (GOST 34.10) algorithm"	select CRYPTO_ECC	select CRYPTO_AKCIPHER	select CRYPTO_STREEBOG	select OID_REGISTRY	select ASN1	help	  Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012,	  RFC 7091, ISO/IEC 14888-3:2018) is one of the Russian cryptographic	  standard algorithms (called GOST algorithms). Only signature verification	  is implemented. config CRYPTO_CURVE25519	tristate "Curve25519 algorithm"	select CRYPTO_KPP	select CRYPTO_LIB_CURVE25519_GENERIC config CRYPTO_CURVE25519_X86	tristate "x86_64 accelerated Curve25519 scalar multiplication library"	depends on X86 && 64BIT	select CRYPTO_LIB_CURVE25519_GENERIC	select CRYPTO_ARCH_HAVE_LIB_CURVE25519 comment "Authenticated Encryption with Associated Data" config CRYPTO_CCM	tristate "CCM support"	select CRYPTO_CTR	select CRYPTO_HASH	select CRYPTO_AEAD	select CRYPTO_MANAGER	help	  Support for Counter with CBC MAC. Required for IPsec. config CRYPTO_GCM	tristate "GCM/GMAC support"	select CRYPTO_CTR	select CRYPTO_AEAD	select CRYPTO_GHASH	select CRYPTO_NULL	select CRYPTO_MANAGER	help	  Support for Galois/Counter Mode (GCM) and Galois Message	  Authentication Code (GMAC). Required for IPSec. config CRYPTO_CHACHA20POLY1305	tristate "ChaCha20-Poly1305 AEAD support"	select CRYPTO_CHACHA20	select CRYPTO_POLY1305	select CRYPTO_AEAD	select CRYPTO_MANAGER	help	  ChaCha20-Poly1305 AEAD support, RFC7539. 	  Support for the AEAD wrapper using the ChaCha20 stream cipher combined	  with the Poly1305 authenticator. It is defined in RFC7539 for use in	  IETF protocols. config CRYPTO_AEGIS128	tristate "AEGIS-128 AEAD algorithm"	select CRYPTO_AEAD	select CRYPTO_AES  # for AES S-box tables	help	 Support for the AEGIS-128 dedicated AEAD algorithm. config CRYPTO_AEGIS128_SIMD	bool "Support SIMD acceleration for AEGIS-128"	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)	default y config CRYPTO_AEGIS128_AESNI_SSE2	tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"	depends on X86 && 64BIT	select CRYPTO_AEAD	select CRYPTO_SIMD	help	 AESNI+SSE2 implementation of the AEGIS-128 dedicated AEAD algorithm. config CRYPTO_SEQIV	tristate "Sequence Number IV Generator"	select CRYPTO_AEAD	select CRYPTO_SKCIPHER	select CRYPTO_NULL	select CRYPTO_RNG_DEFAULT	select CRYPTO_MANAGER	help	  This IV generator generates an IV based on a sequence number by	  xoring it with a salt.  This algorithm is mainly useful for CTR config CRYPTO_ECHAINIV	tristate "Encrypted Chain IV Generator"	select CRYPTO_AEAD	select CRYPTO_NULL	select CRYPTO_RNG_DEFAULT	select CRYPTO_MANAGER	help	  This IV generator generates an IV based on the encryption of	  a sequence number xored with a salt.  This is the default	  algorithm for CBC. comment "Block modes" config CRYPTO_CBC	tristate "CBC support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  CBC: Cipher Block Chaining mode	  This block cipher algorithm is required for IPSec. config CRYPTO_CFB	tristate "CFB support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  CFB: Cipher FeedBack mode	  This block cipher algorithm is required for TPM2 Cryptography. config CRYPTO_CTR	tristate "CTR support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  CTR: Counter mode	  This block cipher algorithm is required for IPSec. config CRYPTO_CTS	tristate "CTS support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  CTS: Cipher Text Stealing	  This is the Cipher Text Stealing mode as described by	  Section 8 of rfc2040 and referenced by rfc3962	  (rfc3962 includes errata information in its Appendix A) or	  CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010.	  This mode is required for Kerberos gss mechanism support	  for AES encryption. 	  See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final config CRYPTO_ECB	tristate "ECB support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  ECB: Electronic CodeBook mode	  This is the simplest block cipher algorithm.  It simply encrypts	  the input block by block. config CRYPTO_LRW	tristate "LRW support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	select CRYPTO_GF128MUL	help	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable	  narrow block cipher mode for dm-crypt.  Use it with cipher	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.	  The first 128, 192 or 256 bits in the key are used for AES and the	  rest is used to tie each cipher block to its logical position. config CRYPTO_OFB	tristate "OFB support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  OFB: the Output Feedback mode makes a block cipher into a synchronous	  stream cipher. It generates keystream blocks, which are then XORed	  with the plaintext blocks to get the ciphertext. Flipping a bit in the	  ciphertext produces a flipped bit in the plaintext at the same	  location. This property allows many error correcting codes to function	  normally even when applied before encryption. config CRYPTO_PCBC	tristate "PCBC support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  PCBC: Propagating Cipher Block Chaining mode	  This block cipher algorithm is required for RxRPC. config CRYPTO_XTS	tristate "XTS support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	select CRYPTO_ECB	help	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,	  key size 256, 384 or 512 bits. This implementation currently	  can't handle a sectorsize which is not a multiple of 16 bytes. config CRYPTO_KEYWRAP	tristate "Key wrapping support"	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	help	  Support for key wrapping (NIST SP800-38F / RFC3394) without	  padding. config CRYPTO_NHPOLY1305	tristate	select CRYPTO_HASH	select CRYPTO_LIB_POLY1305_GENERIC config CRYPTO_NHPOLY1305_SSE2	tristate "NHPoly1305 hash function (x86_64 SSE2 implementation)"	depends on X86 && 64BIT	select CRYPTO_NHPOLY1305	help	  SSE2 optimized implementation of the hash function used by the	  Adiantum encryption mode. config CRYPTO_NHPOLY1305_AVX2	tristate "NHPoly1305 hash function (x86_64 AVX2 implementation)"	depends on X86 && 64BIT	select CRYPTO_NHPOLY1305	help	  AVX2 optimized implementation of the hash function used by the	  Adiantum encryption mode. config CRYPTO_ADIANTUM	tristate "Adiantum support"	select CRYPTO_CHACHA20	select CRYPTO_LIB_POLY1305_GENERIC	select CRYPTO_NHPOLY1305	select CRYPTO_MANAGER	help	  Adiantum is a tweakable, length-preserving encryption mode	  designed for fast and secure disk encryption, especially on	  CPUs without dedicated crypto instructions.  It encrypts	  each sector using the XChaCha12 stream cipher, two passes of	  an ε-almost-∆-universal hash function, and an invocation of	  the AES-256 block cipher on a single 16-byte block.  On CPUs	  without AES instructions, Adiantum is much faster than	  AES-XTS. 	  Adiantum's security is provably reducible to that of its	  underlying stream and block ciphers, subject to a security	  bound.  Unlike XTS, Adiantum is a true wide-block encryption	  mode, so it actually provides an even stronger notion of	  security than XTS, subject to the security bound. 	  If unsure, say N. config CRYPTO_ESSIV	tristate "ESSIV support for block encryption"	select CRYPTO_AUTHENC	help	  Encrypted salt-sector initialization vector (ESSIV) is an IV

Lines 1–500 of 1904.