xref: /linux/lib/crypto/Kconfig (revision 7033b937e21b12629d920e7864c20c46bc4ccf39)
1746b2e02SArd Biesheuvel# SPDX-License-Identifier: GPL-2.0
2746b2e02SArd Biesheuvel
3e56e1898SJustin M. Forbesmenu "Crypto library routines"
4e56e1898SJustin M. Forbes
5*7033b937SEric Biggersconfig CRYPTO_LIB_UTILS
6*7033b937SEric Biggers	tristate
7*7033b937SEric Biggers
8746b2e02SArd Biesheuvelconfig CRYPTO_LIB_AES
9746b2e02SArd Biesheuvel	tristate
10746b2e02SArd Biesheuvel
11746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
12746b2e02SArd Biesheuvel	tristate
13746b2e02SArd Biesheuvel
1466d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
156048fdccSJason A. Donenfeld	bool
1666d7fb94SJason A. Donenfeld	help
1766d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
1866d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
1966d7fb94SJason A. Donenfeld	  either builtin or as a module.
2066d7fb94SJason A. Donenfeld
2166d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
226048fdccSJason A. Donenfeld	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
2366d7fb94SJason A. Donenfeld	help
2466d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
2566d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
2666d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
2766d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
2866d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
2966d7fb94SJason A. Donenfeld
305fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
315fb8ef25SArd Biesheuvel	tristate
325fb8ef25SArd Biesheuvel	help
335fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
345fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
355fb8ef25SArd Biesheuvel	  either builtin or as a module.
365fb8ef25SArd Biesheuvel
375fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
385fb8ef25SArd Biesheuvel	tristate
39e56e1898SJustin M. Forbes	select XOR_BLOCKS
405fb8ef25SArd Biesheuvel	help
415fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
425fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
435fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
445fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
455fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
465fb8ef25SArd Biesheuvel
475fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
48e56e1898SJustin M. Forbes	tristate "ChaCha library interface"
49e56e1898SJustin M. Forbes	depends on CRYPTO
505fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
515fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
525fb8ef25SArd Biesheuvel	help
535fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
545fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
555fb8ef25SArd Biesheuvel	  is available and enabled.
565fb8ef25SArd Biesheuvel
570ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519
580ed42a6fSJason A. Donenfeld	tristate
590ed42a6fSJason A. Donenfeld	help
600ed42a6fSJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
610ed42a6fSJason A. Donenfeld	  accelerated implementation of the Curve25519 library interface,
620ed42a6fSJason A. Donenfeld	  either builtin or as a module.
630ed42a6fSJason A. Donenfeld
640ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC
650ed42a6fSJason A. Donenfeld	tristate
660ed42a6fSJason A. Donenfeld	help
670ed42a6fSJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
680ed42a6fSJason A. Donenfeld	  Curve25519 library interface that require the generic code as a
690ed42a6fSJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
700ed42a6fSJason A. Donenfeld	  implementation is enabled, this implementation serves the users
710ed42a6fSJason A. Donenfeld	  of CRYPTO_LIB_CURVE25519.
720ed42a6fSJason A. Donenfeld
730ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519
74e56e1898SJustin M. Forbes	tristate "Curve25519 scalar multiplication library"
750ed42a6fSJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
760ed42a6fSJason A. Donenfeld	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
77*7033b937SEric Biggers	select CRYPTO_LIB_UTILS
780ed42a6fSJason A. Donenfeld	help
790ed42a6fSJason A. Donenfeld	  Enable the Curve25519 library interface. This interface may be
800ed42a6fSJason A. Donenfeld	  fulfilled by either the generic implementation or an arch-specific
810ed42a6fSJason A. Donenfeld	  one, if one is available and enabled.
820ed42a6fSJason A. Donenfeld
83746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
84746b2e02SArd Biesheuvel	tristate
85746b2e02SArd Biesheuvel
86a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
87a1d93064SArd Biesheuvel	int
88a11d055eSArd Biesheuvel	default 2 if MIPS
89d7d7b853SJason A. Donenfeld	default 11 if X86_64
90a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
91a1d93064SArd Biesheuvel	default 1
92a1d93064SArd Biesheuvel
93a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
94a1d93064SArd Biesheuvel	tristate
95a1d93064SArd Biesheuvel	help
96a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
97a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
98a1d93064SArd Biesheuvel	  either builtin or as a module.
99a1d93064SArd Biesheuvel
10048ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
10148ea8c6eSArd Biesheuvel	tristate
102a1d93064SArd Biesheuvel	help
103a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
104a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
105a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
106a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
107a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
108a1d93064SArd Biesheuvel
109a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
110e56e1898SJustin M. Forbes	tristate "Poly1305 library interface"
111a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
112a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
113a1d93064SArd Biesheuvel	help
114a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
115a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
116a1d93064SArd Biesheuvel	  is available and enabled.
11748ea8c6eSArd Biesheuvel
118ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305
119e56e1898SJustin M. Forbes	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
120ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
121ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
122e56e1898SJustin M. Forbes	depends on CRYPTO
123ed20078bSArd Biesheuvel	select CRYPTO_LIB_CHACHA
124ed20078bSArd Biesheuvel	select CRYPTO_LIB_POLY1305
125e56e1898SJustin M. Forbes	select CRYPTO_ALGAPI
126ed20078bSArd Biesheuvel
127ec8f7f48SEric Biggersconfig CRYPTO_LIB_SHA1
128ec8f7f48SEric Biggers	tristate
129ec8f7f48SEric Biggers
130746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
131746b2e02SArd Biesheuvel	tristate
1322b31277aSTianjia Zhang
133e56e1898SJustin M. Forbesendmenu
134