xref: /linux/lib/crypto/Kconfig (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
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*f1354404SArd Biesheuvelconfig CRYPTO_LIB_AESCFB
12*f1354404SArd Biesheuvel	tristate
13*f1354404SArd Biesheuvel	select CRYPTO_LIB_AES
14*f1354404SArd Biesheuvel	select CRYPTO_LIB_UTILS
15*f1354404SArd Biesheuvel
16520af5daSArd Biesheuvelconfig CRYPTO_LIB_AESGCM
17520af5daSArd Biesheuvel	tristate
18520af5daSArd Biesheuvel	select CRYPTO_LIB_AES
19520af5daSArd Biesheuvel	select CRYPTO_LIB_GF128MUL
20520af5daSArd Biesheuvel	select CRYPTO_LIB_UTILS
21520af5daSArd Biesheuvel
22746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
23746b2e02SArd Biesheuvel	tristate
24746b2e02SArd Biesheuvel
2561c581a4SArd Biesheuvelconfig CRYPTO_LIB_GF128MUL
2661c581a4SArd Biesheuvel	tristate
2761c581a4SArd Biesheuvel
2866d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
296048fdccSJason A. Donenfeld	bool
3066d7fb94SJason A. Donenfeld	help
3166d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
3266d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
3366d7fb94SJason A. Donenfeld	  either builtin or as a module.
3466d7fb94SJason A. Donenfeld
3566d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
366048fdccSJason A. Donenfeld	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
3766d7fb94SJason A. Donenfeld	help
3866d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
3966d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
4066d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
4166d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
4266d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
4366d7fb94SJason A. Donenfeld
445fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
455fb8ef25SArd Biesheuvel	tristate
465fb8ef25SArd Biesheuvel	help
475fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
485fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
495fb8ef25SArd Biesheuvel	  either builtin or as a module.
505fb8ef25SArd Biesheuvel
515fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
525fb8ef25SArd Biesheuvel	tristate
536e78ad0bSEric Biggers	select CRYPTO_LIB_UTILS
545fb8ef25SArd Biesheuvel	help
555fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
565fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
575fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
585fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
595fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
605fb8ef25SArd Biesheuvel
615fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
62e56e1898SJustin M. Forbes	tristate "ChaCha library interface"
635fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
645fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
655fb8ef25SArd Biesheuvel	help
665fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
675fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
685fb8ef25SArd Biesheuvel	  is available and enabled.
695fb8ef25SArd Biesheuvel
700ed42a6fSJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_CURVE25519
710ed42a6fSJason A. Donenfeld	tristate
720ed42a6fSJason A. Donenfeld	help
730ed42a6fSJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
740ed42a6fSJason A. Donenfeld	  accelerated implementation of the Curve25519 library interface,
750ed42a6fSJason A. Donenfeld	  either builtin or as a module.
760ed42a6fSJason A. Donenfeld
770ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519_GENERIC
780ed42a6fSJason A. Donenfeld	tristate
790ed42a6fSJason A. Donenfeld	help
800ed42a6fSJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
810ed42a6fSJason A. Donenfeld	  Curve25519 library interface that require the generic code as a
820ed42a6fSJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
830ed42a6fSJason A. Donenfeld	  implementation is enabled, this implementation serves the users
840ed42a6fSJason A. Donenfeld	  of CRYPTO_LIB_CURVE25519.
850ed42a6fSJason A. Donenfeld
860ed42a6fSJason A. Donenfeldconfig CRYPTO_LIB_CURVE25519
87e56e1898SJustin M. Forbes	tristate "Curve25519 scalar multiplication library"
880ed42a6fSJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
890ed42a6fSJason A. Donenfeld	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
907033b937SEric Biggers	select CRYPTO_LIB_UTILS
910ed42a6fSJason A. Donenfeld	help
920ed42a6fSJason A. Donenfeld	  Enable the Curve25519 library interface. This interface may be
930ed42a6fSJason A. Donenfeld	  fulfilled by either the generic implementation or an arch-specific
940ed42a6fSJason A. Donenfeld	  one, if one is available and enabled.
950ed42a6fSJason A. Donenfeld
96746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
97746b2e02SArd Biesheuvel	tristate
98746b2e02SArd Biesheuvel
99a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
100a1d93064SArd Biesheuvel	int
101a11d055eSArd Biesheuvel	default 2 if MIPS
102d7d7b853SJason A. Donenfeld	default 11 if X86_64
103a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
104a1d93064SArd Biesheuvel	default 1
105a1d93064SArd Biesheuvel
106a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
107a1d93064SArd Biesheuvel	tristate
108a1d93064SArd Biesheuvel	help
109a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
110a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
111a1d93064SArd Biesheuvel	  either builtin or as a module.
112a1d93064SArd Biesheuvel
11348ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
11448ea8c6eSArd Biesheuvel	tristate
115a1d93064SArd Biesheuvel	help
116a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
117a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
118a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
119a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
120a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
121a1d93064SArd Biesheuvel
122a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
123e56e1898SJustin M. Forbes	tristate "Poly1305 library interface"
124a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
125a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
126a1d93064SArd Biesheuvel	help
127a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
128a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
129a1d93064SArd Biesheuvel	  is available and enabled.
13048ea8c6eSArd Biesheuvel
131ed20078bSArd Biesheuvelconfig CRYPTO_LIB_CHACHA20POLY1305
132e56e1898SJustin M. Forbes	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
133ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
134ed20078bSArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
135e56e1898SJustin M. Forbes	depends on CRYPTO
136ed20078bSArd Biesheuvel	select CRYPTO_LIB_CHACHA
137ed20078bSArd Biesheuvel	select CRYPTO_LIB_POLY1305
138e56e1898SJustin M. Forbes	select CRYPTO_ALGAPI
139ed20078bSArd Biesheuvel
140ec8f7f48SEric Biggersconfig CRYPTO_LIB_SHA1
141ec8f7f48SEric Biggers	tristate
142ec8f7f48SEric Biggers
143746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
144746b2e02SArd Biesheuvel	tristate
1452b31277aSTianjia Zhang
146e56e1898SJustin M. Forbesendmenu
147