xref: /linux/lib/crypto/Kconfig (revision 66d7fb94e4ffe5acc589e0b2b4710aecc1f07a28)
1746b2e02SArd Biesheuvel# SPDX-License-Identifier: GPL-2.0
2746b2e02SArd Biesheuvel
3746b2e02SArd Biesheuvelcomment "Crypto library routines"
4746b2e02SArd Biesheuvel
5746b2e02SArd Biesheuvelconfig CRYPTO_LIB_AES
6746b2e02SArd Biesheuvel	tristate
7746b2e02SArd Biesheuvel
8746b2e02SArd Biesheuvelconfig CRYPTO_LIB_ARC4
9746b2e02SArd Biesheuvel	tristate
10746b2e02SArd Biesheuvel
11*66d7fb94SJason A. Donenfeldconfig CRYPTO_ARCH_HAVE_LIB_BLAKE2S
12*66d7fb94SJason A. Donenfeld	tristate
13*66d7fb94SJason A. Donenfeld	help
14*66d7fb94SJason A. Donenfeld	  Declares whether the architecture provides an arch-specific
15*66d7fb94SJason A. Donenfeld	  accelerated implementation of the Blake2s library interface,
16*66d7fb94SJason A. Donenfeld	  either builtin or as a module.
17*66d7fb94SJason A. Donenfeld
18*66d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S_GENERIC
19*66d7fb94SJason A. Donenfeld	tristate
20*66d7fb94SJason A. Donenfeld	help
21*66d7fb94SJason A. Donenfeld	  This symbol can be depended upon by arch implementations of the
22*66d7fb94SJason A. Donenfeld	  Blake2s library interface that require the generic code as a
23*66d7fb94SJason A. Donenfeld	  fallback, e.g., for SIMD implementations. If no arch specific
24*66d7fb94SJason A. Donenfeld	  implementation is enabled, this implementation serves the users
25*66d7fb94SJason A. Donenfeld	  of CRYPTO_LIB_BLAKE2S.
26*66d7fb94SJason A. Donenfeld
27*66d7fb94SJason A. Donenfeldconfig CRYPTO_LIB_BLAKE2S
28*66d7fb94SJason A. Donenfeld	tristate "BLAKE2s hash function library"
29*66d7fb94SJason A. Donenfeld	depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
30*66d7fb94SJason A. Donenfeld	select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n
31*66d7fb94SJason A. Donenfeld	help
32*66d7fb94SJason A. Donenfeld	  Enable the Blake2s library interface. This interface may be fulfilled
33*66d7fb94SJason A. Donenfeld	  by either the generic implementation or an arch-specific one, if one
34*66d7fb94SJason A. Donenfeld	  is available and enabled.
35*66d7fb94SJason A. Donenfeld
365fb8ef25SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_CHACHA
375fb8ef25SArd Biesheuvel	tristate
385fb8ef25SArd Biesheuvel	help
395fb8ef25SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
405fb8ef25SArd Biesheuvel	  accelerated implementation of the ChaCha library interface,
415fb8ef25SArd Biesheuvel	  either builtin or as a module.
425fb8ef25SArd Biesheuvel
435fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA_GENERIC
445fb8ef25SArd Biesheuvel	tristate
455fb8ef25SArd Biesheuvel	select CRYPTO_ALGAPI
465fb8ef25SArd Biesheuvel	help
475fb8ef25SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
485fb8ef25SArd Biesheuvel	  ChaCha library interface that require the generic code as a
495fb8ef25SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
505fb8ef25SArd Biesheuvel	  implementation is enabled, this implementation serves the users
515fb8ef25SArd Biesheuvel	  of CRYPTO_LIB_CHACHA.
525fb8ef25SArd Biesheuvel
535fb8ef25SArd Biesheuvelconfig CRYPTO_LIB_CHACHA
545fb8ef25SArd Biesheuvel	tristate "ChaCha library interface"
555fb8ef25SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
565fb8ef25SArd Biesheuvel	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
575fb8ef25SArd Biesheuvel	help
585fb8ef25SArd Biesheuvel	  Enable the ChaCha library interface. This interface may be fulfilled
595fb8ef25SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
605fb8ef25SArd Biesheuvel	  is available and enabled.
615fb8ef25SArd Biesheuvel
62746b2e02SArd Biesheuvelconfig CRYPTO_LIB_DES
63746b2e02SArd Biesheuvel	tristate
64746b2e02SArd Biesheuvel
65a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305_RSIZE
66a1d93064SArd Biesheuvel	int
67a11d055eSArd Biesheuvel	default 2 if MIPS
68f0e89bcfSArd Biesheuvel	default 4 if X86_64
69a6b803b3SArd Biesheuvel	default 9 if ARM || ARM64
70a1d93064SArd Biesheuvel	default 1
71a1d93064SArd Biesheuvel
72a1d93064SArd Biesheuvelconfig CRYPTO_ARCH_HAVE_LIB_POLY1305
73a1d93064SArd Biesheuvel	tristate
74a1d93064SArd Biesheuvel	help
75a1d93064SArd Biesheuvel	  Declares whether the architecture provides an arch-specific
76a1d93064SArd Biesheuvel	  accelerated implementation of the Poly1305 library interface,
77a1d93064SArd Biesheuvel	  either builtin or as a module.
78a1d93064SArd Biesheuvel
7948ea8c6eSArd Biesheuvelconfig CRYPTO_LIB_POLY1305_GENERIC
8048ea8c6eSArd Biesheuvel	tristate
81a1d93064SArd Biesheuvel	help
82a1d93064SArd Biesheuvel	  This symbol can be depended upon by arch implementations of the
83a1d93064SArd Biesheuvel	  Poly1305 library interface that require the generic code as a
84a1d93064SArd Biesheuvel	  fallback, e.g., for SIMD implementations. If no arch specific
85a1d93064SArd Biesheuvel	  implementation is enabled, this implementation serves the users
86a1d93064SArd Biesheuvel	  of CRYPTO_LIB_POLY1305.
87a1d93064SArd Biesheuvel
88a1d93064SArd Biesheuvelconfig CRYPTO_LIB_POLY1305
89a1d93064SArd Biesheuvel	tristate "Poly1305 library interface"
90a1d93064SArd Biesheuvel	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
91a1d93064SArd Biesheuvel	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
92a1d93064SArd Biesheuvel	help
93a1d93064SArd Biesheuvel	  Enable the Poly1305 library interface. This interface may be fulfilled
94a1d93064SArd Biesheuvel	  by either the generic implementation or an arch-specific one, if one
95a1d93064SArd Biesheuvel	  is available and enabled.
9648ea8c6eSArd Biesheuvel
97746b2e02SArd Biesheuvelconfig CRYPTO_LIB_SHA256
98746b2e02SArd Biesheuvel	tristate
99