| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- # 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_AES_ARCH
- bool
- depends on CRYPTO_LIB_AES && !UML && !KMSAN
- default y if ARM
- default y if ARM64
- default y if PPC && (SPE || (PPC64 && VSX))
- default y if RISCV && 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
- RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
- default y if S390
- default y if SPARC64
- default y if X86
- 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
- config CRYPTO_LIB_BLAKE2B
- tristate
- help
- The BLAKE2b library functions. Select this if your module uses any of
- the functions from <crypto/blake2b.h>.
- config CRYPTO_LIB_BLAKE2B_ARCH
- bool
- depends on CRYPTO_LIB_BLAKE2B && !UML
- default y if ARM && KERNEL_MODE_NEON
- # 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 && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
- RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
- 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 <crypto/curve25519.h>.
- config CRYPTO_LIB_CURVE25519_ARCH
- bool
- depends on CRYPTO_LIB_CURVE25519 && !UML && !KMSAN
- default y if ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
- 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 <crypto/md5.h>.
- 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_MLDSA
- tristate
- select CRYPTO_LIB_SHA3
- help
- The ML-DSA library functions. Select this if your module uses any of
- the functions from <crypto/mldsa.h>.
- config CRYPTO_LIB_NH
- tristate
- help
- Implementation of the NH almost-universal hash function, specifically
- the variant of NH used in Adiantum.
- config CRYPTO_LIB_NH_ARCH
- bool
- depends on CRYPTO_LIB_NH && !UML && !KMSAN
- default y if ARM && KERNEL_MODE_NEON
- default y if ARM64 && KERNEL_MODE_NEON
- default y if X86_64
- config CRYPTO_LIB_POLY1305
- tristate
- help
- The Poly1305 library functions. Select this if your module uses any
- of the functions from <crypto/poly1305.h>.
- config CRYPTO_LIB_POLY1305_ARCH
- bool
- depends on CRYPTO_LIB_POLY1305 && !UML && !KMSAN
- 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_POLYVAL
- tristate
- help
- The POLYVAL library functions. Select this if your module uses any of
- the functions from <crypto/polyval.h>.
- config CRYPTO_LIB_POLYVAL_ARCH
- bool
- depends on CRYPTO_LIB_POLYVAL && !UML
- default y if ARM64 && KERNEL_MODE_NEON
- default y if X86_64
- 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 <crypto/sha1.h>.
- 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
- <crypto/sha2.h>.
- 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 && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
- RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
- 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
- <crypto/sha2.h>.
- 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 && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
- RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
- default y if S390
- default y if SPARC64
- default y if X86_64
- config CRYPTO_LIB_SHA3
- tristate
- select CRYPTO_LIB_UTILS
- help
- The SHA3 library functions. Select this if your module uses any of
- the functions from <crypto/sha3.h>.
- config CRYPTO_LIB_SHA3_ARCH
- bool
- depends on CRYPTO_LIB_SHA3 && !UML
- default y if ARM64 && KERNEL_MODE_NEON
- default y if S390
- config CRYPTO_LIB_SM3
- tristate
- source "lib/crypto/tests/Kconfig"
- endmenu
|