blob: cfc521a0d55d59f46c7a2bba0b9073ce4bc3c792 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
Dan Williams685784a2007-07-09 11:56:42 -07002# Generic algorithms support
3#
4config XOR_BLOCKS
5 tristate
6
7#
Dan Williams9bc89cd2007-01-02 11:10:44 -07008# async_tx api: hardware offloaded memory transfer/transform support
9#
10source "crypto/async_tx/Kconfig"
11
12#
Linus Torvalds1da177e2005-04-16 15:20:36 -070013# Cryptographic API Configuration
14#
Jan Engelhardt2e290f42007-05-18 15:11:01 +100015menuconfig CRYPTO
Sebastian Siewiorc3715cb92008-03-30 16:36:09 +080016 tristate "Cryptographic API"
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 help
18 This option provides the core Cryptographic API.
19
Herbert Xucce9e062006-08-21 21:08:13 +100020if CRYPTO
21
Sebastian Siewior584fffc2008-04-05 21:04:48 +080022comment "Crypto core or helper"
23
Herbert Xucce9e062006-08-21 21:08:13 +100024config CRYPTO_ALGAPI
25 tristate
26 help
27 This option provides the API for cryptographic algorithms.
28
Herbert Xu1ae97822007-08-30 15:36:14 +080029config CRYPTO_AEAD
30 tristate
31 select CRYPTO_ALGAPI
32
Herbert Xu5cde0af2006-08-22 00:07:53 +100033config CRYPTO_BLKCIPHER
34 tristate
35 select CRYPTO_ALGAPI
36
Herbert Xu055bcee2006-08-19 22:24:23 +100037config CRYPTO_HASH
38 tristate
39 select CRYPTO_ALGAPI
40
Herbert Xu2b8c19d2006-09-21 11:31:44 +100041config CRYPTO_MANAGER
42 tristate "Cryptographic algorithm manager"
43 select CRYPTO_ALGAPI
Herbert Xu2b8c19d2006-09-21 11:31:44 +100044 help
45 Create default cryptographic template instantiations such as
46 cbc(aes).
47
Rik Snelc494e072006-11-29 18:59:44 +110048config CRYPTO_GF128MUL
49 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
50 depends on EXPERIMENTAL
51 help
52 Efficient table driven implementation of multiplications in the
53 field GF(2^128). This is needed by some cypher modes. This
54 option will be selected automatically if you select such a
55 cipher mode. Only select this option by hand if you expect to load
56 an external module that requires these functions.
57
Sebastian Siewior584fffc2008-04-05 21:04:48 +080058config CRYPTO_NULL
59 tristate "Null algorithms"
60 select CRYPTO_ALGAPI
61 select CRYPTO_BLKCIPHER
62 help
63 These are 'Null' algorithms, used by IPsec, which do nothing.
64
65config CRYPTO_CRYPTD
66 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +100067 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +100068 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +100069 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +080070 This is a generic software asynchronous crypto daemon that
71 converts an arbitrary synchronous software crypto algorithm
72 into an asynchronous algorithm that executes in a kernel thread.
73
74config CRYPTO_AUTHENC
75 tristate "Authenc support"
76 select CRYPTO_AEAD
77 select CRYPTO_BLKCIPHER
78 select CRYPTO_MANAGER
79 select CRYPTO_HASH
80 help
81 Authenc: Combined mode wrapper for IPsec.
82 This is required for IPSec.
83
84config CRYPTO_TEST
85 tristate "Testing module"
86 depends on m
87 select CRYPTO_ALGAPI
88 select CRYPTO_AEAD
89 select CRYPTO_BLKCIPHER
90 help
91 Quick & dirty crypto test module.
92
93comment "Authenticated Encryption with Associated Data"
94
95config CRYPTO_CCM
96 tristate "CCM support"
97 select CRYPTO_CTR
98 select CRYPTO_AEAD
99 help
100 Support for Counter with CBC MAC. Required for IPsec.
101
102config CRYPTO_GCM
103 tristate "GCM/GMAC support"
104 select CRYPTO_CTR
105 select CRYPTO_AEAD
106 select CRYPTO_GF128MUL
107 help
108 Support for Galois/Counter Mode (GCM) and Galois Message
109 Authentication Code (GMAC). Required for IPSec.
110
111config CRYPTO_SEQIV
112 tristate "Sequence Number IV Generator"
113 select CRYPTO_AEAD
114 select CRYPTO_BLKCIPHER
115 help
116 This IV generator generates an IV based on a sequence number by
117 xoring it with a salt. This algorithm is mainly useful for CTR
118
119comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000120
121config CRYPTO_CBC
122 tristate "CBC support"
123 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000124 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000125 help
126 CBC: Cipher Block Chaining mode
127 This block cipher algorithm is required for IPSec.
128
Joy Latten23e353c2007-10-23 08:50:32 +0800129config CRYPTO_CTR
130 tristate "CTR support"
131 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100132 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800133 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800134 help
135 CTR: Counter mode
136 This block cipher algorithm is required for IPSec.
137
Kevin Coffman76cb9522008-03-24 21:26:16 +0800138config CRYPTO_CTS
139 tristate "CTS support"
140 select CRYPTO_BLKCIPHER
141 help
142 CTS: Cipher Text Stealing
143 This is the Cipher Text Stealing mode as described by
144 Section 8 of rfc2040 and referenced by rfc3962.
145 (rfc3962 includes errata information in its Appendix A)
146 This mode is required for Kerberos gss mechanism support
147 for AES encryption.
148
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800149config CRYPTO_ECB
150 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800151 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000152 select CRYPTO_MANAGER
153 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800154 ECB: Electronic CodeBook mode
155 This is the simplest block cipher algorithm. It simply encrypts
156 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000157
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800158config CRYPTO_LRW
159 tristate "LRW support (EXPERIMENTAL)"
160 depends on EXPERIMENTAL
David Howells90831632006-12-16 12:13:14 +1100161 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800162 select CRYPTO_MANAGER
163 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100164 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800165 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
166 narrow block cipher mode for dm-crypt. Use it with cipher
167 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
168 The first 128, 192 or 256 bits in the key are used for AES and the
169 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100170
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800171config CRYPTO_PCBC
172 tristate "PCBC support"
173 select CRYPTO_BLKCIPHER
174 select CRYPTO_MANAGER
175 help
176 PCBC: Propagating Cipher Block Chaining mode
177 This block cipher algorithm is required for RxRPC.
178
179config CRYPTO_XTS
180 tristate "XTS support (EXPERIMENTAL)"
181 depends on EXPERIMENTAL
182 select CRYPTO_BLKCIPHER
183 select CRYPTO_MANAGER
184 select CRYPTO_GF128MUL
185 help
186 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
187 key size 256, 384 or 512 bits. This implementation currently
188 can't handle a sectorsize which is not a multiple of 16 bytes.
189
190comment "Hash modes"
191
192config CRYPTO_HMAC
193 tristate "HMAC support"
194 select CRYPTO_HASH
195 select CRYPTO_MANAGER
196 help
197 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
198 This is required for IPSec.
199
200config CRYPTO_XCBC
201 tristate "XCBC support"
202 depends on EXPERIMENTAL
203 select CRYPTO_HASH
204 select CRYPTO_MANAGER
205 help
206 XCBC: Keyed-Hashing with encryption algorithm
207 http://www.ietf.org/rfc/rfc3566.txt
208 http://csrc.nist.gov/encryption/modes/proposedmodes/
209 xcbc-mac/xcbc-mac-spec.pdf
210
211comment "Digest"
212
213config CRYPTO_CRC32C
214 tristate "CRC32c CRC algorithm"
215 select CRYPTO_ALGAPI
216 select LIBCRC32C
217 help
218 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
219 by iSCSI for header and data digests and by others.
220 See Castagnoli93. This implementation uses lib/libcrc32c.
221 Module will be crc32c.
222
223config CRYPTO_MD4
224 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000225 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700226 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800227 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700228
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800229config CRYPTO_MD5
230 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000231 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700232 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800233 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700234
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800235config CRYPTO_MICHAEL_MIC
236 tristate "Michael MIC keyed digest algorithm"
237 select CRYPTO_ALGAPI
238 help
239 Michael MIC is used for message integrity protection in TKIP
240 (IEEE 802.11i). This algorithm is required for TKIP, but it
241 should not be used for other purposes because of the weakness
242 of the algorithm.
243
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800244config CRYPTO_RMD128
245 tristate "RIPEMD-128 digest algorithm"
246 select CRYPTO_ALGAPI
247 help
248 RIPEMD-128 (ISO/IEC 10118-3:2004).
249
250 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
251 to be used as a secure replacement for RIPEMD. For other use cases
252 RIPEMD-160 should be used.
253
254 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
255 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
256
257config CRYPTO_RMD160
258 tristate "RIPEMD-160 digest algorithm"
259 select CRYPTO_ALGAPI
260 help
261 RIPEMD-160 (ISO/IEC 10118-3:2004).
262
263 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
264 to be used as a secure replacement for the 128-bit hash functions
265 MD4, MD5 and it's predecessor RIPEMD (not to be confused with RIPEMD-128).
266
267 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
268 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
269
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800270config CRYPTO_SHA1
271 tristate "SHA1 digest algorithm"
272 select CRYPTO_ALGAPI
273 help
274 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
275
276config CRYPTO_SHA256
277 tristate "SHA224 and SHA256 digest algorithm"
278 select CRYPTO_ALGAPI
279 help
280 SHA256 secure hash standard (DFIPS 180-2).
281
282 This version of SHA implements a 256 bit hash with 128 bits of
283 security against collision attacks.
284
285 This code also includes SHA-224, a 224 bit hash with 112 bits
286 of security against collision attacks.
287
288config CRYPTO_SHA512
289 tristate "SHA384 and SHA512 digest algorithms"
290 select CRYPTO_ALGAPI
291 help
292 SHA512 secure hash standard (DFIPS 180-2).
293
294 This version of SHA implements a 512 bit hash with 256 bits of
295 security against collision attacks.
296
297 This code also includes SHA-384, a 384 bit hash with 192 bits
298 of security against collision attacks.
299
300config CRYPTO_TGR192
301 tristate "Tiger digest algorithms"
302 select CRYPTO_ALGAPI
303 help
304 Tiger hash algorithm 192, 160 and 128-bit hashes
305
306 Tiger is a hash function optimized for 64-bit processors while
307 still having decent performance on 32-bit processors.
308 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700309
310 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800311 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
312
313config CRYPTO_WP512
314 tristate "Whirlpool digest algorithms"
315 select CRYPTO_ALGAPI
316 help
317 Whirlpool hash algorithm 512, 384 and 256-bit hashes
318
319 Whirlpool-512 is part of the NESSIE cryptographic primitives.
320 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
321
322 See also:
323 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
324
325comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326
327config CRYPTO_AES
328 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000329 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700330 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800331 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700332 algorithm.
333
334 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800335 both hardware and software across a wide range of computing
336 environments regardless of its use in feedback or non-feedback
337 modes. Its key setup time is excellent, and its key agility is
338 good. Rijndael's very low memory requirements make it very well
339 suited for restricted-space environments, in which it also
340 demonstrates excellent performance. Rijndael's operations are
341 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700342
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800343 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700344
345 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
346
347config CRYPTO_AES_586
348 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000349 depends on (X86 || UML_X86) && !64BIT
350 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800351 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700352 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800353 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700354 algorithm.
355
356 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800357 both hardware and software across a wide range of computing
358 environments regardless of its use in feedback or non-feedback
359 modes. Its key setup time is excellent, and its key agility is
360 good. Rijndael's very low memory requirements make it very well
361 suited for restricted-space environments, in which it also
362 demonstrates excellent performance. Rijndael's operations are
363 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700364
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800365 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700366
367 See <http://csrc.nist.gov/encryption/aes/> for more information.
368
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700369config CRYPTO_AES_X86_64
370 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000371 depends on (X86 || UML_X86) && 64BIT
372 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +0800373 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700374 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800375 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700376 algorithm.
377
378 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800379 both hardware and software across a wide range of computing
380 environments regardless of its use in feedback or non-feedback
381 modes. Its key setup time is excellent, and its key agility is
382 good. Rijndael's very low memory requirements make it very well
383 suited for restricted-space environments, in which it also
384 demonstrates excellent performance. Rijndael's operations are
385 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700386
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800387 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700388
389 See <http://csrc.nist.gov/encryption/aes/> for more information.
390
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800391config CRYPTO_ANUBIS
392 tristate "Anubis cipher algorithm"
393 select CRYPTO_ALGAPI
394 help
395 Anubis cipher algorithm.
396
397 Anubis is a variable key length cipher which can use keys from
398 128 bits to 320 bits in length. It was evaluated as a entrant
399 in the NESSIE competition.
400
401 See also:
402 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
403 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
404
405config CRYPTO_ARC4
406 tristate "ARC4 cipher algorithm"
407 select CRYPTO_ALGAPI
408 help
409 ARC4 cipher algorithm.
410
411 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
412 bits in length. This algorithm is required for driver-based
413 WEP, but it should not be for other purposes because of the
414 weakness of the algorithm.
415
416config CRYPTO_BLOWFISH
417 tristate "Blowfish cipher algorithm"
418 select CRYPTO_ALGAPI
419 help
420 Blowfish cipher algorithm, by Bruce Schneier.
421
422 This is a variable key length cipher which can use keys from 32
423 bits to 448 bits in length. It's fast, simple and specifically
424 designed for use on "large microprocessors".
425
426 See also:
427 <http://www.schneier.com/blowfish.html>
428
429config CRYPTO_CAMELLIA
430 tristate "Camellia cipher algorithms"
431 depends on CRYPTO
432 select CRYPTO_ALGAPI
433 help
434 Camellia cipher algorithms module.
435
436 Camellia is a symmetric key block cipher developed jointly
437 at NTT and Mitsubishi Electric Corporation.
438
439 The Camellia specifies three key sizes: 128, 192 and 256 bits.
440
441 See also:
442 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
443
Linus Torvalds1da177e2005-04-16 15:20:36 -0700444config CRYPTO_CAST5
445 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000446 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700447 help
448 The CAST5 encryption algorithm (synonymous with CAST-128) is
449 described in RFC2144.
450
451config CRYPTO_CAST6
452 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000453 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700454 help
455 The CAST6 encryption algorithm (synonymous with CAST-256) is
456 described in RFC2612.
457
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800458config CRYPTO_DES
459 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000460 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700461 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800462 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700463
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800464config CRYPTO_FCRYPT
465 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000466 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800467 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700468 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800469 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700470
471config CRYPTO_KHAZAD
472 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000473 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700474 help
475 Khazad cipher algorithm.
476
477 Khazad was a finalist in the initial NESSIE competition. It is
478 an algorithm optimized for 64-bit processors with good performance
479 on 32-bit processors. Khazad uses an 128 bit key size.
480
481 See also:
482 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
483
Tan Swee Heng2407d602007-11-23 19:45:00 +0800484config CRYPTO_SALSA20
485 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
486 depends on EXPERIMENTAL
487 select CRYPTO_BLKCIPHER
488 help
489 Salsa20 stream cipher algorithm.
490
491 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
492 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
493
494 The Salsa20 stream cipher algorithm is designed by Daniel J.
495 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -0700496
Tan Swee Heng974e4b72007-12-10 15:52:56 +0800497config CRYPTO_SALSA20_586
498 tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
499 depends on (X86 || UML_X86) && !64BIT
500 depends on EXPERIMENTAL
501 select CRYPTO_BLKCIPHER
Tan Swee Heng974e4b72007-12-10 15:52:56 +0800502 help
503 Salsa20 stream cipher algorithm.
504
505 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
506 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
507
508 The Salsa20 stream cipher algorithm is designed by Daniel J.
509 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
510
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +0800511config CRYPTO_SALSA20_X86_64
512 tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
513 depends on (X86 || UML_X86) && 64BIT
514 depends on EXPERIMENTAL
515 select CRYPTO_BLKCIPHER
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +0800516 help
517 Salsa20 stream cipher algorithm.
518
519 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
520 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
521
522 The Salsa20 stream cipher algorithm is designed by Daniel J.
523 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
524
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800525config CRYPTO_SEED
526 tristate "SEED cipher algorithm"
527 select CRYPTO_ALGAPI
528 help
529 SEED cipher algorithm (RFC4269).
530
531 SEED is a 128-bit symmetric key block cipher that has been
532 developed by KISA (Korea Information Security Agency) as a
533 national standard encryption algorithm of the Republic of Korea.
534 It is a 16 round block cipher with the key size of 128 bit.
535
536 See also:
537 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
538
539config CRYPTO_SERPENT
540 tristate "Serpent cipher algorithm"
541 select CRYPTO_ALGAPI
542 help
543 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
544
545 Keys are allowed to be from 0 to 256 bits in length, in steps
546 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
547 variant of Serpent for compatibility with old kerneli.org code.
548
549 See also:
550 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
551
552config CRYPTO_TEA
553 tristate "TEA, XTEA and XETA cipher algorithms"
554 select CRYPTO_ALGAPI
555 help
556 TEA cipher algorithm.
557
558 Tiny Encryption Algorithm is a simple cipher that uses
559 many rounds for security. It is very fast and uses
560 little memory.
561
562 Xtendend Tiny Encryption Algorithm is a modification to
563 the TEA algorithm to address a potential key weakness
564 in the TEA algorithm.
565
566 Xtendend Encryption Tiny Algorithm is a mis-implementation
567 of the XTEA algorithm for compatibility purposes.
568
569config CRYPTO_TWOFISH
570 tristate "Twofish cipher algorithm"
571 select CRYPTO_ALGAPI
572 select CRYPTO_TWOFISH_COMMON
573 help
574 Twofish cipher algorithm.
575
576 Twofish was submitted as an AES (Advanced Encryption Standard)
577 candidate cipher by researchers at CounterPane Systems. It is a
578 16 round block cipher supporting key sizes of 128, 192, and 256
579 bits.
580
581 See also:
582 <http://www.schneier.com/twofish.html>
583
584config CRYPTO_TWOFISH_COMMON
585 tristate
586 help
587 Common parts of the Twofish cipher algorithm shared by the
588 generic c and the assembler implementations.
589
590config CRYPTO_TWOFISH_586
591 tristate "Twofish cipher algorithms (i586)"
592 depends on (X86 || UML_X86) && !64BIT
593 select CRYPTO_ALGAPI
594 select CRYPTO_TWOFISH_COMMON
595 help
596 Twofish cipher algorithm.
597
598 Twofish was submitted as an AES (Advanced Encryption Standard)
599 candidate cipher by researchers at CounterPane Systems. It is a
600 16 round block cipher supporting key sizes of 128, 192, and 256
601 bits.
602
603 See also:
604 <http://www.schneier.com/twofish.html>
605
606config CRYPTO_TWOFISH_X86_64
607 tristate "Twofish cipher algorithm (x86_64)"
608 depends on (X86 || UML_X86) && 64BIT
609 select CRYPTO_ALGAPI
610 select CRYPTO_TWOFISH_COMMON
611 help
612 Twofish cipher algorithm (x86_64).
613
614 Twofish was submitted as an AES (Advanced Encryption Standard)
615 candidate cipher by researchers at CounterPane Systems. It is a
616 16 round block cipher supporting key sizes of 128, 192, and 256
617 bits.
618
619 See also:
620 <http://www.schneier.com/twofish.html>
621
622comment "Compression"
623
Linus Torvalds1da177e2005-04-16 15:20:36 -0700624config CRYPTO_DEFLATE
625 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000626 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700627 select ZLIB_INFLATE
628 select ZLIB_DEFLATE
629 help
630 This is the Deflate algorithm (RFC1951), specified for use in
631 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800632
Linus Torvalds1da177e2005-04-16 15:20:36 -0700633 You will most probably want this if using IPSec.
634
Zoltan Sogor0b77abb2007-12-07 16:53:23 +0800635config CRYPTO_LZO
636 tristate "LZO compression algorithm"
637 select CRYPTO_ALGAPI
638 select LZO_COMPRESS
639 select LZO_DECOMPRESS
640 help
641 This is the LZO algorithm.
642
Linus Torvalds1da177e2005-04-16 15:20:36 -0700643source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700644
Herbert Xucce9e062006-08-21 21:08:13 +1000645endif # if CRYPTO