xref: /linux/lib/crypto/Kconfig (revision ec8f7f4821d5e70d71601519bc2325b311324a96)
1746b2e02SArd Biesheuvel# SPDX-License-Identifier: GPL-2.0
2746b2e02SArd Biesheuvel
3e56e1898SJustin M. Forbesmenu "Crypto library routines"
4e56e1898SJustin M. Forbes
5746b2e02SArd Biesheuvelconfig CRYPTO_LIB_AES
6746b2e02SArd Biesheuvel	tristate
7746b2e02SArd Biesheuvel
8746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
9746b2e02SArd Biesheuvel	tristate
10746b2e02SArd Biesheuvel
1166d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
126048fdccSJason A. Donenfeld	bool
1366d7fb94SJason A. Donenfeld	help
1466d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
1566d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
1666d7fb94SJason A. Donenfeld	  either builtin or as a module.
1766d7fb94SJason A. Donenfeld
1866d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
196048fdccSJason A. Donenfeld	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
2066d7fb94SJason A. Donenfeld	help
2166d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
2266d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
2366d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
2466d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
2566d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
2666d7fb94SJason A. Donenfeld
275fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
285fb8ef25SArd Biesheuvel	tristate
295fb8ef25SArd Biesheuvel	help
305fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
315fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
325fb8ef25SArd Biesheuvel	  either builtin or as a module.
335fb8ef25SArd Biesheuvel
345fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
355fb8ef25SArd Biesheuvel	tristate
36e56e1898SJustin M. Forbes	select XOR_BLOCKS
375fb8ef25SArd Biesheuvel	help
385fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
395fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
405fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
415fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
425fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
435fb8ef25SArd Biesheuvel
445fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
45e56e1898SJustin M. Forbes	tristate "ChaCha library interface"
46e56e1898SJustin M. Forbes	depends on CRYPTO
475fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
485fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
495fb8ef25SArd Biesheuvel	help
505fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
515fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
525fb8ef25SArd Biesheuvel	  is available and enabled.
535fb8ef25SArd Biesheuvel
540ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519
550ed42a6fSJason A. Donenfeld	tristate
560ed42a6fSJason A. Donenfeld	help
570ed42a6fSJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
580ed42a6fSJason A. Donenfeld	  accelerated implementation of the Curve25519 library interface,
590ed42a6fSJason A. Donenfeld	  either builtin or as a module.
600ed42a6fSJason A. Donenfeld
610ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC
620ed42a6fSJason A. Donenfeld	tristate
630ed42a6fSJason A. Donenfeld	help
640ed42a6fSJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
650ed42a6fSJason A. Donenfeld	  Curve25519 library interface that require the generic code as a
660ed42a6fSJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
670ed42a6fSJason A. Donenfeld	  implementation is enabled, this implementation serves the users
680ed42a6fSJason A. Donenfeld	  of CRYPTO_LIB_CURVE25519.
690ed42a6fSJason A. Donenfeld
700ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519
71e56e1898SJustin M. Forbes	tristate "Curve25519 scalar multiplication library"
720ed42a6fSJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
730ed42a6fSJason A. Donenfeld	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
74920b0442SJason A. Donenfeld	select LIB_MEMNEQ
750ed42a6fSJason A. Donenfeld	help
760ed42a6fSJason A. Donenfeld	  Enable the Curve25519 library interface. This interface may be
770ed42a6fSJason A. Donenfeld	  fulfilled by either the generic implementation or an arch-specific
780ed42a6fSJason A. Donenfeld	  one, if one is available and enabled.
790ed42a6fSJason A. Donenfeld
80746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
81746b2e02SArd Biesheuvel	tristate
82746b2e02SArd Biesheuvel
83a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
84a1d93064SArd Biesheuvel	int
85a11d055eSArd Biesheuvel	default 2 if MIPS
86d7d7b853SJason A. Donenfeld	default 11 if X86_64
87a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
88a1d93064SArd Biesheuvel	default 1
89a1d93064SArd Biesheuvel
90a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
91a1d93064SArd Biesheuvel	tristate
92a1d93064SArd Biesheuvel	help
93a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
94a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
95a1d93064SArd Biesheuvel	  either builtin or as a module.
96a1d93064SArd Biesheuvel
9748ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
9848ea8c6eSArd Biesheuvel	tristate
99a1d93064SArd Biesheuvel	help
100a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
101a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
102a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
103a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
104a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
105a1d93064SArd Biesheuvel
106a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
107e56e1898SJustin M. Forbes	tristate "Poly1305 library interface"
108a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
109a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
110a1d93064SArd Biesheuvel	help
111a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
112a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
113a1d93064SArd Biesheuvel	  is available and enabled.
11448ea8c6eSArd Biesheuvel
115ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305
116e56e1898SJustin M. Forbes	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
117ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
118ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
119e56e1898SJustin M. Forbes	depends on CRYPTO
120ed20078bSArd Biesheuvel	select CRYPTO_LIB_CHACHA
121ed20078bSArd Biesheuvel	select CRYPTO_LIB_POLY1305
122e56e1898SJustin M. Forbes	select CRYPTO_ALGAPI
123ed20078bSArd Biesheuvel
124*ec8f7f48SEric Biggersconfig CRYPTO_LIB_SHA1
125*ec8f7f48SEric Biggers	tristate
126*ec8f7f48SEric Biggers
127746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
128746b2e02SArd Biesheuvel	tristate
1292b31277aSTianjia Zhang
130e56e1898SJustin M. Forbesendmenu
131