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