blob: 4495e46660bfb744ff78d4574f86470174c0eaf2 [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
Herbert Xu2b8c19d2006-09-21 11:31:44 +100030 help
31 Create default cryptographic template instantiations such as
32 cbc(aes).
33
Linus Torvalds1da177e2005-04-16 15:20:36 -070034config CRYPTO_HMAC
Herbert Xu84251652006-08-20 15:25:22 +100035 tristate "HMAC support"
Herbert Xu0796ae02006-08-21 20:50:52 +100036 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +100037 select CRYPTO_MANAGER
Linus Torvalds1da177e2005-04-16 15:20:36 -070038 help
39 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
40 This is required for IPSec.
41
Kazunori MIYAZAWA333b0d72006-10-28 13:15:24 +100042config CRYPTO_XCBC
43 tristate "XCBC support"
44 depends on EXPERIMENTAL
45 select CRYPTO_HASH
46 select CRYPTO_MANAGER
47 help
48 XCBC: Keyed-Hashing with encryption algorithm
49 http://www.ietf.org/rfc/rfc3566.txt
50 http://csrc.nist.gov/encryption/modes/proposedmodes/
51 xcbc-mac/xcbc-mac-spec.pdf
52
Linus Torvalds1da177e2005-04-16 15:20:36 -070053config CRYPTO_NULL
54 tristate "Null algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100055 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070056 help
57 These are 'Null' algorithms, used by IPsec, which do nothing.
58
59config CRYPTO_MD4
60 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100061 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070062 help
63 MD4 message digest algorithm (RFC1320).
64
65config CRYPTO_MD5
66 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100067 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070068 help
69 MD5 message digest algorithm (RFC1321).
70
71config CRYPTO_SHA1
72 tristate "SHA1 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100073 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070074 help
75 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
76
Jan Glauberc1e26e12006-01-06 00:19:17 -080077config CRYPTO_SHA1_S390
78 tristate "SHA1 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100079 depends on S390
80 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070081 help
Jan Glauber0a497c172006-01-06 00:19:18 -080082 This is the s390 hardware accelerated implementation of the
Linus Torvalds1da177e2005-04-16 15:20:36 -070083 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
84
85config CRYPTO_SHA256
86 tristate "SHA256 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100087 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070088 help
89 SHA256 secure hash standard (DFIPS 180-2).
90
91 This version of SHA implements a 256 bit hash with 128 bits of
92 security against collision attacks.
93
Jan Glauber0a497c172006-01-06 00:19:18 -080094config CRYPTO_SHA256_S390
95 tristate "SHA256 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100096 depends on S390
97 select CRYPTO_ALGAPI
Jan Glauber0a497c172006-01-06 00:19:18 -080098 help
99 This is the s390 hardware accelerated implementation of the
100 SHA256 secure hash standard (DFIPS 180-2).
101
102 This version of SHA implements a 256 bit hash with 128 bits of
103 security against collision attacks.
104
Linus Torvalds1da177e2005-04-16 15:20:36 -0700105config CRYPTO_SHA512
106 tristate "SHA384 and SHA512 digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000107 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108 help
109 SHA512 secure hash standard (DFIPS 180-2).
110
111 This version of SHA implements a 512 bit hash with 256 bits of
112 security against collision attacks.
113
114 This code also includes SHA-384, a 384 bit hash with 192 bits
115 of security against collision attacks.
116
117config CRYPTO_WP512
118 tristate "Whirlpool digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000119 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120 help
121 Whirlpool hash algorithm 512, 384 and 256-bit hashes
122
123 Whirlpool-512 is part of the NESSIE cryptographic primitives.
124 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
125
126 See also:
127 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
128
129config CRYPTO_TGR192
130 tristate "Tiger digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000131 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132 help
133 Tiger hash algorithm 192, 160 and 128-bit hashes
134
135 Tiger is a hash function optimized for 64-bit processors while
136 still having decent performance on 32-bit processors.
137 Tiger was developed by Ross Anderson and Eli Biham.
138
139 See also:
140 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
141
Herbert Xudb131ef2006-09-21 11:44:08 +1000142config CRYPTO_ECB
143 tristate "ECB support"
144 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000145 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000146 default m
147 help
148 ECB: Electronic CodeBook mode
149 This is the simplest block cipher algorithm. It simply encrypts
150 the input block by block.
151
152config CRYPTO_CBC
153 tristate "CBC support"
154 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000155 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000156 default m
157 help
158 CBC: Cipher Block Chaining mode
159 This block cipher algorithm is required for IPSec.
160
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161config CRYPTO_DES
162 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000163 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164 help
165 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
166
Jan Glauberc1e26e12006-01-06 00:19:17 -0800167config CRYPTO_DES_S390
168 tristate "DES and Triple DES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000169 depends on S390
170 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000171 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700172 help
173 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
174
175config CRYPTO_BLOWFISH
176 tristate "Blowfish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000177 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700178 help
179 Blowfish cipher algorithm, by Bruce Schneier.
180
181 This is a variable key length cipher which can use keys from 32
182 bits to 448 bits in length. It's fast, simple and specifically
183 designed for use on "large microprocessors".
184
185 See also:
186 <http://www.schneier.com/blowfish.html>
187
188config CRYPTO_TWOFISH
189 tristate "Twofish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000190 select CRYPTO_ALGAPI
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000191 select CRYPTO_TWOFISH_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700192 help
193 Twofish cipher algorithm.
194
195 Twofish was submitted as an AES (Advanced Encryption Standard)
196 candidate cipher by researchers at CounterPane Systems. It is a
197 16 round block cipher supporting key sizes of 128, 192, and 256
198 bits.
199
200 See also:
201 <http://www.schneier.com/twofish.html>
202
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000203config CRYPTO_TWOFISH_COMMON
204 tristate
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000205 help
206 Common parts of the Twofish cipher algorithm shared by the
207 generic c and the assembler implementations.
208
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000209config CRYPTO_TWOFISH_586
210 tristate "Twofish cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000211 depends on (X86 || UML_X86) && !64BIT
212 select CRYPTO_ALGAPI
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000213 select CRYPTO_TWOFISH_COMMON
214 help
215 Twofish cipher algorithm.
216
217 Twofish was submitted as an AES (Advanced Encryption Standard)
218 candidate cipher by researchers at CounterPane Systems. It is a
219 16 round block cipher supporting key sizes of 128, 192, and 256
220 bits.
221
222 See also:
223 <http://www.schneier.com/twofish.html>
224
Joachim Fritschieaf44082006-06-20 21:12:02 +1000225config CRYPTO_TWOFISH_X86_64
226 tristate "Twofish cipher algorithm (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000227 depends on (X86 || UML_X86) && 64BIT
228 select CRYPTO_ALGAPI
Joachim Fritschieaf44082006-06-20 21:12:02 +1000229 select CRYPTO_TWOFISH_COMMON
230 help
231 Twofish cipher algorithm (x86_64).
232
233 Twofish was submitted as an AES (Advanced Encryption Standard)
234 candidate cipher by researchers at CounterPane Systems. It is a
235 16 round block cipher supporting key sizes of 128, 192, and 256
236 bits.
237
238 See also:
239 <http://www.schneier.com/twofish.html>
240
Linus Torvalds1da177e2005-04-16 15:20:36 -0700241config CRYPTO_SERPENT
242 tristate "Serpent cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000243 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700244 help
245 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
246
247 Keys are allowed to be from 0 to 256 bits in length, in steps
248 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
249 variant of Serpent for compatibility with old kerneli code.
250
251 See also:
252 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
253
254config CRYPTO_AES
255 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000256 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700257 help
258 AES cipher algorithms (FIPS-197). AES uses the Rijndael
259 algorithm.
260
261 Rijndael appears to be consistently a very good performer in
262 both hardware and software across a wide range of computing
263 environments regardless of its use in feedback or non-feedback
264 modes. Its key setup time is excellent, and its key agility is
265 good. Rijndael's very low memory requirements make it very well
266 suited for restricted-space environments, in which it also
267 demonstrates excellent performance. Rijndael's operations are
268 among the easiest to defend against power and timing attacks.
269
270 The AES specifies three key sizes: 128, 192 and 256 bits
271
272 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
273
274config CRYPTO_AES_586
275 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000276 depends on (X86 || UML_X86) && !64BIT
277 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278 help
279 AES cipher algorithms (FIPS-197). AES uses the Rijndael
280 algorithm.
281
282 Rijndael appears to be consistently a very good performer in
283 both hardware and software across a wide range of computing
284 environments regardless of its use in feedback or non-feedback
285 modes. Its key setup time is excellent, and its key agility is
286 good. Rijndael's very low memory requirements make it very well
287 suited for restricted-space environments, in which it also
288 demonstrates excellent performance. Rijndael's operations are
289 among the easiest to defend against power and timing attacks.
290
291 The AES specifies three key sizes: 128, 192 and 256 bits
292
293 See <http://csrc.nist.gov/encryption/aes/> for more information.
294
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700295config CRYPTO_AES_X86_64
296 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000297 depends on (X86 || UML_X86) && 64BIT
298 select CRYPTO_ALGAPI
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700299 help
300 AES cipher algorithms (FIPS-197). AES uses the Rijndael
301 algorithm.
302
303 Rijndael appears to be consistently a very good performer in
304 both hardware and software across a wide range of computing
305 environments regardless of its use in feedback or non-feedback
306 modes. Its key setup time is excellent, and its key agility is
307 good. Rijndael's very low memory requirements make it very well
308 suited for restricted-space environments, in which it also
309 demonstrates excellent performance. Rijndael's operations are
310 among the easiest to defend against power and timing attacks.
311
312 The AES specifies three key sizes: 128, 192 and 256 bits
313
314 See <http://csrc.nist.gov/encryption/aes/> for more information.
315
Jan Glauberbf754ae2006-01-06 00:19:18 -0800316config CRYPTO_AES_S390
317 tristate "AES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000318 depends on S390
319 select CRYPTO_ALGAPI
Herbert Xua9e62fa2006-08-21 21:39:24 +1000320 select CRYPTO_BLKCIPHER
Jan Glauberbf754ae2006-01-06 00:19:18 -0800321 help
322 This is the s390 hardware accelerated implementation of the
323 AES cipher algorithms (FIPS-197). AES uses the Rijndael
324 algorithm.
325
326 Rijndael appears to be consistently a very good performer in
327 both hardware and software across a wide range of computing
328 environments regardless of its use in feedback or non-feedback
329 modes. Its key setup time is excellent, and its key agility is
330 good. Rijndael's very low memory requirements make it very well
331 suited for restricted-space environments, in which it also
332 demonstrates excellent performance. Rijndael's operations are
333 among the easiest to defend against power and timing attacks.
334
335 On s390 the System z9-109 currently only supports the key size
336 of 128 bit.
337
Linus Torvalds1da177e2005-04-16 15:20:36 -0700338config CRYPTO_CAST5
339 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000340 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700341 help
342 The CAST5 encryption algorithm (synonymous with CAST-128) is
343 described in RFC2144.
344
345config CRYPTO_CAST6
346 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000347 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700348 help
349 The CAST6 encryption algorithm (synonymous with CAST-256) is
350 described in RFC2612.
351
352config CRYPTO_TEA
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700353 tristate "TEA, XTEA and XETA cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000354 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355 help
356 TEA cipher algorithm.
357
358 Tiny Encryption Algorithm is a simple cipher that uses
359 many rounds for security. It is very fast and uses
360 little memory.
361
362 Xtendend Tiny Encryption Algorithm is a modification to
363 the TEA algorithm to address a potential key weakness
364 in the TEA algorithm.
365
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700366 Xtendend Encryption Tiny Algorithm is a mis-implementation
367 of the XTEA algorithm for compatibility purposes.
368
Linus Torvalds1da177e2005-04-16 15:20:36 -0700369config CRYPTO_ARC4
370 tristate "ARC4 cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000371 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372 help
373 ARC4 cipher algorithm.
374
375 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
376 bits in length. This algorithm is required for driver-based
377 WEP, but it should not be for other purposes because of the
378 weakness of the algorithm.
379
380config CRYPTO_KHAZAD
381 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000382 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700383 help
384 Khazad cipher algorithm.
385
386 Khazad was a finalist in the initial NESSIE competition. It is
387 an algorithm optimized for 64-bit processors with good performance
388 on 32-bit processors. Khazad uses an 128 bit key size.
389
390 See also:
391 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
392
393config CRYPTO_ANUBIS
394 tristate "Anubis cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000395 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700396 help
397 Anubis cipher algorithm.
398
399 Anubis is a variable key length cipher which can use keys from
400 128 bits to 320 bits in length. It was evaluated as a entrant
401 in the NESSIE competition.
402
403 See also:
404 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
405 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
406
407
408config CRYPTO_DEFLATE
409 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000410 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700411 select ZLIB_INFLATE
412 select ZLIB_DEFLATE
413 help
414 This is the Deflate algorithm (RFC1951), specified for use in
415 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
416
417 You will most probably want this if using IPSec.
418
419config CRYPTO_MICHAEL_MIC
420 tristate "Michael MIC keyed digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000421 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700422 help
423 Michael MIC is used for message integrity protection in TKIP
424 (IEEE 802.11i). This algorithm is required for TKIP, but it
425 should not be used for other purposes because of the weakness
426 of the algorithm.
427
428config CRYPTO_CRC32C
429 tristate "CRC32c CRC algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000430 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700431 select LIBCRC32C
432 help
433 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
434 by iSCSI for header and data digests and by others.
435 See Castagnoli93. This implementation uses lib/libcrc32c.
436 Module will be crc32c.
437
438config CRYPTO_TEST
439 tristate "Testing module"
Herbert Xucce9e062006-08-21 21:08:13 +1000440 depends on m
441 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700442 help
443 Quick & dirty crypto test module.
444
445source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700446
Herbert Xucce9e062006-08-21 21:08:13 +1000447endif # if CRYPTO
448
449endmenu