1379 lines · 38.3 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0## Generic algorithms support# ## async_tx api: hardware offloaded memory transfer/transform support#source "crypto/async_tx/Kconfig" ## Cryptographic API Configuration#menuconfig CRYPTO	tristate "Cryptographic API"	select CRYPTO_LIB_UTILS	help	  This option provides the core Cryptographic API. if CRYPTO menu "Crypto core or helper" config CRYPTO_FIPS	bool "FIPS 200 compliance"	depends on CRYPTO_DRBG=y && CRYPTO_SELFTESTS	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_FIPS_NAME	string "FIPS Module Name"	default "Linux Kernel Cryptographic API"	depends on CRYPTO_FIPS	help	  This option sets the FIPS Module name reported by the Crypto API via	  the /proc/sys/crypto/fips_name file. config CRYPTO_FIPS_CUSTOM_VERSION	bool "Use Custom FIPS Module Version"	depends on CRYPTO_FIPS	default n config CRYPTO_FIPS_VERSION	string "FIPS Module Version"	default "(none)"	depends on CRYPTO_FIPS_CUSTOM_VERSION	help	  This option provides the ability to override the FIPS Module Version.	  By default the KERNELRELEASE value is used. 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 config CRYPTO_SIG	tristate	select CRYPTO_SIG2	select CRYPTO_ALGAPI config CRYPTO_SIG2	tristate	select CRYPTO_ALGAPI2 config CRYPTO_SKCIPHER	tristate	select CRYPTO_SKCIPHER2	select CRYPTO_ALGAPI	select CRYPTO_ECB config CRYPTO_SKCIPHER2	tristate	select CRYPTO_ALGAPI2 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_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	default CRYPTO_ALGAPI if CRYPTO_SELFTESTS	select CRYPTO_MANAGER2	help	  This provides the support for instantiating templates such as	  cbc(aes), and the support for the crypto self-tests. config CRYPTO_MANAGER2	def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)	select CRYPTO_ACOMP2 if CRYPTO_SELFTESTS	select CRYPTO_AEAD2 if CRYPTO_SELFTESTS	select CRYPTO_AKCIPHER2 if CRYPTO_SELFTESTS	select CRYPTO_SIG2 if CRYPTO_SELFTESTS	select CRYPTO_HASH2 if CRYPTO_SELFTESTS	select CRYPTO_KPP2 if CRYPTO_SELFTESTS	select CRYPTO_RNG2 if CRYPTO_SELFTESTS	select CRYPTO_SKCIPHER2 if CRYPTO_SELFTESTS config CRYPTO_USER	tristate "Userspace cryptographic algorithm configuration"	depends on NET	select CRYPTO_MANAGER	select CRYPTO_RNG	help	  Userspace configuration for cryptographic instantiations such as	  cbc(aes). config CRYPTO_SELFTESTS	bool "Enable cryptographic self-tests"	depends on EXPERT	help	  Enable the cryptographic self-tests. 	  The cryptographic self-tests run at boot time, or at algorithm	  registration time if algorithms are dynamically loaded later. 	  There are two main use cases for these tests: 	  - Development and pre-release testing.  In this case, also enable	    CRYPTO_SELFTESTS_FULL to get the full set of tests.  All crypto code	    in the kernel is expected to pass the full set of tests. 	  - Production kernels, to help prevent buggy drivers from being used	    and/or meet FIPS 140-3 pre-operational testing requirements.  In	    this case, enable CRYPTO_SELFTESTS but not CRYPTO_SELFTESTS_FULL. config CRYPTO_SELFTESTS_FULL	bool "Enable the full set of cryptographic self-tests"	depends on CRYPTO_SELFTESTS	help	  Enable the full set of cryptographic self-tests for each algorithm. 	  The full set of tests should be enabled for development and	  pre-release testing, but not in production kernels. 	  All crypto code in the kernel is expected to pass the full tests. config CRYPTO_NULL	tristate "Null algorithms"	select CRYPTO_ALGAPI	select CRYPTO_SKCIPHER	select CRYPTO_HASH	help	  These are 'Null' algorithms, used by IPsec, which do nothing. 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_AEAD	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	help	  Authenc: Combined mode wrapper for IPsec. 	  This is required for IPSec ESP (XFRM_ESP). config CRYPTO_KRB5ENC	tristate "Kerberos 5 combined hash+cipher support"	select CRYPTO_AEAD	select CRYPTO_SKCIPHER	select CRYPTO_MANAGER	select CRYPTO_HASH	help	  Combined hash and cipher support for Kerberos 5 RFC3961 simplified	  profile.  This is required for Kerberos 5-style encryption, used by	  sunrpc/NFS and rxrpc/AFS. config CRYPTO_BENCHMARK	tristate "Crypto benchmarking module"	depends on m || EXPERT	select CRYPTO_AEAD	select CRYPTO_HASH	select CRYPTO_MANAGER	select CRYPTO_SKCIPHER	help	  Quick & dirty crypto benchmarking module. 	  This is mainly intended for use by people developing cryptographic	  algorithms in the kernel.  It should not be enabled in production	  kernels. config CRYPTO_SIMD	tristate	select CRYPTO_AEAD	select CRYPTO_CRYPTD config CRYPTO_ENGINE	tristate	select CRYPTO_AEAD	select CRYPTO_AKCIPHER	select CRYPTO_HASH	select CRYPTO_KPP	select CRYPTO_SKCIPHER endmenu menu "Public-key cryptography" config CRYPTO_RSA	tristate "RSA (Rivest-Shamir-Adleman)"	select CRYPTO_AKCIPHER	select CRYPTO_MANAGER	select CRYPTO_SIG	select MPILIB	select ASN1	help	  RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017) config CRYPTO_DH	tristate "DH (Diffie-Hellman)"	select CRYPTO_KPP	select MPILIB	help	  DH (Diffie-Hellman) key exchange algorithm config CRYPTO_DH_RFC7919_GROUPS	bool "RFC 7919 FFDHE groups"	depends on CRYPTO_DH	help	  FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups	  defined in RFC7919. 	  Support these finite-field groups in DH key exchanges:	  - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192 	  If unsure, say N. config CRYPTO_ECC	tristate config CRYPTO_ECDH	tristate "ECDH (Elliptic Curve Diffie-Hellman)"	select CRYPTO_ECC	select CRYPTO_KPP	help	  ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm	  using curves P-192, P-256, and P-384 (FIPS 186) config CRYPTO_ECDSA	tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)"	select CRYPTO_ECC	select CRYPTO_SIG	select ASN1	help	  ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186,	  ISO/IEC 14888-3)	  using curves P-192, P-256, P-384 and P-521 	  Only signature verification is implemented. config CRYPTO_ECRDSA	tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)"	select CRYPTO_ECC	select CRYPTO_SIG	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) 	  One of the Russian cryptographic standard algorithms (called GOST	  algorithms). Only signature verification is implemented. config CRYPTO_MLDSA	tristate "ML-DSA (Module-Lattice-Based Digital Signature Algorithm)"	select CRYPTO_SIG	select CRYPTO_LIB_MLDSA	help	  ML-DSA (Module-Lattice-Based Digital Signature Algorithm) (FIPS-204). 	  Only signature verification is implemented. endmenu menu "Block ciphers" config CRYPTO_AES	tristate "AES (Advanced Encryption Standard)"	select CRYPTO_ALGAPI	select CRYPTO_LIB_AES	select CRYPTO_LIB_AES_CBC if CRYPTO_CBC != n || CRYPTO_CTS != n	select CRYPTO_LIB_AES_CBC_MACS if CRYPTO_CMAC != n || CRYPTO_XCBC != n || CRYPTO_CCM != n	select CRYPTO_LIB_AES_CCM if CRYPTO_CCM != n	select CRYPTO_LIB_AES_CTR if CRYPTO_CTR != n || CRYPTO_XCTR != n	select CRYPTO_LIB_AES_ECB if CRYPTO_ECB != n	select CRYPTO_LIB_AES_GCM if CRYPTO_GCM != n	select CRYPTO_LIB_AES_XTS if CRYPTO_XTS != n	select CRYPTO_AEAD if CRYPTO_GCM != n || CRYPTO_CCM != n	select CRYPTO_HASH if CRYPTO_CMAC != n || CRYPTO_XCBC != n || CRYPTO_CCM != n	# CRYPTO_SKCIPHER should be selected only if a mode that needs it is	# enabled, but that doesn't work due to a recursive dependency caused by	# CRYPTO_SKCIPHER selecting CRYPTO_ECB.  So just always select it.	select CRYPTO_SKCIPHER	help	  AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 	  Rijndael appears to be consistently a very good performer in	  both hardware and software across a wide range of computing	  environments regardless of its use in feedback or non-feedback	  modes. Its key setup time is excellent, and its key agility is	  good. Rijndael's very low memory requirements make it very well	  suited for restricted-space environments, in which it also	  demonstrates excellent performance. Rijndael's operations are	  among the easiest to defend against power and timing attacks. 	  The AES specifies three key sizes: 128, 192 and 256 bits config CRYPTO_ANUBIS	tristate "Anubis"	depends on CRYPTO_USER_API_ENABLE_OBSOLETE	select CRYPTO_ALGAPI	help	  Anubis cipher algorithm 	  Anubis is a variable key length cipher which can use keys from	  128 bits to 320 bits in length.  It was evaluated as a entrant	  in the NESSIE competition. 	  See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html	  for further information. config CRYPTO_ARIA	tristate "ARIA"	select CRYPTO_ALGAPI	help	  ARIA cipher algorithm (RFC5794) 	  ARIA is a standard encryption algorithm of the Republic of Korea.	  The ARIA specifies three key sizes and rounds.	  128-bit: 12 rounds.	  192-bit: 14 rounds.	  256-bit: 16 rounds. 	  See:	  https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do config CRYPTO_BLOWFISH	tristate "Blowfish"	select CRYPTO_ALGAPI	select CRYPTO_BLOWFISH_COMMON	help	  Blowfish cipher algorithm, by Bruce Schneier 	  This is a variable key length cipher which can use keys from 32	  bits to 448 bits in length.  It's fast, simple and specifically	  designed for use on "large microprocessors". 	  See https://www.schneier.com/blowfish.html for further information. config CRYPTO_BLOWFISH_COMMON	tristate	help	  Common parts of the Blowfish cipher algorithm shared by the	  generic c and the assembler implementations. config CRYPTO_CAMELLIA	tristate "Camellia"	select CRYPTO_ALGAPI	help	  Camellia cipher algorithms (ISO/IEC 18033-3) 	  Camellia is a symmetric key block cipher developed jointly	  at NTT and Mitsubishi Electric Corporation. 	  The Camellia specifies three key sizes: 128, 192 and 256 bits. 	  See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information. config CRYPTO_CAST_COMMON	tristate	help	  Common parts of the CAST cipher algorithms shared by the	  generic c and the assembler implementations. config CRYPTO_CAST5	tristate "CAST5 (CAST-128)"	select CRYPTO_ALGAPI	select CRYPTO_CAST_COMMON	help	  CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3) config CRYPTO_CAST6	tristate "CAST6 (CAST-256)"	select CRYPTO_ALGAPI	select CRYPTO_CAST_COMMON	help	  CAST6 (CAST-256) encryption algorithm (RFC2612) config CRYPTO_DES	tristate "DES and Triple DES EDE"	select CRYPTO_ALGAPI	select CRYPTO_LIB_DES	help	  DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and	  Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3)	  cipher algorithms config CRYPTO_KHAZAD	tristate "Khazad"	depends on CRYPTO_USER_API_ENABLE_OBSOLETE	select CRYPTO_ALGAPI	help	  Khazad cipher algorithm 	  Khazad was a finalist in the initial NESSIE competition.  It is	  an algorithm optimized for 64-bit processors with good performance	  on 32-bit processors.  Khazad uses an 128 bit key size. 	  See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html	  for further information. config CRYPTO_SEED	tristate "SEED"	depends on CRYPTO_USER_API_ENABLE_OBSOLETE	select CRYPTO_ALGAPI	help	  SEED cipher algorithm (RFC4269, ISO/IEC 18033-3) 	  SEED is a 128-bit symmetric key block cipher that has been	  developed by KISA (Korea Information Security Agency) as a

Lines 1–500 of 1379.