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

crypto: Kconfig - simplify cipher entries

Shorten menu titles and make them consistent:
- acronym
- name
- architecture features in parenthesis
- no suffixes like "<something> algorithm", "support", or
  "hardware acceleration", or "optimized"

Simplify help text descriptions, update references, and ensure that
https references are still valid.
Signed-off-by: default avatarRobert Elliott <elliott@hpe.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 9bc51715
...@@ -144,11 +144,13 @@ config CRYPTO_SHA512_ARM ...@@ -144,11 +144,13 @@ config CRYPTO_SHA512_ARM
- NEON (Advanced SIMD) extensions - NEON (Advanced SIMD) extensions
config CRYPTO_AES_ARM config CRYPTO_AES_ARM
tristate "Scalar AES cipher for ARM" tristate "Ciphers: AES"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_AES select CRYPTO_AES
help help
Use optimized AES assembler routines for ARM platforms. Block ciphers: AES cipher algorithms (FIPS-197)
Architecture: arm
On ARM processors without the Crypto Extensions, this is the On ARM processors without the Crypto Extensions, this is the
fastest AES implementation for single blocks. For multiple fastest AES implementation for single blocks. For multiple
...@@ -160,7 +162,7 @@ config CRYPTO_AES_ARM ...@@ -160,7 +162,7 @@ config CRYPTO_AES_ARM
such attacks very difficult. such attacks very difficult.
config CRYPTO_AES_ARM_BS config CRYPTO_AES_ARM_BS
tristate "Bit sliced AES using NEON instructions" tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (bit-sliced NEON)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
...@@ -168,8 +170,13 @@ config CRYPTO_AES_ARM_BS ...@@ -168,8 +170,13 @@ config CRYPTO_AES_ARM_BS
select CRYPTO_CBC select CRYPTO_CBC
select CRYPTO_SIMD select CRYPTO_SIMD
help help
Use a faster and more secure NEON based implementation of AES in CBC, Length-preserving ciphers: AES cipher algorithms (FIPS-197)
CTR and XTS modes with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
- XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
and IEEE 1619)
Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
and for XTS mode encryption, CBC and XTS mode decryption speedup is and for XTS mode encryption, CBC and XTS mode decryption speedup is
...@@ -178,19 +185,34 @@ config CRYPTO_AES_ARM_BS ...@@ -178,19 +185,34 @@ config CRYPTO_AES_ARM_BS
believed to be invulnerable to cache timing attacks. believed to be invulnerable to cache timing attacks.
config CRYPTO_AES_ARM_CE config CRYPTO_AES_ARM_CE
tristate "Accelerated AES using ARMv8 Crypto Extensions" tristate "Ciphers: AES, modes: ECB/CBC/CTS/CTR/XTS (ARMv8 Crypto Extensions)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
select CRYPTO_SIMD select CRYPTO_SIMD
help help
Use an implementation of AES in CBC, CTR and XTS modes that uses Length-preserving ciphers: AES cipher algorithms (FIPS-197)
ARMv8 Crypto Extensions with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
- CTS (Cipher Text Stealing) mode (NIST SP800-38A)
- XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
and IEEE 1619)
Architecture: arm using:
- ARMv8 Crypto Extensions
config CRYPTO_CHACHA20_NEON config CRYPTO_CHACHA20_NEON
tristate "NEON and scalar accelerated ChaCha stream cipher algorithms" tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (NEON)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms
Architecture: arm using:
- NEON (Advanced SIMD) extensions
config CRYPTO_CRC32_ARM_CE config CRYPTO_CRC32_ARM_CE
tristate "CRC32C and CRC32" tristate "CRC32C and CRC32"
......
...@@ -118,66 +118,155 @@ config CRYPTO_POLYVAL_ARM64_CE ...@@ -118,66 +118,155 @@ config CRYPTO_POLYVAL_ARM64_CE
- ARMv8 Crypto Extensions - ARMv8 Crypto Extensions
config CRYPTO_AES_ARM64 config CRYPTO_AES_ARM64
tristate "AES core cipher using scalar instructions" tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
select CRYPTO_AES select CRYPTO_AES
help
Block ciphers: AES cipher algorithms (FIPS-197)
Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
XCTR, and XTS modes
AEAD cipher: AES with CBC, ESSIV, and SHA-256
for fscrypt and dm-crypt
Architecture: arm64
config CRYPTO_AES_ARM64_CE config CRYPTO_AES_ARM64_CE
tristate "AES core cipher using ARMv8 Crypto Extensions" tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
depends on ARM64 && KERNEL_MODE_NEON depends on ARM64 && KERNEL_MODE_NEON
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help
Block ciphers: AES cipher algorithms (FIPS-197)
Architecture: arm64 using:
- ARMv8 Crypto Extensions
config CRYPTO_AES_ARM64_CE_BLK config CRYPTO_AES_ARM64_CE_BLK
tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using ARMv8 Crypto Extensions" tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_AES_ARM64_CE select CRYPTO_AES_ARM64_CE
help
Length-preserving ciphers: AES cipher algorithms (FIPS-197)
with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
- XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
and IEEE 1619)
Architecture: arm64 using:
- ARMv8 Crypto Extensions
config CRYPTO_AES_ARM64_NEON_BLK config CRYPTO_AES_ARM64_NEON_BLK
tristate "AES in ECB/CBC/CTR/XTS/XCTR modes using NEON instructions" tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help
Length-preserving ciphers: AES cipher algorithms (FIPS-197)
with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
- XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
and IEEE 1619)
Architecture: arm64 using:
- NEON (Advanced SIMD) extensions
config CRYPTO_CHACHA20_NEON config CRYPTO_CHACHA20_NEON
tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions" tristate "Ciphers: ChaCha (NEON)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms
Architecture: arm64 using:
- NEON (Advanced SIMD) extensions
config CRYPTO_AES_ARM64_BS config CRYPTO_AES_ARM64_BS
tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm" tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_AES_ARM64_NEON_BLK select CRYPTO_AES_ARM64_NEON_BLK
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help
Length-preserving ciphers: AES cipher algorithms (FIPS-197)
with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
- XCTR mode for HCTR2
- XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
and IEEE 1619)
Architecture: arm64 using:
- bit-sliced algorithm
- NEON (Advanced SIMD) extensions
config CRYPTO_SM4_ARM64_CE config CRYPTO_SM4_ARM64_CE
tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)" tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SM4 select CRYPTO_SM4
help
Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
Architecture: arm64 using:
- ARMv8.2 Crypto Extensions
- NEON (Advanced SIMD) extensions
config CRYPTO_SM4_ARM64_CE_BLK config CRYPTO_SM4_ARM64_CE_BLK
tristate "SM4 in ECB/CBC/CFB/CTR modes using ARMv8 Crypto Extensions" tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (ARMv8 Crypto Extensions)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SM4 select CRYPTO_SM4
help
Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CFB (Cipher Feedback) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
Architecture: arm64 using:
- ARMv8 Crypto Extensions
- NEON (Advanced SIMD) extensions
config CRYPTO_SM4_ARM64_NEON_BLK config CRYPTO_SM4_ARM64_NEON_BLK
tristate "SM4 in ECB/CBC/CFB/CTR modes using NEON instructions" tristate "Ciphers: SM4, modes: ECB/CBC/CFB/CTR (NEON)"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SM4 select CRYPTO_SM4
help
Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
with block cipher modes:
- ECB (Electronic Codebook) mode (NIST SP800-38A)
- CBC (Cipher Block Chaining) mode (NIST SP800-38A)
- CFB (Cipher Feedback) mode (NIST SP800-38A)
- CTR (Counter) mode (NIST SP800-38A)
Architecture: arm64 using:
- NEON (Advanced SIMD) extensions
config CRYPTO_AES_ARM64_CE_CCM config CRYPTO_AES_ARM64_CE_CCM
tristate "AES in CCM mode using ARMv8 Crypto Extensions" tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
depends on ARM64 && KERNEL_MODE_NEON depends on ARM64 && KERNEL_MODE_NEON
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_AES_ARM64_CE select CRYPTO_AES_ARM64_CE
select CRYPTO_AEAD select CRYPTO_AEAD
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help
AEAD cipher: AES cipher algorithms (FIPS-197) with
CCM (Counter with Cipher Block Chaining-Message Authentication Code)
authenticated encryption mode (NIST SP800-38C)
Architecture: arm64 using:
- ARMv8 Crypto Extensions
- NEON (Advanced SIMD) extensions
config CRYPTO_CRCT10DIF_ARM64_CE config CRYPTO_CRCT10DIF_ARM64_CE
tristate "CRCT10DIF (PMULL)" tristate "CRCT10DIF (PMULL)"
......
...@@ -61,9 +61,14 @@ config CRYPTO_SHA512_OCTEON ...@@ -61,9 +61,14 @@ config CRYPTO_SHA512_OCTEON
Architecture: mips OCTEON using crypto instructions, when available Architecture: mips OCTEON using crypto instructions, when available
config CRYPTO_CHACHA_MIPS config CRYPTO_CHACHA_MIPS
tristate "ChaCha stream cipher algorithms (MIPS 32r2 optimized)" tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (MIPS32r2)"
depends on CPU_MIPS32_R2 depends on CPU_MIPS32_R2
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
help
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms
Architecture: MIPS32r2
endmenu endmenu
...@@ -73,12 +73,20 @@ config CRYPTO_SHA256_PPC_SPE ...@@ -73,12 +73,20 @@ config CRYPTO_SHA256_PPC_SPE
- SPE (Signal Processing Engine) extensions - SPE (Signal Processing Engine) extensions
config CRYPTO_AES_PPC_SPE config CRYPTO_AES_PPC_SPE
tristate "AES cipher algorithms (PPC SPE)" tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
depends on PPC && SPE depends on PPC && SPE
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
AES cipher algorithms (FIPS-197). Additionally the acceleration Block ciphers: AES cipher algorithms (FIPS-197)
for popular block cipher modes ECB, CBC, CTR and XTS is supported. Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes
Architecture: powerpc using:
- SPE (Signal Processing Engine) extensions
SPE is available for:
- Processor Type: Freescale 8500
- CPU selection: e500 (8540)
This module should only be used for low power (router) devices This module should only be used for low power (router) devices
without hardware AES acceleration (e.g. caam crypto). It reduces the without hardware AES acceleration (e.g. caam crypto). It reduces the
size of the AES tables from 16KB to 8KB + 256 bytes and mitigates size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
......
...@@ -81,44 +81,54 @@ config CRYPTO_GHASH_S390 ...@@ -81,44 +81,54 @@ config CRYPTO_GHASH_S390
It is available as of z196. It is available as of z196.
config CRYPTO_AES_S390 config CRYPTO_AES_S390
tristate "AES cipher algorithms" tristate "Ciphers: AES, modes: ECB, CBC, CTR, XTS, GCM"
depends on S390 depends on S390
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
This is the s390 hardware accelerated implementation of the Block cipher: AES cipher algorithms (FIPS 197)
AES cipher algorithms (FIPS-197). AEAD cipher: AES with GCM
Length-preserving ciphers: AES with ECB, CBC, XTS, and CTR modes
Architecture: s390
As of z9 the ECB and CBC modes are hardware accelerated As of z9 the ECB and CBC modes are hardware accelerated
for 128 bit keys. for 128 bit keys.
As of z10 the ECB and CBC modes are hardware accelerated As of z10 the ECB and CBC modes are hardware accelerated
for all AES key sizes. for all AES key sizes.
As of z196 the CTR mode is hardware accelerated for all AES As of z196 the CTR mode is hardware accelerated for all AES
key sizes and XTS mode is hardware accelerated for 256 and key sizes and XTS mode is hardware accelerated for 256 and
512 bit keys. 512 bit keys.
config CRYPTO_DES_S390 config CRYPTO_DES_S390
tristate "DES and Triple DES cipher algorithms" tristate "Ciphers: DES and Triple DES EDE, modes: ECB, CBC, CTR"
depends on S390 depends on S390
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_DES select CRYPTO_LIB_DES
help help
This is the s390 hardware accelerated implementation of the Block ciphers: DES (FIPS 46-2) cipher algorithm
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). Block ciphers: Triple DES EDE (FIPS 46-3) cipher algorithm
Length-preserving ciphers: DES with ECB, CBC, and CTR modes
Length-preserving ciphers: Triple DES EDED with ECB, CBC, and CTR modes
Architecture: s390
As of z990 the ECB and CBC mode are hardware accelerated. As of z990 the ECB and CBC mode are hardware accelerated.
As of z196 the CTR mode is hardware accelerated. As of z196 the CTR mode is hardware accelerated.
config CRYPTO_CHACHA_S390 config CRYPTO_CHACHA_S390
tristate "ChaCha20 stream cipher" tristate "Ciphers: ChaCha20"
depends on S390 depends on S390
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
help help
This is the s390 SIMD implementation of the ChaCha20 stream Length-preserving cipher: ChaCha20 stream cipher (RFC 7539)
cipher (RFC 7539).
Architecture: s390
It is available as of z13. It is available as of z13.
......
...@@ -3,14 +3,18 @@ ...@@ -3,14 +3,18 @@
menu "Accelerated Cryptographic Algorithms for CPU (sparc64)" menu "Accelerated Cryptographic Algorithms for CPU (sparc64)"
config CRYPTO_DES_SPARC64 config CRYPTO_DES_SPARC64
tristate "DES and Triple DES EDE cipher algorithms (SPARC64)" tristate "Ciphers: DES and Triple DES EDE, modes: ECB/CBC"
depends on SPARC64 depends on SPARC64
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_LIB_DES select CRYPTO_LIB_DES
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3), Block cipher: DES (FIPS 46-2) cipher algorithm
optimized using SPARC64 crypto opcodes. Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
Length-preserving ciphers: DES with ECB and CBC modes
Length-preserving ciphers: Tripe DES EDE with ECB and CBC modes
Architecture: sparc64
config CRYPTO_CRC32C_SPARC64 config CRYPTO_CRC32C_SPARC64
tristate "CRC32c" tristate "CRC32c"
...@@ -63,46 +67,24 @@ config CRYPTO_SHA512_SPARC64 ...@@ -63,46 +67,24 @@ config CRYPTO_SHA512_SPARC64
Architecture: sparc64 using crypto instructions, when available Architecture: sparc64 using crypto instructions, when available
config CRYPTO_AES_SPARC64 config CRYPTO_AES_SPARC64
tristate "AES cipher algorithms (SPARC64)" tristate "Ciphers: AES, modes: ECB, CBC, CTR"
depends on SPARC64 depends on SPARC64
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
Use SPARC64 crypto opcodes for AES algorithm. Block ciphers: AES cipher algorithms (FIPS-197)
Length-preseving ciphers: AES with ECB, CBC, and CTR modes
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. Architecture: sparc64 using crypto instructions
In addition to AES cipher algorithm support, the acceleration
for some popular block cipher mode is supported too, including
ECB and CBC.
config CRYPTO_CAMELLIA_SPARC64 config CRYPTO_CAMELLIA_SPARC64
tristate "Camellia cipher algorithm (SPARC64)" tristate "Ciphers: Camellia, modes: ECB, CBC"
depends on SPARC64 depends on SPARC64
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
Camellia cipher algorithm module (SPARC64). Block ciphers: Camellia cipher algorithms
Length-preserving ciphers: Camellia with ECB and CBC modes
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. Architecture: sparc64
See also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
endmenu endmenu
...@@ -14,7 +14,7 @@ config CRYPTO_CURVE25519_X86 ...@@ -14,7 +14,7 @@ config CRYPTO_CURVE25519_X86
- ADX (large integer arithmetic) - ADX (large integer arithmetic)
config CRYPTO_AES_NI_INTEL config CRYPTO_AES_NI_INTEL
tristate "AES cipher algorithms (AES-NI)" tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
depends on X86 depends on X86
select CRYPTO_AEAD select CRYPTO_AEAD
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
...@@ -22,96 +22,63 @@ config CRYPTO_AES_NI_INTEL ...@@ -22,96 +22,63 @@ config CRYPTO_AES_NI_INTEL
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SIMD select CRYPTO_SIMD
help help
Use Intel AES-NI instructions for AES algorithm. Block cipher: AES cipher algorithms
AEAD cipher: AES with GCM
Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS
AES cipher algorithms (FIPS-197). AES uses the Rijndael Architecture: x86 (32-bit and 64-bit) using:
algorithm. - AES-NI (AES new instructions)
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 and XCTR.
config CRYPTO_BLOWFISH_X86_64 config CRYPTO_BLOWFISH_X86_64
tristate "Blowfish cipher algorithm (x86_64)" tristate "Ciphers: Blowfish, modes: ECB, CBC"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_BLOWFISH_COMMON select CRYPTO_BLOWFISH_COMMON
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Blowfish cipher algorithm (x86_64), by Bruce Schneier. Block cipher: Blowfish cipher algorithm
Length-preserving ciphers: Blowfish with ECB and CBC modes
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: Architecture: x86_64
<https://www.schneier.com/blowfish.html>
config CRYPTO_CAMELLIA_X86_64 config CRYPTO_CAMELLIA_X86_64
tristate "Camellia cipher algorithm (x86_64)" tristate "Ciphers: Camellia with modes: ECB, CBC"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Camellia cipher algorithm module (x86_64). Block cipher: Camellia cipher algorithms
Length-preserving ciphers: Camellia with ECB and CBC modes
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. Architecture: x86_64
See also:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_CAMELLIA_X86_64 select CRYPTO_CAMELLIA_X86_64
select CRYPTO_SIMD select CRYPTO_SIMD
imply CRYPTO_XTS imply CRYPTO_XTS
help help
Camellia cipher algorithm module (x86_64/AES-NI/AVX). Length-preserving ciphers: Camellia with ECB and CBC modes
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: Architecture: x86_64 using:
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> - AES-NI (AES New Instructions)
- AVX (Advanced Vector Extensions)
config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
help help
Camellia cipher algorithm module (x86_64/AES-NI/AVX2). Length-preserving ciphers: Camellia with ECB and CBC modes
Camellia is a symmetric key block cipher developed jointly Architecture: x86_64 using:
at NTT and Mitsubishi Electric Corporation. - AES-NI (AES New Instructions)
- AVX2 (Advanced Vector Extensions 2)
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_CAST5_AVX_X86_64 config CRYPTO_CAST5_AVX_X86_64
tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)" tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_CAST5 select CRYPTO_CAST5
...@@ -119,14 +86,16 @@ config CRYPTO_CAST5_AVX_X86_64 ...@@ -119,14 +86,16 @@ config CRYPTO_CAST5_AVX_X86_64
select CRYPTO_SIMD select CRYPTO_SIMD
imply CRYPTO_CTR imply CRYPTO_CTR
help help
The CAST5 encryption algorithm (synonymous with CAST-128) is Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
described in RFC2144. (RFC2144) with ECB and CBC modes
This module provides the Cast5 cipher algorithm that processes Architecture: x86_64 using:
sixteen blocks parallel using the AVX instruction set. - AVX (Advanced Vector Extensions)
Processes 16 blocks in parallel.
config CRYPTO_CAST6_AVX_X86_64 config CRYPTO_CAST6_AVX_X86_64
tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)" tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_CAST6 select CRYPTO_CAST6
...@@ -135,66 +104,62 @@ config CRYPTO_CAST6_AVX_X86_64 ...@@ -135,66 +104,62 @@ config CRYPTO_CAST6_AVX_X86_64
imply CRYPTO_XTS imply CRYPTO_XTS
imply CRYPTO_CTR imply CRYPTO_CTR
help help
The CAST6 encryption algorithm (synonymous with CAST-256) is Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
described in RFC2612. (RFC2612) with ECB and CBC modes
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
This module provides the Cast6 cipher algorithm that processes Processes eight blocks in parallel.
eight blocks parallel using the AVX instruction set.
config CRYPTO_DES3_EDE_X86_64 config CRYPTO_DES3_EDE_X86_64
tristate "Triple DES EDE cipher algorithm (x86-64)" tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_DES select CRYPTO_LIB_DES
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Triple DES EDE (FIPS 46-3) algorithm. Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
Architecture: x86_64
This module provides implementation of the Triple DES EDE cipher Processes one or three blocks in parallel.
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 CRYPTO_SERPENT_SSE2_X86_64 config CRYPTO_SERPENT_SSE2_X86_64
tristate "Serpent cipher algorithm (x86_64/SSE2)" tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SERPENT select CRYPTO_SERPENT
select CRYPTO_SIMD select CRYPTO_SIMD
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
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 Architecture: x86_64 using:
blocks parallel using SSE2 instruction set. - SSE2 (Streaming SIMD Extensions 2)
See also: Processes eight blocks in parallel.
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SERPENT_SSE2_586 config CRYPTO_SERPENT_SSE2_586
tristate "Serpent cipher algorithm (i586/SSE2)" tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
depends on X86 && !64BIT depends on X86 && !64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SERPENT select CRYPTO_SERPENT
select CRYPTO_SIMD select CRYPTO_SIMD
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
Keys are allowed to be from 0 to 256 bits in length, in steps Architecture: x86 (32-bit) using:
of 8 bits. - SSE2 (Streaming SIMD Extensions 2)
This module provides Serpent cipher algorithm that processes four
blocks parallel using SSE2 instruction set.
See also: Processes four blocks in parallel.
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SERPENT_AVX_X86_64 config CRYPTO_SERPENT_AVX_X86_64
tristate "Serpent cipher algorithm (x86_64/AVX)" tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SERPENT select CRYPTO_SERPENT
...@@ -202,56 +167,50 @@ config CRYPTO_SERPENT_AVX_X86_64 ...@@ -202,56 +167,50 @@ config CRYPTO_SERPENT_AVX_X86_64
imply CRYPTO_XTS imply CRYPTO_XTS
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
Keys are allowed to be from 0 to 256 bits in length, in steps Architecture: x86_64 using:
of 8 bits. - AVX (Advanced Vector Extensions)
This module provides the Serpent cipher algorithm that processes
eight blocks parallel using the AVX instruction set.
See also: Processes eight blocks in parallel.
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SERPENT_AVX2_X86_64 config CRYPTO_SERPENT_AVX2_X86_64
tristate "Serpent cipher algorithm (x86_64/AVX2)" tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SERPENT_AVX_X86_64 select CRYPTO_SERPENT_AVX_X86_64
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
Keys are allowed to be from 0 to 256 bits in length, in steps Architecture: x86_64 using:
of 8 bits. - AVX2 (Advanced Vector Extensions 2)
This module provides Serpent cipher algorithm that processes 16
blocks parallel using AVX2 instruction set.
See also: Processes 16 blocks in parallel.
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SM4_AESNI_AVX_X86_64 config CRYPTO_SM4_AESNI_AVX_X86_64
tristate "SM4 cipher algorithm (x86_64/AES-NI/AVX)" tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SIMD select CRYPTO_SIMD
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SM4 select CRYPTO_SM4
help help
SM4 cipher algorithms (OSCCA GB/T 32907-2016) (x86_64/AES-NI/AVX). Length-preserving ciphers: SM4 cipher algorithms
(OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
SM4 (GBT.32907-2016) is a cryptographic standard issued by the Architecture: x86_64 using:
Organization of State Commercial Administration of China (OSCCA) - AES-NI (AES New Instructions)
as an authorized cryptographic algorithms for the use within China. - AVX (Advanced Vector Extensions)
This is SM4 optimized implementation using AES-NI/AVX/x86_64 Through two affine transforms,
instruction set for block cipher. Through two affine transforms,
we can use the AES S-Box to simulate the SM4 S-Box to achieve the we can use the AES S-Box to simulate the SM4 S-Box to achieve the
effect of instruction acceleration. effect of instruction acceleration.
If unsure, say N. If unsure, say N.
config CRYPTO_SM4_AESNI_AVX2_X86_64 config CRYPTO_SM4_AESNI_AVX2_X86_64
tristate "SM4 cipher algorithm (x86_64/AES-NI/AVX2)" tristate "Ciphers: SM4 with modes: ECB, CBC, CFB, CTR (AES-NI/AVX2)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SIMD select CRYPTO_SIMD
...@@ -259,75 +218,58 @@ config CRYPTO_SM4_AESNI_AVX2_X86_64 ...@@ -259,75 +218,58 @@ config CRYPTO_SM4_AESNI_AVX2_X86_64
select CRYPTO_SM4 select CRYPTO_SM4
select CRYPTO_SM4_AESNI_AVX_X86_64 select CRYPTO_SM4_AESNI_AVX_X86_64
help help
SM4 cipher algorithms (OSCCA GB/T 32907-2016) (x86_64/AES-NI/AVX2). Length-preserving ciphers: SM4 cipher algorithms
(OSCCA GB/T 32907-2016) with ECB, CBC, CFB, and CTR modes
SM4 (GBT.32907-2016) is a cryptographic standard issued by the Architecture: x86_64 using:
Organization of State Commercial Administration of China (OSCCA) - AES-NI (AES New Instructions)
as an authorized cryptographic algorithms for the use within China. - AVX2 (Advanced Vector Extensions 2)
This is SM4 optimized implementation using AES-NI/AVX2/x86_64 Through two affine transforms,
instruction set for block cipher. Through two affine transforms,
we can use the AES S-Box to simulate the SM4 S-Box to achieve the we can use the AES S-Box to simulate the SM4 S-Box to achieve the
effect of instruction acceleration. effect of instruction acceleration.
If unsure, say N. If unsure, say N.
config CRYPTO_TWOFISH_586 config CRYPTO_TWOFISH_586
tristate "Twofish cipher algorithms (i586)" tristate "Ciphers: Twofish (32-bit)"
depends on (X86 || UML_X86) && !64BIT depends on (X86 || UML_X86) && !64BIT
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_COMMON
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Twofish cipher algorithm. Block cipher: 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: Architecture: x86 (32-bit)
<https://www.schneier.com/twofish.html>
config CRYPTO_TWOFISH_X86_64 config CRYPTO_TWOFISH_X86_64
tristate "Twofish cipher algorithm (x86_64)" tristate "Ciphers: Twofish"
depends on (X86 || UML_X86) && 64BIT depends on (X86 || UML_X86) && 64BIT
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_COMMON
imply CRYPTO_CTR imply CRYPTO_CTR
help help
Twofish cipher algorithm (x86_64). Block cipher: Twofish cipher algorithm
Twofish was submitted as an AES (Advanced Encryption Standard) Architecture: x86_64
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_X86_64_3WAY config CRYPTO_TWOFISH_X86_64_3WAY
tristate "Twofish cipher algorithm (x86_64, 3-way parallel)" tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_COMMON
select CRYPTO_TWOFISH_X86_64 select CRYPTO_TWOFISH_X86_64
help help
Twofish cipher algorithm (x86_64, 3-way parallel). Length-preserving cipher: Twofish cipher algorithm
with ECB and CBC modes
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 Architecture: x86_64
blocks parallel, utilizing resources of out-of-order CPUs better.
See also: Processes three blocks in parallel, better utilizing resources of
<https://www.schneier.com/twofish.html> out-of-order CPUs.
config CRYPTO_TWOFISH_AVX_X86_64 config CRYPTO_TWOFISH_AVX_X86_64
tristate "Twofish cipher algorithm (x86_64/AVX)" tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_SIMD select CRYPTO_SIMD
...@@ -336,28 +278,28 @@ config CRYPTO_TWOFISH_AVX_X86_64 ...@@ -336,28 +278,28 @@ config CRYPTO_TWOFISH_AVX_X86_64
select CRYPTO_TWOFISH_X86_64_3WAY select CRYPTO_TWOFISH_X86_64_3WAY
imply CRYPTO_XTS imply CRYPTO_XTS
help help
Twofish cipher algorithm (x86_64/AVX). Length-preserving cipher: Twofish cipher algorithm
with ECB and CBC modes
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 Architecture: x86_64 using:
eight blocks parallel using the AVX Instruction Set. - AVX (Advanced Vector Extensions)
See also: Processes eight blocks in parallel.
<https://www.schneier.com/twofish.html>
config CRYPTO_CHACHA20_X86_64 config CRYPTO_CHACHA20_X86_64
tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)" tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
depends on X86 && 64BIT depends on X86 && 64BIT
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
help help
SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20, Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
XChaCha20, and XChaCha12 stream ciphers. stream cipher algorithms
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX2 (Advanced Vector Extensions 2)
- AVX-512VL (Advanced Vector Extensions-512VL)
config CRYPTO_AEGIS128_AESNI_SSE2 config CRYPTO_AEGIS128_AESNI_SSE2
tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)" tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
......
...@@ -219,7 +219,8 @@ config CRYPTO_AUTHENC ...@@ -219,7 +219,8 @@ config CRYPTO_AUTHENC
select CRYPTO_NULL select CRYPTO_NULL
help help
Authenc: Combined mode wrapper for IPsec. Authenc: Combined mode wrapper for IPsec.
This is required for IPSec.
This is required for IPSec ESP (XFRM_ESP).
config CRYPTO_TEST config CRYPTO_TEST
tristate "Testing module" tristate "Testing module"
...@@ -336,12 +337,11 @@ endmenu ...@@ -336,12 +337,11 @@ endmenu
menu "Block ciphers" menu "Block ciphers"
config CRYPTO_AES config CRYPTO_AES
tristate "AES cipher algorithms" tristate "AES (Advanced Encryption Standard)"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help help
AES cipher algorithms (FIPS-197). AES uses the Rijndael AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
algorithm.
Rijndael appears to be consistently a very good performer in Rijndael appears to be consistently a very good performer in
both hardware and software across a wide range of computing both hardware and software across a wide range of computing
...@@ -354,13 +354,13 @@ config CRYPTO_AES ...@@ -354,13 +354,13 @@ config CRYPTO_AES
The AES specifies three key sizes: 128, 192 and 256 bits The AES specifies three key sizes: 128, 192 and 256 bits
See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
config CRYPTO_AES_TI config CRYPTO_AES_TI
tristate "Fixed time AES cipher" tristate "AES (Advanced Encryption Standard) (fixed time)"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
help help
AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
This is a generic implementation of AES that attempts to eliminate This is a generic implementation of AES that attempts to eliminate
data dependent latencies as much as possible without affecting data dependent latencies as much as possible without affecting
performance too much. It is intended for use by the generic CCM performance too much. It is intended for use by the generic CCM
...@@ -376,25 +376,24 @@ config CRYPTO_AES_TI ...@@ -376,25 +376,24 @@ config CRYPTO_AES_TI
are evicted when the CPU is interrupted to do something else. are evicted when the CPU is interrupted to do something else.
config CRYPTO_ANUBIS config CRYPTO_ANUBIS
tristate "Anubis cipher algorithm" tristate "Anubis"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
Anubis cipher algorithm. Anubis cipher algorithm
Anubis is a variable key length cipher which can use keys from 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 128 bits to 320 bits in length. It was evaluated as a entrant
in the NESSIE competition. in the NESSIE competition.
See also: See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html
<https://www.cosic.esat.kuleuven.be/nessie/reports/> for further information.
<http://www.larc.usp.br/~pbarreto/AnubisPage.html>
config CRYPTO_ARIA config CRYPTO_ARIA
tristate "ARIA cipher algorithm" tristate "ARIA"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
ARIA cipher algorithm (RFC5794). ARIA cipher algorithm (RFC5794)
ARIA is a standard encryption algorithm of the Republic of Korea. ARIA is a standard encryption algorithm of the Republic of Korea.
The ARIA specifies three key sizes and rounds. The ARIA specifies three key sizes and rounds.
...@@ -402,22 +401,21 @@ config CRYPTO_ARIA ...@@ -402,22 +401,21 @@ config CRYPTO_ARIA
192-bit: 14 rounds. 192-bit: 14 rounds.
256-bit: 16 rounds. 256-bit: 16 rounds.
See also: See:
<https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do> https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do
config CRYPTO_BLOWFISH config CRYPTO_BLOWFISH
tristate "Blowfish cipher algorithm" tristate "Blowfish"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_BLOWFISH_COMMON select CRYPTO_BLOWFISH_COMMON
help help
Blowfish cipher algorithm, by Bruce Schneier. Blowfish cipher algorithm, by Bruce Schneier
This is a variable key length cipher which can use keys from 32 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 bits to 448 bits in length. It's fast, simple and specifically
designed for use on "large microprocessors". designed for use on "large microprocessors".
See also: See https://www.schneier.com/blowfish.html for further information.
<https://www.schneier.com/blowfish.html>
config CRYPTO_BLOWFISH_COMMON config CRYPTO_BLOWFISH_COMMON
tristate tristate
...@@ -425,22 +423,18 @@ config CRYPTO_BLOWFISH_COMMON ...@@ -425,22 +423,18 @@ config CRYPTO_BLOWFISH_COMMON
Common parts of the Blowfish cipher algorithm shared by the Common parts of the Blowfish cipher algorithm shared by the
generic c and the assembler implementations. generic c and the assembler implementations.
See also:
<https://www.schneier.com/blowfish.html>
config CRYPTO_CAMELLIA config CRYPTO_CAMELLIA
tristate "Camellia cipher algorithms" tristate "Camellia"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
Camellia cipher algorithms module. Camellia cipher algorithms (ISO/IEC 18033-3)
Camellia is a symmetric key block cipher developed jointly Camellia is a symmetric key block cipher developed jointly
at NTT and Mitsubishi Electric Corporation. at NTT and Mitsubishi Electric Corporation.
The Camellia specifies three key sizes: 128, 192 and 256 bits. The Camellia specifies three key sizes: 128, 192 and 256 bits.
See also: See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information.
<https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
config CRYPTO_CAST_COMMON config CRYPTO_CAST_COMMON
tristate tristate
...@@ -449,85 +443,87 @@ config CRYPTO_CAST_COMMON ...@@ -449,85 +443,87 @@ config CRYPTO_CAST_COMMON
generic c and the assembler implementations. generic c and the assembler implementations.
config CRYPTO_CAST5 config CRYPTO_CAST5
tristate "CAST5 (CAST-128) cipher algorithm" tristate "CAST5 (CAST-128)"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_CAST_COMMON select CRYPTO_CAST_COMMON
help help
The CAST5 encryption algorithm (synonymous with CAST-128) is CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3)
described in RFC2144.
config CRYPTO_CAST6 config CRYPTO_CAST6
tristate "CAST6 (CAST-256) cipher algorithm" tristate "CAST6 (CAST-256)"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_CAST_COMMON select CRYPTO_CAST_COMMON
help help
The CAST6 encryption algorithm (synonymous with CAST-256) is CAST6 (CAST-256) encryption algorithm (RFC2612)
described in RFC2612.
config CRYPTO_DES config CRYPTO_DES
tristate "DES and Triple DES EDE cipher algorithms" tristate "DES and Triple DES EDE"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_LIB_DES select CRYPTO_LIB_DES
help help
DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and
Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3)
cipher algorithms
config CRYPTO_FCRYPT config CRYPTO_FCRYPT
tristate "FCrypt cipher algorithm" tristate "FCrypt"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
FCrypt algorithm used by RxRPC. FCrypt algorithm used by RxRPC
See https://ota.polyonymo.us/fcrypt-paper.txt
config CRYPTO_KHAZAD config CRYPTO_KHAZAD
tristate "Khazad cipher algorithm" tristate "Khazad"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
Khazad cipher algorithm. Khazad cipher algorithm
Khazad was a finalist in the initial NESSIE competition. It is Khazad was a finalist in the initial NESSIE competition. It is
an algorithm optimized for 64-bit processors with good performance an algorithm optimized for 64-bit processors with good performance
on 32-bit processors. Khazad uses an 128 bit key size. on 32-bit processors. Khazad uses an 128 bit key size.
See also: See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html
<http://www.larc.usp.br/~pbarreto/KhazadPage.html> for further information.
config CRYPTO_SEED config CRYPTO_SEED
tristate "SEED cipher algorithm" tristate "SEED"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
SEED cipher algorithm (RFC4269). SEED cipher algorithm (RFC4269, ISO/IEC 18033-3)
SEED is a 128-bit symmetric key block cipher that has been SEED is a 128-bit symmetric key block cipher that has been
developed by KISA (Korea Information Security Agency) as a developed by KISA (Korea Information Security Agency) as a
national standard encryption algorithm of the Republic of Korea. national standard encryption algorithm of the Republic of Korea.
It is a 16 round block cipher with the key size of 128 bit. It is a 16 round block cipher with the key size of 128 bit.
See also: See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
<http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> for further information.
config CRYPTO_SERPENT config CRYPTO_SERPENT
tristate "Serpent cipher algorithm" tristate "Serpent"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
Serpent cipher algorithm, by Anderson, Biham & Knudsen. Serpent cipher algorithm, by Anderson, Biham & Knudsen
Keys are allowed to be from 0 to 256 bits in length, in steps Keys are allowed to be from 0 to 256 bits in length, in steps
of 8 bits. of 8 bits.
See also: See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information.
<https://www.cl.cam.ac.uk/~rja14/serpent.html>
config CRYPTO_SM4 config CRYPTO_SM4
tristate tristate
config CRYPTO_SM4_GENERIC config CRYPTO_SM4_GENERIC
tristate "SM4 cipher algorithm" tristate "SM4 (ShangMi 4)"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_SM4 select CRYPTO_SM4
help help
SM4 cipher algorithms (OSCCA GB/T 32907-2016). SM4 cipher algorithms (OSCCA GB/T 32907-2016,
ISO/IEC 18033-3:2010/Amd 1:2021)
SM4 (GBT.32907-2016) is a cryptographic standard issued by the SM4 (GBT.32907-2016) is a cryptographic standard issued by the
Organization of State Commercial Administration of China (OSCCA) Organization of State Commercial Administration of China (OSCCA)
...@@ -544,16 +540,16 @@ config CRYPTO_SM4_GENERIC ...@@ -544,16 +540,16 @@ config CRYPTO_SM4_GENERIC
The input, output, and key of SMS4 are each 128 bits. The input, output, and key of SMS4 are each 128 bits.
See also: <https://eprint.iacr.org/2008/329.pdf> See https://eprint.iacr.org/2008/329.pdf for further information.
If unsure, say N. If unsure, say N.
config CRYPTO_TEA config CRYPTO_TEA
tristate "TEA, XTEA and XETA cipher algorithms" tristate "TEA, XTEA and XETA"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
help help
TEA cipher algorithm. TEA (Tiny Encryption Algorithm) cipher algorithms
Tiny Encryption Algorithm is a simple cipher that uses Tiny Encryption Algorithm is a simple cipher that uses
many rounds for security. It is very fast and uses many rounds for security. It is very fast and uses
...@@ -567,19 +563,18 @@ config CRYPTO_TEA ...@@ -567,19 +563,18 @@ config CRYPTO_TEA
of the XTEA algorithm for compatibility purposes. of the XTEA algorithm for compatibility purposes.
config CRYPTO_TWOFISH config CRYPTO_TWOFISH
tristate "Twofish cipher algorithm" tristate "Twofish"
select CRYPTO_ALGAPI select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_COMMON
help help
Twofish cipher algorithm. Twofish cipher algorithm
Twofish was submitted as an AES (Advanced Encryption Standard) Twofish was submitted as an AES (Advanced Encryption Standard)
candidate cipher by researchers at CounterPane Systems. It is a candidate cipher by researchers at CounterPane Systems. It is a
16 round block cipher supporting key sizes of 128, 192, and 256 16 round block cipher supporting key sizes of 128, 192, and 256
bits. bits.
See also: See https://www.schneier.com/twofish.html for further information.
<https://www.schneier.com/twofish.html>
config CRYPTO_TWOFISH_COMMON config CRYPTO_TWOFISH_COMMON
tristate tristate
...@@ -592,14 +587,15 @@ endmenu ...@@ -592,14 +587,15 @@ endmenu
menu "Length-preserving ciphers and modes" menu "Length-preserving ciphers and modes"
config CRYPTO_ADIANTUM config CRYPTO_ADIANTUM
tristate "Adiantum support" tristate "Adiantum"
select CRYPTO_CHACHA20 select CRYPTO_CHACHA20
select CRYPTO_LIB_POLY1305_GENERIC select CRYPTO_LIB_POLY1305_GENERIC
select CRYPTO_NHPOLY1305 select CRYPTO_NHPOLY1305
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
Adiantum is a tweakable, length-preserving encryption mode Adiantum tweakable, length-preserving encryption mode
designed for fast and secure disk encryption, especially on
Designed for fast and secure disk encryption, especially on
CPUs without dedicated crypto instructions. It encrypts CPUs without dedicated crypto instructions. It encrypts
each sector using the XChaCha12 stream cipher, two passes of each sector using the XChaCha12 stream cipher, two passes of
an ε-almost-∆-universal hash function, and an invocation of an ε-almost-∆-universal hash function, and an invocation of
...@@ -616,12 +612,12 @@ config CRYPTO_ADIANTUM ...@@ -616,12 +612,12 @@ config CRYPTO_ADIANTUM
If unsure, say N. If unsure, say N.
config CRYPTO_ARC4 config CRYPTO_ARC4
tristate "ARC4 cipher algorithm" tristate "ARC4 (Alleged Rivest Cipher 4)"
depends on CRYPTO_USER_API_ENABLE_OBSOLETE depends on CRYPTO_USER_API_ENABLE_OBSOLETE
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_LIB_ARC4 select CRYPTO_LIB_ARC4
help help
ARC4 cipher algorithm. ARC4 cipher algorithm
ARC4 is a stream cipher using keys ranging from 8 bits to 2048 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
bits in length. This algorithm is required for driver-based bits in length. This algorithm is required for driver-based
...@@ -629,113 +625,118 @@ config CRYPTO_ARC4 ...@@ -629,113 +625,118 @@ config CRYPTO_ARC4
weakness of the algorithm. weakness of the algorithm.
config CRYPTO_CHACHA20 config CRYPTO_CHACHA20
tristate "ChaCha stream cipher algorithms" tristate "ChaCha"
select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
help help
The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms. The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms
ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
Bernstein and further specified in RFC7539 for use in IETF protocols. Bernstein and further specified in RFC7539 for use in IETF protocols.
This is the portable C implementation of ChaCha20. See also: This is the portable C implementation of ChaCha20. See
<https://cr.yp.to/chacha/chacha-20080128.pdf> https://cr.yp.to/chacha/chacha-20080128.pdf for further information.
XChaCha20 is the application of the XSalsa20 construction to ChaCha20 XChaCha20 is the application of the XSalsa20 construction to ChaCha20
rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits, from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
while provably retaining ChaCha20's security. See also: while provably retaining ChaCha20's security. See
<https://cr.yp.to/snuffle/xsalsa-20081128.pdf> https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information.
XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
reduced security margin but increased performance. It can be needed reduced security margin but increased performance. It can be needed
in some performance-sensitive scenarios. in some performance-sensitive scenarios.
config CRYPTO_CBC config CRYPTO_CBC
tristate "CBC support" tristate "CBC (Cipher Block Chaining)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
CBC: Cipher Block Chaining mode CBC (Cipher Block Chaining) mode (NIST SP800-38A)
This block cipher algorithm is required for IPSec.
This block cipher mode is required for IPSec ESP (XFRM_ESP).
config CRYPTO_CFB config CRYPTO_CFB
tristate "CFB support" tristate "CFB (Cipher Feedback)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
CFB: Cipher FeedBack mode CFB (Cipher Feedback) mode (NIST SP800-38A)
This block cipher algorithm is required for TPM2 Cryptography.
This block cipher mode is required for TPM2 Cryptography.
config CRYPTO_CTR config CRYPTO_CTR
tristate "CTR support" tristate "CTR (Counter)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
CTR: Counter mode CTR (Counter) mode (NIST SP800-38A)
This block cipher algorithm is required for IPSec.
config CRYPTO_CTS config CRYPTO_CTS
tristate "CTS support" tristate "CTS (Cipher Text Stealing)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
CTS: Cipher Text Stealing CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST
This is the Cipher Text Stealing mode as described by Addendum to SP800-38A (October 2010))
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 This mode is required for Kerberos gss mechanism support
for AES encryption. for AES encryption.
See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final
config CRYPTO_ECB config CRYPTO_ECB
tristate "ECB support" tristate "ECB (Electronic Codebook)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
ECB: Electronic CodeBook mode ECB (Electronic Codebook) mode (NIST SP800-38A)
This is the simplest block cipher algorithm. It simply encrypts
the input block by block.
config CRYPTO_HCTR2 config CRYPTO_HCTR2
tristate "HCTR2 support" tristate "HCTR2"
select CRYPTO_XCTR select CRYPTO_XCTR
select CRYPTO_POLYVAL select CRYPTO_POLYVAL
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
HCTR2 is a length-preserving encryption mode for storage encryption that HCTR2 length-preserving encryption mode
is efficient on processors with instructions to accelerate AES and
carryless multiplication, e.g. x86 processors with AES-NI and CLMUL, and A mode for storage encryption that is efficient on processors with
ARM processors with the ARMv8 crypto extensions. instructions to accelerate AES and carryless multiplication, e.g.
x86 processors with AES-NI and CLMUL, and ARM processors with the
ARMv8 crypto extensions.
See https://eprint.iacr.org/2021/1441
config CRYPTO_KEYWRAP config CRYPTO_KEYWRAP
tristate "Key wrapping support" tristate "KW (AES Key Wrap)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
Support for key wrapping (NIST SP800-38F / RFC3394) without KW (AES Key Wrap) authenticated encryption mode (NIST SP800-38F
padding. and RFC3394) without padding.
config CRYPTO_LRW config CRYPTO_LRW
tristate "LRW support" tristate "LRW (Liskov Rivest Wagner)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
select CRYPTO_GF128MUL select CRYPTO_GF128MUL
select CRYPTO_ECB select CRYPTO_ECB
help help
LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable LRW (Liskov Rivest Wagner) mode
A tweakable, non malleable, non movable
narrow block cipher mode for dm-crypt. Use it with cipher narrow block cipher mode for dm-crypt. Use it with cipher
specification string aes-lrw-benbi, the key must be 256, 320 or 384. 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 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. rest is used to tie each cipher block to its logical position.
See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf
config CRYPTO_OFB config CRYPTO_OFB
tristate "OFB support" tristate "OFB (Output Feedback)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
OFB: the Output Feedback mode makes a block cipher into a synchronous OFB (Output Feedback) mode (NIST SP800-38A)
This mode makes a block cipher into a synchronous
stream cipher. It generates keystream blocks, which are then XORed stream cipher. It generates keystream blocks, which are then XORed
with the plaintext blocks to get the ciphertext. Flipping a bit in the with the plaintext blocks to get the ciphertext. Flipping a bit in the
ciphertext produces a flipped bit in the plaintext at the same ciphertext produces a flipped bit in the plaintext at the same
...@@ -743,31 +744,38 @@ config CRYPTO_OFB ...@@ -743,31 +744,38 @@ config CRYPTO_OFB
normally even when applied before encryption. normally even when applied before encryption.
config CRYPTO_PCBC config CRYPTO_PCBC
tristate "PCBC support" tristate "PCBC (Propagating Cipher Block Chaining)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
PCBC: Propagating Cipher Block Chaining mode PCBC (Propagating Cipher Block Chaining) mode
This block cipher algorithm is required for RxRPC.
This block cipher mode is required for RxRPC.
config CRYPTO_XCTR config CRYPTO_XCTR
tristate tristate
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
help help
XCTR: XOR Counter mode. This blockcipher mode is a variant of CTR mode XCTR (XOR Counter) mode for HCTR2
using XORs and little-endian addition rather than big-endian arithmetic.
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. XCTR mode is used to implement HCTR2.
config CRYPTO_XTS config CRYPTO_XTS
tristate "XTS support" tristate "XTS (XOR Encrypt XOR with ciphertext stealing)"
select CRYPTO_SKCIPHER select CRYPTO_SKCIPHER
select CRYPTO_MANAGER select CRYPTO_MANAGER
select CRYPTO_ECB select CRYPTO_ECB
help help
XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
key size 256, 384 or 512 bits. This implementation currently and IEEE 1619)
can't handle a sectorsize which is not a multiple of 16 bytes.
Use with aes-xts-plain, key size 256, 384 or 512 bits. This
implementation currently can't handle a sectorsize which is not a
multiple of 16 bytes.
config CRYPTO_NHPOLY1305 config CRYPTO_NHPOLY1305
tristate tristate
...@@ -806,7 +814,7 @@ config CRYPTO_CHACHA20POLY1305 ...@@ -806,7 +814,7 @@ config CRYPTO_CHACHA20POLY1305
mode (RFC8439) mode (RFC8439)
config CRYPTO_CCM config CRYPTO_CCM
tristate "CCM (Counter with Cipher Block Chaining-Message Authentication Code)" tristate "CCM (Counter with Cipher Block Chaining-MAC)"
select CRYPTO_CTR select CRYPTO_CTR
select CRYPTO_HASH select CRYPTO_HASH
select CRYPTO_AEAD select CRYPTO_AEAD
...@@ -816,7 +824,7 @@ config CRYPTO_CCM ...@@ -816,7 +824,7 @@ config CRYPTO_CCM
authenticated encryption mode (NIST SP800-38C) authenticated encryption mode (NIST SP800-38C)
config CRYPTO_GCM config CRYPTO_GCM
tristate "GCM (Galois/Counter Mode) and GMAC (GCM Message Authentication Code)" tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)"
select CRYPTO_CTR select CRYPTO_CTR
select CRYPTO_AEAD select CRYPTO_AEAD
select CRYPTO_GHASH select CRYPTO_GHASH
......
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