blob: be5eb0cb7c30ecd33a417981e2e5493a7f9aa7a3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
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
Herbert Xucce9e062006-08-21 21:08:13 +100012if CRYPTO
13
14config CRYPTO_ALGAPI
15 tristate
16 help
17 This option provides the API for cryptographic algorithms.
18
Herbert Xu5cde0af2006-08-22 00:07:53 +100019config CRYPTO_BLKCIPHER
20 tristate
21 select CRYPTO_ALGAPI
22
Herbert Xu2b8c19d2006-09-21 11:31:44 +100023config 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070031config CRYPTO_HMAC
32 bool "HMAC support"
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 help
34 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
35 This is required for IPSec.
36
37config CRYPTO_NULL
38 tristate "Null algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100039 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070040 help
41 These are 'Null' algorithms, used by IPsec, which do nothing.
42
43config CRYPTO_MD4
44 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100045 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070046 help
47 MD4 message digest algorithm (RFC1320).
48
49config CRYPTO_MD5
50 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100051 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070052 help
53 MD5 message digest algorithm (RFC1321).
54
55config CRYPTO_SHA1
56 tristate "SHA1 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100057 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070058 help
59 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
60
Jan Glauberc1e26e12006-01-06 00:19:17 -080061config CRYPTO_SHA1_S390
62 tristate "SHA1 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100063 depends on S390
64 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070065 help
Jan Glauber0a497c172006-01-06 00:19:18 -080066 This is the s390 hardware accelerated implementation of the
Linus Torvalds1da177e2005-04-16 15:20:36 -070067 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
68
69config CRYPTO_SHA256
70 tristate "SHA256 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100071 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070072 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
Jan Glauber0a497c172006-01-06 00:19:18 -080078config CRYPTO_SHA256_S390
79 tristate "SHA256 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100080 depends on S390
81 select CRYPTO_ALGAPI
Jan Glauber0a497c172006-01-06 00:19:18 -080082 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070089config CRYPTO_SHA512
90 tristate "SHA384 and SHA512 digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100091 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070092 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000103 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000115 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116 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
Herbert Xudb131ef2006-09-21 11:44:08 +1000126config 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700143config CRYPTO_DES
144 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000145 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700146 help
147 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
148
Jan Glauberc1e26e12006-01-06 00:19:17 -0800149config CRYPTO_DES_S390
150 tristate "DES and Triple DES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000151 depends on S390
152 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000153 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700154 help
155 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
156
157config CRYPTO_BLOWFISH
158 tristate "Blowfish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000159 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000172 select CRYPTO_ALGAPI
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000173 select CRYPTO_TWOFISH_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700174 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
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000185config CRYPTO_TWOFISH_COMMON
186 tristate
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000187 help
188 Common parts of the Twofish cipher algorithm shared by the
189 generic c and the assembler implementations.
190
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000191config CRYPTO_TWOFISH_586
192 tristate "Twofish cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000193 depends on (X86 || UML_X86) && !64BIT
194 select CRYPTO_ALGAPI
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000195 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
Joachim Fritschieaf44082006-06-20 21:12:02 +1000207config CRYPTO_TWOFISH_X86_64
208 tristate "Twofish cipher algorithm (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000209 depends on (X86 || UML_X86) && 64BIT
210 select CRYPTO_ALGAPI
Joachim Fritschieaf44082006-06-20 21:12:02 +1000211 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700223config CRYPTO_SERPENT
224 tristate "Serpent cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000225 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700226 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000238 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700239 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)"
Herbert Xucce9e062006-08-21 21:08:13 +1000258 depends on (X86 || UML_X86) && !64BIT
259 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700260 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
274
275 See <http://csrc.nist.gov/encryption/aes/> for more information.
276
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700277config CRYPTO_AES_X86_64
278 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000279 depends on (X86 || UML_X86) && 64BIT
280 select CRYPTO_ALGAPI
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700281 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
295
296 See <http://csrc.nist.gov/encryption/aes/> for more information.
297
Jan Glauberbf754ae2006-01-06 00:19:18 -0800298config CRYPTO_AES_S390
299 tristate "AES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000300 depends on S390
301 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000302 select CRYPTO_BLKCIPHER
Jan Glauberbf754ae2006-01-06 00:19:18 -0800303 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320config CRYPTO_CAST5
321 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000322 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700323 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000329 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700330 help
331 The CAST6 encryption algorithm (synonymous with CAST-256) is
332 described in RFC2612.
333
334config CRYPTO_TEA
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700335 tristate "TEA, XTEA and XETA cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000336 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700337 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
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700348 Xtendend Encryption Tiny Algorithm is a mis-implementation
349 of the XTEA algorithm for compatibility purposes.
350
Linus Torvalds1da177e2005-04-16 15:20:36 -0700351config CRYPTO_ARC4
352 tristate "ARC4 cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000353 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700354 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000364 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700365 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000377 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700378 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000392 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000403 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700404 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000412 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700413 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000422 depends on m
423 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700424 help
425 Quick & dirty crypto test module.
426
427source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700428
Herbert Xucce9e062006-08-21 21:08:13 +1000429endif # if CRYPTO
430
431endmenu