xref: /linux/lib/crypto/Kconfig (revision 6048fdcc5f269c7f31d774c295ce59081b36e6f9)
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