]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - crypto/Kconfig
crypto: api - Do not displace newly registered algorithms
[mirror_ubuntu-eoan-kernel.git] / crypto / Kconfig
CommitLineData
685784aa
DW
1#
2# Generic algorithms support
3#
4config XOR_BLOCKS
5 tristate
6
1da177e4 7#
9bc89cd8 8# async_tx api: hardware offloaded memory transfer/transform support
1da177e4 9#
9bc89cd8 10source "crypto/async_tx/Kconfig"
1da177e4 11
9bc89cd8
DW
12#
13# Cryptographic API Configuration
14#
2e290f43 15menuconfig CRYPTO
c3715cb9 16 tristate "Cryptographic API"
1da177e4
LT
17 help
18 This option provides the core Cryptographic API.
19
cce9e06d
HX
20if CRYPTO
21
584fffc8
SS
22comment "Crypto core or helper"
23
ccb778e1
NH
24config CRYPTO_FIPS
25 bool "FIPS 200 compliance"
4e4ed83b 26 depends on CRYPTO_ANSI_CPRNG
ccb778e1
NH
27 help
28 This options enables the fips boot option which is
29 required if you want to system to operate in a FIPS 200
30 certification. You should say no unless you know what
4e4ed83b
NH
31 this is. Note that CRYPTO_ANSI_CPRNG is requred if this
32 option is selected
ccb778e1 33
cce9e06d
HX
34config CRYPTO_ALGAPI
35 tristate
6a0fcbb4 36 select CRYPTO_ALGAPI2
cce9e06d
HX
37 help
38 This option provides the API for cryptographic algorithms.
39
6a0fcbb4
HX
40config CRYPTO_ALGAPI2
41 tristate
42
1ae97820
HX
43config CRYPTO_AEAD
44 tristate
6a0fcbb4 45 select CRYPTO_AEAD2
1ae97820
HX
46 select CRYPTO_ALGAPI
47
6a0fcbb4
HX
48config CRYPTO_AEAD2
49 tristate
50 select CRYPTO_ALGAPI2
51
5cde0af2
HX
52config CRYPTO_BLKCIPHER
53 tristate
6a0fcbb4 54 select CRYPTO_BLKCIPHER2
5cde0af2 55 select CRYPTO_ALGAPI
6a0fcbb4
HX
56
57config CRYPTO_BLKCIPHER2
58 tristate
59 select CRYPTO_ALGAPI2
60 select CRYPTO_RNG2
0a2e821d 61 select CRYPTO_WORKQUEUE
5cde0af2 62
055bcee3
HX
63config CRYPTO_HASH
64 tristate
6a0fcbb4 65 select CRYPTO_HASH2
055bcee3
HX
66 select CRYPTO_ALGAPI
67
6a0fcbb4
HX
68config CRYPTO_HASH2
69 tristate
70 select CRYPTO_ALGAPI2
71
17f0f4a4
NH
72config CRYPTO_RNG
73 tristate
6a0fcbb4 74 select CRYPTO_RNG2
17f0f4a4
NH
75 select CRYPTO_ALGAPI
76
6a0fcbb4
HX
77config CRYPTO_RNG2
78 tristate
79 select CRYPTO_ALGAPI2
80
a1d2f095
GU
81config CRYPTO_PCOMP
82 tristate
83 select CRYPTO_ALGAPI2
84
2b8c19db
HX
85config CRYPTO_MANAGER
86 tristate "Cryptographic algorithm manager"
6a0fcbb4 87 select CRYPTO_MANAGER2
2b8c19db
HX
88 help
89 Create default cryptographic template instantiations such as
90 cbc(aes).
91
6a0fcbb4
HX
92config CRYPTO_MANAGER2
93 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
94 select CRYPTO_AEAD2
95 select CRYPTO_HASH2
96 select CRYPTO_BLKCIPHER2
0c01aed5 97 select CRYPTO_PCOMP
6a0fcbb4 98
584fffc8
SS
99config CRYPTO_GF128MUL
100 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
333b0d7e 101 depends on EXPERIMENTAL
333b0d7e 102 help
584fffc8
SS
103 Efficient table driven implementation of multiplications in the
104 field GF(2^128). This is needed by some cypher modes. This
105 option will be selected automatically if you select such a
106 cipher mode. Only select this option by hand if you expect to load
107 an external module that requires these functions.
333b0d7e 108
1da177e4
LT
109config CRYPTO_NULL
110 tristate "Null algorithms"
cce9e06d 111 select CRYPTO_ALGAPI
c8620c25 112 select CRYPTO_BLKCIPHER
d35d2454 113 select CRYPTO_HASH
1da177e4
LT
114 help
115 These are 'Null' algorithms, used by IPsec, which do nothing.
116
25c38d3f
HY
117config CRYPTO_WORKQUEUE
118 tristate
119
584fffc8
SS
120config CRYPTO_CRYPTD
121 tristate "Software async crypto daemon"
122 select CRYPTO_BLKCIPHER
b8a28251 123 select CRYPTO_HASH
584fffc8 124 select CRYPTO_MANAGER
254eff77 125 select CRYPTO_WORKQUEUE
1da177e4 126 help
584fffc8
SS
127 This is a generic software asynchronous crypto daemon that
128 converts an arbitrary synchronous software crypto algorithm
129 into an asynchronous algorithm that executes in a kernel thread.
1da177e4 130
584fffc8
SS
131config CRYPTO_AUTHENC
132 tristate "Authenc support"
133 select CRYPTO_AEAD
134 select CRYPTO_BLKCIPHER
135 select CRYPTO_MANAGER
136 select CRYPTO_HASH
1da177e4 137 help
584fffc8
SS
138 Authenc: Combined mode wrapper for IPsec.
139 This is required for IPSec.
1da177e4 140
584fffc8
SS
141config CRYPTO_TEST
142 tristate "Testing module"
143 depends on m
da7f033d 144 select CRYPTO_MANAGER
1da177e4 145 help
584fffc8 146 Quick & dirty crypto test module.
1da177e4 147
584fffc8 148comment "Authenticated Encryption with Associated Data"
cd12fb90 149
584fffc8
SS
150config CRYPTO_CCM
151 tristate "CCM support"
152 select CRYPTO_CTR
153 select CRYPTO_AEAD
1da177e4 154 help
584fffc8 155 Support for Counter with CBC MAC. Required for IPsec.
1da177e4 156
584fffc8
SS
157config CRYPTO_GCM
158 tristate "GCM/GMAC support"
159 select CRYPTO_CTR
160 select CRYPTO_AEAD
9382d97a 161 select CRYPTO_GHASH
1da177e4 162 help
584fffc8
SS
163 Support for Galois/Counter Mode (GCM) and Galois Message
164 Authentication Code (GMAC). Required for IPSec.
1da177e4 165
584fffc8
SS
166config CRYPTO_SEQIV
167 tristate "Sequence Number IV Generator"
168 select CRYPTO_AEAD
169 select CRYPTO_BLKCIPHER
a0f000ec 170 select CRYPTO_RNG
1da177e4 171 help
584fffc8
SS
172 This IV generator generates an IV based on a sequence number by
173 xoring it with a salt. This algorithm is mainly useful for CTR
1da177e4 174
584fffc8 175comment "Block modes"
c494e070 176
584fffc8
SS
177config CRYPTO_CBC
178 tristate "CBC support"
db131ef9 179 select CRYPTO_BLKCIPHER
43518407 180 select CRYPTO_MANAGER
db131ef9 181 help
584fffc8
SS
182 CBC: Cipher Block Chaining mode
183 This block cipher algorithm is required for IPSec.
db131ef9 184
584fffc8
SS
185config CRYPTO_CTR
186 tristate "CTR support"
db131ef9 187 select CRYPTO_BLKCIPHER
584fffc8 188 select CRYPTO_SEQIV
43518407 189 select CRYPTO_MANAGER
db131ef9 190 help
584fffc8 191 CTR: Counter mode
db131ef9
HX
192 This block cipher algorithm is required for IPSec.
193
584fffc8
SS
194config CRYPTO_CTS
195 tristate "CTS support"
196 select CRYPTO_BLKCIPHER
197 help
198 CTS: Cipher Text Stealing
199 This is the Cipher Text Stealing mode as described by
200 Section 8 of rfc2040 and referenced by rfc3962.
201 (rfc3962 includes errata information in its Appendix A)
202 This mode is required for Kerberos gss mechanism support
203 for AES encryption.
204
205config CRYPTO_ECB
206 tristate "ECB support"
91652be5
DH
207 select CRYPTO_BLKCIPHER
208 select CRYPTO_MANAGER
91652be5 209 help
584fffc8
SS
210 ECB: Electronic CodeBook mode
211 This is the simplest block cipher algorithm. It simply encrypts
212 the input block by block.
91652be5 213
64470f1b
RS
214config CRYPTO_LRW
215 tristate "LRW support (EXPERIMENTAL)"
216 depends on EXPERIMENTAL
217 select CRYPTO_BLKCIPHER
218 select CRYPTO_MANAGER
219 select CRYPTO_GF128MUL
220 help
221 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
222 narrow block cipher mode for dm-crypt. Use it with cipher
223 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
224 The first 128, 192 or 256 bits in the key are used for AES and the
225 rest is used to tie each cipher block to its logical position.
226
584fffc8
SS
227config CRYPTO_PCBC
228 tristate "PCBC support"
229 select CRYPTO_BLKCIPHER
230 select CRYPTO_MANAGER
231 help
232 PCBC: Propagating Cipher Block Chaining mode
233 This block cipher algorithm is required for RxRPC.
234
f19f5111
RS
235config CRYPTO_XTS
236 tristate "XTS support (EXPERIMENTAL)"
237 depends on EXPERIMENTAL
238 select CRYPTO_BLKCIPHER
239 select CRYPTO_MANAGER
240 select CRYPTO_GF128MUL
241 help
242 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
243 key size 256, 384 or 512 bits. This implementation currently
244 can't handle a sectorsize which is not a multiple of 16 bytes.
245
150c7e85
HY
246config CRYPTO_FPU
247 tristate
248 select CRYPTO_BLKCIPHER
249 select CRYPTO_MANAGER
250
584fffc8
SS
251comment "Hash modes"
252
253config CRYPTO_HMAC
254 tristate "HMAC support"
255 select CRYPTO_HASH
23e353c8 256 select CRYPTO_MANAGER
23e353c8 257 help
584fffc8
SS
258 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
259 This is required for IPSec.
23e353c8 260
584fffc8
SS
261config CRYPTO_XCBC
262 tristate "XCBC support"
263 depends on EXPERIMENTAL
264 select CRYPTO_HASH
265 select CRYPTO_MANAGER
76cb9521 266 help
584fffc8
SS
267 XCBC: Keyed-Hashing with encryption algorithm
268 http://www.ietf.org/rfc/rfc3566.txt
269 http://csrc.nist.gov/encryption/modes/proposedmodes/
270 xcbc-mac/xcbc-mac-spec.pdf
76cb9521 271
584fffc8 272comment "Digest"
28db8e3e 273
584fffc8
SS
274config CRYPTO_CRC32C
275 tristate "CRC32c CRC algorithm"
5773a3e6 276 select CRYPTO_HASH
4a49b499 277 help
584fffc8
SS
278 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
279 by iSCSI for header and data digests and by others.
69c35efc 280 See Castagnoli93. Module will be crc32c.
4a49b499 281
8cb51ba8
AZ
282config CRYPTO_CRC32C_INTEL
283 tristate "CRC32c INTEL hardware acceleration"
284 depends on X86
285 select CRYPTO_HASH
286 help
287 In Intel processor with SSE4.2 supported, the processor will
288 support CRC32C implementation using hardware accelerated CRC32
289 instruction. This option will create 'crc32c-intel' module,
290 which will enable any routine to use the CRC32 instruction to
291 gain performance compared with software implementation.
292 Module will be crc32c-intel.
293
2cdc6899
HY
294config CRYPTO_GHASH
295 tristate "GHASH digest algorithm"
296 select CRYPTO_SHASH
297 select CRYPTO_GF128MUL
298 help
299 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
300
584fffc8
SS
301config CRYPTO_MD4
302 tristate "MD4 digest algorithm"
808a1763 303 select CRYPTO_HASH
124b53d0 304 help
584fffc8 305 MD4 message digest algorithm (RFC1320).
124b53d0 306
584fffc8
SS
307config CRYPTO_MD5
308 tristate "MD5 digest algorithm"
14b75ba7 309 select CRYPTO_HASH
1da177e4 310 help
584fffc8 311 MD5 message digest algorithm (RFC1321).
1da177e4 312
584fffc8
SS
313config CRYPTO_MICHAEL_MIC
314 tristate "Michael MIC keyed digest algorithm"
19e2bf14 315 select CRYPTO_HASH
90831639 316 help
584fffc8
SS
317 Michael MIC is used for message integrity protection in TKIP
318 (IEEE 802.11i). This algorithm is required for TKIP, but it
319 should not be used for other purposes because of the weakness
320 of the algorithm.
90831639 321
82798f90 322config CRYPTO_RMD128
b6d44341 323 tristate "RIPEMD-128 digest algorithm"
7c4468bc 324 select CRYPTO_HASH
b6d44341
AB
325 help
326 RIPEMD-128 (ISO/IEC 10118-3:2004).
82798f90 327
b6d44341
AB
328 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
329 to be used as a secure replacement for RIPEMD. For other use cases
330 RIPEMD-160 should be used.
82798f90 331
b6d44341
AB
332 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
333 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90
AKR
334
335config CRYPTO_RMD160
b6d44341 336 tristate "RIPEMD-160 digest algorithm"
e5835fba 337 select CRYPTO_HASH
b6d44341
AB
338 help
339 RIPEMD-160 (ISO/IEC 10118-3:2004).
82798f90 340
b6d44341
AB
341 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
342 to be used as a secure replacement for the 128-bit hash functions
343 MD4, MD5 and it's predecessor RIPEMD
344 (not to be confused with RIPEMD-128).
82798f90 345
b6d44341
AB
346 It's speed is comparable to SHA1 and there are no known attacks
347 against RIPEMD-160.
534fe2c1 348
b6d44341
AB
349 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
350 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
351
352config CRYPTO_RMD256
b6d44341 353 tristate "RIPEMD-256 digest algorithm"
d8a5e2e9 354 select CRYPTO_HASH
b6d44341
AB
355 help
356 RIPEMD-256 is an optional extension of RIPEMD-128 with a
357 256 bit hash. It is intended for applications that require
358 longer hash-results, without needing a larger security level
359 (than RIPEMD-128).
534fe2c1 360
b6d44341
AB
361 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
362 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
363
364config CRYPTO_RMD320
b6d44341 365 tristate "RIPEMD-320 digest algorithm"
3b8efb4c 366 select CRYPTO_HASH
b6d44341
AB
367 help
368 RIPEMD-320 is an optional extension of RIPEMD-160 with a
369 320 bit hash. It is intended for applications that require
370 longer hash-results, without needing a larger security level
371 (than RIPEMD-160).
534fe2c1 372
b6d44341
AB
373 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
374 See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90 375
584fffc8
SS
376config CRYPTO_SHA1
377 tristate "SHA1 digest algorithm"
54ccb367 378 select CRYPTO_HASH
1da177e4 379 help
584fffc8 380 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
1da177e4 381
584fffc8
SS
382config CRYPTO_SHA256
383 tristate "SHA224 and SHA256 digest algorithm"
50e109b5 384 select CRYPTO_HASH
1da177e4 385 help
584fffc8 386 SHA256 secure hash standard (DFIPS 180-2).
1da177e4 387
584fffc8
SS
388 This version of SHA implements a 256 bit hash with 128 bits of
389 security against collision attacks.
2729bb42 390
b6d44341
AB
391 This code also includes SHA-224, a 224 bit hash with 112 bits
392 of security against collision attacks.
584fffc8
SS
393
394config CRYPTO_SHA512
395 tristate "SHA384 and SHA512 digest algorithms"
bd9d20db 396 select CRYPTO_HASH
b9f535ff 397 help
584fffc8 398 SHA512 secure hash standard (DFIPS 180-2).
b9f535ff 399
584fffc8
SS
400 This version of SHA implements a 512 bit hash with 256 bits of
401 security against collision attacks.
b9f535ff 402
584fffc8
SS
403 This code also includes SHA-384, a 384 bit hash with 192 bits
404 of security against collision attacks.
b9f535ff 405
584fffc8
SS
406config CRYPTO_TGR192
407 tristate "Tiger digest algorithms"
f63fbd3d 408 select CRYPTO_HASH
eaf44088 409 help
584fffc8 410 Tiger hash algorithm 192, 160 and 128-bit hashes
eaf44088 411
584fffc8
SS
412 Tiger is a hash function optimized for 64-bit processors while
413 still having decent performance on 32-bit processors.
414 Tiger was developed by Ross Anderson and Eli Biham.
eaf44088
JF
415
416 See also:
584fffc8 417 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
eaf44088 418
584fffc8
SS
419config CRYPTO_WP512
420 tristate "Whirlpool digest algorithms"
4946510b 421 select CRYPTO_HASH
1da177e4 422 help
584fffc8 423 Whirlpool hash algorithm 512, 384 and 256-bit hashes
1da177e4 424
584fffc8
SS
425 Whirlpool-512 is part of the NESSIE cryptographic primitives.
426 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1da177e4
LT
427
428 See also:
584fffc8
SS
429 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
430
431comment "Ciphers"
1da177e4
LT
432
433config CRYPTO_AES
434 tristate "AES cipher algorithms"
cce9e06d 435 select CRYPTO_ALGAPI
1da177e4 436 help
584fffc8 437 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
438 algorithm.
439
440 Rijndael appears to be consistently a very good performer in
584fffc8
SS
441 both hardware and software across a wide range of computing
442 environments regardless of its use in feedback or non-feedback
443 modes. Its key setup time is excellent, and its key agility is
444 good. Rijndael's very low memory requirements make it very well
445 suited for restricted-space environments, in which it also
446 demonstrates excellent performance. Rijndael's operations are
447 among the easiest to defend against power and timing attacks.
1da177e4 448
584fffc8 449 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
450
451 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
452
453config CRYPTO_AES_586
454 tristate "AES cipher algorithms (i586)"
cce9e06d
HX
455 depends on (X86 || UML_X86) && !64BIT
456 select CRYPTO_ALGAPI
5157dea8 457 select CRYPTO_AES
1da177e4 458 help
584fffc8 459 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
460 algorithm.
461
462 Rijndael appears to be consistently a very good performer in
584fffc8
SS
463 both hardware and software across a wide range of computing
464 environments regardless of its use in feedback or non-feedback
465 modes. Its key setup time is excellent, and its key agility is
466 good. Rijndael's very low memory requirements make it very well
467 suited for restricted-space environments, in which it also
468 demonstrates excellent performance. Rijndael's operations are
469 among the easiest to defend against power and timing attacks.
1da177e4 470
584fffc8 471 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
472
473 See <http://csrc.nist.gov/encryption/aes/> for more information.
474
475config CRYPTO_AES_X86_64
476 tristate "AES cipher algorithms (x86_64)"
cce9e06d
HX
477 depends on (X86 || UML_X86) && 64BIT
478 select CRYPTO_ALGAPI
81190b32 479 select CRYPTO_AES
a2a892a2 480 help
584fffc8 481 AES cipher algorithms (FIPS-197). AES uses the Rijndael
a2a892a2
AS
482 algorithm.
483
484 Rijndael appears to be consistently a very good performer in
584fffc8
SS
485 both hardware and software across a wide range of computing
486 environments regardless of its use in feedback or non-feedback
487 modes. Its key setup time is excellent, and its key agility is
54b6a1bd
HY
488 good. Rijndael's very low memory requirements make it very well
489 suited for restricted-space environments, in which it also
490 demonstrates excellent performance. Rijndael's operations are
491 among the easiest to defend against power and timing attacks.
492
493 The AES specifies three key sizes: 128, 192 and 256 bits
494
495 See <http://csrc.nist.gov/encryption/aes/> for more information.
496
497config CRYPTO_AES_NI_INTEL
498 tristate "AES cipher algorithms (AES-NI)"
499 depends on (X86 || UML_X86) && 64BIT
500 select CRYPTO_AES_X86_64
501 select CRYPTO_CRYPTD
502 select CRYPTO_ALGAPI
2cf4ac8b 503 select CRYPTO_FPU
54b6a1bd
HY
504 help
505 Use Intel AES-NI instructions for AES algorithm.
506
507 AES cipher algorithms (FIPS-197). AES uses the Rijndael
508 algorithm.
509
510 Rijndael appears to be consistently a very good performer in
511 both hardware and software across a wide range of computing
512 environments regardless of its use in feedback or non-feedback
513 modes. Its key setup time is excellent, and its key agility is
584fffc8
SS
514 good. Rijndael's very low memory requirements make it very well
515 suited for restricted-space environments, in which it also
516 demonstrates excellent performance. Rijndael's operations are
517 among the easiest to defend against power and timing attacks.
a2a892a2 518
584fffc8 519 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
520
521 See <http://csrc.nist.gov/encryption/aes/> for more information.
522
2cf4ac8b
HY
523 In addition to AES cipher algorithm support, the
524 acceleration for some popular block cipher mode is supported
525 too, including ECB, CBC, CTR, LRW, PCBC, XTS.
526
584fffc8
SS
527config CRYPTO_ANUBIS
528 tristate "Anubis cipher algorithm"
529 select CRYPTO_ALGAPI
530 help
531 Anubis cipher algorithm.
532
533 Anubis is a variable key length cipher which can use keys from
534 128 bits to 320 bits in length. It was evaluated as a entrant
535 in the NESSIE competition.
536
537 See also:
538 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
539 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
540
541config CRYPTO_ARC4
542 tristate "ARC4 cipher algorithm"
543 select CRYPTO_ALGAPI
544 help
545 ARC4 cipher algorithm.
546
547 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
548 bits in length. This algorithm is required for driver-based
549 WEP, but it should not be for other purposes because of the
550 weakness of the algorithm.
551
552config CRYPTO_BLOWFISH
553 tristate "Blowfish cipher algorithm"
554 select CRYPTO_ALGAPI
555 help
556 Blowfish cipher algorithm, by Bruce Schneier.
557
558 This is a variable key length cipher which can use keys from 32
559 bits to 448 bits in length. It's fast, simple and specifically
560 designed for use on "large microprocessors".
561
562 See also:
563 <http://www.schneier.com/blowfish.html>
564
565config CRYPTO_CAMELLIA
566 tristate "Camellia cipher algorithms"
567 depends on CRYPTO
568 select CRYPTO_ALGAPI
569 help
570 Camellia cipher algorithms module.
571
572 Camellia is a symmetric key block cipher developed jointly
573 at NTT and Mitsubishi Electric Corporation.
574
575 The Camellia specifies three key sizes: 128, 192 and 256 bits.
576
577 See also:
578 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
579
1da177e4
LT
580config CRYPTO_CAST5
581 tristate "CAST5 (CAST-128) cipher algorithm"
cce9e06d 582 select CRYPTO_ALGAPI
1da177e4
LT
583 help
584 The CAST5 encryption algorithm (synonymous with CAST-128) is
585 described in RFC2144.
586
587config CRYPTO_CAST6
588 tristate "CAST6 (CAST-256) cipher algorithm"
cce9e06d 589 select CRYPTO_ALGAPI
1da177e4
LT
590 help
591 The CAST6 encryption algorithm (synonymous with CAST-256) is
592 described in RFC2612.
593
584fffc8
SS
594config CRYPTO_DES
595 tristate "DES and Triple DES EDE cipher algorithms"
cce9e06d 596 select CRYPTO_ALGAPI
1da177e4 597 help
584fffc8 598 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
fb4f10ed 599
584fffc8
SS
600config CRYPTO_FCRYPT
601 tristate "FCrypt cipher algorithm"
cce9e06d 602 select CRYPTO_ALGAPI
584fffc8 603 select CRYPTO_BLKCIPHER
1da177e4 604 help
584fffc8 605 FCrypt algorithm used by RxRPC.
1da177e4
LT
606
607config CRYPTO_KHAZAD
608 tristate "Khazad cipher algorithm"
cce9e06d 609 select CRYPTO_ALGAPI
1da177e4
LT
610 help
611 Khazad cipher algorithm.
612
613 Khazad was a finalist in the initial NESSIE competition. It is
614 an algorithm optimized for 64-bit processors with good performance
615 on 32-bit processors. Khazad uses an 128 bit key size.
616
617 See also:
618 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
619
2407d608
TSH
620config CRYPTO_SALSA20
621 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
622 depends on EXPERIMENTAL
623 select CRYPTO_BLKCIPHER
624 help
625 Salsa20 stream cipher algorithm.
626
627 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
628 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
974e4b75
TSH
629
630 The Salsa20 stream cipher algorithm is designed by Daniel J.
631 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
632
633config CRYPTO_SALSA20_586
634 tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
635 depends on (X86 || UML_X86) && !64BIT
636 depends on EXPERIMENTAL
637 select CRYPTO_BLKCIPHER
974e4b75
TSH
638 help
639 Salsa20 stream cipher algorithm.
640
641 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
642 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
9a7dafbb
TSH
643
644 The Salsa20 stream cipher algorithm is designed by Daniel J.
645 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
646
647config CRYPTO_SALSA20_X86_64
648 tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
649 depends on (X86 || UML_X86) && 64BIT
650 depends on EXPERIMENTAL
651 select CRYPTO_BLKCIPHER
9a7dafbb
TSH
652 help
653 Salsa20 stream cipher algorithm.
654
655 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
656 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
2407d608
TSH
657
658 The Salsa20 stream cipher algorithm is designed by Daniel J.
659 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1da177e4 660
584fffc8
SS
661config CRYPTO_SEED
662 tristate "SEED cipher algorithm"
cce9e06d 663 select CRYPTO_ALGAPI
1da177e4 664 help
584fffc8 665 SEED cipher algorithm (RFC4269).
1da177e4 666
584fffc8
SS
667 SEED is a 128-bit symmetric key block cipher that has been
668 developed by KISA (Korea Information Security Agency) as a
669 national standard encryption algorithm of the Republic of Korea.
670 It is a 16 round block cipher with the key size of 128 bit.
671
672 See also:
673 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
674
675config CRYPTO_SERPENT
676 tristate "Serpent cipher algorithm"
cce9e06d 677 select CRYPTO_ALGAPI
1da177e4 678 help
584fffc8 679 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1da177e4 680
584fffc8
SS
681 Keys are allowed to be from 0 to 256 bits in length, in steps
682 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
683 variant of Serpent for compatibility with old kerneli.org code.
684
685 See also:
686 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
687
688config CRYPTO_TEA
689 tristate "TEA, XTEA and XETA cipher algorithms"
cce9e06d 690 select CRYPTO_ALGAPI
1da177e4 691 help
584fffc8 692 TEA cipher algorithm.
1da177e4 693
584fffc8
SS
694 Tiny Encryption Algorithm is a simple cipher that uses
695 many rounds for security. It is very fast and uses
696 little memory.
697
698 Xtendend Tiny Encryption Algorithm is a modification to
699 the TEA algorithm to address a potential key weakness
700 in the TEA algorithm.
701
702 Xtendend Encryption Tiny Algorithm is a mis-implementation
703 of the XTEA algorithm for compatibility purposes.
704
705config CRYPTO_TWOFISH
706 tristate "Twofish cipher algorithm"
04ac7db3 707 select CRYPTO_ALGAPI
584fffc8 708 select CRYPTO_TWOFISH_COMMON
04ac7db3 709 help
584fffc8 710 Twofish cipher algorithm.
04ac7db3 711
584fffc8
SS
712 Twofish was submitted as an AES (Advanced Encryption Standard)
713 candidate cipher by researchers at CounterPane Systems. It is a
714 16 round block cipher supporting key sizes of 128, 192, and 256
715 bits.
04ac7db3 716
584fffc8
SS
717 See also:
718 <http://www.schneier.com/twofish.html>
719
720config CRYPTO_TWOFISH_COMMON
721 tristate
722 help
723 Common parts of the Twofish cipher algorithm shared by the
724 generic c and the assembler implementations.
725
726config CRYPTO_TWOFISH_586
727 tristate "Twofish cipher algorithms (i586)"
728 depends on (X86 || UML_X86) && !64BIT
729 select CRYPTO_ALGAPI
730 select CRYPTO_TWOFISH_COMMON
731 help
732 Twofish cipher algorithm.
733
734 Twofish was submitted as an AES (Advanced Encryption Standard)
735 candidate cipher by researchers at CounterPane Systems. It is a
736 16 round block cipher supporting key sizes of 128, 192, and 256
737 bits.
04ac7db3
NT
738
739 See also:
584fffc8 740 <http://www.schneier.com/twofish.html>
04ac7db3 741
584fffc8
SS
742config CRYPTO_TWOFISH_X86_64
743 tristate "Twofish cipher algorithm (x86_64)"
744 depends on (X86 || UML_X86) && 64BIT
cce9e06d 745 select CRYPTO_ALGAPI
584fffc8 746 select CRYPTO_TWOFISH_COMMON
1da177e4 747 help
584fffc8 748 Twofish cipher algorithm (x86_64).
1da177e4 749
584fffc8
SS
750 Twofish was submitted as an AES (Advanced Encryption Standard)
751 candidate cipher by researchers at CounterPane Systems. It is a
752 16 round block cipher supporting key sizes of 128, 192, and 256
753 bits.
754
755 See also:
756 <http://www.schneier.com/twofish.html>
757
758comment "Compression"
759
760config CRYPTO_DEFLATE
761 tristate "Deflate compression algorithm"
762 select CRYPTO_ALGAPI
763 select ZLIB_INFLATE
764 select ZLIB_DEFLATE
3c09f17c 765 help
584fffc8
SS
766 This is the Deflate algorithm (RFC1951), specified for use in
767 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
768
769 You will most probably want this if using IPSec.
3c09f17c 770
bf68e65e
GU
771config CRYPTO_ZLIB
772 tristate "Zlib compression algorithm"
773 select CRYPTO_PCOMP
774 select ZLIB_INFLATE
775 select ZLIB_DEFLATE
776 select NLATTR
777 help
778 This is the zlib algorithm.
779
0b77abb3
ZS
780config CRYPTO_LZO
781 tristate "LZO compression algorithm"
782 select CRYPTO_ALGAPI
783 select LZO_COMPRESS
784 select LZO_DECOMPRESS
785 help
786 This is the LZO algorithm.
787
17f0f4a4
NH
788comment "Random Number Generation"
789
790config CRYPTO_ANSI_CPRNG
791 tristate "Pseudo Random Number Generation for Cryptographic modules"
4e4ed83b 792 default m
17f0f4a4
NH
793 select CRYPTO_AES
794 select CRYPTO_RNG
17f0f4a4
NH
795 help
796 This option enables the generic pseudo random number generator
797 for cryptographic modules. Uses the Algorithm specified in
4e4ed83b
NH
798 ANSI X9.31 A.2.4. Not this option must be enabled if CRYPTO_FIPS
799 is selected
17f0f4a4 800
1da177e4 801source "drivers/crypto/Kconfig"
1da177e4 802
cce9e06d 803endif # if CRYPTO