summaryrefslogtreecommitdiff
path: root/lib/crypto/Kconfig
blob: 1ec1466108ccdd996fcf4d679ffbd40d54116c4d (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
# SPDX-License-Identifier: GPL-2.0

menu "Crypto library routines"

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

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_ARCH_HAVE_LIB_SHA256
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the SHA-256 library interface.

config CRYPTO_ARCH_HAVE_LIB_SHA256_SIMD
	bool
	help
	  Declares whether the architecture provides an arch-specific
	  accelerated implementation of the SHA-256 library interface
	  that is SIMD-based and therefore not usable in hardirq
	  context.

config CRYPTO_LIB_SHA256_GENERIC
	tristate
	default CRYPTO_LIB_SHA256 if !CRYPTO_ARCH_HAVE_LIB_SHA256
	help
	  This symbol can be selected by arch implementations of the SHA-256
	  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_SHA256.

config CRYPTO_LIB_SM3
	tristate

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

endmenu