# SPDX-License-Identifier: GPL-2.0

menu "Accelerated Cryptographic Algorithms for CPU (x86)"

config CRYPTO_CURVE25519_X86
	tristate "Public key crypto: Curve25519 (ADX)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_CURVE25519_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
	help
	  Curve25519 algorithm

	  Architecture: x86_64 using:
	  - ADX (large integer arithmetic)

config CRYPTO_AES_NI_INTEL
	tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)"
	depends on X86
	select CRYPTO_AEAD
	select CRYPTO_LIB_AES
	select CRYPTO_LIB_GF128MUL
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	help
	  Block cipher: AES cipher algorithms
	  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 X86 && 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 X86 && 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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAMELLIA_X86_64
	select CRYPTO_SIMD
	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 X86 && 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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAST5
	select CRYPTO_CAST_COMMON
	select CRYPTO_SIMD
	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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_CAST6
	select CRYPTO_CAST_COMMON
	select CRYPTO_SIMD
	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_DES3_EDE_X86_64
	tristate "Ciphers: Triple DES EDE with modes: ECB, CBC"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_DES
	imply CRYPTO_CTR
	help
	  Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm
	  Length-preserving ciphers: Triple DES EDE with ECB and CBC modes

	  Architecture: x86_64

	  Processes one or three blocks in parallel.

config CRYPTO_SERPENT_SSE2_X86_64
	tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	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 X86 && !64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SERPENT
	select CRYPTO_SIMD
	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 X86 && 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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	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 X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_SIMD
	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 (X86 || UML_X86) && !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 (X86 || UML_X86) && 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 X86 && 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 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
	  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 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.

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.

config CRYPTO_ARIA_GFNI_AVX512_X86_64
	tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)"
	depends on X86 && 64BIT && AS_AVX512 && AS_GFNI
	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.

config CRYPTO_CHACHA20_X86_64
	tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (SSSE3/AVX2/AVX-512VL)"
	depends on X86 && 64BIT
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_CHACHA_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CHACHA
	help
	  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)

config CRYPTO_AEGIS128_AESNI_SSE2
	tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_AEAD
	select CRYPTO_SIMD
	help
	  AEGIS-128 AEAD algorithm

	  Architecture: x86_64 using:
	  - AES-NI (AES New Instructions)
	  - SSE2 (Streaming SIMD Extensions 2)

config CRYPTO_NHPOLY1305_SSE2
	tristate "Hash functions: NHPoly1305 (SSE2)"
	depends on X86 && 64BIT
	select CRYPTO_NHPOLY1305
	help
	  NHPoly1305 hash function for Adiantum

	  Architecture: x86_64 using:
	  - SSE2 (Streaming SIMD Extensions 2)

config CRYPTO_NHPOLY1305_AVX2
	tristate "Hash functions: NHPoly1305 (AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_NHPOLY1305
	help
	  NHPoly1305 hash function for Adiantum

	  Architecture: x86_64 using:
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_BLAKE2S_X86
	bool "Hash functions: BLAKE2s (SSSE3/AVX-512)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_BLAKE2S_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
	help
	  BLAKE2s cryptographic hash function (RFC 7693)

	  Architecture: x86_64 using:
	  - SSSE3 (Supplemental SSE3)
	  - AVX-512 (Advanced Vector Extensions-512)

config CRYPTO_POLYVAL_CLMUL_NI
	tristate "Hash functions: POLYVAL (CLMUL-NI)"
	depends on X86 && 64BIT
	select CRYPTO_POLYVAL
	help
	  POLYVAL hash function for HCTR2

	  Architecture: x86_64 using:
	  - CLMUL-NI (carry-less multiplication new instructions)

config CRYPTO_POLY1305_X86_64
	tristate "Hash functions: Poly1305 (SSE2/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_LIB_POLY1305_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_POLY1305
	help
	  Poly1305 authenticator algorithm (RFC7539)

	  Architecture: x86_64 using:
	  - SSE2 (Streaming SIMD Extensions 2)
	  - AVX2 (Advanced Vector Extensions 2)

config CRYPTO_SHA1_SSSE3
	tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)"
	depends on X86 && 64BIT
	select CRYPTO_SHA1
	select CRYPTO_HASH
	help
	  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)

config CRYPTO_SHA256_SSSE3
	tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)"
	depends on X86 && 64BIT
	select CRYPTO_SHA256
	select CRYPTO_HASH
	help
	  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)

config CRYPTO_SHA512_SSSE3
	tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)"
	depends on X86 && 64BIT
	select CRYPTO_SHA512
	select CRYPTO_HASH
	help
	  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)

config CRYPTO_SM3_AVX_X86_64
	tristate "Hash functions: SM3 (AVX)"
	depends on X86 && 64BIT
	select CRYPTO_HASH
	select CRYPTO_SM3
	help
	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3

	  Architecture: x86_64 using:
	  - AVX (Advanced Vector Extensions)

	  If unsure, say N.

config CRYPTO_GHASH_CLMUL_NI_INTEL
	tristate "Hash functions: GHASH (CLMUL-NI)"
	depends on X86 && 64BIT
	select CRYPTO_CRYPTD
	help
	  GCM GHASH hash function (NIST SP800-38D)

	  Architecture: x86_64 using:
	  - CLMUL-NI (carry-less multiplication new instructions)

config CRYPTO_CRC32C_INTEL
	tristate "CRC32c (SSE4.2/PCLMULQDQ)"
	depends on X86
	select CRYPTO_HASH
	help
	  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)

config CRYPTO_CRC32_PCLMUL
	tristate "CRC32 (PCLMULQDQ)"
	depends on X86
	select CRYPTO_HASH
	select CRC32
	help
	  CRC32 CRC algorithm (IEEE 802.3)

	  Architecture: x86 (32-bit and 64-bit) using:
	  - PCLMULQDQ (carry-less multiplication)

config CRYPTO_CRCT10DIF_PCLMUL
	tristate "CRCT10DIF (PCLMULQDQ)"
	depends on X86 && 64BIT && CRC_T10DIF
	select CRYPTO_HASH
	help
	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)

	  Architecture: x86_64 using:
	  - PCLMULQDQ (carry-less multiplication)

endmenu
