mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Pull crypto update from Herbert Xu:
"API:
- Replace crypto_get_default_rng with crypto_stdrng_get_bytes
- Remove simd skcipher support
- Allow algorithm types to be disabled when CRYPTO_SELFTESTS is off
Algorithms:
- Remove CPU-based des/3des acceleration
- Add test vectors for authenc(hmac(md5),cbc({aes,des})) and
authenc(hmac({md5,sha1,sha224,sha256,sha384,sha512}),rfc3686(ctr(aes)))
- Replace spin lock with mutex in jitterentropy
Drivers:
- Add authenc algorithms to safexcel
- Add support for zstd in qat
- Add wireless mode support for QAT GEN6
- Add anti-rollback support for QAT GEN6
- Add support for ctr(aes), gcm(aes), and ccm(aes) in dthev2"
* tag 'v7.1-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (129 commits)
crypto: af_alg - use sock_kmemdup in alg_setkey_by_key_serial
crypto: vmx - remove CRYPTO_DEV_VMX from Kconfig
crypto: omap - convert reqctx buffer to fixed-size array
crypto: atmel-sha204a - add Thorsten Blum as maintainer
crypto: atmel-ecc - add Thorsten Blum as maintainer
crypto: qat - fix IRQ cleanup on 6xxx probe failure
crypto: geniv - Remove unused spinlock from struct aead_geniv_ctx
crypto: qce - simplify qce_xts_swapiv()
crypto: hisilicon - Fix dma_unmap_single() direction
crypto: talitos - rename first/last to first_desc/last_desc
crypto: talitos - fix SEC1 32k ahash request limitation
crypto: jitterentropy - replace long-held spinlock with mutex
crypto: hisilicon - remove unused and non-public APIs for qm and sec
crypto: hisilicon/qm - drop redundant variable initialization
crypto: hisilicon/qm - remove else after return
crypto: hisilicon/qm - add const qualifier to info_name in struct qm_cmd_dump_item
crypto: hisilicon - fix the format string type error
crypto: ccree - fix a memory leak in cc_mac_digest()
crypto: qat - add support for zstd
crypto: qat - use swab32 macro
...
321 lines
8.3 KiB
Plaintext
321 lines
8.3 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "Accelerated Cryptographic Algorithms for CPU (x86)"
|
|
|
|
config CRYPTO_AES_NI_INTEL
|
|
tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
|
|
select CRYPTO_AEAD
|
|
select CRYPTO_LIB_AES
|
|
select CRYPTO_LIB_GF128MUL
|
|
select CRYPTO_SKCIPHER
|
|
help
|
|
AEAD cipher: AES with GCM
|
|
Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XCTR, XTS
|
|
|
|
Architecture: x86 (32-bit and 64-bit) using:
|
|
- AES-NI (AES new instructions)
|
|
- VAES (Vector AES)
|
|
|
|
Some algorithm implementations are supported only in 64-bit builds,
|
|
and some have additional prerequisites such as AVX2 or AVX512.
|
|
|
|
config CRYPTO_BLOWFISH_X86_64
|
|
tristate "Ciphers: Blowfish, modes: ECB, CBC"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_BLOWFISH_COMMON
|
|
imply CRYPTO_CTR
|
|
help
|
|
Block cipher: Blowfish cipher algorithm
|
|
Length-preserving ciphers: Blowfish with ECB and CBC modes
|
|
|
|
Architecture: x86_64
|
|
|
|
config CRYPTO_CAMELLIA_X86_64
|
|
tristate "Ciphers: Camellia with modes: ECB, CBC"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
imply CRYPTO_CTR
|
|
help
|
|
Block cipher: Camellia cipher algorithms
|
|
Length-preserving ciphers: Camellia with ECB and CBC modes
|
|
|
|
Architecture: x86_64
|
|
|
|
config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
|
|
tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_CAMELLIA_X86_64
|
|
imply CRYPTO_XTS
|
|
help
|
|
Length-preserving ciphers: Camellia with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
|
|
tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
|
|
depends on 64BIT
|
|
select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
|
|
help
|
|
Length-preserving ciphers: Camellia with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX2 (Advanced Vector Extensions 2)
|
|
|
|
config CRYPTO_CAST5_AVX_X86_64
|
|
tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_CAST5
|
|
select CRYPTO_CAST_COMMON
|
|
imply CRYPTO_CTR
|
|
help
|
|
Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
|
|
(RFC2144) with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
Processes 16 blocks in parallel.
|
|
|
|
config CRYPTO_CAST6_AVX_X86_64
|
|
tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_CAST6
|
|
select CRYPTO_CAST_COMMON
|
|
imply CRYPTO_XTS
|
|
imply CRYPTO_CTR
|
|
help
|
|
Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
|
|
(RFC2612) with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
Processes eight blocks in parallel.
|
|
|
|
config CRYPTO_SERPENT_SSE2_X86_64
|
|
tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_SERPENT
|
|
imply CRYPTO_CTR
|
|
help
|
|
Length-preserving ciphers: Serpent cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- SSE2 (Streaming SIMD Extensions 2)
|
|
|
|
Processes eight blocks in parallel.
|
|
|
|
config CRYPTO_SERPENT_SSE2_586
|
|
tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
|
|
depends on !64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_SERPENT
|
|
imply CRYPTO_CTR
|
|
help
|
|
Length-preserving ciphers: Serpent cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86 (32-bit) using:
|
|
- SSE2 (Streaming SIMD Extensions 2)
|
|
|
|
Processes four blocks in parallel.
|
|
|
|
config CRYPTO_SERPENT_AVX_X86_64
|
|
tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_SERPENT
|
|
imply CRYPTO_XTS
|
|
imply CRYPTO_CTR
|
|
help
|
|
Length-preserving ciphers: Serpent cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
Processes eight blocks in parallel.
|
|
|
|
config CRYPTO_SERPENT_AVX2_X86_64
|
|
tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
|
|
depends on 64BIT
|
|
select CRYPTO_SERPENT_AVX_X86_64
|
|
help
|
|
Length-preserving ciphers: Serpent cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX2 (Advanced Vector Extensions 2)
|
|
|
|
Processes 16 blocks in parallel.
|
|
|
|
config CRYPTO_SM4_AESNI_AVX_X86_64
|
|
tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_SM4
|
|
help
|
|
Length-preserving ciphers: SM4 cipher algorithms
|
|
(OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
Through two affine transforms,
|
|
we can use the AES S-Box to simulate the SM4 S-Box to achieve the
|
|
effect of instruction acceleration.
|
|
|
|
If unsure, say N.
|
|
|
|
config CRYPTO_SM4_AESNI_AVX2_X86_64
|
|
tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_SM4
|
|
select CRYPTO_SM4_AESNI_AVX_X86_64
|
|
help
|
|
Length-preserving ciphers: SM4 cipher algorithms
|
|
(OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX2 (Advanced Vector Extensions 2)
|
|
|
|
Through two affine transforms,
|
|
we can use the AES S-Box to simulate the SM4 S-Box to achieve the
|
|
effect of instruction acceleration.
|
|
|
|
If unsure, say N.
|
|
|
|
config CRYPTO_TWOFISH_586
|
|
tristate "Ciphers: Twofish (32-bit)"
|
|
depends on !64BIT
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_TWOFISH_COMMON
|
|
imply CRYPTO_CTR
|
|
help
|
|
Block cipher: Twofish cipher algorithm
|
|
|
|
Architecture: x86 (32-bit)
|
|
|
|
config CRYPTO_TWOFISH_X86_64
|
|
tristate "Ciphers: Twofish"
|
|
depends on 64BIT
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_TWOFISH_COMMON
|
|
imply CRYPTO_CTR
|
|
help
|
|
Block cipher: Twofish cipher algorithm
|
|
|
|
Architecture: x86_64
|
|
|
|
config CRYPTO_TWOFISH_X86_64_3WAY
|
|
tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_TWOFISH_COMMON
|
|
select CRYPTO_TWOFISH_X86_64
|
|
help
|
|
Length-preserving cipher: Twofish cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86_64
|
|
|
|
Processes three blocks in parallel, better utilizing resources of
|
|
out-of-order CPUs.
|
|
|
|
config CRYPTO_TWOFISH_AVX_X86_64
|
|
tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_TWOFISH_COMMON
|
|
select CRYPTO_TWOFISH_X86_64
|
|
select CRYPTO_TWOFISH_X86_64_3WAY
|
|
imply CRYPTO_XTS
|
|
help
|
|
Length-preserving cipher: Twofish cipher algorithm
|
|
with ECB and CBC modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX (Advanced Vector Extensions)
|
|
|
|
Processes eight blocks in parallel.
|
|
|
|
config CRYPTO_ARIA_AESNI_AVX_X86_64
|
|
tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_ARIA
|
|
help
|
|
Length-preserving cipher: ARIA cipher algorithms
|
|
(RFC 5794) with ECB and CTR modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX (Advanced Vector Extensions)
|
|
- GFNI (Galois Field New Instructions)
|
|
|
|
Processes 16 blocks in parallel.
|
|
|
|
config CRYPTO_ARIA_AESNI_AVX2_X86_64
|
|
tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_ARIA
|
|
select CRYPTO_ARIA_AESNI_AVX_X86_64
|
|
help
|
|
Length-preserving cipher: ARIA cipher algorithms
|
|
(RFC 5794) with ECB and CTR modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- AVX2 (Advanced Vector Extensions)
|
|
- GFNI (Galois Field New Instructions)
|
|
|
|
Processes 32 blocks in parallel.
|
|
|
|
config CRYPTO_ARIA_GFNI_AVX512_X86_64
|
|
tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
|
|
depends on 64BIT
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_ARIA
|
|
select CRYPTO_ARIA_AESNI_AVX_X86_64
|
|
select CRYPTO_ARIA_AESNI_AVX2_X86_64
|
|
help
|
|
Length-preserving cipher: ARIA cipher algorithms
|
|
(RFC 5794) with ECB and CTR modes
|
|
|
|
Architecture: x86_64 using:
|
|
- AVX512 (Advanced Vector Extensions)
|
|
- GFNI (Galois Field New Instructions)
|
|
|
|
Processes 64 blocks in parallel.
|
|
|
|
config CRYPTO_AEGIS128_AESNI_SSE2
|
|
tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)"
|
|
depends on 64BIT
|
|
select CRYPTO_AEAD
|
|
help
|
|
AEGIS-128 AEAD algorithm
|
|
|
|
Architecture: x86_64 using:
|
|
- AES-NI (AES New Instructions)
|
|
- SSE4.1 (Streaming SIMD Extensions 4.1)
|
|
|
|
endmenu
|