xref: /openbmc/linux/lib/crypto/Kconfig (revision 520af5da)
1746b2e02SArd Biesheuvel# SPDX-License-Identifier: GPL-2.0
2746b2e02SArd Biesheuvel
3e56e1898SJustin M. Forbesmenu "Crypto library routines"
4e56e1898SJustin M. Forbes
57033b937SEric Biggersconfig CRYPTO_LIB_UTILS
67033b937SEric Biggers	tristate
77033b937SEric Biggers
8746b2e02SArd Biesheuvelconfig CRYPTO_LIB_AES
9746b2e02SArd Biesheuvel	tristate
10746b2e02SArd Biesheuvel
11*520af5daSArd Biesheuvelconfig CRYPTO_LIB_AESGCM
12*520af5daSArd Biesheuvel	tristate
13*520af5daSArd Biesheuvel	select CRYPTO_LIB_AES
14*520af5daSArd Biesheuvel	select CRYPTO_LIB_GF128MUL
15*520af5daSArd Biesheuvel	select CRYPTO_LIB_UTILS
16*520af5daSArd Biesheuvel
17746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
18746b2e02SArd Biesheuvel	tristate
19746b2e02SArd Biesheuvel
2061c581a4SArd Biesheuvelconfig CRYPTO_LIB_GF128MUL
2161c581a4SArd Biesheuvel	tristate
2261c581a4SArd Biesheuvel
2366d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
246048fdccSJason A. Donenfeld	bool
2566d7fb94SJason A. Donenfeld	help
2666d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
2766d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
2866d7fb94SJason A. Donenfeld	  either builtin or as a module.
2966d7fb94SJason A. Donenfeld
3066d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
316048fdccSJason A. Donenfeld	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3266d7fb94SJason A. Donenfeld	help
3366d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
3466d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
3566d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
3666d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
3766d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
3866d7fb94SJason A. Donenfeld
395fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
405fb8ef25SArd Biesheuvel	tristate
415fb8ef25SArd Biesheuvel	help
425fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
435fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
445fb8ef25SArd Biesheuvel	  either builtin or as a module.
455fb8ef25SArd Biesheuvel
465fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
475fb8ef25SArd Biesheuvel	tristate
486e78ad0bSEric Biggers	select CRYPTO_LIB_UTILS
495fb8ef25SArd Biesheuvel	help
505fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
515fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
525fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
535fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
545fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
555fb8ef25SArd Biesheuvel
565fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
57e56e1898SJustin M. Forbes	tristate "ChaCha library interface"
585fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
595fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
605fb8ef25SArd Biesheuvel	help
615fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
625fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
635fb8ef25SArd Biesheuvel	  is available and enabled.
645fb8ef25SArd Biesheuvel
650ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519
660ed42a6fSJason A. Donenfeld	tristate
670ed42a6fSJason A. Donenfeld	help
680ed42a6fSJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
690ed42a6fSJason A. Donenfeld	  accelerated implementation of the Curve25519 library interface,
700ed42a6fSJason A. Donenfeld	  either builtin or as a module.
710ed42a6fSJason A. Donenfeld
720ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC
730ed42a6fSJason A. Donenfeld	tristate
740ed42a6fSJason A. Donenfeld	help
750ed42a6fSJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
760ed42a6fSJason A. Donenfeld	  Curve25519 library interface that require the generic code as a
770ed42a6fSJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
780ed42a6fSJason A. Donenfeld	  implementation is enabled, this implementation serves the users
790ed42a6fSJason A. Donenfeld	  of CRYPTO_LIB_CURVE25519.
800ed42a6fSJason A. Donenfeld
810ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519
82e56e1898SJustin M. Forbes	tristate "Curve25519 scalar multiplication library"
830ed42a6fSJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
840ed42a6fSJason A. Donenfeld	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
857033b937SEric Biggers	select CRYPTO_LIB_UTILS
860ed42a6fSJason A. Donenfeld	help
870ed42a6fSJason A. Donenfeld	  Enable the Curve25519 library interface. This interface may be
880ed42a6fSJason A. Donenfeld	  fulfilled by either the generic implementation or an arch-specific
890ed42a6fSJason A. Donenfeld	  one, if one is available and enabled.
900ed42a6fSJason A. Donenfeld
91746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
92746b2e02SArd Biesheuvel	tristate
93746b2e02SArd Biesheuvel
94a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
95a1d93064SArd Biesheuvel	int
96a11d055eSArd Biesheuvel	default 2 if MIPS
97d7d7b853SJason A. Donenfeld	default 11 if X86_64
98a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
99a1d93064SArd Biesheuvel	default 1
100a1d93064SArd Biesheuvel
101a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
102a1d93064SArd Biesheuvel	tristate
103a1d93064SArd Biesheuvel	help
104a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
105a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
106a1d93064SArd Biesheuvel	  either builtin or as a module.
107a1d93064SArd Biesheuvel
10848ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
10948ea8c6eSArd Biesheuvel	tristate
110a1d93064SArd Biesheuvel	help
111a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
112a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
113a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
114a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
115a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
116a1d93064SArd Biesheuvel
117a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
118e56e1898SJustin M. Forbes	tristate "Poly1305 library interface"
119a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
120a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
121a1d93064SArd Biesheuvel	help
122a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
123a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
124a1d93064SArd Biesheuvel	  is available and enabled.
12548ea8c6eSArd Biesheuvel
126ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305
127e56e1898SJustin M. Forbes	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
128ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
129ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
130e56e1898SJustin M. Forbes	depends on CRYPTO
131ed20078bSArd Biesheuvel	select CRYPTO_LIB_CHACHA
132ed20078bSArd Biesheuvel	select CRYPTO_LIB_POLY1305
133e56e1898SJustin M. Forbes	select CRYPTO_ALGAPI
134ed20078bSArd Biesheuvel
135ec8f7f48SEric Biggersconfig CRYPTO_LIB_SHA1
136ec8f7f48SEric Biggers	tristate
137ec8f7f48SEric Biggers
138746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
139746b2e02SArd Biesheuvel	tristate
1402b31277aSTianjia Zhang
141e56e1898SJustin M. Forbesendmenu
142