2022-08-20 13:41:39 -05:00
# SPDX-License-Identifier: GPL-2.0
menu "Accelerated Cryptographic Algorithms for CPU (x86)"
config CRYPTO_CURVE25519_X86
2022-08-20 13:41:45 -05:00
tristate "Public key crypto: Curve25519 (ADX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_LIB_CURVE25519_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CURVE25519
2022-08-20 13:41:45 -05:00
help
Curve25519 algorithm
Architecture: x86_64 using:
- ADX (large integer arithmetic)
2022-08-20 13:41:39 -05:00
config CRYPTO_AES_NI_INTEL
2022-08-20 13:41:50 -05:00
tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)"
2022-08-20 13:41:39 -05:00
depends on X86
select CRYPTO_AEAD
select CRYPTO_LIB_AES
select CRYPTO_ALGAPI
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
help
2022-08-20 13:41:50 -05:00
Block cipher: AES cipher algorithms
AEAD cipher: AES with GCM
Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTR, XTS
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86 (32-bit and 64-bit) using:
- AES-NI (AES new instructions)
2022-08-20 13:41:39 -05:00
config CRYPTO_BLOWFISH_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Blowfish, modes: ECB, CBC"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_BLOWFISH_COMMON
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Block cipher: Blowfish cipher algorithm
Length-preserving ciphers: Blowfish with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64
2022-08-20 13:41:39 -05:00
config CRYPTO_CAMELLIA_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Camellia with modes: ECB, CBC"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Block cipher: Camellia cipher algorithms
Length-preserving ciphers: Camellia with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64
2022-08-20 13:41:39 -05:00
config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_CAMELLIA_X86_64
select CRYPTO_SIMD
imply CRYPTO_XTS
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Camellia with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AES-NI (AES New Instructions)
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Camellia with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AES-NI (AES New Instructions)
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_CAST5_AVX_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_CAST5
select CRYPTO_CAST_COMMON
select CRYPTO_SIMD
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm
(RFC2144) with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
Processes 16 blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_CAST6_AVX_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_CAST6
select CRYPTO_CAST_COMMON
select CRYPTO_SIMD
imply CRYPTO_XTS
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm
(RFC2612) with ECB and CBC modes
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes eight blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_DES3_EDE_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_LIB_DES
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
Length-preserving ciphers: Triple DES EDE with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64
Processes one or three blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_SERPENT_SSE2_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SERPENT
select CRYPTO_SIMD
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- SSE2 (Streaming SIMD Extensions 2)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes eight blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_SERPENT_SSE2_586
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)"
2022-08-20 13:41:39 -05:00
depends on X86 && !64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SERPENT
select CRYPTO_SIMD
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86 (32-bit) using:
- SSE2 (Streaming SIMD Extensions 2)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes four blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_SERPENT_AVX_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SERPENT
select CRYPTO_SIMD
imply CRYPTO_XTS
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes eight blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_SERPENT_AVX2_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SERPENT_AVX_X86_64
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: Serpent cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes 16 blocks in parallel.
2022-08-20 13:41:39 -05:00
config CRYPTO_SM4_AESNI_AVX_X86_64
2023-09-16 17:16:52 +08:00
tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
select CRYPTO_ALGAPI
select CRYPTO_SM4
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: SM4 cipher algorithms
2023-09-16 17:16:52 +08:00
(OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AES-NI (AES New Instructions)
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Through two affine transforms,
2022-08-20 13:41:39 -05:00
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
2023-09-16 17:16:52 +08:00
tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
select CRYPTO_ALGAPI
select CRYPTO_SM4
select CRYPTO_SM4_AESNI_AVX_X86_64
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: SM4 cipher algorithms
2023-09-16 17:16:52 +08:00
(OSCCA GB/T 32907-2016) with ECB, CBC, and CTR modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AES-NI (AES New Instructions)
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Through two affine transforms,
2022-08-20 13:41:39 -05:00
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
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Twofish (32-bit)"
2022-08-20 13:41:39 -05:00
depends on (X86 || UML_X86) && !64BIT
select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Block cipher: Twofish cipher algorithm
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86 (32-bit)
2022-08-20 13:41:39 -05:00
config CRYPTO_TWOFISH_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Twofish"
2022-08-20 13:41:39 -05:00
depends on (X86 || UML_X86) && 64BIT
select CRYPTO_ALGAPI
select CRYPTO_TWOFISH_COMMON
imply CRYPTO_CTR
help
2022-08-20 13:41:50 -05:00
Block cipher: Twofish cipher algorithm
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64
2022-08-20 13:41:39 -05:00
config CRYPTO_TWOFISH_X86_64_3WAY
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_TWOFISH_COMMON
select CRYPTO_TWOFISH_X86_64
help
2022-08-20 13:41:50 -05:00
Length-preserving cipher: Twofish cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes three blocks in parallel, better utilizing resources of
out-of-order CPUs.
2022-08-20 13:41:39 -05:00
config CRYPTO_TWOFISH_AVX_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
select CRYPTO_TWOFISH_COMMON
select CRYPTO_TWOFISH_X86_64
select CRYPTO_TWOFISH_X86_64_3WAY
imply CRYPTO_XTS
help
2022-08-20 13:41:50 -05:00
Length-preserving cipher: Twofish cipher algorithm
with ECB and CBC modes
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:50 -05:00
Processes eight blocks in parallel.
2022-08-20 13:41:39 -05:00
crypto: aria-avx - add AES-NI/AVX/x86_64/GFNI assembler implementation of aria cipher
The implementation is based on the 32-bit implementation of the aria.
Also, aria-avx process steps are the similar to the camellia-avx.
1. Byteslice(16way)
2. Add-round-key.
3. Sbox
4. Diffusion layer.
Except for s-box, all steps are the same as the aria-generic
implementation. s-box step is very similar to camellia and
sm4 implementation.
There are 2 implementations for s-box step.
One is to use AES-NI and affine transformation, which is the same as
Camellia, sm4, and others.
Another is to use GFNI.
GFNI implementation is faster than AES-NI implementation.
So, it uses GFNI implementation if the running CPU supports GFNI.
There are 4 s-boxes in the ARIA and the 2 s-boxes are the same as
AES's s-boxes.
To calculate the first sbox, it just uses the aesenclast and then
inverts shift_row.
No more process is needed for this job because the first s-box is
the same as the AES encryption s-box.
To calculate the second sbox(invert of s1), it just uses the aesdeclast
and then inverts shift_row.
No more process is needed for this job because the second s-box is
the same as the AES decryption s-box.
To calculate the third s-box, it uses the aesenclast,
then affine transformation, which is combined AES inverse affine and
ARIA S2.
To calculate the last s-box, it uses the aesdeclast,
then affine transformation, which is combined X2 and AES forward affine.
The optimized third and last s-box logic and GFNI s-box logic are
implemented by Jussi Kivilinna.
The aria-generic implementation is based on a 32-bit implementation,
not an 8-bit implementation. the aria-avx Diffusion Layer implementation
is based on aria-generic implementation because 8-bit implementation is
not fit for parallel implementation but 32-bit is enough to fit for this.
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2022-09-16 12:57:35 +00:00
config CRYPTO_ARIA_AESNI_AVX_X86_64
tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)"
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
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.
crypto: x86/aria - implement aria-avx2
aria-avx2 implementation uses AVX2, AES-NI, and GFNI.
It supports 32way parallel processing.
So, byteslicing code is changed to support 32way parallel.
And it exports some aria-avx functions such as encrypt() and decrypt().
There are two main logics, s-box layer and diffusion layer.
These codes are the same as aria-avx implementation.
But some instruction are exchanged because they don't support 256bit
registers.
Also, AES-NI doesn't support 256bit register.
So, aesenclast and aesdeclast are used twice like below:
vextracti128 $1, ymm0, xmm6;
vaesenclast xmm7, xmm0, xmm0;
vaesenclast xmm7, xmm6, xmm6;
vinserti128 $1, xmm6, ymm0, ymm0;
Benchmark with modprobe tcrypt mode=610 num_mb=8192, i3-12100:
ARIA-AVX2 with GFNI(128bit and 256bit)
testing speed of multibuffer ecb(aria) (ecb-aria-avx2) encryption
tcrypt: 1 operation in 2003 cycles (1024 bytes)
tcrypt: 1 operation in 5867 cycles (4096 bytes)
tcrypt: 1 operation in 2358 cycles (1024 bytes)
tcrypt: 1 operation in 7295 cycles (4096 bytes)
testing speed of multibuffer ecb(aria) (ecb-aria-avx2) decryption
tcrypt: 1 operation in 2004 cycles (1024 bytes)
tcrypt: 1 operation in 5956 cycles (4096 bytes)
tcrypt: 1 operation in 2409 cycles (1024 bytes)
tcrypt: 1 operation in 7564 cycles (4096 bytes)
ARIA-AVX with GFNI(128bit and 256bit)
testing speed of multibuffer ecb(aria) (ecb-aria-avx) encryption
tcrypt: 1 operation in 2761 cycles (1024 bytes)
tcrypt: 1 operation in 9390 cycles (4096 bytes)
tcrypt: 1 operation in 3401 cycles (1024 bytes)
tcrypt: 1 operation in 11876 cycles (4096 bytes)
testing speed of multibuffer ecb(aria) (ecb-aria-avx) decryption
tcrypt: 1 operation in 2735 cycles (1024 bytes)
tcrypt: 1 operation in 9424 cycles (4096 bytes)
tcrypt: 1 operation in 3369 cycles (1024 bytes)
tcrypt: 1 operation in 11954 cycles (4096 bytes)
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-01-01 09:12:51 +00:00
config CRYPTO_ARIA_AESNI_AVX2_X86_64
tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)"
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
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.
2023-01-01 09:12:52 +00:00
config CRYPTO_ARIA_GFNI_AVX512_X86_64
tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
2023-01-15 12:15:36 +00:00
depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
2023-01-01 09:12:52 +00:00
select CRYPTO_SKCIPHER
select CRYPTO_SIMD
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.
2022-08-20 13:41:39 -05:00
config CRYPTO_CHACHA20_X86_64
2022-08-20 13:41:50 -05:00
tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SKCIPHER
select CRYPTO_LIB_CHACHA_GENERIC
select CRYPTO_ARCH_HAVE_LIB_CHACHA
help
2022-08-20 13:41:50 -05:00
Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
stream cipher algorithms
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX2 (Advanced Vector Extensions 2)
- AVX-512VL (Advanced Vector Extensions-512VL)
2022-08-20 13:41:39 -05:00
config CRYPTO_AEGIS128_AESNI_SSE2
2022-08-20 13:41:47 -05:00
tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_AEAD
select CRYPTO_SIMD
help
2022-08-20 13:41:47 -05:00
AEGIS-128 AEAD algorithm
Architecture: x86_64 using:
- AES-NI (AES New Instructions)
- SSE2 (Streaming SIMD Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_NHPOLY1305_SSE2
2022-08-20 13:41:48 -05:00
tristate "Hash functions: NHPoly1305 (SSE2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_NHPOLY1305
help
2022-08-20 13:41:48 -05:00
NHPoly1305 hash function for Adiantum
Architecture: x86_64 using:
- SSE2 (Streaming SIMD Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_NHPOLY1305_AVX2
2022-08-20 13:41:48 -05:00
tristate "Hash functions: NHPoly1305 (AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_NHPOLY1305
help
2022-08-20 13:41:48 -05:00
NHPoly1305 hash function for Adiantum
Architecture: x86_64 using:
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_BLAKE2S_X86
2022-08-20 13:41:48 -05:00
bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_LIB_BLAKE2S_GENERIC
select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
2022-08-20 13:41:48 -05:00
help
BLAKE2s cryptographic hash function (RFC 7693)
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX-512 (Advanced Vector Extensions-512)
2022-08-20 13:41:39 -05:00
config CRYPTO_POLYVAL_CLMUL_NI
2022-08-20 13:41:48 -05:00
tristate "Hash functions: POLYVAL (CLMUL-NI)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_POLYVAL
help
2022-08-20 13:41:48 -05:00
POLYVAL hash function for HCTR2
Architecture: x86_64 using:
- CLMUL-NI (carry-less multiplication new instructions)
2022-08-20 13:41:39 -05:00
config CRYPTO_POLY1305_X86_64
2022-08-20 13:41:48 -05:00
tristate "Hash functions: Poly1305 (SSE2/AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_LIB_POLY1305_GENERIC
select CRYPTO_ARCH_HAVE_LIB_POLY1305
help
2022-08-20 13:41:48 -05:00
Poly1305 authenticator algorithm (RFC7539)
2022-08-20 13:41:39 -05:00
2022-08-20 13:41:48 -05:00
Architecture: x86_64 using:
- SSE2 (Streaming SIMD Extensions 2)
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_SHA1_SSSE3
2022-08-20 13:41:48 -05:00
tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SHA1
select CRYPTO_HASH
help
2022-08-20 13:41:48 -05:00
SHA-1 secure hash algorithm (FIPS 180)
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX (Advanced Vector Extensions)
- AVX2 (Advanced Vector Extensions 2)
- SHA-NI (SHA Extensions New Instructions)
2022-08-20 13:41:39 -05:00
config CRYPTO_SHA256_SSSE3
2022-08-20 13:41:48 -05:00
tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SHA256
select CRYPTO_HASH
help
2022-08-20 13:41:48 -05:00
SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX (Advanced Vector Extensions)
- AVX2 (Advanced Vector Extensions 2)
- SHA-NI (SHA Extensions New Instructions)
2022-08-20 13:41:39 -05:00
config CRYPTO_SHA512_SSSE3
2022-08-20 13:41:48 -05:00
tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_SHA512
select CRYPTO_HASH
help
2022-08-20 13:41:48 -05:00
SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
Architecture: x86_64 using:
- SSSE3 (Supplemental SSE3)
- AVX (Advanced Vector Extensions)
- AVX2 (Advanced Vector Extensions 2)
2022-08-20 13:41:39 -05:00
config CRYPTO_SM3_AVX_X86_64
2022-08-20 13:41:48 -05:00
tristate "Hash functions: SM3 (AVX)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_HASH
select CRYPTO_SM3
help
2022-08-20 13:41:48 -05:00
SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3
Architecture: x86_64 using:
- AVX (Advanced Vector Extensions)
2022-08-20 13:41:39 -05:00
If unsure, say N.
config CRYPTO_GHASH_CLMUL_NI_INTEL
2022-08-20 13:41:48 -05:00
tristate "Hash functions: GHASH (CLMUL-NI)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT
select CRYPTO_CRYPTD
help
2022-08-20 13:41:48 -05:00
GCM GHASH hash function (NIST SP800-38D)
Architecture: x86_64 using:
- CLMUL-NI (carry-less multiplication new instructions)
2022-08-20 13:41:39 -05:00
config CRYPTO_CRC32C_INTEL
2022-08-20 13:41:46 -05:00
tristate "CRC32c (SSE4.2/PCLMULQDQ)"
2022-08-20 13:41:39 -05:00
depends on X86
select CRYPTO_HASH
help
2022-08-20 13:41:46 -05:00
CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
Architecture: x86 (32-bit and 64-bit) using:
- SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
- PCLMULQDQ (carry-less multiplication)
2022-08-20 13:41:39 -05:00
config CRYPTO_CRC32_PCLMUL
2022-08-20 13:41:46 -05:00
tristate "CRC32 (PCLMULQDQ)"
2022-08-20 13:41:39 -05:00
depends on X86
select CRYPTO_HASH
select CRC32
help
2022-08-20 13:41:46 -05:00
CRC32 CRC algorithm (IEEE 802.3)
Architecture: x86 (32-bit and 64-bit) using:
- PCLMULQDQ (carry-less multiplication)
2022-08-20 13:41:39 -05:00
config CRYPTO_CRCT10DIF_PCLMUL
2022-08-20 13:41:46 -05:00
tristate "CRCT10DIF (PCLMULQDQ)"
2022-08-20 13:41:39 -05:00
depends on X86 && 64BIT && CRC_T10DIF
select CRYPTO_HASH
help
2022-08-20 13:41:46 -05:00
CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
Architecture: x86_64 using:
- PCLMULQDQ (carry-less multiplication)
2022-08-20 13:41:39 -05:00
endmenu