summaryrefslogtreecommitdiff
path: root/lib/crypto/Kconfig
blob: c2b65b6a9bb6f3b3ddd53c16ff1c56115eb40b46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
# SPDX-License-Identifier: GPL-2.0

menu "Crypto library routines"

config CRYPTO_HASH_INFO
	bool

config CRYPTO_LIB_UTILS
	tristate

config CRYPTO_LIB_AES
	tristate

config CRYPTO_LIB_AESCFB
	tristate
	select CRYPTO_LIB_AES
	select CRYPTO_LIB_UTILS

config CRYPTO_LIB_AESGCM
	tristate
	select CRYPTO_LIB_AES
	select CRYPTO_LIB_GF128MUL
	select CRYPTO_LIB_UTILS

config CRYPTO_LIB_ARC4
	tristate

config CRYPTO_LIB_GF128MUL
	tristate

config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the Blake2s library interface,
	  either builtin or as a module.

config CRYPTO_LIB_BLAKE2S_GENERIC
	def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
	help
	  This symbol can be depended upon by arch implementations of the
	  Blake2s library interface that require the generic code as a
	  fallback, e.g., for SIMD implementations. If no arch specific
	  implementation is enabled, this implementation serves the users
	  of CRYPTO_LIB_BLAKE2S.

config CRYPTO_ARCH_HAVE_LIB_CHACHA
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the ChaCha library interface,
	  either builtin or as a module.

config CRYPTO_LIB_CHACHA_GENERIC
	tristate
	default CRYPTO_LIB_CHACHA if !CRYPTO_ARCH_HAVE_LIB_CHACHA
	select CRYPTO_LIB_UTILS
	help
	  This symbol can be selected by arch implementations of the ChaCha
	  library interface that require the generic code as a fallback, e.g.,
	  for SIMD implementations. If no arch specific implementation is
	  enabled, this implementation serves the users of CRYPTO_LIB_CHACHA.

config CRYPTO_LIB_CHACHA
	tristate
	help
	  Enable the ChaCha library interface. This interface may be fulfilled
	  by either the generic implementation or an arch-specific one, if one
	  is available and enabled.

config CRYPTO_ARCH_HAVE_LIB_CURVE25519
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the Curve25519 library interface,
	  either builtin or as a module.

config CRYPTO_LIB_CURVE25519_GENERIC
	tristate
	select CRYPTO_LIB_UTILS
	help
	  This symbol can be depended upon by arch implementations of the
	  Curve25519 library interface that require the generic code as a
	  fallback, e.g., for SIMD implementations. If no arch specific
	  implementation is enabled, this implementation serves the users
	  of CRYPTO_LIB_CURVE25519.

config CRYPTO_LIB_CURVE25519_INTERNAL
	tristate
	select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n

config CRYPTO_LIB_CURVE25519
	tristate
	select CRYPTO
	select CRYPTO_LIB_CURVE25519_INTERNAL
	help
	  Enable the Curve25519 library interface. This interface may be
	  fulfilled by either the generic implementation or an arch-specific
	  one, if one is available and enabled.

config CRYPTO_LIB_DES
	tristate

config CRYPTO_LIB_POLY1305_RSIZE
	int
	default 2 if MIPS
	default 11 if X86_64
	default 9 if ARM || ARM64
	default 1

config CRYPTO_ARCH_HAVE_LIB_POLY1305
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the Poly1305 library interface,
	  either builtin or as a module.

config CRYPTO_LIB_POLY1305_GENERIC
	tristate
	default CRYPTO_LIB_POLY1305 if !CRYPTO_ARCH_HAVE_LIB_POLY1305
	help
	  This symbol can be selected by arch implementations of the Poly1305
	  library interface that require the generic code as a fallback, e.g.,
	  for SIMD implementations. If no arch specific implementation is
	  enabled, this implementation serves the users of CRYPTO_LIB_POLY1305.

config CRYPTO_LIB_POLY1305
	tristate
	help
	  Enable the Poly1305 library interface. This interface may be fulfilled
	  by either the generic implementation or an arch-specific one, if one
	  is available and enabled.

config CRYPTO_LIB_CHACHA20POLY1305
	tristate
	select CRYPTO_LIB_CHACHA
	select CRYPTO_LIB_POLY1305
	select CRYPTO_LIB_UTILS

config CRYPTO_LIB_SHA1
	tristate
	help
	  The SHA-1 library functions.  Select this if your module uses any of
	  the functions from <crypto/sha1.h>.

config CRYPTO_LIB_SHA1_ARCH
	bool
	depends on CRYPTO_LIB_SHA1 && !UML
	default y if ARM
	default y if ARM64 && KERNEL_MODE_NEON
	default y if MIPS && CPU_CAVIUM_OCTEON
	default y if PPC
	default y if S390
	default y if SPARC64
	default y if X86_64

config CRYPTO_LIB_SHA256
	tristate
	help
	  Enable the SHA-256 library interface. This interface may be fulfilled
	  by either the generic implementation or an arch-specific one, if one
	  is available and enabled.

config CRYPTO_LIB_SHA256_ARCH
	bool
	depends on CRYPTO_LIB_SHA256 && !UML
	default y if ARM && !CPU_V7M
	default y if ARM64
	default y if MIPS && CPU_CAVIUM_OCTEON
	default y if PPC && SPE
	default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
	default y if S390
	default y if SPARC64
	default y if X86_64

config CRYPTO_LIB_SHA512
	tristate
	help
	  The SHA-384, SHA-512, HMAC-SHA384, and HMAC-SHA512 library functions.
	  Select this if your module uses any of these functions from
	  <crypto/sha2.h>.

config CRYPTO_LIB_SHA512_ARCH
	bool
	depends on CRYPTO_LIB_SHA512 && !UML
	default y if ARM && !CPU_V7M
	default y if ARM64
	default y if MIPS && CPU_CAVIUM_OCTEON
	default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
	default y if S390
	default y if SPARC64
	default y if X86_64

config CRYPTO_LIB_SM3
	tristate

source "lib/crypto/tests/Kconfig"

if !KMSAN # avoid false positives from assembly
if ARM
source "lib/crypto/arm/Kconfig"
endif
if ARM64
source "lib/crypto/arm64/Kconfig"
endif
if MIPS
source "lib/crypto/mips/Kconfig"
endif
if PPC
source "lib/crypto/powerpc/Kconfig"
endif
if RISCV
source "lib/crypto/riscv/Kconfig"
endif
if S390
source "lib/crypto/s390/Kconfig"
endif
if X86
source "lib/crypto/x86/Kconfig"
endif
endif

endmenu