Commit f1f142ad authored by Robert Elliott's avatar Robert Elliott Committed by Herbert Xu

crypto: Kconfig - add submenus

Convert each comment section into a submenu:
  Cryptographic API
    Crypto core or helper
    Public-key cryptography
    Block ciphers
    Length-preserving ciphers and modes
    AEAD (authenticated encryption with associated data) ciphers
    Hashes, digests, and MACs
    CRCs (cyclic redundancy checks)
    Compression
    Random number generation
    Userspace interface

That helps find entries (e.g., searching for a name like SHA512 doesn't
just report the location is Main menu -> Cryptography API, leaving you
to wade through 153 entries; it points you to the Digests page).

Move entries so they fall into the correct submenus and are
better sorted.
Suggested-by: default avatarEric Biggers <ebiggers@kernel.org>
Signed-off-by: default avatarRobert Elliott <elliott@hpe.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 4a95d4ae
...@@ -21,7 +21,7 @@ menuconfig CRYPTO ...@@ -21,7 +21,7 @@ menuconfig CRYPTO
if CRYPTO if CRYPTO
comment "Crypto core or helper" menu "Crypto core or helper"
config CRYPTO_FIPS config CRYPTO_FIPS
bool "FIPS 200 compliance" bool "FIPS 200 compliance"
...@@ -235,7 +235,9 @@ config CRYPTO_SIMD ...@@ -235,7 +235,9 @@ config CRYPTO_SIMD
config CRYPTO_ENGINE config CRYPTO_ENGINE
tristate tristate
comment "Public-key cryptography" endmenu
menu "Public-key cryptography"
config CRYPTO_RSA config CRYPTO_RSA
tristate "RSA algorithm" tristate "RSA algorithm"
...@@ -316,189 +318,265 @@ config CRYPTO_CURVE25519 ...@@ -316,189 +318,265 @@ config CRYPTO_CURVE25519
select CRYPTO_KPP select CRYPTO_KPP
select CRYPTO_LIB_CURVE25519_GENERIC select CRYPTO_LIB_CURVE25519_GENERIC
comment "Authenticated Encryption with Associated Data" endmenu
config CRYPTO_CCM menu "Block ciphers"
tristate "CCM support"
select CRYPTO_CTR
select CRYPTO_HASH
select CRYPTO_AEAD
select CRYPTO_MANAGER
help
Support for Counter with CBC MAC. Required for IPsec.
config CRYPTO_GCM config CRYPTO_AES
tristate "GCM/GMAC support" tristate "AES cipher algorithms"
select CRYPTO_CTR select CRYPTO_ALGAPI
select CRYPTO_AEAD select CRYPTO_LIB_AES
select CRYPTO_GHASH
select CRYPTO_NULL
select CRYPTO_MANAGER
help help
Support for Galois/Counter Mode (GCM) and Galois Message AES cipher algorithms (FIPS-197). AES uses the Rijndael
Authentication Code (GMAC). Required for IPSec. algorithm.
config CRYPTO_CHACHA20POLY1305 Rijndael appears to be consistently a very good performer in
tristate "ChaCha20-Poly1305 AEAD support" both hardware and software across a wide range of computing
select CRYPTO_CHACHA20 environments regardless of its use in feedback or non-feedback
select CRYPTO_POLY1305 modes. Its key setup time is excellent, and its key agility is
select CRYPTO_AEAD good. Rijndael's very low memory requirements make it very well
select CRYPTO_MANAGER suited for restricted-space environments, in which it also
help demonstrates excellent performance. Rijndael's operations are
ChaCha20-Poly1305 AEAD support, RFC7539. among the easiest to defend against power and timing attacks.
Support for the AEAD wrapper using the ChaCha20 stream cipher combined The AES specifies three key sizes: 128, 192 and 256 bits
with the Poly1305 authenticator. It is defined in RFC7539 for use in
IETF protocols.
config CRYPTO_AEGIS128 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
tristate "AEGIS-128 AEAD algorithm"
select CRYPTO_AEAD config CRYPTO_AES_TI
select CRYPTO_AES # for AES S-box tables tristate "Fixed time AES cipher"
select CRYPTO_ALGAPI
select CRYPTO_LIB_AES
help help
Support for the AEGIS-128 dedicated AEAD algorithm. 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)
config CRYPTO_AEGIS128_SIMD Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
bool "Support SIMD acceleration for AEGIS-128" 8 for decryption), this implementation only uses just two S-boxes of
depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) 256 bytes each, and attempts to eliminate data dependent latencies by
default y 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 CRYPTO_SEQIV config CRYPTO_ANUBIS
tristate "Sequence Number IV Generator" tristate "Anubis cipher algorithm"
select CRYPTO_AEAD depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_NULL
select CRYPTO_RNG_DEFAULT
select CRYPTO_MANAGER
help help
This IV generator generates an IV based on a sequence number by Anubis cipher algorithm.
xoring it with a salt. This algorithm is mainly useful for CTR
config CRYPTO_ECHAINIV Anubis is a variable key length cipher which can use keys from
tristate "Encrypted Chain IV Generator" 128 bits to 320 bits in length. It was evaluated as a entrant
select CRYPTO_AEAD in the NESSIE competition.
select CRYPTO_NULL
select CRYPTO_RNG_DEFAULT
select CRYPTO_MANAGER
help
This IV generator generates an IV based on the encryption of
a sequence number xored with a salt. This is the default
algorithm for CBC.
comment "Block modes" See also:
<https://www.cosic.esat.kuleuven.be/nessie/reports/>
<http://www.larc.usp.br/~pbarreto/AnubisPage.html>
config CRYPTO_CBC config CRYPTO_ARIA
tristate "CBC support" tristate "ARIA cipher algorithm"
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_MANAGER
help help
CBC: Cipher Block Chaining mode ARIA cipher algorithm (RFC5794).
This block cipher algorithm is required for IPSec.
config CRYPTO_CFB ARIA is a standard encryption algorithm of the Republic of Korea.
tristate "CFB support" The ARIA specifies three key sizes and rounds.
select CRYPTO_SKCIPHER 128-bit: 12 rounds.
select CRYPTO_MANAGER 192-bit: 14 rounds.
help 256-bit: 16 rounds.
CFB: Cipher FeedBack mode
This block cipher algorithm is required for TPM2 Cryptography.
config CRYPTO_CTR See also:
tristate "CTR support" <https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do>
select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
help
CTR: Counter mode
This block cipher algorithm is required for IPSec.
config CRYPTO_CTS config CRYPTO_BLOWFISH
tristate "CTS support" tristate "Blowfish cipher algorithm"
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_MANAGER select CRYPTO_BLOWFISH_COMMON
help help
CTS: Cipher Text Stealing Blowfish cipher algorithm, by Bruce Schneier.
This is the Cipher Text Stealing mode as described by
Section 8 of rfc2040 and referenced by rfc3962
(rfc3962 includes errata information in its Appendix A) or
CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010.
This mode is required for Kerberos gss mechanism support
for AES encryption.
See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final 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".
config CRYPTO_ECB See also:
tristate "ECB support" <https://www.schneier.com/blowfish.html>
select CRYPTO_SKCIPHER
select CRYPTO_MANAGER config CRYPTO_BLOWFISH_COMMON
tristate
help help
ECB: Electronic CodeBook mode Common parts of the Blowfish cipher algorithm shared by the
This is the simplest block cipher algorithm. It simply encrypts generic c and the assembler implementations.
the input block by block.
config CRYPTO_LRW See also:
tristate "LRW support" <https://www.schneier.com/blowfish.html>
select CRYPTO_SKCIPHER
select CRYPTO_MANAGER config CRYPTO_CAMELLIA
select CRYPTO_GF128MUL tristate "Camellia cipher algorithms"
select CRYPTO_ECB select CRYPTO_ALGAPI
help help
LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable Camellia cipher algorithms module.
narrow block cipher mode for dm-crypt. Use it with cipher
specification string aes-lrw-benbi, the key must be 256, 320 or 384.
The first 128, 192 or 256 bits in the key are used for AES and the
rest is used to tie each cipher block to its logical position.
config CRYPTO_OFB Camellia is a symmetric key block cipher developed jointly
tristate "OFB support" at NTT and Mitsubishi Electric Corporation.
select CRYPTO_SKCIPHER
select CRYPTO_MANAGER 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 CRYPTO_CAST_COMMON
tristate
help help
OFB: the Output Feedback mode makes a block cipher into a synchronous Common parts of the CAST cipher algorithms shared by the
stream cipher. It generates keystream blocks, which are then XORed generic c and the assembler implementations.
with the plaintext blocks to get the ciphertext. Flipping a bit in the
ciphertext produces a flipped bit in the plaintext at the same
location. This property allows many error correcting codes to function
normally even when applied before encryption.
config CRYPTO_PCBC config CRYPTO_CAST5
tristate "PCBC support" tristate "CAST5 (CAST-128) cipher algorithm"
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_MANAGER select CRYPTO_CAST_COMMON
help help
PCBC: Propagating Cipher Block Chaining mode The CAST5 encryption algorithm (synonymous with CAST-128) is
This block cipher algorithm is required for RxRPC. described in RFC2144.
config CRYPTO_XCTR config CRYPTO_CAST6
tristate tristate "CAST6 (CAST-256) cipher algorithm"
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_MANAGER select CRYPTO_CAST_COMMON
help help
XCTR: XOR Counter mode. This blockcipher mode is a variant of CTR mode The CAST6 encryption algorithm (synonymous with CAST-256) is
using XORs and little-endian addition rather than big-endian arithmetic. described in RFC2612.
XCTR mode is used to implement HCTR2.
config CRYPTO_XTS config CRYPTO_DES
tristate "XTS support" tristate "DES and Triple DES EDE cipher algorithms"
select CRYPTO_SKCIPHER select CRYPTO_ALGAPI
select CRYPTO_MANAGER select CRYPTO_LIB_DES
select CRYPTO_ECB
help help
XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
key size 256, 384 or 512 bits. This implementation currently
can't handle a sectorsize which is not a multiple of 16 bytes.
config CRYPTO_KEYWRAP config CRYPTO_FCRYPT
tristate "Key wrapping support" tristate "FCrypt cipher algorithm"
select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
help help
Support for key wrapping (NIST SP800-38F / RFC3394) without FCrypt algorithm used by RxRPC.
padding.
config CRYPTO_NHPOLY1305 config CRYPTO_KHAZAD
tristate tristate "Khazad cipher algorithm"
select CRYPTO_HASH depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_LIB_POLY1305_GENERIC 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 also:
<http://www.larc.usp.br/~pbarreto/KhazadPage.html>
config CRYPTO_SEED
tristate "SEED cipher algorithm"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI
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 CRYPTO_SERPENT
tristate "Serpent cipher algorithm"
select CRYPTO_ALGAPI
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.
See also:
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SM4
tristate
config CRYPTO_SM4_GENERIC
tristate "SM4 cipher algorithm"
select CRYPTO_ALGAPI
select CRYPTO_SM4
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 TC 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 CRYPTO_TEA
tristate "TEA, XTEA and XETA cipher algorithms"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI
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 CRYPTO_TWOFISH
tristate "Twofish cipher algorithm"
select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON
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:
<https://www.schneier.com/twofish.html>
config CRYPTO_TWOFISH_COMMON
tristate
help
Common parts of the Twofish cipher algorithm shared by the
generic c and the assembler implementations.
endmenu
menu "Length-preserving ciphers and modes"
config CRYPTO_ADIANTUM config CRYPTO_ADIANTUM
tristate "Adiantum support" tristate "Adiantum support"
...@@ -524,580 +602,516 @@ config CRYPTO_ADIANTUM ...@@ -524,580 +602,516 @@ config CRYPTO_ADIANTUM
If unsure, say N. If unsure, say N.
config CRYPTO_HCTR2 config CRYPTO_ARC4
tristate "HCTR2 support" tristate "ARC4 cipher algorithm"
select CRYPTO_XCTR depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_POLYVAL select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_LIB_ARC4
help help
HCTR2 is a length-preserving encryption mode for storage encryption that ARC4 cipher algorithm.
is efficient on processors with instructions to accelerate AES and
carryless multiplication, e.g. x86 processors with AES-NI and CLMUL, and
ARM processors with the ARMv8 crypto extensions.
config CRYPTO_ESSIV ARC4 is a stream cipher using keys ranging from 8 bits to 2048
tristate "ESSIV support for block encryption" bits in length. This algorithm is required for driver-based
select CRYPTO_AUTHENC WEP, but it should not be for other purposes because of the
weakness of the algorithm.
config CRYPTO_CHACHA20
tristate "ChaCha stream cipher algorithms"
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_SKCIPHER
help help
Encrypted salt-sector initialization vector (ESSIV) is an IV The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms.
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 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
instantiated either as an skcipher or as an AEAD (depending on the Bernstein and further specified in RFC7539 for use in IETF protocols.
type of the first template argument), and which defers encryption This is the portable C implementation of ChaCha20. See also:
and decryption requests to the encapsulated cipher after applying <https://cr.yp.to/chacha/chacha-20080128.pdf>
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, XChaCha20 is the application of the XSalsa20 construction to ChaCha20
and so this only needs to be enabled when interoperability with rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
existing encrypted volumes of filesystems is required, or when from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
building for a particular system that requires it (e.g., when while provably retaining ChaCha20's security. See also:
the SoC in question has accelerated CBC but not XTS, making CBC <https://cr.yp.to/snuffle/xsalsa-20081128.pdf>
combined with ESSIV the only feasible mode for h/w accelerated
block encryption)
comment "Hash modes" 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 CRYPTO_CMAC config CRYPTO_CBC
tristate "CMAC support" tristate "CBC support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
Cipher-based Message Authentication Code (CMAC) specified by CBC: Cipher Block Chaining mode
The National Institute of Standards and Technology (NIST). This block cipher algorithm is required for IPSec.
https://tools.ietf.org/html/rfc4493
http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
config CRYPTO_HMAC config CRYPTO_CFB
tristate "HMAC support" tristate "CFB support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
HMAC: Keyed-Hashing for Message Authentication (RFC2104). CFB: Cipher FeedBack mode
This is required for IPSec. This block cipher algorithm is required for TPM2 Cryptography.
config CRYPTO_XCBC config CRYPTO_CTR
tristate "XCBC support" tristate "CTR support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
XCBC: Keyed-Hashing with encryption algorithm CTR: Counter mode
https://www.ietf.org/rfc/rfc3566.txt This block cipher algorithm is required for IPSec.
http://csrc.nist.gov/encryption/modes/proposedmodes/
xcbc-mac/xcbc-mac-spec.pdf
config CRYPTO_VMAC config CRYPTO_CTS
tristate "VMAC support" tristate "CTS support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
VMAC is a message authentication algorithm designed for CTS: Cipher Text Stealing
very high speed on 64-bit architectures. This is the Cipher Text Stealing mode as described by
Section 8 of rfc2040 and referenced by rfc3962
See also: (rfc3962 includes errata information in its Appendix A) or
<https://fastcrypto.org/vmac> 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.
comment "Digest" See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final
config CRYPTO_CRC32C config CRYPTO_ECB
tristate "CRC32c CRC algorithm" tristate "ECB support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRC32 select CRYPTO_MANAGER
help help
Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used ECB: Electronic CodeBook mode
by iSCSI for header and data digests and by others. This is the simplest block cipher algorithm. It simply encrypts
See Castagnoli93. Module will be crc32c. the input block by block.
config CRYPTO_CRC32 config CRYPTO_HCTR2
tristate "CRC32 CRC algorithm" tristate "HCTR2 support"
select CRYPTO_HASH select CRYPTO_XCTR
select CRC32 select CRYPTO_POLYVAL
select CRYPTO_MANAGER
help help
CRC-32-IEEE 802.3 cyclic redundancy-check algorithm. HCTR2 is a length-preserving encryption mode for storage encryption that
Shash crypto api wrappers to crc32_le function. is efficient on processors with instructions to accelerate AES and
carryless multiplication, e.g. x86 processors with AES-NI and CLMUL, and
ARM processors with the ARMv8 crypto extensions.
config CRYPTO_XXHASH config CRYPTO_KEYWRAP
tristate "xxHash hash algorithm" tristate "Key wrapping support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select XXHASH select CRYPTO_MANAGER
help
xxHash non-cryptographic hash algorithm. Extremely fast, working at
speeds close to RAM limits.
config CRYPTO_BLAKE2B
tristate "BLAKE2b digest algorithm"
select CRYPTO_HASH
help
Implementation of cryptographic hash function BLAKE2b (or just BLAKE2),
optimized for 64bit platforms and can produce digests of any size
between 1 to 64. The keyed hash is also implemented.
This module provides the following algorithms:
- blake2b-160
- blake2b-256
- blake2b-384
- blake2b-512
See https://blake2.net for further information.
config CRYPTO_CRCT10DIF
tristate "CRCT10DIF algorithm"
select CRYPTO_HASH
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 CRYPTO_CRC64_ROCKSOFT
tristate "Rocksoft Model CRC64 algorithm"
depends on CRC64
select CRYPTO_HASH
config CRYPTO_GHASH
tristate "GHASH hash function"
select CRYPTO_GF128MUL
select CRYPTO_HASH
help help
GHASH is the hash function used in GCM (Galois/Counter Mode). Support for key wrapping (NIST SP800-38F / RFC3394) without
It is not a general-purpose cryptographic hash function. padding.
config CRYPTO_POLYVAL config CRYPTO_LRW
tristate tristate "LRW support"
select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
select CRYPTO_GF128MUL select CRYPTO_GF128MUL
select CRYPTO_HASH select CRYPTO_ECB
help help
POLYVAL is the hash function used in HCTR2. It is not a general-purpose LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
cryptographic hash function. narrow block cipher mode for dm-crypt. Use it with cipher
specification string aes-lrw-benbi, the key must be 256, 320 or 384.
The first 128, 192 or 256 bits in the key are used for AES and the
rest is used to tie each cipher block to its logical position.
config CRYPTO_POLY1305 config CRYPTO_OFB
tristate "Poly1305 authenticator algorithm" tristate "OFB support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_LIB_POLY1305_GENERIC select CRYPTO_MANAGER
help help
Poly1305 authenticator algorithm, RFC7539. OFB: the Output Feedback mode makes a block cipher into a synchronous
stream cipher. It generates keystream blocks, which are then XORed
Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. with the plaintext blocks to get the ciphertext. Flipping a bit in the
It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use ciphertext produces a flipped bit in the plaintext at the same
in IETF protocols. This is the portable C implementation of Poly1305. location. This property allows many error correcting codes to function
normally even when applied before encryption.
config CRYPTO_MD4 config CRYPTO_PCBC
tristate "MD4 digest algorithm" tristate "PCBC support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
help help
MD4 message digest algorithm (RFC1320). PCBC: Propagating Cipher Block Chaining mode
This block cipher algorithm is required for RxRPC.
config CRYPTO_MD5 config CRYPTO_XCTR
tristate "MD5 digest algorithm" tristate
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
help help
MD5 message digest algorithm (RFC1321). XCTR: XOR Counter mode. This blockcipher mode is a variant of CTR mode
using XORs and little-endian addition rather than big-endian arithmetic.
XCTR mode is used to implement HCTR2.
config CRYPTO_MICHAEL_MIC config CRYPTO_XTS
tristate "Michael MIC keyed digest algorithm" tristate "XTS support"
select CRYPTO_HASH select CRYPTO_SKCIPHER
select CRYPTO_MANAGER
select CRYPTO_ECB
help help
Michael MIC is used for message integrity protection in TKIP XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
(IEEE 802.11i). This algorithm is required for TKIP, but it key size 256, 384 or 512 bits. This implementation currently
should not be used for other purposes because of the weakness can't handle a sectorsize which is not a multiple of 16 bytes.
of the algorithm.
config CRYPTO_RMD160 config CRYPTO_NHPOLY1305
tristate "RIPEMD-160 digest algorithm" tristate
select CRYPTO_HASH select CRYPTO_HASH
help select CRYPTO_LIB_POLY1305_GENERIC
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 its 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. endmenu
See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
config CRYPTO_SHA1 menu "AEAD (authenticated encryption with associated data) ciphers"
tristate "SHA1 digest algorithm"
select CRYPTO_HASH
select CRYPTO_LIB_SHA1
help
SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
config CRYPTO_SHA256 config CRYPTO_AEGIS128
tristate "SHA224 and SHA256 digest algorithm" tristate "AEGIS-128 AEAD algorithm"
select CRYPTO_HASH select CRYPTO_AEAD
select CRYPTO_LIB_SHA256 select CRYPTO_AES # for AES S-box tables
help help
SHA256 secure hash standard (DFIPS 180-2). Support for the AEGIS-128 dedicated AEAD algorithm.
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 config CRYPTO_AEGIS128_SIMD
of security against collision attacks. bool "Support SIMD acceleration for AEGIS-128"
depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
default y
config CRYPTO_SHA512 config CRYPTO_CHACHA20POLY1305
tristate "SHA384 and SHA512 digest algorithms" tristate "ChaCha20-Poly1305 AEAD support"
select CRYPTO_HASH select CRYPTO_CHACHA20
select CRYPTO_POLY1305
select CRYPTO_AEAD
select CRYPTO_MANAGER
help help
SHA512 secure hash standard (DFIPS 180-2). ChaCha20-Poly1305 AEAD support, RFC7539.
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 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
of security against collision attacks. with the Poly1305 authenticator. It is defined in RFC7539 for use in
IETF protocols.
config CRYPTO_SHA3 config CRYPTO_CCM
tristate "SHA3 digest algorithm" tristate "CCM support"
select CRYPTO_CTR
select CRYPTO_HASH select CRYPTO_HASH
select CRYPTO_AEAD
select CRYPTO_MANAGER
help help
SHA-3 secure hash standard (DFIPS 202). It's based on Support for Counter with CBC MAC. Required for IPsec.
cryptographic sponge function family called Keccak.
References:
http://keccak.noekeon.org/
config CRYPTO_SM3
tristate
config CRYPTO_SM3_GENERIC config CRYPTO_GCM
tristate "SM3 digest algorithm" tristate "GCM/GMAC support"
select CRYPTO_HASH select CRYPTO_CTR
select CRYPTO_SM3 select CRYPTO_AEAD
select CRYPTO_GHASH
select CRYPTO_NULL
select CRYPTO_MANAGER
help help
SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3). Support for Galois/Counter Mode (GCM) and Galois Message
It is part of the Chinese Commercial Cryptography suite. Authentication Code (GMAC). Required for IPSec.
References:
http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
config CRYPTO_STREEBOG config CRYPTO_SEQIV
tristate "Streebog Hash Function" tristate "Sequence Number IV Generator"
select CRYPTO_HASH select CRYPTO_AEAD
select CRYPTO_SKCIPHER
select CRYPTO_NULL
select CRYPTO_RNG_DEFAULT
select CRYPTO_MANAGER
help help
Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian This IV generator generates an IV based on a sequence number by
cryptographic standard algorithms (called GOST algorithms). xoring it with a salt. This algorithm is mainly useful for CTR
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 CRYPTO_WP512 config CRYPTO_ECHAINIV
tristate "Whirlpool digest algorithms" tristate "Encrypted Chain IV Generator"
select CRYPTO_HASH select CRYPTO_AEAD
select CRYPTO_NULL
select CRYPTO_RNG_DEFAULT
select CRYPTO_MANAGER
help help
Whirlpool hash algorithm 512, 384 and 256-bit hashes This IV generator generates an IV based on the encryption of
a sequence number xored with a salt. This is the default
Whirlpool-512 is part of the NESSIE cryptographic primitives. algorithm for CBC.
Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
See also:
<http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
comment "Ciphers"
config CRYPTO_AES config CRYPTO_ESSIV
tristate "AES cipher algorithms" tristate "ESSIV support for block encryption"
select CRYPTO_ALGAPI select CRYPTO_AUTHENC
select CRYPTO_LIB_AES
help help
AES cipher algorithms (FIPS-197). AES uses the Rijndael Encrypted salt-sector initialization vector (ESSIV) is an IV
algorithm. 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
Rijndael appears to be consistently a very good performer in symmetric key for a block encryption pass applied to the input
both hardware and software across a wide range of computing IV, making low entropy IV sources more suitable for block
environments regardless of its use in feedback or non-feedback encryption.
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 This driver implements a crypto API template that can be
instantiated either as an skcipher or as an 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.)
See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 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)
config CRYPTO_AES_TI endmenu
tristate "Fixed time AES cipher"
select CRYPTO_ALGAPI
select CRYPTO_LIB_AES
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 menu "Hashes, digests, and MACs"
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 CRYPTO_ANUBIS config CRYPTO_BLAKE2B
tristate "Anubis cipher algorithm" tristate "BLAKE2b digest algorithm"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE select CRYPTO_HASH
select CRYPTO_ALGAPI
help help
Anubis cipher algorithm. Implementation of cryptographic hash function BLAKE2b (or just BLAKE2),
optimized for 64bit platforms and can produce digests of any size
Anubis is a variable key length cipher which can use keys from between 1 to 64. The keyed hash is also implemented.
128 bits to 320 bits in length. It was evaluated as a entrant
in the NESSIE competition.
See also: This module provides the following algorithms:
<https://www.cosic.esat.kuleuven.be/nessie/reports/>
<http://www.larc.usp.br/~pbarreto/AnubisPage.html>
config CRYPTO_ARC4 - blake2b-160
tristate "ARC4 cipher algorithm" - blake2b-256
depends on CRYPTO_USER_API_ENABLE_OBSOLETE - blake2b-384
select CRYPTO_SKCIPHER - blake2b-512
select CRYPTO_LIB_ARC4
help
ARC4 cipher algorithm.
ARC4 is a stream cipher using keys ranging from 8 bits to 2048 See https://blake2.net for further information.
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 CRYPTO_BLOWFISH config CRYPTO_CMAC
tristate "Blowfish cipher algorithm" tristate "CMAC support"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_BLOWFISH_COMMON select CRYPTO_MANAGER
help help
Blowfish cipher algorithm, by Bruce Schneier. Cipher-based Message Authentication Code (CMAC) specified by
The National Institute of Standards and Technology (NIST).
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: https://tools.ietf.org/html/rfc4493
<https://www.schneier.com/blowfish.html> http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
config CRYPTO_BLOWFISH_COMMON config CRYPTO_GHASH
tristate tristate "GHASH hash function"
select CRYPTO_GF128MUL
select CRYPTO_HASH
help help
Common parts of the Blowfish cipher algorithm shared by the GHASH is the hash function used in GCM (Galois/Counter Mode).
generic c and the assembler implementations. It is not a general-purpose cryptographic hash function.
See also:
<https://www.schneier.com/blowfish.html>
config CRYPTO_CAMELLIA config CRYPTO_HMAC
tristate "Camellia cipher algorithms" tristate "HMAC support"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_MANAGER
help help
Camellia cipher algorithms module. HMAC: Keyed-Hashing for Message Authentication (RFC2104).
This is required for IPSec.
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 CRYPTO_CAST_COMMON config CRYPTO_MD4
tristate tristate "MD4 digest algorithm"
select CRYPTO_HASH
help help
Common parts of the CAST cipher algorithms shared by the MD4 message digest algorithm (RFC1320).
generic c and the assembler implementations.
config CRYPTO_CAST5 config CRYPTO_MD5
tristate "CAST5 (CAST-128) cipher algorithm" tristate "MD5 digest algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_CAST_COMMON
help help
The CAST5 encryption algorithm (synonymous with CAST-128) is MD5 message digest algorithm (RFC1321).
described in RFC2144.
config CRYPTO_CAST6 config CRYPTO_MICHAEL_MIC
tristate "CAST6 (CAST-256) cipher algorithm" tristate "Michael MIC keyed digest algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_CAST_COMMON
help help
The CAST6 encryption algorithm (synonymous with CAST-256) is Michael MIC is used for message integrity protection in TKIP
described in RFC2612. (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 CRYPTO_DES config CRYPTO_POLYVAL
tristate "DES and Triple DES EDE cipher algorithms" tristate
select CRYPTO_ALGAPI select CRYPTO_GF128MUL
select CRYPTO_LIB_DES select CRYPTO_HASH
help help
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). POLYVAL is the hash function used in HCTR2. It is not a general-purpose
cryptographic hash function.
config CRYPTO_FCRYPT config CRYPTO_POLY1305
tristate "FCrypt cipher algorithm" tristate "Poly1305 authenticator algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_SKCIPHER select CRYPTO_LIB_POLY1305_GENERIC
help help
FCrypt algorithm used by RxRPC. Poly1305 authenticator algorithm, RFC7539.
config CRYPTO_KHAZAD Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
tristate "Khazad cipher algorithm" It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
depends on CRYPTO_USER_API_ENABLE_OBSOLETE in IETF protocols. This is the portable C implementation of Poly1305.
select CRYPTO_ALGAPI
config CRYPTO_RMD160
tristate "RIPEMD-160 digest algorithm"
select CRYPTO_HASH
help help
Khazad cipher algorithm. RIPEMD-160 (ISO/IEC 10118-3:2004).
Khazad was a finalist in the initial NESSIE competition. It is RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
an algorithm optimized for 64-bit processors with good performance to be used as a secure replacement for the 128-bit hash functions
on 32-bit processors. Khazad uses an 128 bit key size. MD4, MD5 and its predecessor RIPEMD
(not to be confused with RIPEMD-128).
See also: It's speed is comparable to SHA1 and there are no known attacks
<http://www.larc.usp.br/~pbarreto/KhazadPage.html> against RIPEMD-160.
config CRYPTO_CHACHA20 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
tristate "ChaCha stream cipher algorithms" See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_SKCIPHER config CRYPTO_SHA1
tristate "SHA1 digest algorithm"
select CRYPTO_HASH
select CRYPTO_LIB_SHA1
help help
The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. config CRYPTO_SHA256
Bernstein and further specified in RFC7539 for use in IETF protocols. tristate "SHA224 and SHA256 digest algorithm"
This is the portable C implementation of ChaCha20. See also: select CRYPTO_HASH
<https://cr.yp.to/chacha/chacha-20080128.pdf> select CRYPTO_LIB_SHA256
help
SHA256 secure hash standard (DFIPS 180-2).
XChaCha20 is the application of the XSalsa20 construction to ChaCha20 This version of SHA implements a 256 bit hash with 128 bits of
rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length security against collision attacks.
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 This code also includes SHA-224, a 224 bit hash with 112 bits
reduced security margin but increased performance. It can be needed of security against collision attacks.
in some performance-sensitive scenarios.
config CRYPTO_SEED config CRYPTO_SHA512
tristate "SEED cipher algorithm" tristate "SHA384 and SHA512 digest algorithms"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE select CRYPTO_HASH
select CRYPTO_ALGAPI
help help
SEED cipher algorithm (RFC4269). SHA512 secure hash standard (DFIPS 180-2).
SEED is a 128-bit symmetric key block cipher that has been This version of SHA implements a 512 bit hash with 256 bits of
developed by KISA (Korea Information Security Agency) as a security against collision attacks.
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: This code also includes SHA-384, a 384 bit hash with 192 bits
<http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> of security against collision attacks.
config CRYPTO_ARIA config CRYPTO_SHA3
tristate "ARIA cipher algorithm" tristate "SHA3 digest algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
help help
ARIA cipher algorithm (RFC5794). SHA-3 secure hash standard (DFIPS 202). It's based on
cryptographic sponge function family called Keccak.
ARIA is a standard encryption algorithm of the Republic of Korea. References:
The ARIA specifies three key sizes and rounds. http://keccak.noekeon.org/
128-bit: 12 rounds.
192-bit: 14 rounds.
256-bit: 16 rounds.
See also: config CRYPTO_SM3
<https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do> tristate
config CRYPTO_SERPENT config CRYPTO_SM3_GENERIC
tristate "Serpent cipher algorithm" tristate "SM3 digest algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_SM3
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
It is part of the Chinese Commercial Cryptography suite.
Keys are allowed to be from 0 to 256 bits in length, in steps References:
of 8 bits. http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
See also: config CRYPTO_STREEBOG
<https://www.cl.cam.ac.uk/~rja14/serpent.html> tristate "Streebog Hash Function"
select CRYPTO_HASH
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.
config CRYPTO_SM4 References:
tristate https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
https://tools.ietf.org/html/rfc6986
config CRYPTO_SM4_GENERIC config CRYPTO_VMAC
tristate "SM4 cipher algorithm" tristate "VMAC support"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_SM4 select CRYPTO_MANAGER
help help
SM4 cipher algorithms (OSCCA GB/T 32907-2016). VMAC is a message authentication algorithm designed for
very high speed on 64-bit architectures.
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 See also:
networks, and is mandated in the Chinese National Standard for <https://fastcrypto.org/vmac>
Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
(GB.15629.11-2003).
The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and config CRYPTO_WP512
standardized through TC 260 of the Standardization Administration tristate "Whirlpool digest algorithms"
of the People's Republic of China (SAC). select CRYPTO_HASH
help
Whirlpool hash algorithm 512, 384 and 256-bit hashes
The input, output, and key of SMS4 are each 128 bits. Whirlpool-512 is part of the NESSIE cryptographic primitives.
Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
See also: <https://eprint.iacr.org/2008/329.pdf> See also:
<http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
If unsure, say N. config CRYPTO_XCBC
tristate "XCBC support"
select CRYPTO_HASH
select CRYPTO_MANAGER
help
XCBC: Keyed-Hashing with encryption algorithm
https://www.ietf.org/rfc/rfc3566.txt
http://csrc.nist.gov/encryption/modes/proposedmodes/
xcbc-mac/xcbc-mac-spec.pdf
config CRYPTO_TEA config CRYPTO_XXHASH
tristate "TEA, XTEA and XETA cipher algorithms" tristate "xxHash hash algorithm"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE select CRYPTO_HASH
select CRYPTO_ALGAPI select XXHASH
help help
TEA cipher algorithm. xxHash non-cryptographic hash algorithm. Extremely fast, working at
speeds close to RAM limits.
Tiny Encryption Algorithm is a simple cipher that uses endmenu
many rounds for security. It is very fast and uses
little memory.
Xtendend Tiny Encryption Algorithm is a modification to menu "CRCs (cyclic redundancy checks)"
the TEA algorithm to address a potential key weakness
in the TEA algorithm.
Xtendend Encryption Tiny Algorithm is a mis-implementation config CRYPTO_CRC32C
of the XTEA algorithm for compatibility purposes. tristate "CRC32c CRC algorithm"
select CRYPTO_HASH
select CRC32
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 CRYPTO_TWOFISH config CRYPTO_CRC32
tristate "Twofish cipher algorithm" tristate "CRC32 CRC algorithm"
select CRYPTO_ALGAPI select CRYPTO_HASH
select CRYPTO_TWOFISH_COMMON select CRC32
help help
Twofish cipher algorithm. CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
Shash crypto api wrappers to crc32_le function.
Twofish was submitted as an AES (Advanced Encryption Standard) config CRYPTO_CRCT10DIF
candidate cipher by researchers at CounterPane Systems. It is a tristate "CRCT10DIF algorithm"
16 round block cipher supporting key sizes of 128, 192, and 256 select CRYPTO_HASH
bits. 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.
See also: config CRYPTO_CRC64_ROCKSOFT
<https://www.schneier.com/twofish.html> tristate "Rocksoft Model CRC64 algorithm"
depends on CRC64
select CRYPTO_HASH
config CRYPTO_TWOFISH_COMMON endmenu
tristate
help
Common parts of the Twofish cipher algorithm shared by the
generic c and the assembler implementations.
comment "Compression" menu "Compression"
config CRYPTO_DEFLATE config CRYPTO_DEFLATE
tristate "Deflate compression algorithm" tristate "Deflate compression algorithm"
...@@ -1156,7 +1170,9 @@ config CRYPTO_ZSTD ...@@ -1156,7 +1170,9 @@ config CRYPTO_ZSTD
help help
This is the zstd algorithm. This is the zstd algorithm.
comment "Random Number Generation" endmenu
menu "Random number generation"
config CRYPTO_ANSI_CPRNG config CRYPTO_ANSI_CPRNG
tristate "Pseudo Random Number Generation for Cryptographic modules" tristate "Pseudo Random Number Generation for Cryptographic modules"
...@@ -1218,6 +1234,9 @@ config CRYPTO_KDF800108_CTR ...@@ -1218,6 +1234,9 @@ config CRYPTO_KDF800108_CTR
select CRYPTO_HMAC select CRYPTO_HMAC
select CRYPTO_SHA256 select CRYPTO_SHA256
endmenu
menu "User-space interface"
config CRYPTO_USER_API config CRYPTO_USER_API
tristate tristate
...@@ -1289,6 +1308,8 @@ config CRYPTO_STATS ...@@ -1289,6 +1308,8 @@ config CRYPTO_STATS
- encrypt/decrypt/sign/verify numbers for asymmetric operations - encrypt/decrypt/sign/verify numbers for asymmetric operations
- generate/seed numbers for rng operations - generate/seed numbers for rng operations
endmenu
config CRYPTO_HASH_INFO config CRYPTO_HASH_INFO
bool bool
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment