Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
fork
Configure Feed
Select the types of activity you want to include in your feed.
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Crypto library routines"
4
5config CRYPTO_HASH_INFO
6 bool
7
8config CRYPTO_LIB_UTILS
9 tristate
10
11config CRYPTO_LIB_AES
12 tristate
13
14config CRYPTO_LIB_AESCFB
15 tristate
16 select CRYPTO_LIB_AES
17 select CRYPTO_LIB_UTILS
18
19config CRYPTO_LIB_AESGCM
20 tristate
21 select CRYPTO_LIB_AES
22 select CRYPTO_LIB_GF128MUL
23 select CRYPTO_LIB_UTILS
24
25config CRYPTO_LIB_ARC4
26 tristate
27
28config CRYPTO_LIB_GF128MUL
29 tristate
30
31config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
32 bool
33 help
34 Declares whether the architecture provides an arch-specific
35 accelerated implementation of the Blake2s library interface,
36 either builtin or as a module.
37
38config CRYPTO_LIB_BLAKE2S_GENERIC
39 def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
40 help
41 This symbol can be depended upon by arch implementations of the
42 Blake2s library interface that require the generic code as a
43 fallback, e.g., for SIMD implementations. If no arch specific
44 implementation is enabled, this implementation serves the users
45 of CRYPTO_LIB_BLAKE2S.
46
47config CRYPTO_ARCH_HAVE_LIB_CHACHA
48 bool
49 help
50 Declares whether the architecture provides an arch-specific
51 accelerated implementation of the ChaCha library interface,
52 either builtin or as a module.
53
54config CRYPTO_LIB_CHACHA_GENERIC
55 tristate
56 default CRYPTO_LIB_CHACHA if !CRYPTO_ARCH_HAVE_LIB_CHACHA
57 select CRYPTO_LIB_UTILS
58 help
59 This symbol can be selected by arch implementations of the ChaCha
60 library interface that require the generic code as a fallback, e.g.,
61 for SIMD implementations. If no arch specific implementation is
62 enabled, this implementation serves the users of CRYPTO_LIB_CHACHA.
63
64config CRYPTO_LIB_CHACHA
65 tristate
66 help
67 Enable the ChaCha library interface. This interface may be fulfilled
68 by either the generic implementation or an arch-specific one, if one
69 is available and enabled.
70
71config CRYPTO_ARCH_HAVE_LIB_CURVE25519
72 bool
73 help
74 Declares whether the architecture provides an arch-specific
75 accelerated implementation of the Curve25519 library interface,
76 either builtin or as a module.
77
78config CRYPTO_LIB_CURVE25519_GENERIC
79 tristate
80 select CRYPTO_LIB_UTILS
81 help
82 This symbol can be depended upon by arch implementations of the
83 Curve25519 library interface that require the generic code as a
84 fallback, e.g., for SIMD implementations. If no arch specific
85 implementation is enabled, this implementation serves the users
86 of CRYPTO_LIB_CURVE25519.
87
88config CRYPTO_LIB_CURVE25519_INTERNAL
89 tristate
90 select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
91
92config CRYPTO_LIB_CURVE25519
93 tristate
94 select CRYPTO
95 select CRYPTO_LIB_CURVE25519_INTERNAL
96 help
97 Enable the Curve25519 library interface. This interface may be
98 fulfilled by either the generic implementation or an arch-specific
99 one, if one is available and enabled.
100
101config CRYPTO_LIB_DES
102 tristate
103
104config CRYPTO_LIB_POLY1305_RSIZE
105 int
106 default 2 if MIPS
107 default 11 if X86_64
108 default 9 if ARM || ARM64
109 default 1
110
111config CRYPTO_ARCH_HAVE_LIB_POLY1305
112 bool
113 help
114 Declares whether the architecture provides an arch-specific
115 accelerated implementation of the Poly1305 library interface,
116 either builtin or as a module.
117
118config CRYPTO_LIB_POLY1305_GENERIC
119 tristate
120 default CRYPTO_LIB_POLY1305 if !CRYPTO_ARCH_HAVE_LIB_POLY1305
121 help
122 This symbol can be selected by arch implementations of the Poly1305
123 library interface that require the generic code as a fallback, e.g.,
124 for SIMD implementations. If no arch specific implementation is
125 enabled, this implementation serves the users of CRYPTO_LIB_POLY1305.
126
127config CRYPTO_LIB_POLY1305
128 tristate
129 help
130 Enable the Poly1305 library interface. This interface may be fulfilled
131 by either the generic implementation or an arch-specific one, if one
132 is available and enabled.
133
134config CRYPTO_LIB_CHACHA20POLY1305
135 tristate
136 select CRYPTO_LIB_CHACHA
137 select CRYPTO_LIB_POLY1305
138 select CRYPTO_LIB_UTILS
139
140config CRYPTO_LIB_SHA1
141 tristate
142 help
143 The SHA-1 library functions. Select this if your module uses any of
144 the functions from <crypto/sha1.h>.
145
146config CRYPTO_LIB_SHA1_ARCH
147 bool
148 depends on CRYPTO_LIB_SHA1 && !UML
149 default y if ARM
150 default y if ARM64 && KERNEL_MODE_NEON
151 default y if MIPS && CPU_CAVIUM_OCTEON
152 default y if PPC
153 default y if S390
154 default y if SPARC64
155 default y if X86_64
156
157config CRYPTO_LIB_SHA256
158 tristate
159 help
160 Enable the SHA-256 library interface. This interface may be fulfilled
161 by either the generic implementation or an arch-specific one, if one
162 is available and enabled.
163
164config CRYPTO_LIB_SHA256_ARCH
165 bool
166 depends on CRYPTO_LIB_SHA256 && !UML
167 default y if ARM && !CPU_V7M
168 default y if ARM64
169 default y if MIPS && CPU_CAVIUM_OCTEON
170 default y if PPC && SPE
171 default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
172 default y if S390
173 default y if SPARC64
174 default y if X86_64
175
176config CRYPTO_LIB_SHA512
177 tristate
178 help
179 The SHA-384, SHA-512, HMAC-SHA384, and HMAC-SHA512 library functions.
180 Select this if your module uses any of these functions from
181 <crypto/sha2.h>.
182
183config CRYPTO_LIB_SHA512_ARCH
184 bool
185 depends on CRYPTO_LIB_SHA512 && !UML
186 default y if ARM && !CPU_V7M
187 default y if ARM64
188 default y if MIPS && CPU_CAVIUM_OCTEON
189 default y if RISCV && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
190 default y if S390
191 default y if SPARC64
192 default y if X86_64
193
194config CRYPTO_LIB_SM3
195 tristate
196
197source "lib/crypto/tests/Kconfig"
198
199if !KMSAN # avoid false positives from assembly
200if ARM
201source "lib/crypto/arm/Kconfig"
202endif
203if ARM64
204source "lib/crypto/arm64/Kconfig"
205endif
206if MIPS
207source "lib/crypto/mips/Kconfig"
208endif
209if PPC
210source "lib/crypto/powerpc/Kconfig"
211endif
212if RISCV
213source "lib/crypto/riscv/Kconfig"
214endif
215if S390
216source "lib/crypto/s390/Kconfig"
217endif
218if X86
219source "lib/crypto/x86/Kconfig"
220endif
221endif
222
223endmenu