| # SPDX-License-Identifier: GPL-2.0 | |
| config CRYPTO_HASH_INFO | |
| bool | |
| config CRYPTO_LIB_UTILS | |
| tristate | |
| config CRYPTO_LIB_AES | |
| tristate | |
| # Select dependencies of modes that are part of libaes. | |
| select CRYPTO_LIB_GF128HASH if CRYPTO_LIB_AES_GCM != n | |
| select CRYPTO_LIB_UTILS | |
| 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_AES_CBC | |
| tristate | |
| select CRYPTO_LIB_AES | |
| help | |
| The AES-CBC and AES-CBC-CTS library functions. | |
| config CRYPTO_LIB_AES_CBC_MACS | |
| tristate | |
| select CRYPTO_LIB_AES | |
| help | |
| The AES-CMAC, AES-XCBC-MAC, and AES-CBC-MAC library functions. Select | |
| this if your module uses any of the functions from | |
| <crypto/aes-cbc-macs.h>. | |
| config CRYPTO_LIB_AES_CCM | |
| tristate | |
| select CRYPTO_LIB_AES | |
| select CRYPTO_LIB_AES_CBC_MACS | |
| select CRYPTO_LIB_AES_CTR | |
| help | |
| The AES-CCM library functions. | |
| config CRYPTO_LIB_AES_CTR | |
| tristate | |
| select CRYPTO_LIB_AES | |
| help | |
| The AES-CTR and AES-XCTR library functions. | |
| config CRYPTO_LIB_AES_ECB | |
| tristate | |
| select CRYPTO_LIB_AES | |
| help | |
| The AES-ECB library functions. | |
| config CRYPTO_LIB_AES_GCM | |
| tristate | |
| select CRYPTO_LIB_AES | |
| select CRYPTO_LIB_AES_CTR | |
| help | |
| The AES-GCM library functions. | |
| config CRYPTO_LIB_AES_XTS | |
| tristate | |
| select CRYPTO_LIB_AES | |
| help | |
| The AES-XTS library functions. | |
| 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 | |
| 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_GF128HASH | |
| tristate | |
| help | |
| The GHASH and POLYVAL library functions. Select this if your module | |
| uses any of the functions from <crypto/gf128hash.h>. | |
| config CRYPTO_LIB_GF128HASH_ARCH | |
| bool | |
| depends on CRYPTO_LIB_GF128HASH && !UML | |
| default y if ARM && KERNEL_MODE_NEON | |
| default y if ARM64 | |
| default y if PPC64 && 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_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_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 | |
| 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 | |
| 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 <crypto/sha1.h>. | |
| config CRYPTO_LIB_SHA1_ARCH | |
| bool | |
| depends on CRYPTO_LIB_SHA1 && !UML | |
| default y if ARM | |
| default y if ARM64 | |
| 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 | |
| default y if S390 | |
| config CRYPTO_LIB_SM3 | |
| tristate | |
| help | |
| The SM3 library functions. Select this if your module uses any of the | |
| functions from <crypto/sm3.h>. | |
| config CRYPTO_LIB_SM3_ARCH | |
| bool | |
| depends on CRYPTO_LIB_SM3 && !UML | |
| default y if ARM64 | |
| default y if RISCV && 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \ | |
| RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS | |
| default y if X86_64 |