# SPDX-License-Identifier: GPL-2.0
#
# Generic algorithms support
#
config [31mCONFIG_XOR_BLOCKS[0m
tristate
#
# async_tx api: hardware offloaded memory transfer/transform support
#
source "crypto/async_tx/Kconfig"
#
# Cryptographic API Configuration
#
menuconfig [31mCONFIG_CRYPTO[0m
tristate "Cryptographic API"
help
This option provides the core Cryptographic API.
if [31mCONFIG_CRYPTO[0m
comment "Crypto core or helper"
config [31mCONFIG_CRYPTO_FIPS[0m
bool "FIPS 200 compliance"
depends on ([31mCONFIG_CRYPTO_ANSI_CPRNG[0m || [31mCONFIG_CRYPTO_DRBG[0m) && ![31mCONFIG_CRYPTO_MANAGER_DISABLE_TESTS[0m
depends on ([31mCONFIG_MODULE_SIG[0m || ![31mCONFIG_MODULES[0m)
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 [31mCONFIG_CRYPTO_ALGAPI[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
help
This option provides the API for cryptographic algorithms.
config [31mCONFIG_CRYPTO_ALGAPI2[0m
tristate
config [31mCONFIG_CRYPTO_AEAD[0m
tristate
select [31mCONFIG_CRYPTO_AEAD2[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
config [31mCONFIG_CRYPTO_AEAD2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
select [31mCONFIG_CRYPTO_NULL2[0m
select [31mCONFIG_CRYPTO_RNG2[0m
config [31mCONFIG_CRYPTO_BLKCIPHER[0m
tristate
select [31mCONFIG_CRYPTO_BLKCIPHER2[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
config [31mCONFIG_CRYPTO_BLKCIPHER2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
select [31mCONFIG_CRYPTO_RNG2[0m
config [31mCONFIG_CRYPTO_HASH[0m
tristate
select [31mCONFIG_CRYPTO_HASH2[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
config [31mCONFIG_CRYPTO_HASH2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
config [31mCONFIG_CRYPTO_RNG[0m
tristate
select [31mCONFIG_CRYPTO_RNG2[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
config [31mCONFIG_CRYPTO_RNG2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
config [31mCONFIG_CRYPTO_RNG_DEFAULT[0m
tristate
select [31mCONFIG_CRYPTO_DRBG_MENU[0m
config [31mCONFIG_CRYPTO_AKCIPHER2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
config [31mCONFIG_CRYPTO_AKCIPHER[0m
tristate
select [31mCONFIG_CRYPTO_AKCIPHER2[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
config [31mCONFIG_CRYPTO_KPP2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
config [31mCONFIG_CRYPTO_KPP[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_KPP2[0m
config [31mCONFIG_CRYPTO_ACOMP2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
select [31mCONFIG_SGL_ALLOC[0m
config [31mCONFIG_CRYPTO_ACOMP[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
config [31mCONFIG_CRYPTO_MANAGER[0m
tristate "Cryptographic algorithm manager"
select [31mCONFIG_CRYPTO_MANAGER2[0m
help
Create default cryptographic template instantiations such as
cbc(aes).
config [31mCONFIG_CRYPTO_MANAGER2[0m
def_tristate [31mCONFIG_CRYPTO_MANAGER[0m || ([31mCONFIG_CRYPTO_MANAGER[0m!=n && [31mCONFIG_CRYPTO_ALGAPI[0m=y)
select [31mCONFIG_CRYPTO_AEAD2[0m
select [31mCONFIG_CRYPTO_HASH2[0m
select [31mCONFIG_CRYPTO_BLKCIPHER2[0m
select [31mCONFIG_CRYPTO_AKCIPHER2[0m
select [31mCONFIG_CRYPTO_KPP2[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
config [31mCONFIG_CRYPTO_USER[0m
tristate "Userspace cryptographic algorithm configuration"
depends on [31mCONFIG_NET[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Userspace configuration for cryptographic instantiations such as
cbc(aes).
if [31mCONFIG_CRYPTO_MANAGER2[0m
config [31mCONFIG_CRYPTO_MANAGER_DISABLE_TESTS[0m
bool "Disable run-time self tests"
default y
help
Disable run-time self tests that normally take place at
algorithm registration.
config [31mCONFIG_CRYPTO_MANAGER_EXTRA_TESTS[0m
bool "Enable extra run-time crypto self tests"
depends on [31mCONFIG_DEBUG_KERNEL[0m && ![31mCONFIG_CRYPTO_MANAGER_DISABLE_TESTS[0m
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.
endif # if [31mCONFIG_CRYPTO_MANAGER2[0m
config [31mCONFIG_CRYPTO_GF128MUL[0m
tristate
config [31mCONFIG_CRYPTO_NULL[0m
tristate "Null algorithms"
select [31mCONFIG_CRYPTO_NULL2[0m
help
These are 'Null' algorithms, used by IPsec, which do nothing.
config [31mCONFIG_CRYPTO_NULL2[0m
tristate
select [31mCONFIG_CRYPTO_ALGAPI2[0m
select [31mCONFIG_CRYPTO_BLKCIPHER2[0m
select [31mCONFIG_CRYPTO_HASH2[0m
config [31mCONFIG_CRYPTO_PCRYPT[0m
tristate "Parallel crypto engine"
depends on [31mCONFIG_SMP[0m
select [31mCONFIG_PADATA[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
select [31mCONFIG_CRYPTO_AEAD[0m
help
This converts an arbitrary crypto algorithm into a parallel
algorithm that executes in kernel threads.
config [31mCONFIG_CRYPTO_CRYPTD[0m
tristate "Software async crypto daemon"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_AUTHENC[0m
tristate "Authenc support"
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_NULL[0m
help
Authenc: Combined mode wrapper for IPsec.
This is required for IPSec.
config [31mCONFIG_CRYPTO_TEST[0m
tristate "Testing module"
depends on m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Quick & dirty crypto test module.
config [31mCONFIG_CRYPTO_SIMD[0m
tristate
select [31mCONFIG_CRYPTO_CRYPTD[0m
config [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
tristate
depends on [31mCONFIG_X86[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
config [31mCONFIG_CRYPTO_ENGINE[0m
tristate
comment "Public-key cryptography"
config [31mCONFIG_CRYPTO_RSA[0m
tristate "RSA algorithm"
select [31mCONFIG_CRYPTO_AKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
select [31mCONFIG_MPILIB[0m
select [31mCONFIG_ASN1[0m
help
Generic implementation of the RSA public key algorithm.
config [31mCONFIG_CRYPTO_DH[0m
tristate "Diffie-Hellman algorithm"
select [31mCONFIG_CRYPTO_KPP[0m
select [31mCONFIG_MPILIB[0m
help
Generic implementation of the Diffie-Hellman algorithm.
config [31mCONFIG_CRYPTO_ECC[0m
tristate
config [31mCONFIG_CRYPTO_ECDH[0m
tristate "ECDH algorithm"
select [31mCONFIG_CRYPTO_ECC[0m
select [31mCONFIG_CRYPTO_KPP[0m
select [31mCONFIG_CRYPTO_RNG_DEFAULT[0m
help
Generic implementation of the ECDH algorithm
config [31mCONFIG_CRYPTO_ECRDSA[0m
tristate "EC-RDSA (GOST 34.10) algorithm"
select [31mCONFIG_CRYPTO_ECC[0m
select [31mCONFIG_CRYPTO_AKCIPHER[0m
select [31mCONFIG_CRYPTO_STREEBOG[0m
select [31mCONFIG_OID_REGISTRY[0m
select [31mCONFIG_ASN1[0m
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.
comment "Authenticated Encryption with Associated Data"
config [31mCONFIG_CRYPTO_CCM[0m
tristate "CCM support"
select [31mCONFIG_CRYPTO_CTR[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Support for Counter with CBC [31mCONFIG_MAC[0m. Required for IPsec.
config [31mCONFIG_CRYPTO_GCM[0m
tristate "GCM/GMAC support"
select [31mCONFIG_CRYPTO_CTR[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_GHASH[0m
select [31mCONFIG_CRYPTO_NULL[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Support for Galois/Counter Mode (GCM) and Galois Message
Authentication Code (GMAC). Required for IPSec.
config [31mCONFIG_CRYPTO_CHACHA20POLY1305[0m
tristate "ChaCha20-Poly1305 AEAD support"
select [31mCONFIG_CRYPTO_CHACHA20[0m
select [31mCONFIG_CRYPTO_POLY1305[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_AEGIS128[0m
tristate "AEGIS-128 AEAD algorithm"
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_AES[0m # for AES S-box tables
help
Support for the AEGIS-128 dedicated AEAD algorithm.
config [31mCONFIG_CRYPTO_AEGIS128_SIMD[0m
bool "Support SIMD acceleration for AEGIS-128"
depends on [31mCONFIG_CRYPTO_AEGIS128[0m && (([31mCONFIG_ARM[0m || [31mCONFIG_ARM64[0m) && [31mCONFIG_KERNEL_MODE_NEON[0m)
default y
config [31mCONFIG_CRYPTO_AEGIS128_AESNI_SSE2[0m
tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_SIMD[0m
help
AESNI+SSE2 implementation of the AEGIS-128 dedicated AEAD algorithm.
config [31mCONFIG_CRYPTO_SEQIV[0m
tristate "Sequence Number IV Generator"
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_NULL[0m
select [31mCONFIG_CRYPTO_RNG_DEFAULT[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_ECHAINIV[0m
tristate "Encrypted Chain IV Generator"
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_NULL[0m
select [31mCONFIG_CRYPTO_RNG_DEFAULT[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_CBC[0m
tristate "CBC support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
CBC: Cipher Block Chaining mode
This block cipher algorithm is required for IPSec.
config [31mCONFIG_CRYPTO_CFB[0m
tristate "CFB support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
CFB: Cipher FeedBack mode
This block cipher algorithm is required for TPM2 Cryptography.
config [31mCONFIG_CRYPTO_CTR[0m
tristate "CTR support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_SEQIV[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
CTR: Counter mode
This block cipher algorithm is required for IPSec.
config [31mCONFIG_CRYPTO_CTS[0m
tristate "CTS support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_A[0m) 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 [31mCONFIG_CRYPTO_ECB[0m
tristate "ECB support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
ECB: Electronic CodeBook mode
This is the simplest block cipher algorithm. It simply encrypts
the input block by block.
config [31mCONFIG_CRYPTO_LRW[0m
tristate "LRW support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
select [31mCONFIG_CRYPTO_GF128MUL[0m
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 [31mCONFIG_CRYPTO_OFB[0m
tristate "OFB support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_PCBC[0m
tristate "PCBC support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
PCBC: Propagating Cipher Block Chaining mode
This block cipher algorithm is required for RxRPC.
config [31mCONFIG_CRYPTO_XTS[0m
tristate "XTS support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
select [31mCONFIG_CRYPTO_ECB[0m
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 [31mCONFIG_CRYPTO_KEYWRAP[0m
tristate "Key wrapping support"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Support for key wrapping (NIST SP800-38F / RFC3394) without
padding.
config [31mCONFIG_CRYPTO_NHPOLY1305[0m
tristate
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_POLY1305[0m
config [31mCONFIG_CRYPTO_NHPOLY1305_SSE2[0m
tristate "NHPoly1305 hash function (x86_64 SSE2 implementation)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_NHPOLY1305[0m
help
SSE2 optimized implementation of the hash function used by the
Adiantum encryption mode.
config [31mCONFIG_CRYPTO_NHPOLY1305_AVX2[0m
tristate "NHPoly1305 hash function (x86_64 AVX2 implementation)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_NHPOLY1305[0m
help
AVX2 optimized implementation of the hash function used by the
Adiantum encryption mode.
config [31mCONFIG_CRYPTO_ADIANTUM[0m
tristate "Adiantum support"
select [31mCONFIG_CRYPTO_CHACHA20[0m
select [31mCONFIG_CRYPTO_POLY1305[0m
select [31mCONFIG_CRYPTO_NHPOLY1305[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
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 [31mCONFIG_CRYPTO_ESSIV[0m
tristate "ESSIV support for block encryption"
select [31mCONFIG_CRYPTO_AUTHENC[0m
help
Encrypted salt-sector initialization vector (ESSIV) is an IV
generation method that is used in some cases by fscrypt and/or
dm-crypt. It uses the hash of the block encryption key as the
symmetric key for a block encryption pass applied to the input
IV, making low entropy IV sources more suitable for block
encryption.
This driver implements a crypto API template that can be
instantiated either as a skcipher or as a aead (depending on the
type of the first template argument), and which defers encryption
and decryption requests to the encapsulated cipher after applying
ESSIV to the input IV. Note that in the aead case, it is assumed
that the keys are presented in the same format used by the authenc
template, and that the IV appears at the end of the authenticated
associated data (AAD) region (which is how dm-crypt uses it.)
Note that the use of ESSIV is not recommended for new deployments,
and so this only needs to be enabled when interoperability with
existing encrypted volumes of filesystems is required, or when
building for a particular system that requires it (e.g., when
the SoC in question has accelerated CBC but not XTS, making CBC
combined with ESSIV the only feasible mode for h/w accelerated
block encryption)
comment "Hash modes"
config [31mCONFIG_CRYPTO_CMAC[0m
tristate "CMAC support"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
Cipher-based Message Authentication Code (CMAC) specified by
The National Institute of Standards and Technology (NIST).
https://tools.ietf.org/html/rfc4493
http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
config [31mCONFIG_CRYPTO_HMAC[0m
tristate "HMAC support"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
HMAC: Keyed-Hashing for Message Authentication (RFC2104).
This is required for IPSec.
config [31mCONFIG_CRYPTO_XCBC[0m
tristate "XCBC support"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
XCBC: Keyed-Hashing with encryption algorithm
http://www.ietf.org/rfc/rfc3566.txt
http://csrc.nist.gov/encryption/modes/proposedmodes/
xcbc-mac/xcbc-mac-spec.pdf
config [31mCONFIG_CRYPTO_VMAC[0m
tristate "VMAC support"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_MANAGER[0m
help
VMAC is a message authentication algorithm designed for
very high speed on 64-bit architectures.
See also:
<http://fastcrypto.org/vmac>
comment "Digest"
config [31mCONFIG_CRYPTO_CRC32C[0m
tristate "CRC32c CRC algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRC32[0m
help
Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
by iSCSI for header and data digests and by others.
See Castagnoli93. Module will be crc32c.
config [31mCONFIG_CRYPTO_CRC32C_INTEL[0m
tristate "CRC32c INTEL hardware acceleration"
depends on [31mCONFIG_X86[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
In Intel processor with SSE4.2 supported, the processor will
support CRC32C implementation using hardware accelerated [31mCONFIG_CRC32[0m
instruction. This option will create 'crc32c-intel' module,
which will enable any routine to use the [31mCONFIG_CRC32[0m instruction to
gain performance compared with software implementation.
Module will be crc32c-intel.
config [31mCONFIG_CRYPTO_CRC32C_VPMSUM[0m
tristate "CRC32c CRC algorithm (powerpc64)"
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_ALTIVEC[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRC32[0m
help
CRC32c algorithm implemented using vector polynomial multiply-sum
(vpmsum) instructions, introduced in POWER8. Enable on POWER8
and newer processors for improved performance.
config [31mCONFIG_CRYPTO_CRC32C_SPARC64[0m
tristate "CRC32c CRC algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRC32[0m
help
CRC32c CRC algorithm implemented using sparc64 crypto instructions,
when available.
config [31mCONFIG_CRYPTO_CRC32[0m
tristate "CRC32 CRC algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRC32[0m
help
CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
Shash crypto api wrappers to crc32_le function.
config [31mCONFIG_CRYPTO_CRC32_PCLMUL[0m
tristate "CRC32 PCLMULQDQ hardware acceleration"
depends on [31mCONFIG_X86[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRC32[0m
help
From Intel Westmere and AMD Bulldozer processor with SSE4.2
and PCLMULQDQ supported, the processor will support
[31mCONFIG_CRC32[0m PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
instruction. This option will create 'crc32-pclmul' module,
which will enable any routine to use the CRC-32-IEEE 802.3 checksum
and gain better performance as compared with the table implementation.
config [31mCONFIG_CRYPTO_CRC32_MIPS[0m
tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
depends on [31mCONFIG_MIPS_CRC_SUPPORT[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
CRC32c and [31mCONFIG_CRC32[0m CRC algorithms implemented using mips crypto
instructions, when available.
config [31mCONFIG_CRYPTO_XXHASH[0m
tristate "xxHash hash algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_XXHASH[0m
help
xxHash non-cryptographic hash algorithm. Extremely fast, working at
speeds close to RAM limits.
config [31mCONFIG_CRYPTO_CRCT10DIF[0m
tristate "CRCT10DIF algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
CRC T10 Data Integrity Field computation is being cast as
a crypto transform. This allows for faster crc t10 diff
transforms to be used if they are available.
config [31mCONFIG_CRYPTO_CRCT10DIF_PCLMUL[0m
tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m && [31mCONFIG_CRC_T10DIF[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
CRC T10 DIF PCLMULQDQ computation can be hardware
accelerated PCLMULQDQ instruction. This option will create
'crct10dif-pclmul' module, which is faster when computing the
crct10dif checksum as compared with the generic table implementation.
config [31mCONFIG_CRYPTO_CRCT10DIF_VPMSUM[0m
tristate "CRC32T10DIF powerpc64 hardware acceleration"
depends on [31mCONFIG_PPC64[0m && [31mCONFIG_ALTIVEC[0m && [31mCONFIG_CRC_T10DIF[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
CRC10T10DIF algorithm implemented using vector polynomial
multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
POWER8 and newer processors for improved performance.
config [31mCONFIG_CRYPTO_VPMSUM_TESTER[0m
tristate "Powerpc64 vpmsum hardware acceleration tester"
depends on [31mCONFIG_CRYPTO_CRCT10DIF_VPMSUM[0m && [31mCONFIG_CRYPTO_CRC32C_VPMSUM[0m
help
Stress test for CRC32c and CRC-T10DIF algorithms implemented with
POWER8 vpmsum instructions.
Unless you are testing these algorithms, you don't need this.
config [31mCONFIG_CRYPTO_GHASH[0m
tristate "GHASH hash function"
select [31mCONFIG_CRYPTO_GF128MUL[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
GHASH is the hash function used in GCM (Galois/Counter Mode).
It is not a general-purpose cryptographic hash function.
config [31mCONFIG_CRYPTO_POLY1305[0m
tristate "Poly1305 authenticator algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
Poly1305 authenticator algorithm, RFC7539.
Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
in IETF protocols. This is the portable [31mCONFIG_C[0m implementation of Poly1305.
config [31mCONFIG_CRYPTO_POLY1305_X86_64[0m
tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_POLY1305[0m
help
Poly1305 authenticator algorithm, RFC7539.
Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
in IETF protocols. This is the x86_64 assembler implementation using SIMD
instructions.
config [31mCONFIG_CRYPTO_MD4[0m
tristate "MD4 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
MD4 message digest algorithm (RFC1320).
config [31mCONFIG_CRYPTO_MD5[0m
tristate "MD5 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
MD5 message digest algorithm (RFC1321).
config [31mCONFIG_CRYPTO_MD5_OCTEON[0m
tristate "MD5 digest algorithm (OCTEON)"
depends on [31mCONFIG_CPU_CAVIUM_OCTEON[0m
select [31mCONFIG_CRYPTO_MD5[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
MD5 message digest algorithm (RFC1321) implemented
using OCTEON crypto instructions, when available.
config [31mCONFIG_CRYPTO_MD5_PPC[0m
tristate "MD5 digest algorithm (PPC)"
depends on [31mCONFIG_PPC[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
MD5 message digest algorithm (RFC1321) implemented
in [31mCONFIG_PPC[0m assembler.
config [31mCONFIG_CRYPTO_MD5_SPARC64[0m
tristate "MD5 digest algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_MD5[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
MD5 message digest algorithm (RFC1321) implemented
using sparc64 crypto instructions, when available.
config [31mCONFIG_CRYPTO_MICHAEL_MIC[0m
tristate "Michael MIC keyed digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
Michael MIC is used for message integrity protection in TKIP
(IEEE 802.11i). This algorithm is required for TKIP, but it
should not be used for other purposes because of the weakness
of the algorithm.
config [31mCONFIG_CRYPTO_RMD128[0m
tristate "RIPEMD-128 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
RIPEMD-128 (ISO/IEC 10118-3:2004).
RIPEMD-128 is a 128-bit cryptographic hash function. It should only
be used as a secure replacement for RIPEMD. For other use cases,
RIPEMD-160 should be used.
Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
config [31mCONFIG_CRYPTO_RMD160[0m
tristate "RIPEMD-160 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
RIPEMD-160 (ISO/IEC 10118-3:2004).
RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
to be used as a secure replacement for the 128-bit hash functions
MD4, MD5 and it's predecessor RIPEMD
(not to be confused with RIPEMD-128).
It's speed is comparable to SHA1 and there are no known attacks
against RIPEMD-160.
Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
config [31mCONFIG_CRYPTO_RMD256[0m
tristate "RIPEMD-256 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
RIPEMD-256 is an optional extension of RIPEMD-128 with a
256 bit hash. It is intended for applications that require
longer hash-results, without needing a larger security level
(than RIPEMD-128).
Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
config [31mCONFIG_CRYPTO_RMD320[0m
tristate "RIPEMD-320 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
RIPEMD-320 is an optional extension of RIPEMD-160 with a
320 bit hash. It is intended for applications that require
longer hash-results, without needing a larger security level
(than RIPEMD-160).
Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
config [31mCONFIG_CRYPTO_SHA1[0m
tristate "SHA1 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
config [31mCONFIG_CRYPTO_SHA1_SSSE3[0m
tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_SHA1[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
when available.
config [31mCONFIG_CRYPTO_SHA256_SSSE3[0m
tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_SHA256[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-256 secure hash standard (DFIPS 180-2) implemented
using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
Extensions version 1 (AVX1), or Advanced Vector Extensions
version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
Instructions) when available.
config [31mCONFIG_CRYPTO_SHA512_SSSE3[0m
tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_SHA512[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-512 secure hash standard (DFIPS 180-2) implemented
using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
Extensions version 1 (AVX1), or Advanced Vector Extensions
version 2 (AVX2) instructions, when available.
config [31mCONFIG_CRYPTO_SHA1_OCTEON[0m
tristate "SHA1 digest algorithm (OCTEON)"
depends on [31mCONFIG_CPU_CAVIUM_OCTEON[0m
select [31mCONFIG_CRYPTO_SHA1[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
using OCTEON crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA1_SPARC64[0m
tristate "SHA1 digest algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_SHA1[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
using sparc64 crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA1_PPC[0m
tristate "SHA1 digest algorithm (powerpc)"
depends on [31mCONFIG_PPC[0m
help
This is the powerpc hardware accelerated implementation of the
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
config [31mCONFIG_CRYPTO_SHA1_PPC_SPE[0m
tristate "SHA1 digest algorithm (PPC SPE)"
depends on [31mCONFIG_PPC[0m && [31mCONFIG_SPE[0m
help
SHA-1 secure hash standard (DFIPS 180-4) implemented
using powerpc [31mCONFIG_SPE[0m SIMD instruction set.
config [31mCONFIG_CRYPTO_LIB_SHA256[0m
tristate
config [31mCONFIG_CRYPTO_SHA256[0m
tristate "SHA224 and SHA256 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_LIB_SHA256[0m
help
SHA256 secure hash standard (DFIPS 180-2).
This version of SHA implements a 256 bit hash with 128 bits of
security against collision attacks.
This code also includes SHA-224, a 224 bit hash with 112 bits
of security against collision attacks.
config [31mCONFIG_CRYPTO_SHA256_PPC_SPE[0m
tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
depends on [31mCONFIG_PPC[0m && [31mCONFIG_SPE[0m
select [31mCONFIG_CRYPTO_SHA256[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA224 and SHA256 secure hash standard (DFIPS 180-2)
implemented using powerpc [31mCONFIG_SPE[0m SIMD instruction set.
config [31mCONFIG_CRYPTO_SHA256_OCTEON[0m
tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
depends on [31mCONFIG_CPU_CAVIUM_OCTEON[0m
select [31mCONFIG_CRYPTO_SHA256[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-256 secure hash standard (DFIPS 180-2) implemented
using OCTEON crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA256_SPARC64[0m
tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_SHA256[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-256 secure hash standard (DFIPS 180-2) implemented
using sparc64 crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA512[0m
tristate "SHA384 and SHA512 digest algorithms"
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA512 secure hash standard (DFIPS 180-2).
This version of SHA implements a 512 bit hash with 256 bits of
security against collision attacks.
This code also includes SHA-384, a 384 bit hash with 192 bits
of security against collision attacks.
config [31mCONFIG_CRYPTO_SHA512_OCTEON[0m
tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
depends on [31mCONFIG_CPU_CAVIUM_OCTEON[0m
select [31mCONFIG_CRYPTO_SHA512[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-512 secure hash standard (DFIPS 180-2) implemented
using OCTEON crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA512_SPARC64[0m
tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_SHA512[0m
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-512 secure hash standard (DFIPS 180-2) implemented
using sparc64 crypto instructions, when available.
config [31mCONFIG_CRYPTO_SHA3[0m
tristate "SHA3 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
SHA-3 secure hash standard (DFIPS 202). It's based on
cryptographic sponge function family called Keccak.
References:
http://keccak.noekeon.org/
config [31mCONFIG_CRYPTO_SM3[0m
tristate "SM3 digest algorithm"
select [31mCONFIG_CRYPTO_HASH[0m
help
SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
It is part of the Chinese Commercial Cryptography suite.
References:
http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
config [31mCONFIG_CRYPTO_STREEBOG[0m
tristate "Streebog Hash Function"
select [31mCONFIG_CRYPTO_HASH[0m
help
Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian
cryptographic standard algorithms (called GOST algorithms).
This setting enables two hash algorithms with 256 and 512 bits output.
References:
https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
https://tools.ietf.org/html/rfc6986
config [31mCONFIG_CRYPTO_TGR192[0m
tristate "Tiger digest algorithms"
select [31mCONFIG_CRYPTO_HASH[0m
help
Tiger hash algorithm 192, 160 and 128-bit hashes
Tiger is a hash function optimized for 64-bit processors while
still having decent performance on 32-bit processors.
Tiger was developed by Ross Anderson and Eli Biham.
See also:
<http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
config [31mCONFIG_CRYPTO_WP512[0m
tristate "Whirlpool digest algorithms"
select [31mCONFIG_CRYPTO_HASH[0m
help
Whirlpool hash algorithm 512, 384 and 256-bit hashes
Whirlpool-512 is part of the NESSIE cryptographic primitives.
Whirlpool will be part of the ISO/IEC 10118-3:2003([31mCONFIG_E[0m) standard
See also:
<http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
config [31mCONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL[0m
tristate "GHASH hash function (CLMUL-NI accelerated)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_CRYPTD[0m
help
This is the x86_64 CLMUL-NI accelerated implementation of
GHASH, the hash function used in GCM (Galois/Counter mode).
comment "Ciphers"
config [31mCONFIG_CRYPTO_LIB_AES[0m
tristate
config [31mCONFIG_CRYPTO_AES[0m
tristate "AES cipher algorithms"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_LIB_AES[0m
help
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
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
See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
config [31mCONFIG_CRYPTO_AES_TI[0m
tristate "Fixed time AES cipher"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_LIB_AES[0m
help
This is a generic implementation of AES that attempts to eliminate
data dependent latencies as much as possible without affecting
performance too much. It is intended for use by the generic CCM
and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
solely on encryption (although decryption is supported as well, but
with a more dramatic performance hit)
Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
8 for decryption), this implementation only uses just two S-boxes of
256 bytes each, and attempts to eliminate data dependent latencies by
prefetching the entire table into the cache at the start of each
block. Interrupts are also disabled to avoid races where cachelines
are evicted when the CPU is interrupted to do something else.
config [31mCONFIG_CRYPTO_AES_NI_INTEL[0m
tristate "AES cipher algorithms (AES-NI)"
depends on [31mCONFIG_X86[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_LIB_AES[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m if [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_SIMD[0m
help
Use Intel AES-NI instructions for AES algorithm.
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
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
See <http://csrc.nist.gov/encryption/aes/> for more information.
In addition to AES cipher algorithm support, the acceleration
for some popular block cipher mode is supported too, including
ECB, CBC, LRW, XTS. The 64 bit version has additional
acceleration for CTR.
config [31mCONFIG_CRYPTO_AES_SPARC64[0m
tristate "AES cipher algorithms (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_CRYPTD[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
Use [31mCONFIG_SPARC64[0m crypto opcodes for AES algorithm.
AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm.
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
See <http://csrc.nist.gov/encryption/aes/> for more information.
In addition to AES cipher algorithm support, the acceleration
for some popular block cipher mode is supported too, including
ECB and CBC.
config [31mCONFIG_CRYPTO_AES_PPC_SPE[0m
tristate "AES cipher algorithms (PPC SPE)"
depends on [31mCONFIG_PPC[0m && [31mCONFIG_SPE[0m
help
AES cipher algorithms (FIPS-197). Additionally the acceleration
for popular block cipher modes ECB, CBC, CTR and XTS is supported.
This module should only be used for low power (router) devices
without hardware AES acceleration (e.g. caam crypto). It reduces the
size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
timining attacks. Nevertheless it might be not as secure as other
architecture specific assembler implementations that work on 1KB
tables or 256 bytes S-boxes.
config [31mCONFIG_CRYPTO_ANUBIS[0m
tristate "Anubis cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
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 also:
<https://www.cosic.esat.kuleuven.be/nessie/reports/>
<http://www.larc.usp.br/~pbarreto/AnubisPage.html>
config [31mCONFIG_CRYPTO_LIB_ARC4[0m
tristate
config [31mCONFIG_CRYPTO_ARC4[0m
tristate "ARC4 cipher algorithm"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_LIB_ARC4[0m
help
ARC4 cipher algorithm.
ARC4 is a stream cipher using keys ranging from 8 bits to 2048
bits in length. This algorithm is required for driver-based
WEP, but it should not be for other purposes because of the
weakness of the algorithm.
config [31mCONFIG_CRYPTO_BLOWFISH[0m
tristate "Blowfish cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_BLOWFISH_COMMON[0m
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 also:
<http://www.schneier.com/blowfish.html>
config [31mCONFIG_CRYPTO_BLOWFISH_COMMON[0m
tristate
help
Common parts of the Blowfish cipher algorithm shared by the
generic c and the assembler implementations.
See also:
<http://www.schneier.com/blowfish.html>
config [31mCONFIG_CRYPTO_BLOWFISH_X86_64[0m
tristate "Blowfish cipher algorithm (x86_64)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_BLOWFISH_COMMON[0m
help
Blowfish cipher algorithm (x86_64), 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 also:
<http://www.schneier.com/blowfish.html>
config [31mCONFIG_CRYPTO_CAMELLIA[0m
tristate "Camellia cipher algorithms"
depends on [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
Camellia cipher algorithms module.
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 also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config [31mCONFIG_CRYPTO_CAMELLIA_X86_64[0m
tristate "Camellia cipher algorithm (x86_64)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
depends on [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
help
Camellia cipher algorithm module (x86_64).
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 also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config [31mCONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64[0m
tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
depends on [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_CAMELLIA_X86_64[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SIMD[0m
select [31mCONFIG_CRYPTO_XTS[0m
help
Camellia cipher algorithm module (x86_64/AES-NI/AVX).
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 also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config [31mCONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64[0m
tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
depends on [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64[0m
help
Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
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 also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config [31mCONFIG_CRYPTO_CAMELLIA_SPARC64[0m
tristate "Camellia cipher algorithm (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
depends on [31mCONFIG_CRYPTO[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
Camellia cipher algorithm module ([31mCONFIG_SPARC64[0m).
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 also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config [31mCONFIG_CRYPTO_CAST_COMMON[0m
tristate
help
Common parts of the CAST cipher algorithms shared by the
generic c and the assembler implementations.
config [31mCONFIG_CRYPTO_CAST5[0m
tristate "CAST5 (CAST-128) cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_CAST_COMMON[0m
help
The CAST5 encryption algorithm (synonymous with CAST-128) is
described in RFC2144.
config [31mCONFIG_CRYPTO_CAST5_AVX_X86_64[0m
tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_CAST5[0m
select [31mCONFIG_CRYPTO_CAST_COMMON[0m
select [31mCONFIG_CRYPTO_SIMD[0m
help
The CAST5 encryption algorithm (synonymous with CAST-128) is
described in RFC2144.
This module provides the Cast5 cipher algorithm that processes
sixteen blocks parallel using the AVX instruction set.
config [31mCONFIG_CRYPTO_CAST6[0m
tristate "CAST6 (CAST-256) cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_CAST_COMMON[0m
help
The CAST6 encryption algorithm (synonymous with CAST-256) is
described in RFC2612.
config [31mCONFIG_CRYPTO_CAST6_AVX_X86_64[0m
tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_CAST6[0m
select [31mCONFIG_CRYPTO_CAST_COMMON[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SIMD[0m
select [31mCONFIG_CRYPTO_XTS[0m
help
The CAST6 encryption algorithm (synonymous with CAST-256) is
described in RFC2612.
This module provides the Cast6 cipher algorithm that processes
eight blocks parallel using the AVX instruction set.
config [31mCONFIG_CRYPTO_LIB_DES[0m
tristate
config [31mCONFIG_CRYPTO_DES[0m
tristate "DES and Triple DES EDE cipher algorithms"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_LIB_DES[0m
help
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
config [31mCONFIG_CRYPTO_DES_SPARC64[0m
tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
depends on [31mCONFIG_SPARC64[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_LIB_DES[0m
help
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
optimized using [31mCONFIG_SPARC64[0m crypto opcodes.
config [31mCONFIG_CRYPTO_DES3_EDE_X86_64[0m
tristate "Triple DES EDE cipher algorithm (x86-64)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_LIB_DES[0m
help
Triple DES EDE (FIPS 46-3) algorithm.
This module provides implementation of the Triple DES EDE cipher
algorithm that is optimized for x86-64 processors. Two versions of
algorithm are provided; regular processing one input block and
one that processes three blocks parallel.
config [31mCONFIG_CRYPTO_FCRYPT[0m
tristate "FCrypt cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
help
FCrypt algorithm used by RxRPC.
config [31mCONFIG_CRYPTO_KHAZAD[0m
tristate "Khazad cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
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 also:
<http://www.larc.usp.br/~pbarreto/KhazadPage.html>
config [31mCONFIG_CRYPTO_SALSA20[0m
tristate "Salsa20 stream cipher algorithm"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
help
Salsa20 stream cipher algorithm.
Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
The Salsa20 stream cipher algorithm is designed by Daniel J.
Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
config [31mCONFIG_CRYPTO_CHACHA20[0m
tristate "ChaCha stream cipher algorithms"
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
help
The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms.
ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
Bernstein and further specified in RFC7539 for use in IETF protocols.
This is the portable [31mCONFIG_C[0m implementation of ChaCha20. See also:
<http://cr.yp.to/chacha/chacha-20080128.pdf>
XChaCha20 is the application of the XSalsa20 construction to ChaCha20
rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
while provably retaining ChaCha20's security. See also:
<https://cr.yp.to/snuffle/xsalsa-20081128.pdf>
XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
reduced security margin but increased performance. It can be needed
in some performance-sensitive scenarios.
config [31mCONFIG_CRYPTO_CHACHA20_X86_64[0m
tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_CHACHA20[0m
help
SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20,
XChaCha20, and XChaCha12 stream ciphers.
config [31mCONFIG_CRYPTO_SEED[0m
tristate "SEED cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
SEED cipher algorithm (RFC4269).
SEED is a 128-bit symmetric key block cipher that has been
developed by KISA (Korea Information Security Agency) as a
national standard encryption algorithm of the Republic of Korea.
It is a 16 round block cipher with the key size of 128 bit.
See also:
<http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
config [31mCONFIG_CRYPTO_SERPENT[0m
tristate "Serpent cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
Serpent cipher algorithm, by Anderson, Biham & Knudsen.
Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
variant of Serpent for compatibility with old kerneli.org code.
See also:
<http://www.cl.cam.ac.uk/~rja14/serpent.html>
config [31mCONFIG_CRYPTO_SERPENT_SSE2_X86_64[0m
tristate "Serpent cipher algorithm (x86_64/SSE2)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SERPENT[0m
select [31mCONFIG_CRYPTO_SIMD[0m
help
Serpent cipher algorithm, by Anderson, Biham & Knudsen.
Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits.
This module provides Serpent cipher algorithm that processes eight
blocks parallel using SSE2 instruction set.
See also:
<http://www.cl.cam.ac.uk/~rja14/serpent.html>
config [31mCONFIG_CRYPTO_SERPENT_SSE2_586[0m
tristate "Serpent cipher algorithm (i586/SSE2)"
depends on [31mCONFIG_X86[0m && ![31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SERPENT[0m
select [31mCONFIG_CRYPTO_SIMD[0m
help
Serpent cipher algorithm, by Anderson, Biham & Knudsen.
Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits.
This module provides Serpent cipher algorithm that processes four
blocks parallel using SSE2 instruction set.
See also:
<http://www.cl.cam.ac.uk/~rja14/serpent.html>
config [31mCONFIG_CRYPTO_SERPENT_AVX_X86_64[0m
tristate "Serpent cipher algorithm (x86_64/AVX)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SERPENT[0m
select [31mCONFIG_CRYPTO_SIMD[0m
select [31mCONFIG_CRYPTO_XTS[0m
help
Serpent cipher algorithm, by Anderson, Biham & Knudsen.
Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits.
This module provides the Serpent cipher algorithm that processes
eight blocks parallel using the AVX instruction set.
See also:
<http://www.cl.cam.ac.uk/~rja14/serpent.html>
config [31mCONFIG_CRYPTO_SERPENT_AVX2_X86_64[0m
tristate "Serpent cipher algorithm (x86_64/AVX2)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_SERPENT_AVX_X86_64[0m
help
Serpent cipher algorithm, by Anderson, Biham & Knudsen.
Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits.
This module provides Serpent cipher algorithm that processes 16
blocks parallel using AVX2 instruction set.
See also:
<http://www.cl.cam.ac.uk/~rja14/serpent.html>
config [31mCONFIG_CRYPTO_SM4[0m
tristate "SM4 cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
SM4 cipher algorithms (OSCCA GB/T 32907-2016).
SM4 (GBT.32907-2016) is a cryptographic standard issued by the
Organization of State Commercial Administration of China (OSCCA)
as an authorized cryptographic algorithms for the use within China.
SMS4 was originally created for use in protecting wireless
networks, and is mandated in the Chinese National Standard for
Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
(GB.15629.11-2003).
The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
standardized through [31mCONFIG_TC[0m 260 of the Standardization Administration
of the People's Republic of China (SAC).
The input, output, and key of SMS4 are each 128 bits.
See also: <https://eprint.iacr.org/2008/329.pdf>
If unsure, say N.
config [31mCONFIG_CRYPTO_TEA[0m
tristate "TEA, XTEA and XETA cipher algorithms"
select [31mCONFIG_CRYPTO_ALGAPI[0m
help
TEA cipher algorithm.
Tiny Encryption Algorithm is a simple cipher that uses
many rounds for security. It is very fast and uses
little memory.
Xtendend Tiny Encryption Algorithm is a modification to
the TEA algorithm to address a potential key weakness
in the TEA algorithm.
Xtendend Encryption Tiny Algorithm is a mis-implementation
of the XTEA algorithm for compatibility purposes.
config [31mCONFIG_CRYPTO_TWOFISH[0m
tristate "Twofish cipher algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
help
Twofish cipher algorithm.
Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256
bits.
See also:
<http://www.schneier.com/twofish.html>
config [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
tristate
help
Common parts of the Twofish cipher algorithm shared by the
generic c and the assembler implementations.
config [31mCONFIG_CRYPTO_TWOFISH_586[0m
tristate "Twofish cipher algorithms (i586)"
depends on ([31mCONFIG_X86[0m || [31mCONFIG_UML_X86[0m) && ![31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
help
Twofish cipher algorithm.
Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256
bits.
See also:
<http://www.schneier.com/twofish.html>
config [31mCONFIG_CRYPTO_TWOFISH_X86_64[0m
tristate "Twofish cipher algorithm (x86_64)"
depends on ([31mCONFIG_X86[0m || [31mCONFIG_UML_X86[0m) && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
help
Twofish cipher algorithm (x86_64).
Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256
bits.
See also:
<http://www.schneier.com/twofish.html>
config [31mCONFIG_CRYPTO_TWOFISH_X86_64_3WAY[0m
tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
select [31mCONFIG_CRYPTO_TWOFISH_X86_64[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
help
Twofish cipher algorithm (x86_64, 3-way parallel).
Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256
bits.
This module provides Twofish cipher algorithm that processes three
blocks parallel, utilizing resources of out-of-order CPUs better.
See also:
<http://www.schneier.com/twofish.html>
config [31mCONFIG_CRYPTO_TWOFISH_AVX_X86_64[0m
tristate "Twofish cipher algorithm (x86_64/AVX)"
depends on [31mCONFIG_X86[0m && [31mCONFIG_64BIT[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_GLUE_HELPER_X86[0m
select [31mCONFIG_CRYPTO_SIMD[0m
select [31mCONFIG_CRYPTO_TWOFISH_COMMON[0m
select [31mCONFIG_CRYPTO_TWOFISH_X86_64[0m
select [31mCONFIG_CRYPTO_TWOFISH_X86_64_3WAY[0m
help
Twofish cipher algorithm (x86_64/AVX).
Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256
bits.
This module provides the Twofish cipher algorithm that processes
eight blocks parallel using the AVX Instruction Set.
See also:
<http://www.schneier.com/twofish.html>
comment "Compression"
config [31mCONFIG_CRYPTO_DEFLATE[0m
tristate "Deflate compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_ZLIB_INFLATE[0m
select [31mCONFIG_ZLIB_DEFLATE[0m
help
This is the Deflate algorithm (RFC1951), specified for use in
IPSec with the IPCOMP protocol (RFC3173, RFC2394).
You will most probably want this if using IPSec.
config [31mCONFIG_CRYPTO_LZO[0m
tristate "LZO compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_LZO_COMPRESS[0m
select [31mCONFIG_LZO_DECOMPRESS[0m
help
This is the LZO algorithm.
config [31mCONFIG_CRYPTO_842[0m
tristate "842 compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_842_COMPRESS[0m
select [31mCONFIG_842_DECOMPRESS[0m
help
This is the 842 algorithm.
config [31mCONFIG_CRYPTO_LZ4[0m
tristate "LZ4 compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_LZ4_COMPRESS[0m
select [31mCONFIG_LZ4_DECOMPRESS[0m
help
This is the LZ4 algorithm.
config [31mCONFIG_CRYPTO_LZ4HC[0m
tristate "LZ4HC compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_LZ4HC_COMPRESS[0m
select [31mCONFIG_LZ4_DECOMPRESS[0m
help
This is the LZ4 high compression mode algorithm.
config [31mCONFIG_CRYPTO_ZSTD[0m
tristate "Zstd compression algorithm"
select [31mCONFIG_CRYPTO_ALGAPI[0m
select [31mCONFIG_CRYPTO_ACOMP2[0m
select [31mCONFIG_ZSTD_COMPRESS[0m
select [31mCONFIG_ZSTD_DECOMPRESS[0m
help
This is the zstd algorithm.
comment "Random Number Generation"
config [31mCONFIG_CRYPTO_ANSI_CPRNG[0m
tristate "Pseudo Random Number Generation for Cryptographic modules"
select [31mCONFIG_CRYPTO_AES[0m
select [31mCONFIG_CRYPTO_RNG[0m
help
This option enables the generic pseudo random number generator
for cryptographic modules. Uses the Algorithm specified in
ANSI X9.31 [31mCONFIG_A[0m.2.4. Note that this option must be enabled if
[31mCONFIG_CRYPTO_FIPS[0m is selected
menuconfig [31mCONFIG_CRYPTO_DRBG_MENU[0m
tristate "NIST SP800-90A DRBG"
help
NIST SP800-90A compliant DRBG. In the following submenu, one or
more of the DRBG types must be selected.
if [31mCONFIG_CRYPTO_DRBG_MENU[0m
config [31mCONFIG_CRYPTO_DRBG_HMAC[0m
bool
default y
select [31mCONFIG_CRYPTO_HMAC[0m
select [31mCONFIG_CRYPTO_SHA256[0m
config [31mCONFIG_CRYPTO_DRBG_HASH[0m
bool "Enable Hash DRBG"
select [31mCONFIG_CRYPTO_SHA256[0m
help
Enable the Hash DRBG variant as defined in NIST SP800-90A.
config [31mCONFIG_CRYPTO_DRBG_CTR[0m
bool "Enable CTR DRBG"
select [31mCONFIG_CRYPTO_AES[0m
depends on [31mCONFIG_CRYPTO_CTR[0m
help
Enable the CTR DRBG variant as defined in NIST SP800-90A.
config [31mCONFIG_CRYPTO_DRBG[0m
tristate
default [31mCONFIG_CRYPTO_DRBG_MENU[0m
select [31mCONFIG_CRYPTO_RNG[0m
select [31mCONFIG_CRYPTO_JITTERENTROPY[0m
endif # if [31mCONFIG_CRYPTO_DRBG_MENU[0m
config [31mCONFIG_CRYPTO_JITTERENTROPY[0m
tristate "Jitterentropy Non-Deterministic Random Number Generator"
select [31mCONFIG_CRYPTO_RNG[0m
help
The Jitterentropy RNG is a noise that is intended
to provide seed to another RNG. The RNG does not
perform any cryptographic whitening of the generated
random numbers. This Jitterentropy RNG registers with
the kernel crypto API and can be used by any caller.
config [31mCONFIG_CRYPTO_USER_API[0m
tristate
config [31mCONFIG_CRYPTO_USER_API_HASH[0m
tristate "User-space interface for hash algorithms"
depends on [31mCONFIG_NET[0m
select [31mCONFIG_CRYPTO_HASH[0m
select [31mCONFIG_CRYPTO_USER_API[0m
help
This option enables the user-spaces interface for hash
algorithms.
config [31mCONFIG_CRYPTO_USER_API_SKCIPHER[0m
tristate "User-space interface for symmetric key cipher algorithms"
depends on [31mCONFIG_NET[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_USER_API[0m
help
This option enables the user-spaces interface for symmetric
key cipher algorithms.
config [31mCONFIG_CRYPTO_USER_API_RNG[0m
tristate "User-space interface for random number generator algorithms"
depends on [31mCONFIG_NET[0m
select [31mCONFIG_CRYPTO_RNG[0m
select [31mCONFIG_CRYPTO_USER_API[0m
help
This option enables the user-spaces interface for random
number generator algorithms.
config [31mCONFIG_CRYPTO_USER_API_AEAD[0m
tristate "User-space interface for AEAD cipher algorithms"
depends on [31mCONFIG_NET[0m
select [31mCONFIG_CRYPTO_AEAD[0m
select [31mCONFIG_CRYPTO_BLKCIPHER[0m
select [31mCONFIG_CRYPTO_NULL[0m
select [31mCONFIG_CRYPTO_USER_API[0m
help
This option enables the user-spaces interface for AEAD
cipher algorithms.
config [31mCONFIG_CRYPTO_STATS[0m
bool "Crypto usage statistics for User-space"
depends on [31mCONFIG_CRYPTO_USER[0m
help
This option enables the gathering of crypto stats.
This will collect:
- encrypt/decrypt size and numbers of symmeric operations
- compress/decompress size and numbers of compress operations
- size and numbers of hash operations
- encrypt/decrypt/sign/verify numbers for asymmetric operations
- generate/seed numbers for rng operations
config [31mCONFIG_CRYPTO_HASH_INFO[0m
bool
source "drivers/crypto/Kconfig"
source "crypto/asymmetric_keys/Kconfig"
source "certs/Kconfig"
endif # if [31mCONFIG_CRYPTO[0m