# SPDX-License-Identifier: GPL-2.0 menu "Crypto library routines" config CRYPTO_HASH_INFO bool config CRYPTO_LIB_UTILS tristate config CRYPTO_LIB_AES tristate config CRYPTO_LIB_AESCFB tristate select CRYPTO_LIB_AES select CRYPTO_LIB_UTILS config CRYPTO_LIB_AESGCM tristate select CRYPTO_LIB_AES select CRYPTO_LIB_GF128MUL select CRYPTO_LIB_UTILS config CRYPTO_LIB_ARC4 tristate config CRYPTO_LIB_GF128MUL tristate # BLAKE2s support is always built-in, so there's no CRYPTO_LIB_BLAKE2S option. config CRYPTO_LIB_BLAKE2S_ARCH bool depends on !UML default y if ARM default y if X86_64 config CRYPTO_LIB_CHACHA tristate select CRYPTO_LIB_UTILS help Enable the ChaCha library interface. Select this if your module uses chacha_crypt() or hchacha_block(). config CRYPTO_LIB_CHACHA_ARCH bool depends on CRYPTO_LIB_CHACHA && !UML && !KMSAN default y if ARM default y if ARM64 && KERNEL_MODE_NEON default y if MIPS && CPU_MIPS32_R2 default y if PPC64 && CPU_LITTLE_ENDIAN && VSX default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO default y if S390 default y if X86_64 config CRYPTO_LIB_CURVE25519 tristate select CRYPTO_LIB_UTILS help The Curve25519 library functions. Select this if your module uses any of the functions from . config CRYPTO_LIB_CURVE25519_ARCH bool depends on CRYPTO_LIB_CURVE25519 && !UML && !KMSAN default y if ARM && KERNEL_MODE_NEON default y if PPC64 && CPU_LITTLE_ENDIAN default y if X86_64 config CRYPTO_LIB_CURVE25519_GENERIC bool depends on CRYPTO_LIB_CURVE25519 default y if !CRYPTO_LIB_CURVE25519_ARCH || ARM || X86_64 config CRYPTO_LIB_DES tristate config CRYPTO_LIB_MD5 tristate help The MD5 and HMAC-MD5 library functions. Select this if your module uses any of the functions from . config CRYPTO_LIB_MD5_ARCH bool depends on CRYPTO_LIB_MD5 && !UML default y if MIPS && CPU_CAVIUM_OCTEON default y if PPC default y if SPARC64 config CRYPTO_LIB_POLY1305 tristate help The Poly1305 library functions. Select this if your module uses any of the functions from . config CRYPTO_LIB_POLY1305_ARCH bool depends on CRYPTO_LIB_POLY1305 && !UML default y if ARM default y if ARM64 && KERNEL_MODE_NEON default y if MIPS # The PPC64 code needs to be fixed to work in softirq context. default y if PPC64 && CPU_LITTLE_ENDIAN && VSX && BROKEN default y if RISCV default y if X86_64 # This symbol controls the inclusion of the Poly1305 generic code. This differs # from most of the other algorithms, which handle the generic code # "automatically" via __maybe_unused. This is needed so that the Adiantum code, # which calls the poly1305_core_*() functions directly, can enable them. config CRYPTO_LIB_POLY1305_GENERIC bool depends on CRYPTO_LIB_POLY1305 # Enable if there's no arch impl or the arch impl requires the generic # impl as a fallback. (Or if selected explicitly.) default y if !CRYPTO_LIB_POLY1305_ARCH || PPC64 config CRYPTO_LIB_POLY1305_RSIZE int default 2 if MIPS || RISCV default 11 if X86_64 default 9 if ARM || ARM64 default 1 config CRYPTO_LIB_CHACHA20POLY1305 tristate select CRYPTO_LIB_CHACHA select CRYPTO_LIB_POLY1305 select CRYPTO_LIB_UTILS config CRYPTO_LIB_SHA1 tristate help The SHA-1 and HMAC-SHA1 library functions. Select this if your module uses any of the functions from . config CRYPTO_LIB_SHA1_ARCH bool depends on CRYPTO_LIB_SHA1 && !UML default y if ARM default y if ARM64 && KERNEL_MODE_NEON default y if MIPS && CPU_CAVIUM_OCTEON default y if PPC default y if S390 default y if SPARC64 default y if X86_64 config CRYPTO_LIB_SHA256 tristate help The SHA-224, SHA-256, HMAC-SHA224, and HMAC-SHA256 library functions. Select this if your module uses any of these functions from . config CRYPTO_LIB_SHA256_ARCH bool depends on CRYPTO_LIB_SHA256 && !UML default y if ARM && !CPU_V7M default y if ARM64 default y if MIPS && CPU_CAVIUM_OCTEON default y if PPC && SPE default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO default y if S390 default y if SPARC64 default y if X86_64 config CRYPTO_LIB_SHA512 tristate help The SHA-384, SHA-512, HMAC-SHA384, and HMAC-SHA512 library functions. Select this if your module uses any of these functions from . config CRYPTO_LIB_SHA512_ARCH bool depends on CRYPTO_LIB_SHA512 && !UML default y if ARM && !CPU_V7M default y if ARM64 default y if MIPS && CPU_CAVIUM_OCTEON default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO default y if S390 default y if SPARC64 default y if X86_64 config CRYPTO_LIB_SM3 tristate source "lib/crypto/tests/Kconfig" endmenu