# 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 aLines 1–500 of 1379. Load more
# 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