blob: a784c2dce57e2a3319e159cec2adf0583b545327 [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
Neil Hormanccb778e2008-08-05 14:13:08 +080024config CRYPTO_FIPS
25 bool "FIPS 200 compliance"
26 help
27 This options enables the fips boot option which is
28 required if you want to system to operate in a FIPS 200
29 certification. You should say no unless you know what
30 this is.
31
Herbert Xucce9e062006-08-21 21:08:13 +100032config CRYPTO_ALGAPI
33 tristate
34 help
35 This option provides the API for cryptographic algorithms.
36
Herbert Xu1ae97822007-08-30 15:36:14 +080037config CRYPTO_AEAD
38 tristate
39 select CRYPTO_ALGAPI
40
Herbert Xu5cde0af2006-08-22 00:07:53 +100041config CRYPTO_BLKCIPHER
42 tristate
43 select CRYPTO_ALGAPI
44
Herbert Xu055bcee2006-08-19 22:24:23 +100045config CRYPTO_HASH
46 tristate
47 select CRYPTO_ALGAPI
48
Herbert Xu2b8c19d2006-09-21 11:31:44 +100049config CRYPTO_MANAGER
50 tristate "Cryptographic algorithm manager"
Herbert Xuda7f0332008-07-31 17:08:25 +080051 select CRYPTO_AEAD
52 select CRYPTO_HASH
53 select CRYPTO_BLKCIPHER
Herbert Xu2b8c19d2006-09-21 11:31:44 +100054 help
55 Create default cryptographic template instantiations such as
56 cbc(aes).
57
Rik Snelc494e072006-11-29 18:59:44 +110058config CRYPTO_GF128MUL
59 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
60 depends on EXPERIMENTAL
61 help
62 Efficient table driven implementation of multiplications in the
63 field GF(2^128). This is needed by some cypher modes. This
64 option will be selected automatically if you select such a
65 cipher mode. Only select this option by hand if you expect to load
66 an external module that requires these functions.
67
Sebastian Siewior584fffc2008-04-05 21:04:48 +080068config CRYPTO_NULL
69 tristate "Null algorithms"
70 select CRYPTO_ALGAPI
71 select CRYPTO_BLKCIPHER
72 help
73 These are 'Null' algorithms, used by IPsec, which do nothing.
74
75config CRYPTO_CRYPTD
76 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +100077 select CRYPTO_BLKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +080078 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +100079 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +100080 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +080081 This is a generic software asynchronous crypto daemon that
82 converts an arbitrary synchronous software crypto algorithm
83 into an asynchronous algorithm that executes in a kernel thread.
84
85config CRYPTO_AUTHENC
86 tristate "Authenc support"
87 select CRYPTO_AEAD
88 select CRYPTO_BLKCIPHER
89 select CRYPTO_MANAGER
90 select CRYPTO_HASH
91 help
92 Authenc: Combined mode wrapper for IPsec.
93 This is required for IPSec.
94
95config CRYPTO_TEST
96 tristate "Testing module"
97 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +080098 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +080099 help
100 Quick & dirty crypto test module.
101
102comment "Authenticated Encryption with Associated Data"
103
104config CRYPTO_CCM
105 tristate "CCM support"
106 select CRYPTO_CTR
107 select CRYPTO_AEAD
108 help
109 Support for Counter with CBC MAC. Required for IPsec.
110
111config CRYPTO_GCM
112 tristate "GCM/GMAC support"
113 select CRYPTO_CTR
114 select CRYPTO_AEAD
115 select CRYPTO_GF128MUL
116 help
117 Support for Galois/Counter Mode (GCM) and Galois Message
118 Authentication Code (GMAC). Required for IPSec.
119
120config CRYPTO_SEQIV
121 tristate "Sequence Number IV Generator"
122 select CRYPTO_AEAD
123 select CRYPTO_BLKCIPHER
124 help
125 This IV generator generates an IV based on a sequence number by
126 xoring it with a salt. This algorithm is mainly useful for CTR
127
128comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000129
130config CRYPTO_CBC
131 tristate "CBC support"
132 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000133 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000134 help
135 CBC: Cipher Block Chaining mode
136 This block cipher algorithm is required for IPSec.
137
Joy Latten23e353c2007-10-23 08:50:32 +0800138config CRYPTO_CTR
139 tristate "CTR support"
140 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100141 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800142 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800143 help
144 CTR: Counter mode
145 This block cipher algorithm is required for IPSec.
146
Kevin Coffman76cb9522008-03-24 21:26:16 +0800147config CRYPTO_CTS
148 tristate "CTS support"
149 select CRYPTO_BLKCIPHER
150 help
151 CTS: Cipher Text Stealing
152 This is the Cipher Text Stealing mode as described by
153 Section 8 of rfc2040 and referenced by rfc3962.
154 (rfc3962 includes errata information in its Appendix A)
155 This mode is required for Kerberos gss mechanism support
156 for AES encryption.
157
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800158config CRYPTO_ECB
159 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800160 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000161 select CRYPTO_MANAGER
162 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800163 ECB: Electronic CodeBook mode
164 This is the simplest block cipher algorithm. It simply encrypts
165 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000166
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800167config CRYPTO_LRW
168 tristate "LRW support (EXPERIMENTAL)"
169 depends on EXPERIMENTAL
David Howells90831632006-12-16 12:13:14 +1100170 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800171 select CRYPTO_MANAGER
172 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100173 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800174 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
175 narrow block cipher mode for dm-crypt. Use it with cipher
176 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
177 The first 128, 192 or 256 bits in the key are used for AES and the
178 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100179
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800180config CRYPTO_PCBC
181 tristate "PCBC support"
182 select CRYPTO_BLKCIPHER
183 select CRYPTO_MANAGER
184 help
185 PCBC: Propagating Cipher Block Chaining mode
186 This block cipher algorithm is required for RxRPC.
187
188config CRYPTO_XTS
189 tristate "XTS support (EXPERIMENTAL)"
190 depends on EXPERIMENTAL
191 select CRYPTO_BLKCIPHER
192 select CRYPTO_MANAGER
193 select CRYPTO_GF128MUL
194 help
195 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
196 key size 256, 384 or 512 bits. This implementation currently
197 can't handle a sectorsize which is not a multiple of 16 bytes.
198
199comment "Hash modes"
200
201config CRYPTO_HMAC
202 tristate "HMAC support"
203 select CRYPTO_HASH
204 select CRYPTO_MANAGER
205 help
206 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
207 This is required for IPSec.
208
209config CRYPTO_XCBC
210 tristate "XCBC support"
211 depends on EXPERIMENTAL
212 select CRYPTO_HASH
213 select CRYPTO_MANAGER
214 help
215 XCBC: Keyed-Hashing with encryption algorithm
216 http://www.ietf.org/rfc/rfc3566.txt
217 http://csrc.nist.gov/encryption/modes/proposedmodes/
218 xcbc-mac/xcbc-mac-spec.pdf
219
220comment "Digest"
221
222config CRYPTO_CRC32C
223 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800224 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800225 select LIBCRC32C
226 help
227 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
228 by iSCSI for header and data digests and by others.
229 See Castagnoli93. This implementation uses lib/libcrc32c.
Adrian Bunkb6d44342008-07-16 19:28:00 +0800230 Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800231
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800232config CRYPTO_CRC32C_INTEL
233 tristate "CRC32c INTEL hardware acceleration"
234 depends on X86
235 select CRYPTO_HASH
236 help
237 In Intel processor with SSE4.2 supported, the processor will
238 support CRC32C implementation using hardware accelerated CRC32
239 instruction. This option will create 'crc32c-intel' module,
240 which will enable any routine to use the CRC32 instruction to
241 gain performance compared with software implementation.
242 Module will be crc32c-intel.
243
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800244config CRYPTO_MD4
245 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000246 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800248 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700249
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800250config CRYPTO_MD5
251 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000252 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700253 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800254 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700255
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800256config CRYPTO_MICHAEL_MIC
257 tristate "Michael MIC keyed digest algorithm"
258 select CRYPTO_ALGAPI
259 help
260 Michael MIC is used for message integrity protection in TKIP
261 (IEEE 802.11i). This algorithm is required for TKIP, but it
262 should not be used for other purposes because of the weakness
263 of the algorithm.
264
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800265config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800266 tristate "RIPEMD-128 digest algorithm"
267 select CRYPTO_ALGAPI
268 help
269 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800270
Adrian Bunkb6d44342008-07-16 19:28:00 +0800271 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
272 to be used as a secure replacement for RIPEMD. For other use cases
273 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800274
Adrian Bunkb6d44342008-07-16 19:28:00 +0800275 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
276 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800277
278config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800279 tristate "RIPEMD-160 digest algorithm"
280 select CRYPTO_ALGAPI
281 help
282 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800283
Adrian Bunkb6d44342008-07-16 19:28:00 +0800284 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
285 to be used as a secure replacement for the 128-bit hash functions
286 MD4, MD5 and it's predecessor RIPEMD
287 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800288
Adrian Bunkb6d44342008-07-16 19:28:00 +0800289 It's speed is comparable to SHA1 and there are no known attacks
290 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800291
Adrian Bunkb6d44342008-07-16 19:28:00 +0800292 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
293 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800294
295config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800296 tristate "RIPEMD-256 digest algorithm"
297 select CRYPTO_ALGAPI
298 help
299 RIPEMD-256 is an optional extension of RIPEMD-128 with a
300 256 bit hash. It is intended for applications that require
301 longer hash-results, without needing a larger security level
302 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800303
Adrian Bunkb6d44342008-07-16 19:28:00 +0800304 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
305 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800306
307config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800308 tristate "RIPEMD-320 digest algorithm"
309 select CRYPTO_ALGAPI
310 help
311 RIPEMD-320 is an optional extension of RIPEMD-160 with a
312 320 bit hash. It is intended for applications that require
313 longer hash-results, without needing a larger security level
314 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800315
Adrian Bunkb6d44342008-07-16 19:28:00 +0800316 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
317 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800318
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800319config CRYPTO_SHA1
320 tristate "SHA1 digest algorithm"
321 select CRYPTO_ALGAPI
322 help
323 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
324
325config CRYPTO_SHA256
326 tristate "SHA224 and SHA256 digest algorithm"
327 select CRYPTO_ALGAPI
328 help
329 SHA256 secure hash standard (DFIPS 180-2).
330
331 This version of SHA implements a 256 bit hash with 128 bits of
332 security against collision attacks.
333
Adrian Bunkb6d44342008-07-16 19:28:00 +0800334 This code also includes SHA-224, a 224 bit hash with 112 bits
335 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800336
337config CRYPTO_SHA512
338 tristate "SHA384 and SHA512 digest algorithms"
339 select CRYPTO_ALGAPI
340 help
341 SHA512 secure hash standard (DFIPS 180-2).
342
343 This version of SHA implements a 512 bit hash with 256 bits of
344 security against collision attacks.
345
346 This code also includes SHA-384, a 384 bit hash with 192 bits
347 of security against collision attacks.
348
349config CRYPTO_TGR192
350 tristate "Tiger digest algorithms"
351 select CRYPTO_ALGAPI
352 help
353 Tiger hash algorithm 192, 160 and 128-bit hashes
354
355 Tiger is a hash function optimized for 64-bit processors while
356 still having decent performance on 32-bit processors.
357 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700358
359 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800360 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
361
362config CRYPTO_WP512
363 tristate "Whirlpool digest algorithms"
364 select CRYPTO_ALGAPI
365 help
366 Whirlpool hash algorithm 512, 384 and 256-bit hashes
367
368 Whirlpool-512 is part of the NESSIE cryptographic primitives.
369 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
370
371 See also:
372 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
373
374comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375
376config CRYPTO_AES
377 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000378 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700379 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800380 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381 algorithm.
382
383 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800384 both hardware and software across a wide range of computing
385 environments regardless of its use in feedback or non-feedback
386 modes. Its key setup time is excellent, and its key agility is
387 good. Rijndael's very low memory requirements make it very well
388 suited for restricted-space environments, in which it also
389 demonstrates excellent performance. Rijndael's operations are
390 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700391
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800392 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393
394 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
395
396config CRYPTO_AES_586
397 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000398 depends on (X86 || UML_X86) && !64BIT
399 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800400 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700401 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800402 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700403 algorithm.
404
405 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800406 both hardware and software across a wide range of computing
407 environments regardless of its use in feedback or non-feedback
408 modes. Its key setup time is excellent, and its key agility is
409 good. Rijndael's very low memory requirements make it very well
410 suited for restricted-space environments, in which it also
411 demonstrates excellent performance. Rijndael's operations are
412 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700413
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800414 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700415
416 See <http://csrc.nist.gov/encryption/aes/> for more information.
417
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700418config CRYPTO_AES_X86_64
419 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000420 depends on (X86 || UML_X86) && 64BIT
421 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +0800422 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700423 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800424 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700425 algorithm.
426
427 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800428 both hardware and software across a wide range of computing
429 environments regardless of its use in feedback or non-feedback
430 modes. Its key setup time is excellent, and its key agility is
431 good. Rijndael's very low memory requirements make it very well
432 suited for restricted-space environments, in which it also
433 demonstrates excellent performance. Rijndael's operations are
434 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700435
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800436 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700437
438 See <http://csrc.nist.gov/encryption/aes/> for more information.
439
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800440config CRYPTO_ANUBIS
441 tristate "Anubis cipher algorithm"
442 select CRYPTO_ALGAPI
443 help
444 Anubis cipher algorithm.
445
446 Anubis is a variable key length cipher which can use keys from
447 128 bits to 320 bits in length. It was evaluated as a entrant
448 in the NESSIE competition.
449
450 See also:
451 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
452 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
453
454config CRYPTO_ARC4
455 tristate "ARC4 cipher algorithm"
456 select CRYPTO_ALGAPI
457 help
458 ARC4 cipher algorithm.
459
460 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
461 bits in length. This algorithm is required for driver-based
462 WEP, but it should not be for other purposes because of the
463 weakness of the algorithm.
464
465config CRYPTO_BLOWFISH
466 tristate "Blowfish cipher algorithm"
467 select CRYPTO_ALGAPI
468 help
469 Blowfish cipher algorithm, by Bruce Schneier.
470
471 This is a variable key length cipher which can use keys from 32
472 bits to 448 bits in length. It's fast, simple and specifically
473 designed for use on "large microprocessors".
474
475 See also:
476 <http://www.schneier.com/blowfish.html>
477
478config CRYPTO_CAMELLIA
479 tristate "Camellia cipher algorithms"
480 depends on CRYPTO
481 select CRYPTO_ALGAPI
482 help
483 Camellia cipher algorithms module.
484
485 Camellia is a symmetric key block cipher developed jointly
486 at NTT and Mitsubishi Electric Corporation.
487
488 The Camellia specifies three key sizes: 128, 192 and 256 bits.
489
490 See also:
491 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
492
Linus Torvalds1da177e2005-04-16 15:20:36 -0700493config CRYPTO_CAST5
494 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000495 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700496 help
497 The CAST5 encryption algorithm (synonymous with CAST-128) is
498 described in RFC2144.
499
500config CRYPTO_CAST6
501 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000502 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700503 help
504 The CAST6 encryption algorithm (synonymous with CAST-256) is
505 described in RFC2612.
506
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800507config CRYPTO_DES
508 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000509 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700510 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800511 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700512
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800513config CRYPTO_FCRYPT
514 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000515 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800516 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -0700517 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800518 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700519
520config CRYPTO_KHAZAD
521 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000522 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700523 help
524 Khazad cipher algorithm.
525
526 Khazad was a finalist in the initial NESSIE competition. It is
527 an algorithm optimized for 64-bit processors with good performance
528 on 32-bit processors. Khazad uses an 128 bit key size.
529
530 See also:
531 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
532
Tan Swee Heng2407d602007-11-23 19:45:00 +0800533config CRYPTO_SALSA20
534 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
535 depends on EXPERIMENTAL
536 select CRYPTO_BLKCIPHER
537 help
538 Salsa20 stream cipher algorithm.
539
540 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
541 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
542
543 The Salsa20 stream cipher algorithm is designed by Daniel J.
544 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -0700545
Tan Swee Heng974e4b72007-12-10 15:52:56 +0800546config CRYPTO_SALSA20_586
547 tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
548 depends on (X86 || UML_X86) && !64BIT
549 depends on EXPERIMENTAL
550 select CRYPTO_BLKCIPHER
Tan Swee Heng974e4b72007-12-10 15:52:56 +0800551 help
552 Salsa20 stream cipher algorithm.
553
554 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
555 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
556
557 The Salsa20 stream cipher algorithm is designed by Daniel J.
558 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
559
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +0800560config CRYPTO_SALSA20_X86_64
561 tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
562 depends on (X86 || UML_X86) && 64BIT
563 depends on EXPERIMENTAL
564 select CRYPTO_BLKCIPHER
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +0800565 help
566 Salsa20 stream cipher algorithm.
567
568 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
569 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
570
571 The Salsa20 stream cipher algorithm is designed by Daniel J.
572 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
573
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800574config CRYPTO_SEED
575 tristate "SEED cipher algorithm"
576 select CRYPTO_ALGAPI
577 help
578 SEED cipher algorithm (RFC4269).
579
580 SEED is a 128-bit symmetric key block cipher that has been
581 developed by KISA (Korea Information Security Agency) as a
582 national standard encryption algorithm of the Republic of Korea.
583 It is a 16 round block cipher with the key size of 128 bit.
584
585 See also:
586 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
587
588config CRYPTO_SERPENT
589 tristate "Serpent cipher algorithm"
590 select CRYPTO_ALGAPI
591 help
592 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
593
594 Keys are allowed to be from 0 to 256 bits in length, in steps
595 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
596 variant of Serpent for compatibility with old kerneli.org code.
597
598 See also:
599 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
600
601config CRYPTO_TEA
602 tristate "TEA, XTEA and XETA cipher algorithms"
603 select CRYPTO_ALGAPI
604 help
605 TEA cipher algorithm.
606
607 Tiny Encryption Algorithm is a simple cipher that uses
608 many rounds for security. It is very fast and uses
609 little memory.
610
611 Xtendend Tiny Encryption Algorithm is a modification to
612 the TEA algorithm to address a potential key weakness
613 in the TEA algorithm.
614
615 Xtendend Encryption Tiny Algorithm is a mis-implementation
616 of the XTEA algorithm for compatibility purposes.
617
618config CRYPTO_TWOFISH
619 tristate "Twofish cipher algorithm"
620 select CRYPTO_ALGAPI
621 select CRYPTO_TWOFISH_COMMON
622 help
623 Twofish cipher algorithm.
624
625 Twofish was submitted as an AES (Advanced Encryption Standard)
626 candidate cipher by researchers at CounterPane Systems. It is a
627 16 round block cipher supporting key sizes of 128, 192, and 256
628 bits.
629
630 See also:
631 <http://www.schneier.com/twofish.html>
632
633config CRYPTO_TWOFISH_COMMON
634 tristate
635 help
636 Common parts of the Twofish cipher algorithm shared by the
637 generic c and the assembler implementations.
638
639config CRYPTO_TWOFISH_586
640 tristate "Twofish cipher algorithms (i586)"
641 depends on (X86 || UML_X86) && !64BIT
642 select CRYPTO_ALGAPI
643 select CRYPTO_TWOFISH_COMMON
644 help
645 Twofish cipher algorithm.
646
647 Twofish was submitted as an AES (Advanced Encryption Standard)
648 candidate cipher by researchers at CounterPane Systems. It is a
649 16 round block cipher supporting key sizes of 128, 192, and 256
650 bits.
651
652 See also:
653 <http://www.schneier.com/twofish.html>
654
655config CRYPTO_TWOFISH_X86_64
656 tristate "Twofish cipher algorithm (x86_64)"
657 depends on (X86 || UML_X86) && 64BIT
658 select CRYPTO_ALGAPI
659 select CRYPTO_TWOFISH_COMMON
660 help
661 Twofish cipher algorithm (x86_64).
662
663 Twofish was submitted as an AES (Advanced Encryption Standard)
664 candidate cipher by researchers at CounterPane Systems. It is a
665 16 round block cipher supporting key sizes of 128, 192, and 256
666 bits.
667
668 See also:
669 <http://www.schneier.com/twofish.html>
670
671comment "Compression"
672
Linus Torvalds1da177e2005-04-16 15:20:36 -0700673config CRYPTO_DEFLATE
674 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000675 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700676 select ZLIB_INFLATE
677 select ZLIB_DEFLATE
678 help
679 This is the Deflate algorithm (RFC1951), specified for use in
680 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800681
Linus Torvalds1da177e2005-04-16 15:20:36 -0700682 You will most probably want this if using IPSec.
683
Zoltan Sogor0b77abb2007-12-07 16:53:23 +0800684config CRYPTO_LZO
685 tristate "LZO compression algorithm"
686 select CRYPTO_ALGAPI
687 select LZO_COMPRESS
688 select LZO_DECOMPRESS
689 help
690 This is the LZO algorithm.
691
Linus Torvalds1da177e2005-04-16 15:20:36 -0700692source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700693
Herbert Xucce9e062006-08-21 21:08:13 +1000694endif # if CRYPTO