1# SPDX-License-Identifier: GPL-2.0
2
3comment "Crypto library routines"
4
5config CRYPTO_LIB_AES
6	tristate
7
8config CRYPTO_LIB_ARC4
9	tristate
10
11config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
12	tristate
13	help
14	  Declares whether the architecture provides an arch-specific
15	  accelerated implementation of the Blake2s library interface,
16	  either builtin or as a module.
17
18config CRYPTO_LIB_BLAKE2S_GENERIC
19	tristate
20	help
21	  This symbol can be depended upon by arch implementations of the
22	  Blake2s library interface that require the generic code as a
23	  fallback, e.g., for SIMD implementations. If no arch specific
24	  implementation is enabled, this implementation serves the users
25	  of CRYPTO_LIB_BLAKE2S.
26
27config CRYPTO_LIB_BLAKE2S
28	tristate "BLAKE2s hash function library"
29	depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
30	select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n
31	help
32	  Enable the Blake2s library interface. This interface may be fulfilled
33	  by either the generic implementation or an arch-specific one, if one
34	  is available and enabled.
35
36config CRYPTO_ARCH_HAVE_LIB_CHACHA
37	tristate
38	help
39	  Declares whether the architecture provides an arch-specific
40	  accelerated implementation of the ChaCha library interface,
41	  either builtin or as a module.
42
43config CRYPTO_LIB_CHACHA_GENERIC
44	tristate
45	select CRYPTO_ALGAPI
46	help
47	  This symbol can be depended upon by arch implementations of the
48	  ChaCha library interface that require the generic code as a
49	  fallback, e.g., for SIMD implementations. If no arch specific
50	  implementation is enabled, this implementation serves the users
51	  of CRYPTO_LIB_CHACHA.
52
53config CRYPTO_LIB_CHACHA
54	tristate "ChaCha library interface"
55	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
56	select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
57	help
58	  Enable the ChaCha library interface. This interface may be fulfilled
59	  by either the generic implementation or an arch-specific one, if one
60	  is available and enabled.
61
62config CRYPTO_ARCH_HAVE_LIB_CURVE25519
63	tristate
64	help
65	  Declares whether the architecture provides an arch-specific
66	  accelerated implementation of the Curve25519 library interface,
67	  either builtin or as a module.
68
69config CRYPTO_LIB_CURVE25519_GENERIC
70	tristate
71	help
72	  This symbol can be depended upon by arch implementations of the
73	  Curve25519 library interface that require the generic code as a
74	  fallback, e.g., for SIMD implementations. If no arch specific
75	  implementation is enabled, this implementation serves the users
76	  of CRYPTO_LIB_CURVE25519.
77
78config CRYPTO_LIB_CURVE25519
79	tristate "Curve25519 scalar multiplication library"
80	depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
81	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
82	help
83	  Enable the Curve25519 library interface. This interface may be
84	  fulfilled by either the generic implementation or an arch-specific
85	  one, if one is available and enabled.
86
87config CRYPTO_LIB_DES
88	tristate
89
90config CRYPTO_LIB_POLY1305_RSIZE
91	int
92	default 2 if MIPS
93	default 11 if X86_64
94	default 9 if ARM || ARM64
95	default 1
96
97config CRYPTO_ARCH_HAVE_LIB_POLY1305
98	tristate
99	help
100	  Declares whether the architecture provides an arch-specific
101	  accelerated implementation of the Poly1305 library interface,
102	  either builtin or as a module.
103
104config CRYPTO_LIB_POLY1305_GENERIC
105	tristate
106	help
107	  This symbol can be depended upon by arch implementations of the
108	  Poly1305 library interface that require the generic code as a
109	  fallback, e.g., for SIMD implementations. If no arch specific
110	  implementation is enabled, this implementation serves the users
111	  of CRYPTO_LIB_POLY1305.
112
113config CRYPTO_LIB_POLY1305
114	tristate "Poly1305 library interface"
115	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
116	select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
117	help
118	  Enable the Poly1305 library interface. This interface may be fulfilled
119	  by either the generic implementation or an arch-specific one, if one
120	  is available and enabled.
121
122config CRYPTO_LIB_CHACHA20POLY1305
123	tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
124	depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
125	depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
126	select CRYPTO_LIB_CHACHA
127	select CRYPTO_LIB_POLY1305
128
129config CRYPTO_LIB_SHA256
130	tristate
131
132config CRYPTO_LIB_SM4
133	tristate
134