blob: 69c5f992bcd4b9c6732e784ad3665a15648af78d [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 Xu055bcee2006-08-19 22:24:23 +100023config CRYPTO_HASH
24 tristate
25 select CRYPTO_ALGAPI
26
Herbert Xu2b8c19d2006-09-21 11:31:44 +100027config CRYPTO_MANAGER
28 tristate "Cryptographic algorithm manager"
29 select CRYPTO_ALGAPI
30 default m
31 help
32 Create default cryptographic template instantiations such as
33 cbc(aes).
34
Linus Torvalds1da177e2005-04-16 15:20:36 -070035config CRYPTO_HMAC
36 bool "HMAC support"
Linus Torvalds1da177e2005-04-16 15:20:36 -070037 help
38 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
39 This is required for IPSec.
40
41config CRYPTO_NULL
42 tristate "Null algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100043 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070044 help
45 These are 'Null' algorithms, used by IPsec, which do nothing.
46
47config CRYPTO_MD4
48 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100049 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070050 help
51 MD4 message digest algorithm (RFC1320).
52
53config CRYPTO_MD5
54 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100055 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070056 help
57 MD5 message digest algorithm (RFC1321).
58
59config CRYPTO_SHA1
60 tristate "SHA1 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100061 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070062 help
63 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
64
Jan Glauberc1e26e12006-01-06 00:19:17 -080065config CRYPTO_SHA1_S390
66 tristate "SHA1 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100067 depends on S390
68 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 help
Jan Glauber0a497c172006-01-06 00:19:18 -080070 This is the s390 hardware accelerated implementation of the
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
72
73config CRYPTO_SHA256
74 tristate "SHA256 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100075 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070076 help
77 SHA256 secure hash standard (DFIPS 180-2).
78
79 This version of SHA implements a 256 bit hash with 128 bits of
80 security against collision attacks.
81
Jan Glauber0a497c172006-01-06 00:19:18 -080082config CRYPTO_SHA256_S390
83 tristate "SHA256 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100084 depends on S390
85 select CRYPTO_ALGAPI
Jan Glauber0a497c172006-01-06 00:19:18 -080086 help
87 This is the s390 hardware accelerated implementation of the
88 SHA256 secure hash standard (DFIPS 180-2).
89
90 This version of SHA implements a 256 bit hash with 128 bits of
91 security against collision attacks.
92
Linus Torvalds1da177e2005-04-16 15:20:36 -070093config CRYPTO_SHA512
94 tristate "SHA384 and SHA512 digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100095 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070096 help
97 SHA512 secure hash standard (DFIPS 180-2).
98
99 This version of SHA implements a 512 bit hash with 256 bits of
100 security against collision attacks.
101
102 This code also includes SHA-384, a 384 bit hash with 192 bits
103 of security against collision attacks.
104
105config CRYPTO_WP512
106 tristate "Whirlpool digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000107 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108 help
109 Whirlpool hash algorithm 512, 384 and 256-bit hashes
110
111 Whirlpool-512 is part of the NESSIE cryptographic primitives.
112 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
113
114 See also:
115 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
116
117config CRYPTO_TGR192
118 tristate "Tiger digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000119 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120 help
121 Tiger hash algorithm 192, 160 and 128-bit hashes
122
123 Tiger is a hash function optimized for 64-bit processors while
124 still having decent performance on 32-bit processors.
125 Tiger was developed by Ross Anderson and Eli Biham.
126
127 See also:
128 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
129
Herbert Xudb131ef2006-09-21 11:44:08 +1000130config CRYPTO_ECB
131 tristate "ECB support"
132 select CRYPTO_BLKCIPHER
133 default m
134 help
135 ECB: Electronic CodeBook mode
136 This is the simplest block cipher algorithm. It simply encrypts
137 the input block by block.
138
139config CRYPTO_CBC
140 tristate "CBC support"
141 select CRYPTO_BLKCIPHER
142 default m
143 help
144 CBC: Cipher Block Chaining mode
145 This block cipher algorithm is required for IPSec.
146
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147config CRYPTO_DES
148 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000149 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150 help
151 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
152
Jan Glauberc1e26e12006-01-06 00:19:17 -0800153config CRYPTO_DES_S390
154 tristate "DES and Triple DES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000155 depends on S390
156 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000157 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158 help
159 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
160
161config CRYPTO_BLOWFISH
162 tristate "Blowfish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000163 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164 help
165 Blowfish cipher algorithm, by Bruce Schneier.
166
167 This is a variable key length cipher which can use keys from 32
168 bits to 448 bits in length. It's fast, simple and specifically
169 designed for use on "large microprocessors".
170
171 See also:
172 <http://www.schneier.com/blowfish.html>
173
174config CRYPTO_TWOFISH
175 tristate "Twofish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000176 select CRYPTO_ALGAPI
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000177 select CRYPTO_TWOFISH_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700178 help
179 Twofish cipher algorithm.
180
181 Twofish was submitted as an AES (Advanced Encryption Standard)
182 candidate cipher by researchers at CounterPane Systems. It is a
183 16 round block cipher supporting key sizes of 128, 192, and 256
184 bits.
185
186 See also:
187 <http://www.schneier.com/twofish.html>
188
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000189config CRYPTO_TWOFISH_COMMON
190 tristate
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000191 help
192 Common parts of the Twofish cipher algorithm shared by the
193 generic c and the assembler implementations.
194
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000195config CRYPTO_TWOFISH_586
196 tristate "Twofish cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000197 depends on (X86 || UML_X86) && !64BIT
198 select CRYPTO_ALGAPI
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000199 select CRYPTO_TWOFISH_COMMON
200 help
201 Twofish cipher algorithm.
202
203 Twofish was submitted as an AES (Advanced Encryption Standard)
204 candidate cipher by researchers at CounterPane Systems. It is a
205 16 round block cipher supporting key sizes of 128, 192, and 256
206 bits.
207
208 See also:
209 <http://www.schneier.com/twofish.html>
210
Joachim Fritschieaf44082006-06-20 21:12:02 +1000211config CRYPTO_TWOFISH_X86_64
212 tristate "Twofish cipher algorithm (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000213 depends on (X86 || UML_X86) && 64BIT
214 select CRYPTO_ALGAPI
Joachim Fritschieaf44082006-06-20 21:12:02 +1000215 select CRYPTO_TWOFISH_COMMON
216 help
217 Twofish cipher algorithm (x86_64).
218
219 Twofish was submitted as an AES (Advanced Encryption Standard)
220 candidate cipher by researchers at CounterPane Systems. It is a
221 16 round block cipher supporting key sizes of 128, 192, and 256
222 bits.
223
224 See also:
225 <http://www.schneier.com/twofish.html>
226
Linus Torvalds1da177e2005-04-16 15:20:36 -0700227config CRYPTO_SERPENT
228 tristate "Serpent cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000229 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230 help
231 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
232
233 Keys are allowed to be from 0 to 256 bits in length, in steps
234 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
235 variant of Serpent for compatibility with old kerneli code.
236
237 See also:
238 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
239
240config CRYPTO_AES
241 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000242 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700243 help
244 AES cipher algorithms (FIPS-197). AES uses the Rijndael
245 algorithm.
246
247 Rijndael appears to be consistently a very good performer in
248 both hardware and software across a wide range of computing
249 environments regardless of its use in feedback or non-feedback
250 modes. Its key setup time is excellent, and its key agility is
251 good. Rijndael's very low memory requirements make it very well
252 suited for restricted-space environments, in which it also
253 demonstrates excellent performance. Rijndael's operations are
254 among the easiest to defend against power and timing attacks.
255
256 The AES specifies three key sizes: 128, 192 and 256 bits
257
258 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
259
260config CRYPTO_AES_586
261 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000262 depends on (X86 || UML_X86) && !64BIT
263 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700264 help
265 AES cipher algorithms (FIPS-197). AES uses the Rijndael
266 algorithm.
267
268 Rijndael appears to be consistently a very good performer in
269 both hardware and software across a wide range of computing
270 environments regardless of its use in feedback or non-feedback
271 modes. Its key setup time is excellent, and its key agility is
272 good. Rijndael's very low memory requirements make it very well
273 suited for restricted-space environments, in which it also
274 demonstrates excellent performance. Rijndael's operations are
275 among the easiest to defend against power and timing attacks.
276
277 The AES specifies three key sizes: 128, 192 and 256 bits
278
279 See <http://csrc.nist.gov/encryption/aes/> for more information.
280
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700281config CRYPTO_AES_X86_64
282 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000283 depends on (X86 || UML_X86) && 64BIT
284 select CRYPTO_ALGAPI
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700285 help
286 AES cipher algorithms (FIPS-197). AES uses the Rijndael
287 algorithm.
288
289 Rijndael appears to be consistently a very good performer in
290 both hardware and software across a wide range of computing
291 environments regardless of its use in feedback or non-feedback
292 modes. Its key setup time is excellent, and its key agility is
293 good. Rijndael's very low memory requirements make it very well
294 suited for restricted-space environments, in which it also
295 demonstrates excellent performance. Rijndael's operations are
296 among the easiest to defend against power and timing attacks.
297
298 The AES specifies three key sizes: 128, 192 and 256 bits
299
300 See <http://csrc.nist.gov/encryption/aes/> for more information.
301
Jan Glauberbf754ae2006-01-06 00:19:18 -0800302config CRYPTO_AES_S390
303 tristate "AES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000304 depends on S390
305 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000306 select CRYPTO_BLKCIPHER
Jan Glauberbf754ae2006-01-06 00:19:18 -0800307 help
308 This is the s390 hardware accelerated implementation of the
309 AES cipher algorithms (FIPS-197). AES uses the Rijndael
310 algorithm.
311
312 Rijndael appears to be consistently a very good performer in
313 both hardware and software across a wide range of computing
314 environments regardless of its use in feedback or non-feedback
315 modes. Its key setup time is excellent, and its key agility is
316 good. Rijndael's very low memory requirements make it very well
317 suited for restricted-space environments, in which it also
318 demonstrates excellent performance. Rijndael's operations are
319 among the easiest to defend against power and timing attacks.
320
321 On s390 the System z9-109 currently only supports the key size
322 of 128 bit.
323
Linus Torvalds1da177e2005-04-16 15:20:36 -0700324config CRYPTO_CAST5
325 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000326 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700327 help
328 The CAST5 encryption algorithm (synonymous with CAST-128) is
329 described in RFC2144.
330
331config CRYPTO_CAST6
332 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000333 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700334 help
335 The CAST6 encryption algorithm (synonymous with CAST-256) is
336 described in RFC2612.
337
338config CRYPTO_TEA
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700339 tristate "TEA, XTEA and XETA cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000340 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700341 help
342 TEA cipher algorithm.
343
344 Tiny Encryption Algorithm is a simple cipher that uses
345 many rounds for security. It is very fast and uses
346 little memory.
347
348 Xtendend Tiny Encryption Algorithm is a modification to
349 the TEA algorithm to address a potential key weakness
350 in the TEA algorithm.
351
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700352 Xtendend Encryption Tiny Algorithm is a mis-implementation
353 of the XTEA algorithm for compatibility purposes.
354
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355config CRYPTO_ARC4
356 tristate "ARC4 cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000357 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700358 help
359 ARC4 cipher algorithm.
360
361 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
362 bits in length. This algorithm is required for driver-based
363 WEP, but it should not be for other purposes because of the
364 weakness of the algorithm.
365
366config CRYPTO_KHAZAD
367 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000368 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369 help
370 Khazad cipher algorithm.
371
372 Khazad was a finalist in the initial NESSIE competition. It is
373 an algorithm optimized for 64-bit processors with good performance
374 on 32-bit processors. Khazad uses an 128 bit key size.
375
376 See also:
377 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
378
379config CRYPTO_ANUBIS
380 tristate "Anubis cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000381 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700382 help
383 Anubis cipher algorithm.
384
385 Anubis is a variable key length cipher which can use keys from
386 128 bits to 320 bits in length. It was evaluated as a entrant
387 in the NESSIE competition.
388
389 See also:
390 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
391 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
392
393
394config CRYPTO_DEFLATE
395 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000396 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700397 select ZLIB_INFLATE
398 select ZLIB_DEFLATE
399 help
400 This is the Deflate algorithm (RFC1951), specified for use in
401 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
402
403 You will most probably want this if using IPSec.
404
405config CRYPTO_MICHAEL_MIC
406 tristate "Michael MIC keyed digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000407 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700408 help
409 Michael MIC is used for message integrity protection in TKIP
410 (IEEE 802.11i). This algorithm is required for TKIP, but it
411 should not be used for other purposes because of the weakness
412 of the algorithm.
413
414config CRYPTO_CRC32C
415 tristate "CRC32c CRC algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000416 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700417 select LIBCRC32C
418 help
419 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
420 by iSCSI for header and data digests and by others.
421 See Castagnoli93. This implementation uses lib/libcrc32c.
422 Module will be crc32c.
423
424config CRYPTO_TEST
425 tristate "Testing module"
Herbert Xucce9e062006-08-21 21:08:13 +1000426 depends on m
427 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700428 help
429 Quick & dirty crypto test module.
430
431source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700432
Herbert Xucce9e062006-08-21 21:08:13 +1000433endif # if CRYPTO
434
435endmenu