1746b2e02SArd Biesheuvel# SPDX-License-Identifier: GPL-2.0 2746b2e02SArd Biesheuvel 3746b2e02SArd Biesheuvelconfig CRYPTO_LIB_AES 4746b2e02SArd Biesheuvel tristate 5746b2e02SArd Biesheuvel 6746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4 7746b2e02SArd Biesheuvel tristate 8746b2e02SArd Biesheuvel 966d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S 10*6048fdccSJason A. Donenfeld bool 1166d7fb94SJason A. Donenfeld help 1266d7fb94SJason A. Donenfeld Declares whether the architecture provides an arch-specific 1366d7fb94SJason A. Donenfeld accelerated implementation of the Blake2s library interface, 1466d7fb94SJason A. Donenfeld either builtin or as a module. 1566d7fb94SJason A. Donenfeld 1666d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC 17*6048fdccSJason A. Donenfeld def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S 1866d7fb94SJason A. Donenfeld help 1966d7fb94SJason A. Donenfeld This symbol can be depended upon by arch implementations of the 2066d7fb94SJason A. Donenfeld Blake2s library interface that require the generic code as a 2166d7fb94SJason A. Donenfeld fallback, e.g., for SIMD implementations. If no arch specific 2266d7fb94SJason A. Donenfeld implementation is enabled, this implementation serves the users 2366d7fb94SJason A. Donenfeld of CRYPTO_LIB_BLAKE2S. 2466d7fb94SJason A. Donenfeld 255fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA 265fb8ef25SArd Biesheuvel tristate 275fb8ef25SArd Biesheuvel help 285fb8ef25SArd Biesheuvel Declares whether the architecture provides an arch-specific 295fb8ef25SArd Biesheuvel accelerated implementation of the ChaCha library interface, 305fb8ef25SArd Biesheuvel either builtin or as a module. 315fb8ef25SArd Biesheuvel 325fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC 335fb8ef25SArd Biesheuvel tristate 345fb8ef25SArd Biesheuvel select CRYPTO_ALGAPI 355fb8ef25SArd Biesheuvel help 365fb8ef25SArd Biesheuvel This symbol can be depended upon by arch implementations of the 375fb8ef25SArd Biesheuvel ChaCha library interface that require the generic code as a 385fb8ef25SArd Biesheuvel fallback, e.g., for SIMD implementations. If no arch specific 395fb8ef25SArd Biesheuvel implementation is enabled, this implementation serves the users 405fb8ef25SArd Biesheuvel of CRYPTO_LIB_CHACHA. 415fb8ef25SArd Biesheuvel 425fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA 43*6048fdccSJason A. Donenfeld tristate 445fb8ef25SArd Biesheuvel depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA 455fb8ef25SArd Biesheuvel select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n 465fb8ef25SArd Biesheuvel help 475fb8ef25SArd Biesheuvel Enable the ChaCha library interface. This interface may be fulfilled 485fb8ef25SArd Biesheuvel by either the generic implementation or an arch-specific one, if one 495fb8ef25SArd Biesheuvel is available and enabled. 505fb8ef25SArd Biesheuvel 510ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519 520ed42a6fSJason A. Donenfeld tristate 530ed42a6fSJason A. Donenfeld help 540ed42a6fSJason A. Donenfeld Declares whether the architecture provides an arch-specific 550ed42a6fSJason A. Donenfeld accelerated implementation of the Curve25519 library interface, 560ed42a6fSJason A. Donenfeld either builtin or as a module. 570ed42a6fSJason A. Donenfeld 580ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC 590ed42a6fSJason A. Donenfeld tristate 600ed42a6fSJason A. Donenfeld help 610ed42a6fSJason A. Donenfeld This symbol can be depended upon by arch implementations of the 620ed42a6fSJason A. Donenfeld Curve25519 library interface that require the generic code as a 630ed42a6fSJason A. Donenfeld fallback, e.g., for SIMD implementations. If no arch specific 640ed42a6fSJason A. Donenfeld implementation is enabled, this implementation serves the users 650ed42a6fSJason A. Donenfeld of CRYPTO_LIB_CURVE25519. 660ed42a6fSJason A. Donenfeld 670ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519 68*6048fdccSJason A. Donenfeld tristate 690ed42a6fSJason A. Donenfeld depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519 700ed42a6fSJason A. Donenfeld select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n 710ed42a6fSJason A. Donenfeld help 720ed42a6fSJason A. Donenfeld Enable the Curve25519 library interface. This interface may be 730ed42a6fSJason A. Donenfeld fulfilled by either the generic implementation or an arch-specific 740ed42a6fSJason A. Donenfeld one, if one is available and enabled. 750ed42a6fSJason A. Donenfeld 76746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES 77746b2e02SArd Biesheuvel tristate 78746b2e02SArd Biesheuvel 79a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE 80a1d93064SArd Biesheuvel int 81a11d055eSArd Biesheuvel default 2 if MIPS 82d7d7b853SJason A. Donenfeld default 11 if X86_64 83a6b803b3SArd Biesheuvel default 9 if ARM || ARM64 84a1d93064SArd Biesheuvel default 1 85a1d93064SArd Biesheuvel 86a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305 87a1d93064SArd Biesheuvel tristate 88a1d93064SArd Biesheuvel help 89a1d93064SArd Biesheuvel Declares whether the architecture provides an arch-specific 90a1d93064SArd Biesheuvel accelerated implementation of the Poly1305 library interface, 91a1d93064SArd Biesheuvel either builtin or as a module. 92a1d93064SArd Biesheuvel 9348ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC 9448ea8c6eSArd Biesheuvel tristate 95a1d93064SArd Biesheuvel help 96a1d93064SArd Biesheuvel This symbol can be depended upon by arch implementations of the 97a1d93064SArd Biesheuvel Poly1305 library interface that require the generic code as a 98a1d93064SArd Biesheuvel fallback, e.g., for SIMD implementations. If no arch specific 99a1d93064SArd Biesheuvel implementation is enabled, this implementation serves the users 100a1d93064SArd Biesheuvel of CRYPTO_LIB_POLY1305. 101a1d93064SArd Biesheuvel 102a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305 103*6048fdccSJason A. Donenfeld tristate 104a1d93064SArd Biesheuvel depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 105a1d93064SArd Biesheuvel select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n 106a1d93064SArd Biesheuvel help 107a1d93064SArd Biesheuvel Enable the Poly1305 library interface. This interface may be fulfilled 108a1d93064SArd Biesheuvel by either the generic implementation or an arch-specific one, if one 109a1d93064SArd Biesheuvel is available and enabled. 11048ea8c6eSArd Biesheuvel 111ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305 112*6048fdccSJason A. Donenfeld tristate 113ed20078bSArd Biesheuvel depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA 114ed20078bSArd Biesheuvel depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305 115ed20078bSArd Biesheuvel select CRYPTO_LIB_CHACHA 116ed20078bSArd Biesheuvel select CRYPTO_LIB_POLY1305 117ed20078bSArd Biesheuvel 118746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256 119746b2e02SArd Biesheuvel tristate 1202b31277aSTianjia Zhang 1212b31277aSTianjia Zhangconfig CRYPTO_LIB_SM4 1222b31277aSTianjia Zhang tristate 123