xref: /linux/lib/crypto/Kconfig (revision 61c581a46a9668747d355436bd4b2505594539bd)
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
11746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
12746b2e02SArd Biesheuvel	tristate
13746b2e02SArd Biesheuvel
14*61c581a4SArd Biesheuvelconfig CRYPTO_LIB_GF128MUL
15*61c581a4SArd Biesheuvel	tristate
16*61c581a4SArd Biesheuvel
1766d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
186048fdccSJason A. Donenfeld	bool
1966d7fb94SJason A. Donenfeld	help
2066d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
2166d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
2266d7fb94SJason A. Donenfeld	  either builtin or as a module.
2366d7fb94SJason A. Donenfeld
2466d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
256048fdccSJason A. Donenfeld	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
2666d7fb94SJason A. Donenfeld	help
2766d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
2866d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
2966d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
3066d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
3166d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
3266d7fb94SJason A. Donenfeld
335fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
345fb8ef25SArd Biesheuvel	tristate
355fb8ef25SArd Biesheuvel	help
365fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
375fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
385fb8ef25SArd Biesheuvel	  either builtin or as a module.
395fb8ef25SArd Biesheuvel
405fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
415fb8ef25SArd Biesheuvel	tristate
426e78ad0bSEric Biggers	select CRYPTO_LIB_UTILS
435fb8ef25SArd Biesheuvel	help
445fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
455fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
465fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
475fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
485fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
495fb8ef25SArd Biesheuvel
505fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
51e56e1898SJustin M. Forbes	tristate "ChaCha library interface"
525fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
535fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
545fb8ef25SArd Biesheuvel	help
555fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
565fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
575fb8ef25SArd Biesheuvel	  is available and enabled.
585fb8ef25SArd Biesheuvel
590ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519
600ed42a6fSJason A. Donenfeld	tristate
610ed42a6fSJason A. Donenfeld	help
620ed42a6fSJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
630ed42a6fSJason A. Donenfeld	  accelerated implementation of the Curve25519 library interface,
640ed42a6fSJason A. Donenfeld	  either builtin or as a module.
650ed42a6fSJason A. Donenfeld
660ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC
670ed42a6fSJason A. Donenfeld	tristate
680ed42a6fSJason A. Donenfeld	help
690ed42a6fSJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
700ed42a6fSJason A. Donenfeld	  Curve25519 library interface that require the generic code as a
710ed42a6fSJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
720ed42a6fSJason A. Donenfeld	  implementation is enabled, this implementation serves the users
730ed42a6fSJason A. Donenfeld	  of CRYPTO_LIB_CURVE25519.
740ed42a6fSJason A. Donenfeld
750ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519
76e56e1898SJustin M. Forbes	tristate "Curve25519 scalar multiplication library"
770ed42a6fSJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
780ed42a6fSJason A. Donenfeld	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
797033b937SEric Biggers	select CRYPTO_LIB_UTILS
800ed42a6fSJason A. Donenfeld	help
810ed42a6fSJason A. Donenfeld	  Enable the Curve25519 library interface. This interface may be
820ed42a6fSJason A. Donenfeld	  fulfilled by either the generic implementation or an arch-specific
830ed42a6fSJason A. Donenfeld	  one, if one is available and enabled.
840ed42a6fSJason A. Donenfeld
85746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
86746b2e02SArd Biesheuvel	tristate
87746b2e02SArd Biesheuvel
88a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
89a1d93064SArd Biesheuvel	int
90a11d055eSArd Biesheuvel	default 2 if MIPS
91d7d7b853SJason A. Donenfeld	default 11 if X86_64
92a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
93a1d93064SArd Biesheuvel	default 1
94a1d93064SArd Biesheuvel
95a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
96a1d93064SArd Biesheuvel	tristate
97a1d93064SArd Biesheuvel	help
98a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
99a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
100a1d93064SArd Biesheuvel	  either builtin or as a module.
101a1d93064SArd Biesheuvel
10248ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
10348ea8c6eSArd Biesheuvel	tristate
104a1d93064SArd Biesheuvel	help
105a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
106a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
107a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
108a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
109a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
110a1d93064SArd Biesheuvel
111a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
112e56e1898SJustin M. Forbes	tristate "Poly1305 library interface"
113a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
114a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
115a1d93064SArd Biesheuvel	help
116a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
117a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
118a1d93064SArd Biesheuvel	  is available and enabled.
11948ea8c6eSArd Biesheuvel
120ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305
121e56e1898SJustin M. Forbes	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
122ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
123ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
124e56e1898SJustin M. Forbes	depends on CRYPTO
125ed20078bSArd Biesheuvel	select CRYPTO_LIB_CHACHA
126ed20078bSArd Biesheuvel	select CRYPTO_LIB_POLY1305
127e56e1898SJustin M. Forbes	select CRYPTO_ALGAPI
128ed20078bSArd Biesheuvel
129ec8f7f48SEric Biggersconfig CRYPTO_LIB_SHA1
130ec8f7f48SEric Biggers	tristate
131ec8f7f48SEric Biggers
132746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
133746b2e02SArd Biesheuvel	tristate
1342b31277aSTianjia Zhang
135e56e1898SJustin M. Forbesendmenu
136