]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - crypto/Kconfig
[IPSEC]: Move linux/crypto.h inclusion out of net/xfrm.h
[mirror_ubuntu-bionic-kernel.git] / crypto / Kconfig
CommitLineData
1da177e4
LT
1#
2# Cryptographic API Configuration
3#
4
5menu "Cryptographic options"
6
7config CRYPTO
8 bool "Cryptographic API"
9 help
10 This option provides the core Cryptographic API.
11
12config CRYPTO_HMAC
13 bool "HMAC support"
14 depends on CRYPTO
15 help
16 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
17 This is required for IPSec.
18
19config CRYPTO_NULL
20 tristate "Null algorithms"
21 depends on CRYPTO
22 help
23 These are 'Null' algorithms, used by IPsec, which do nothing.
24
25config CRYPTO_MD4
26 tristate "MD4 digest algorithm"
27 depends on CRYPTO
28 help
29 MD4 message digest algorithm (RFC1320).
30
31config CRYPTO_MD5
32 tristate "MD5 digest algorithm"
33 depends on CRYPTO
34 help
35 MD5 message digest algorithm (RFC1321).
36
37config CRYPTO_SHA1
38 tristate "SHA1 digest algorithm"
39 depends on CRYPTO
40 help
41 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
42
c1e26e1e
JG
43config CRYPTO_SHA1_S390
44 tristate "SHA1 digest algorithm (s390)"
347a8dc3 45 depends on CRYPTO && S390
1da177e4 46 help
0a497c17 47 This is the s390 hardware accelerated implementation of the
1da177e4
LT
48 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
49
50config CRYPTO_SHA256
51 tristate "SHA256 digest algorithm"
52 depends on CRYPTO
53 help
54 SHA256 secure hash standard (DFIPS 180-2).
55
56 This version of SHA implements a 256 bit hash with 128 bits of
57 security against collision attacks.
58
0a497c17
JG
59config CRYPTO_SHA256_S390
60 tristate "SHA256 digest algorithm (s390)"
347a8dc3 61 depends on CRYPTO && S390
0a497c17
JG
62 help
63 This is the s390 hardware accelerated implementation of the
64 SHA256 secure hash standard (DFIPS 180-2).
65
66 This version of SHA implements a 256 bit hash with 128 bits of
67 security against collision attacks.
68
1da177e4
LT
69config CRYPTO_SHA512
70 tristate "SHA384 and SHA512 digest algorithms"
71 depends on CRYPTO
72 help
73 SHA512 secure hash standard (DFIPS 180-2).
74
75 This version of SHA implements a 512 bit hash with 256 bits of
76 security against collision attacks.
77
78 This code also includes SHA-384, a 384 bit hash with 192 bits
79 of security against collision attacks.
80
81config CRYPTO_WP512
82 tristate "Whirlpool digest algorithms"
83 depends on CRYPTO
84 help
85 Whirlpool hash algorithm 512, 384 and 256-bit hashes
86
87 Whirlpool-512 is part of the NESSIE cryptographic primitives.
88 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
89
90 See also:
91 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
92
93config CRYPTO_TGR192
94 tristate "Tiger digest algorithms"
95 depends on CRYPTO
96 help
97 Tiger hash algorithm 192, 160 and 128-bit hashes
98
99 Tiger is a hash function optimized for 64-bit processors while
100 still having decent performance on 32-bit processors.
101 Tiger was developed by Ross Anderson and Eli Biham.
102
103 See also:
104 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
105
106config CRYPTO_DES
107 tristate "DES and Triple DES EDE cipher algorithms"
108 depends on CRYPTO
109 help
110 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
111
c1e26e1e
JG
112config CRYPTO_DES_S390
113 tristate "DES and Triple DES cipher algorithms (s390)"
347a8dc3 114 depends on CRYPTO && S390
1da177e4
LT
115 help
116 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
117
118config CRYPTO_BLOWFISH
119 tristate "Blowfish cipher algorithm"
120 depends on CRYPTO
121 help
122 Blowfish cipher algorithm, by Bruce Schneier.
123
124 This is a variable key length cipher which can use keys from 32
125 bits to 448 bits in length. It's fast, simple and specifically
126 designed for use on "large microprocessors".
127
128 See also:
129 <http://www.schneier.com/blowfish.html>
130
131config CRYPTO_TWOFISH
132 tristate "Twofish cipher algorithm"
133 depends on CRYPTO
2729bb42 134 select CRYPTO_TWOFISH_COMMON
1da177e4
LT
135 help
136 Twofish cipher algorithm.
137
138 Twofish was submitted as an AES (Advanced Encryption Standard)
139 candidate cipher by researchers at CounterPane Systems. It is a
140 16 round block cipher supporting key sizes of 128, 192, and 256
141 bits.
142
143 See also:
144 <http://www.schneier.com/twofish.html>
145
2729bb42
JF
146config CRYPTO_TWOFISH_COMMON
147 tristate
148 depends on CRYPTO
149 help
150 Common parts of the Twofish cipher algorithm shared by the
151 generic c and the assembler implementations.
152
b9f535ff
JF
153config CRYPTO_TWOFISH_586
154 tristate "Twofish cipher algorithms (i586)"
155 depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
156 select CRYPTO_TWOFISH_COMMON
157 help
158 Twofish cipher algorithm.
159
160 Twofish was submitted as an AES (Advanced Encryption Standard)
161 candidate cipher by researchers at CounterPane Systems. It is a
162 16 round block cipher supporting key sizes of 128, 192, and 256
163 bits.
164
165 See also:
166 <http://www.schneier.com/twofish.html>
167
eaf44088
JF
168config CRYPTO_TWOFISH_X86_64
169 tristate "Twofish cipher algorithm (x86_64)"
170 depends on CRYPTO && ((X86 || UML_X86) && 64BIT)
171 select CRYPTO_TWOFISH_COMMON
172 help
173 Twofish cipher algorithm (x86_64).
174
175 Twofish was submitted as an AES (Advanced Encryption Standard)
176 candidate cipher by researchers at CounterPane Systems. It is a
177 16 round block cipher supporting key sizes of 128, 192, and 256
178 bits.
179
180 See also:
181 <http://www.schneier.com/twofish.html>
182
1da177e4
LT
183config CRYPTO_SERPENT
184 tristate "Serpent cipher algorithm"
185 depends on CRYPTO
186 help
187 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
188
189 Keys are allowed to be from 0 to 256 bits in length, in steps
190 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
191 variant of Serpent for compatibility with old kerneli code.
192
193 See also:
194 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
195
196config CRYPTO_AES
197 tristate "AES cipher algorithms"
c8a19c91 198 depends on CRYPTO
1da177e4
LT
199 help
200 AES cipher algorithms (FIPS-197). AES uses the Rijndael
201 algorithm.
202
203 Rijndael appears to be consistently a very good performer in
204 both hardware and software across a wide range of computing
205 environments regardless of its use in feedback or non-feedback
206 modes. Its key setup time is excellent, and its key agility is
207 good. Rijndael's very low memory requirements make it very well
208 suited for restricted-space environments, in which it also
209 demonstrates excellent performance. Rijndael's operations are
210 among the easiest to defend against power and timing attacks.
211
212 The AES specifies three key sizes: 128, 192 and 256 bits
213
214 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
215
216config CRYPTO_AES_586
217 tristate "AES cipher algorithms (i586)"
c45166be 218 depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
1da177e4
LT
219 help
220 AES cipher algorithms (FIPS-197). AES uses the Rijndael
221 algorithm.
222
223 Rijndael appears to be consistently a very good performer in
224 both hardware and software across a wide range of computing
225 environments regardless of its use in feedback or non-feedback
226 modes. Its key setup time is excellent, and its key agility is
227 good. Rijndael's very low memory requirements make it very well
228 suited for restricted-space environments, in which it also
229 demonstrates excellent performance. Rijndael's operations are
230 among the easiest to defend against power and timing attacks.
231
232 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
233
234 See <http://csrc.nist.gov/encryption/aes/> for more information.
235
236config CRYPTO_AES_X86_64
237 tristate "AES cipher algorithms (x86_64)"
238 depends on CRYPTO && ((X86 || UML_X86) && 64BIT)
239 help
240 AES cipher algorithms (FIPS-197). AES uses the Rijndael
241 algorithm.
242
243 Rijndael appears to be consistently a very good performer in
244 both hardware and software across a wide range of computing
245 environments regardless of its use in feedback or non-feedback
246 modes. Its key setup time is excellent, and its key agility is
247 good. Rijndael's very low memory requirements make it very well
248 suited for restricted-space environments, in which it also
249 demonstrates excellent performance. Rijndael's operations are
250 among the easiest to defend against power and timing attacks.
251
252 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
253
254 See <http://csrc.nist.gov/encryption/aes/> for more information.
255
bf754ae8
JG
256config CRYPTO_AES_S390
257 tristate "AES cipher algorithms (s390)"
347a8dc3 258 depends on CRYPTO && S390
bf754ae8
JG
259 help
260 This is the s390 hardware accelerated implementation of the
261 AES cipher algorithms (FIPS-197). AES uses the Rijndael
262 algorithm.
263
264 Rijndael appears to be consistently a very good performer in
265 both hardware and software across a wide range of computing
266 environments regardless of its use in feedback or non-feedback
267 modes. Its key setup time is excellent, and its key agility is
268 good. Rijndael's very low memory requirements make it very well
269 suited for restricted-space environments, in which it also
270 demonstrates excellent performance. Rijndael's operations are
271 among the easiest to defend against power and timing attacks.
272
273 On s390 the System z9-109 currently only supports the key size
274 of 128 bit.
275
1da177e4
LT
276config CRYPTO_CAST5
277 tristate "CAST5 (CAST-128) cipher algorithm"
278 depends on CRYPTO
279 help
280 The CAST5 encryption algorithm (synonymous with CAST-128) is
281 described in RFC2144.
282
283config CRYPTO_CAST6
284 tristate "CAST6 (CAST-256) cipher algorithm"
285 depends on CRYPTO
286 help
287 The CAST6 encryption algorithm (synonymous with CAST-256) is
288 described in RFC2612.
289
290config CRYPTO_TEA
fb4f10ed 291 tristate "TEA, XTEA and XETA cipher algorithms"
1da177e4
LT
292 depends on CRYPTO
293 help
294 TEA cipher algorithm.
295
296 Tiny Encryption Algorithm is a simple cipher that uses
297 many rounds for security. It is very fast and uses
298 little memory.
299
300 Xtendend Tiny Encryption Algorithm is a modification to
301 the TEA algorithm to address a potential key weakness
302 in the TEA algorithm.
303
fb4f10ed
AG
304 Xtendend Encryption Tiny Algorithm is a mis-implementation
305 of the XTEA algorithm for compatibility purposes.
306
1da177e4
LT
307config CRYPTO_ARC4
308 tristate "ARC4 cipher algorithm"
309 depends on CRYPTO
310 help
311 ARC4 cipher algorithm.
312
313 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
314 bits in length. This algorithm is required for driver-based
315 WEP, but it should not be for other purposes because of the
316 weakness of the algorithm.
317
318config CRYPTO_KHAZAD
319 tristate "Khazad cipher algorithm"
320 depends on CRYPTO
321 help
322 Khazad cipher algorithm.
323
324 Khazad was a finalist in the initial NESSIE competition. It is
325 an algorithm optimized for 64-bit processors with good performance
326 on 32-bit processors. Khazad uses an 128 bit key size.
327
328 See also:
329 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
330
331config CRYPTO_ANUBIS
332 tristate "Anubis cipher algorithm"
333 depends on CRYPTO
334 help
335 Anubis cipher algorithm.
336
337 Anubis is a variable key length cipher which can use keys from
338 128 bits to 320 bits in length. It was evaluated as a entrant
339 in the NESSIE competition.
340
341 See also:
342 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
343 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
344
345
346config CRYPTO_DEFLATE
347 tristate "Deflate compression algorithm"
348 depends on CRYPTO
349 select ZLIB_INFLATE
350 select ZLIB_DEFLATE
351 help
352 This is the Deflate algorithm (RFC1951), specified for use in
353 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
354
355 You will most probably want this if using IPSec.
356
357config CRYPTO_MICHAEL_MIC
358 tristate "Michael MIC keyed digest algorithm"
359 depends on CRYPTO
360 help
361 Michael MIC is used for message integrity protection in TKIP
362 (IEEE 802.11i). This algorithm is required for TKIP, but it
363 should not be used for other purposes because of the weakness
364 of the algorithm.
365
366config CRYPTO_CRC32C
367 tristate "CRC32c CRC algorithm"
368 depends on CRYPTO
369 select LIBCRC32C
370 help
371 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
372 by iSCSI for header and data digests and by others.
373 See Castagnoli93. This implementation uses lib/libcrc32c.
374 Module will be crc32c.
375
376config CRYPTO_TEST
377 tristate "Testing module"
b9d0a25a 378 depends on CRYPTO && m
1da177e4
LT
379 help
380 Quick & dirty crypto test module.
381
382source "drivers/crypto/Kconfig"
383endmenu
384