linux-yocto/lib/crypto/Kconfig
Tianjia Zhang 2b31277af5 crypto: sm4 - create SM4 library based on sm4 generic code
Take the existing small footprint and mostly time invariant C code
and turn it into a SM4 library that can be used for non-performance
critical, casual use of SM4, and as a fallback for, e.g., SIMD code
that needs a secondary path that can be taken in contexts where the
SIMD unit is off limits.

Secondly, some codes have been optimized, such as unrolling small
times loop, removing unnecessary memory shifts, exporting sbox, fk,
ck arrays, and basic encryption and decryption functions.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2021-07-30 10:58:30 +08:00

4.4 KiB

SPDX-License-Identifier: GPL-2.0

comment "Crypto library routines"

config CRYPTO_LIB_AES tristate

config CRYPTO_LIB_ARC4 tristate

config CRYPTO_ARCH_HAVE_LIB_BLAKE2S tristate help Declares whether the architecture provides an arch-specific accelerated implementation of the Blake2s library interface, either builtin or as a module.

config CRYPTO_LIB_BLAKE2S_GENERIC tristate help This symbol can be depended upon by arch implementations of the Blake2s library interface that require the generic code as a fallback, e.g., for SIMD implementations. If no arch specific implementation is enabled, this implementation serves the users of CRYPTO_LIB_BLAKE2S.

config CRYPTO_LIB_BLAKE2S tristate "BLAKE2s hash function library" depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n help Enable the Blake2s library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled.

config CRYPTO_ARCH_HAVE_LIB_CHACHA tristate help Declares whether the architecture provides an arch-specific accelerated implementation of the ChaCha library interface, either builtin or as a module.

config CRYPTO_LIB_CHACHA_GENERIC tristate select CRYPTO_ALGAPI help This symbol can be depended upon by arch implementations of the ChaCha library interface that require the generic code as a fallback, e.g., for SIMD implementations. If no arch specific implementation is enabled, this implementation serves the users of CRYPTO_LIB_CHACHA.

config CRYPTO_LIB_CHACHA tristate "ChaCha library interface" depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n help Enable the ChaCha library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled.

config CRYPTO_ARCH_HAVE_LIB_CURVE25519 tristate help Declares whether the architecture provides an arch-specific accelerated implementation of the Curve25519 library interface, either builtin or as a module.

config CRYPTO_LIB_CURVE25519_GENERIC tristate help This symbol can be depended upon by arch implementations of the Curve25519 library interface that require the generic code as a fallback, e.g., for SIMD implementations. If no arch specific implementation is enabled, this implementation serves the users of CRYPTO_LIB_CURVE25519.

config CRYPTO_LIB_CURVE25519 tristate "Curve25519 scalar multiplication library" depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519 select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n help Enable the Curve25519 library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled.

config CRYPTO_LIB_DES tristate

config CRYPTO_LIB_POLY1305_RSIZE int default 2 if MIPS default 11 if X86_64 default 9 if ARM || ARM64 default 1

config CRYPTO_ARCH_HAVE_LIB_POLY1305 tristate help Declares whether the architecture provides an arch-specific accelerated implementation of the Poly1305 library interface, either builtin or as a module.

config CRYPTO_LIB_POLY1305_GENERIC tristate help This symbol can be depended upon by arch implementations of the Poly1305 library interface that require the generic code as a fallback, e.g., for SIMD implementations. If no arch specific implementation is enabled, this implementation serves the users of CRYPTO_LIB_POLY1305.

config CRYPTO_LIB_POLY1305 tristate "Poly1305 library interface" depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n help Enable the Poly1305 library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled.

config CRYPTO_LIB_CHACHA20POLY1305 tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)" depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 select CRYPTO_LIB_CHACHA select CRYPTO_LIB_POLY1305

config CRYPTO_LIB_SHA256 tristate

config CRYPTO_LIB_SM4 tristate