import PULS_20180308
[GitHub/mt8127/android_kernel_alcatel_ttab.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"
e84c5480 26 depends on CRYPTO_ANSI_CPRNG && !CRYPTO_MANAGER_DISABLE_TESTS
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
e84c5480 31 this is.
ccb778e1 32
cce9e06d
HX
33config CRYPTO_ALGAPI
34 tristate
6a0fcbb4 35 select CRYPTO_ALGAPI2
cce9e06d
HX
36 help
37 This option provides the API for cryptographic algorithms.
38
6a0fcbb4
HX
39config CRYPTO_ALGAPI2
40 tristate
41
1ae97820
HX
42config CRYPTO_AEAD
43 tristate
6a0fcbb4 44 select CRYPTO_AEAD2
1ae97820
HX
45 select CRYPTO_ALGAPI
46
6a0fcbb4
HX
47config CRYPTO_AEAD2
48 tristate
49 select CRYPTO_ALGAPI2
50
5cde0af2
HX
51config CRYPTO_BLKCIPHER
52 tristate
6a0fcbb4 53 select CRYPTO_BLKCIPHER2
5cde0af2 54 select CRYPTO_ALGAPI
6a0fcbb4
HX
55
56config CRYPTO_BLKCIPHER2
57 tristate
58 select CRYPTO_ALGAPI2
59 select CRYPTO_RNG2
0a2e821d 60 select CRYPTO_WORKQUEUE
5cde0af2 61
055bcee3
HX
62config CRYPTO_HASH
63 tristate
6a0fcbb4 64 select CRYPTO_HASH2
055bcee3
HX
65 select CRYPTO_ALGAPI
66
6a0fcbb4
HX
67config CRYPTO_HASH2
68 tristate
69 select CRYPTO_ALGAPI2
70
17f0f4a4
NH
71config CRYPTO_RNG
72 tristate
6a0fcbb4 73 select CRYPTO_RNG2
17f0f4a4
NH
74 select CRYPTO_ALGAPI
75
6a0fcbb4
HX
76config CRYPTO_RNG2
77 tristate
78 select CRYPTO_ALGAPI2
79
a1d2f095 80config CRYPTO_PCOMP
bc94e596
HX
81 tristate
82 select CRYPTO_PCOMP2
83 select CRYPTO_ALGAPI
84
85config CRYPTO_PCOMP2
a1d2f095
GU
86 tristate
87 select CRYPTO_ALGAPI2
88
2b8c19db
HX
89config CRYPTO_MANAGER
90 tristate "Cryptographic algorithm manager"
6a0fcbb4 91 select CRYPTO_MANAGER2
2b8c19db
HX
92 help
93 Create default cryptographic template instantiations such as
94 cbc(aes).
95
6a0fcbb4
HX
96config CRYPTO_MANAGER2
97 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
98 select CRYPTO_AEAD2
99 select CRYPTO_HASH2
100 select CRYPTO_BLKCIPHER2
bc94e596 101 select CRYPTO_PCOMP2
6a0fcbb4 102
a38f7907
SK
103config CRYPTO_USER
104 tristate "Userspace cryptographic algorithm configuration"
5db017aa 105 depends on NET
a38f7907
SK
106 select CRYPTO_MANAGER
107 help
d19978f5 108 Userspace configuration for cryptographic instantiations such as
a38f7907
SK
109 cbc(aes).
110
326a6346
HX
111config CRYPTO_MANAGER_DISABLE_TESTS
112 bool "Disable run-time self tests"
00ca28a5
HX
113 default y
114 depends on CRYPTO_MANAGER2
0b767f96 115 help
326a6346
HX
116 Disable run-time self tests that normally take place at
117 algorithm registration.
0b767f96 118
584fffc8 119config CRYPTO_GF128MUL
08c70fc3 120 tristate "GF(2^128) multiplication functions"
333b0d7e 121 help
584fffc8
SS
122 Efficient table driven implementation of multiplications in the
123 field GF(2^128). This is needed by some cypher modes. This
124 option will be selected automatically if you select such a
125 cipher mode. Only select this option by hand if you expect to load
126 an external module that requires these functions.
333b0d7e 127
1da177e4
LT
128config CRYPTO_NULL
129 tristate "Null algorithms"
cce9e06d 130 select CRYPTO_ALGAPI
c8620c25 131 select CRYPTO_BLKCIPHER
d35d2454 132 select CRYPTO_HASH
1da177e4
LT
133 help
134 These are 'Null' algorithms, used by IPsec, which do nothing.
135
5068c7a8 136config CRYPTO_PCRYPT
3b4afaf2
KC
137 tristate "Parallel crypto engine"
138 depends on SMP
5068c7a8
SK
139 select PADATA
140 select CRYPTO_MANAGER
141 select CRYPTO_AEAD
142 help
143 This converts an arbitrary crypto algorithm into a parallel
144 algorithm that executes in kernel threads.
145
25c38d3f
HY
146config CRYPTO_WORKQUEUE
147 tristate
148
584fffc8
SS
149config CRYPTO_CRYPTD
150 tristate "Software async crypto daemon"
151 select CRYPTO_BLKCIPHER
b8a28251 152 select CRYPTO_HASH
584fffc8 153 select CRYPTO_MANAGER
254eff77 154 select CRYPTO_WORKQUEUE
1da177e4 155 help
584fffc8
SS
156 This is a generic software asynchronous crypto daemon that
157 converts an arbitrary synchronous software crypto algorithm
158 into an asynchronous algorithm that executes in a kernel thread.
1da177e4 159
584fffc8
SS
160config CRYPTO_AUTHENC
161 tristate "Authenc support"
162 select CRYPTO_AEAD
163 select CRYPTO_BLKCIPHER
164 select CRYPTO_MANAGER
165 select CRYPTO_HASH
1da177e4 166 help
584fffc8
SS
167 Authenc: Combined mode wrapper for IPsec.
168 This is required for IPSec.
1da177e4 169
584fffc8
SS
170config CRYPTO_TEST
171 tristate "Testing module"
172 depends on m
da7f033d 173 select CRYPTO_MANAGER
1da177e4 174 help
584fffc8 175 Quick & dirty crypto test module.
1da177e4 176
ffaf9156
JK
177config CRYPTO_ABLK_HELPER_X86
178 tristate
179 depends on X86
180 select CRYPTO_CRYPTD
181
6fa3eb70
S
182config CRYPTO_ABLK_HELPER
183 tristate
184 select CRYPTO_CRYPTD
185
596d8750
JK
186config CRYPTO_GLUE_HELPER_X86
187 tristate
188 depends on X86
189 select CRYPTO_ALGAPI
190
584fffc8 191comment "Authenticated Encryption with Associated Data"
cd12fb90 192
584fffc8
SS
193config CRYPTO_CCM
194 tristate "CCM support"
195 select CRYPTO_CTR
196 select CRYPTO_AEAD
1da177e4 197 help
584fffc8 198 Support for Counter with CBC MAC. Required for IPsec.
1da177e4 199
584fffc8
SS
200config CRYPTO_GCM
201 tristate "GCM/GMAC support"
202 select CRYPTO_CTR
203 select CRYPTO_AEAD
9382d97a 204 select CRYPTO_GHASH
9489667d 205 select CRYPTO_NULL
1da177e4 206 help
584fffc8
SS
207 Support for Galois/Counter Mode (GCM) and Galois Message
208 Authentication Code (GMAC). Required for IPSec.
1da177e4 209
584fffc8
SS
210config CRYPTO_SEQIV
211 tristate "Sequence Number IV Generator"
212 select CRYPTO_AEAD
213 select CRYPTO_BLKCIPHER
a0f000ec 214 select CRYPTO_RNG
1da177e4 215 help
584fffc8
SS
216 This IV generator generates an IV based on a sequence number by
217 xoring it with a salt. This algorithm is mainly useful for CTR
1da177e4 218
584fffc8 219comment "Block modes"
c494e070 220
584fffc8
SS
221config CRYPTO_CBC
222 tristate "CBC support"
db131ef9 223 select CRYPTO_BLKCIPHER
43518407 224 select CRYPTO_MANAGER
db131ef9 225 help
584fffc8
SS
226 CBC: Cipher Block Chaining mode
227 This block cipher algorithm is required for IPSec.
db131ef9 228
584fffc8
SS
229config CRYPTO_CTR
230 tristate "CTR support"
db131ef9 231 select CRYPTO_BLKCIPHER
584fffc8 232 select CRYPTO_SEQIV
43518407 233 select CRYPTO_MANAGER
db131ef9 234 help
584fffc8 235 CTR: Counter mode
db131ef9
HX
236 This block cipher algorithm is required for IPSec.
237
584fffc8
SS
238config CRYPTO_CTS
239 tristate "CTS support"
240 select CRYPTO_BLKCIPHER
241 help
242 CTS: Cipher Text Stealing
243 This is the Cipher Text Stealing mode as described by
244 Section 8 of rfc2040 and referenced by rfc3962.
245 (rfc3962 includes errata information in its Appendix A)
246 This mode is required for Kerberos gss mechanism support
247 for AES encryption.
248
249config CRYPTO_ECB
250 tristate "ECB support"
91652be5
DH
251 select CRYPTO_BLKCIPHER
252 select CRYPTO_MANAGER
91652be5 253 help
584fffc8
SS
254 ECB: Electronic CodeBook mode
255 This is the simplest block cipher algorithm. It simply encrypts
256 the input block by block.
91652be5 257
64470f1b 258config CRYPTO_LRW
2470a2b2 259 tristate "LRW support"
64470f1b
RS
260 select CRYPTO_BLKCIPHER
261 select CRYPTO_MANAGER
262 select CRYPTO_GF128MUL
263 help
264 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
265 narrow block cipher mode for dm-crypt. Use it with cipher
266 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
267 The first 128, 192 or 256 bits in the key are used for AES and the
268 rest is used to tie each cipher block to its logical position.
269
584fffc8
SS
270config CRYPTO_PCBC
271 tristate "PCBC support"
272 select CRYPTO_BLKCIPHER
273 select CRYPTO_MANAGER
274 help
275 PCBC: Propagating Cipher Block Chaining mode
276 This block cipher algorithm is required for RxRPC.
277
f19f5111 278config CRYPTO_XTS
5bcf8e6d 279 tristate "XTS support"
f19f5111
RS
280 select CRYPTO_BLKCIPHER
281 select CRYPTO_MANAGER
282 select CRYPTO_GF128MUL
283 help
284 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
285 key size 256, 384 or 512 bits. This implementation currently
286 can't handle a sectorsize which is not a multiple of 16 bytes.
287
584fffc8
SS
288comment "Hash modes"
289
93b5e86a
JK
290config CRYPTO_CMAC
291 tristate "CMAC support"
292 select CRYPTO_HASH
293 select CRYPTO_MANAGER
294 help
295 Cipher-based Message Authentication Code (CMAC) specified by
296 The National Institute of Standards and Technology (NIST).
297
298 https://tools.ietf.org/html/rfc4493
299 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
300
584fffc8
SS
301config CRYPTO_HMAC
302 tristate "HMAC support"
303 select CRYPTO_HASH
23e353c8 304 select CRYPTO_MANAGER
23e353c8 305 help
584fffc8
SS
306 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
307 This is required for IPSec.
23e353c8 308
584fffc8
SS
309config CRYPTO_XCBC
310 tristate "XCBC support"
584fffc8
SS
311 select CRYPTO_HASH
312 select CRYPTO_MANAGER
76cb9521 313 help
584fffc8
SS
314 XCBC: Keyed-Hashing with encryption algorithm
315 http://www.ietf.org/rfc/rfc3566.txt
316 http://csrc.nist.gov/encryption/modes/proposedmodes/
317 xcbc-mac/xcbc-mac-spec.pdf
76cb9521 318
f1939f7c
SW
319config CRYPTO_VMAC
320 tristate "VMAC support"
f1939f7c
SW
321 select CRYPTO_HASH
322 select CRYPTO_MANAGER
323 help
324 VMAC is a message authentication algorithm designed for
325 very high speed on 64-bit architectures.
326
327 See also:
328 <http://fastcrypto.org/vmac>
329
584fffc8 330comment "Digest"
28db8e3e 331
584fffc8
SS
332config CRYPTO_CRC32C
333 tristate "CRC32c CRC algorithm"
5773a3e6 334 select CRYPTO_HASH
6a0962b2 335 select CRC32
4a49b499 336 help
584fffc8
SS
337 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
338 by iSCSI for header and data digests and by others.
69c35efc 339 See Castagnoli93. Module will be crc32c.
4a49b499 340
8cb51ba8
AZ
341config CRYPTO_CRC32C_INTEL
342 tristate "CRC32c INTEL hardware acceleration"
343 depends on X86
344 select CRYPTO_HASH
345 help
346 In Intel processor with SSE4.2 supported, the processor will
347 support CRC32C implementation using hardware accelerated CRC32
348 instruction. This option will create 'crc32c-intel' module,
349 which will enable any routine to use the CRC32 instruction to
350 gain performance compared with software implementation.
351 Module will be crc32c-intel.
352
442a7c40
DM
353config CRYPTO_CRC32C_SPARC64
354 tristate "CRC32c CRC algorithm (SPARC64)"
355 depends on SPARC64
356 select CRYPTO_HASH
357 select CRC32
358 help
359 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
360 when available.
361
78c37d19
AB
362config CRYPTO_CRC32
363 tristate "CRC32 CRC algorithm"
364 select CRYPTO_HASH
365 select CRC32
366 help
367 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
368 Shash crypto api wrappers to crc32_le function.
369
370config CRYPTO_CRC32_PCLMUL
371 tristate "CRC32 PCLMULQDQ hardware acceleration"
372 depends on X86
373 select CRYPTO_HASH
374 select CRC32
375 help
376 From Intel Westmere and AMD Bulldozer processor with SSE4.2
377 and PCLMULQDQ supported, the processor will support
378 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
379 instruction. This option will create 'crc32-plcmul' module,
380 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
381 and gain better performance as compared with the table implementation.
382
2cdc6899
HY
383config CRYPTO_GHASH
384 tristate "GHASH digest algorithm"
2cdc6899
HY
385 select CRYPTO_GF128MUL
386 help
387 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
388
584fffc8
SS
389config CRYPTO_MD4
390 tristate "MD4 digest algorithm"
808a1763 391 select CRYPTO_HASH
124b53d0 392 help
584fffc8 393 MD4 message digest algorithm (RFC1320).
124b53d0 394
584fffc8
SS
395config CRYPTO_MD5
396 tristate "MD5 digest algorithm"
14b75ba7 397 select CRYPTO_HASH
1da177e4 398 help
584fffc8 399 MD5 message digest algorithm (RFC1321).
1da177e4 400
fa4dfedc
DM
401config CRYPTO_MD5_SPARC64
402 tristate "MD5 digest algorithm (SPARC64)"
403 depends on SPARC64
404 select CRYPTO_MD5
405 select CRYPTO_HASH
406 help
407 MD5 message digest algorithm (RFC1321) implemented
408 using sparc64 crypto instructions, when available.
409
584fffc8
SS
410config CRYPTO_MICHAEL_MIC
411 tristate "Michael MIC keyed digest algorithm"
19e2bf14 412 select CRYPTO_HASH
90831639 413 help
584fffc8
SS
414 Michael MIC is used for message integrity protection in TKIP
415 (IEEE 802.11i). This algorithm is required for TKIP, but it
416 should not be used for other purposes because of the weakness
417 of the algorithm.
90831639 418
82798f90 419config CRYPTO_RMD128
b6d44341 420 tristate "RIPEMD-128 digest algorithm"
7c4468bc 421 select CRYPTO_HASH
b6d44341
AB
422 help
423 RIPEMD-128 (ISO/IEC 10118-3:2004).
82798f90 424
b6d44341 425 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
35ed4b35 426 be used as a secure replacement for RIPEMD. For other use cases,
b6d44341 427 RIPEMD-160 should be used.
82798f90 428
b6d44341 429 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 430 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90
AKR
431
432config CRYPTO_RMD160
b6d44341 433 tristate "RIPEMD-160 digest algorithm"
e5835fba 434 select CRYPTO_HASH
b6d44341
AB
435 help
436 RIPEMD-160 (ISO/IEC 10118-3:2004).
82798f90 437
b6d44341
AB
438 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
439 to be used as a secure replacement for the 128-bit hash functions
440 MD4, MD5 and it's predecessor RIPEMD
441 (not to be confused with RIPEMD-128).
82798f90 442
b6d44341
AB
443 It's speed is comparable to SHA1 and there are no known attacks
444 against RIPEMD-160.
534fe2c1 445
b6d44341 446 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 447 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
448
449config CRYPTO_RMD256
b6d44341 450 tristate "RIPEMD-256 digest algorithm"
d8a5e2e9 451 select CRYPTO_HASH
b6d44341
AB
452 help
453 RIPEMD-256 is an optional extension of RIPEMD-128 with a
454 256 bit hash. It is intended for applications that require
455 longer hash-results, without needing a larger security level
456 (than RIPEMD-128).
534fe2c1 457
b6d44341 458 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 459 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
534fe2c1
AKR
460
461config CRYPTO_RMD320
b6d44341 462 tristate "RIPEMD-320 digest algorithm"
3b8efb4c 463 select CRYPTO_HASH
b6d44341
AB
464 help
465 RIPEMD-320 is an optional extension of RIPEMD-160 with a
466 320 bit hash. It is intended for applications that require
467 longer hash-results, without needing a larger security level
468 (than RIPEMD-160).
534fe2c1 469
b6d44341 470 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6d8de74c 471 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
82798f90 472
584fffc8
SS
473config CRYPTO_SHA1
474 tristate "SHA1 digest algorithm"
54ccb367 475 select CRYPTO_HASH
1da177e4 476 help
584fffc8 477 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
1da177e4 478
66be8951
MK
479config CRYPTO_SHA1_SSSE3
480 tristate "SHA1 digest algorithm (SSSE3/AVX)"
481 depends on X86 && 64BIT
482 select CRYPTO_SHA1
483 select CRYPTO_HASH
484 help
485 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
486 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
487 Extensions (AVX), when available.
488
8275d1aa
TC
489config CRYPTO_SHA256_SSSE3
490 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2)"
491 depends on X86 && 64BIT
492 select CRYPTO_SHA256
493 select CRYPTO_HASH
494 help
495 SHA-256 secure hash standard (DFIPS 180-2) implemented
496 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
497 Extensions version 1 (AVX1), or Advanced Vector Extensions
87de4579
TC
498 version 2 (AVX2) instructions, when available.
499
500config CRYPTO_SHA512_SSSE3
501 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
502 depends on X86 && 64BIT
503 select CRYPTO_SHA512
504 select CRYPTO_HASH
505 help
506 SHA-512 secure hash standard (DFIPS 180-2) implemented
507 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
508 Extensions version 1 (AVX1), or Advanced Vector Extensions
8275d1aa
TC
509 version 2 (AVX2) instructions, when available.
510
4ff28d4c
DM
511config CRYPTO_SHA1_SPARC64
512 tristate "SHA1 digest algorithm (SPARC64)"
513 depends on SPARC64
514 select CRYPTO_SHA1
515 select CRYPTO_HASH
516 help
517 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
518 using sparc64 crypto instructions, when available.
519
f0be44f4
DM
520config CRYPTO_SHA1_ARM
521 tristate "SHA1 digest algorithm (ARM-asm)"
522 depends on ARM
523 select CRYPTO_SHA1
524 select CRYPTO_HASH
525 help
526 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
527 using optimized ARM assembler.
528
323a6bf1
ME
529config CRYPTO_SHA1_PPC
530 tristate "SHA1 digest algorithm (powerpc)"
531 depends on PPC
532 help
533 This is the powerpc hardware accelerated implementation of the
534 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
535
584fffc8
SS
536config CRYPTO_SHA256
537 tristate "SHA224 and SHA256 digest algorithm"
50e109b5 538 select CRYPTO_HASH
1da177e4 539 help
584fffc8 540 SHA256 secure hash standard (DFIPS 180-2).
1da177e4 541
584fffc8
SS
542 This version of SHA implements a 256 bit hash with 128 bits of
543 security against collision attacks.
2729bb42 544
b6d44341
AB
545 This code also includes SHA-224, a 224 bit hash with 112 bits
546 of security against collision attacks.
584fffc8 547
86c93b24
DM
548config CRYPTO_SHA256_SPARC64
549 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
550 depends on SPARC64
551 select CRYPTO_SHA256
552 select CRYPTO_HASH
553 help
554 SHA-256 secure hash standard (DFIPS 180-2) implemented
555 using sparc64 crypto instructions, when available.
556
584fffc8
SS
557config CRYPTO_SHA512
558 tristate "SHA384 and SHA512 digest algorithms"
bd9d20db 559 select CRYPTO_HASH
b9f535ff 560 help
584fffc8 561 SHA512 secure hash standard (DFIPS 180-2).
b9f535ff 562
584fffc8
SS
563 This version of SHA implements a 512 bit hash with 256 bits of
564 security against collision attacks.
b9f535ff 565
584fffc8
SS
566 This code also includes SHA-384, a 384 bit hash with 192 bits
567 of security against collision attacks.
b9f535ff 568
775e0c69
DM
569config CRYPTO_SHA512_SPARC64
570 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
571 depends on SPARC64
572 select CRYPTO_SHA512
573 select CRYPTO_HASH
574 help
575 SHA-512 secure hash standard (DFIPS 180-2) implemented
576 using sparc64 crypto instructions, when available.
577
584fffc8
SS
578config CRYPTO_TGR192
579 tristate "Tiger digest algorithms"
f63fbd3d 580 select CRYPTO_HASH
eaf44088 581 help
584fffc8 582 Tiger hash algorithm 192, 160 and 128-bit hashes
eaf44088 583
584fffc8
SS
584 Tiger is a hash function optimized for 64-bit processors while
585 still having decent performance on 32-bit processors.
586 Tiger was developed by Ross Anderson and Eli Biham.
eaf44088
JF
587
588 See also:
584fffc8 589 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
eaf44088 590
584fffc8
SS
591config CRYPTO_WP512
592 tristate "Whirlpool digest algorithms"
4946510b 593 select CRYPTO_HASH
1da177e4 594 help
584fffc8 595 Whirlpool hash algorithm 512, 384 and 256-bit hashes
1da177e4 596
584fffc8
SS
597 Whirlpool-512 is part of the NESSIE cryptographic primitives.
598 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1da177e4
LT
599
600 See also:
6d8de74c 601 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
584fffc8 602
0e1227d3
HY
603config CRYPTO_GHASH_CLMUL_NI_INTEL
604 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
8af00860 605 depends on X86 && 64BIT
0e1227d3
HY
606 select CRYPTO_CRYPTD
607 help
608 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
609 The implementation is accelerated by CLMUL-NI of Intel.
610
584fffc8 611comment "Ciphers"
1da177e4
LT
612
613config CRYPTO_AES
614 tristate "AES cipher algorithms"
cce9e06d 615 select CRYPTO_ALGAPI
1da177e4 616 help
584fffc8 617 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
618 algorithm.
619
620 Rijndael appears to be consistently a very good performer in
584fffc8
SS
621 both hardware and software across a wide range of computing
622 environments regardless of its use in feedback or non-feedback
623 modes. Its key setup time is excellent, and its key agility is
624 good. Rijndael's very low memory requirements make it very well
625 suited for restricted-space environments, in which it also
626 demonstrates excellent performance. Rijndael's operations are
627 among the easiest to defend against power and timing attacks.
1da177e4 628
584fffc8 629 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
630
631 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
632
633config CRYPTO_AES_586
634 tristate "AES cipher algorithms (i586)"
cce9e06d
HX
635 depends on (X86 || UML_X86) && !64BIT
636 select CRYPTO_ALGAPI
5157dea8 637 select CRYPTO_AES
1da177e4 638 help
584fffc8 639 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1da177e4
LT
640 algorithm.
641
642 Rijndael appears to be consistently a very good performer in
584fffc8
SS
643 both hardware and software across a wide range of computing
644 environments regardless of its use in feedback or non-feedback
645 modes. Its key setup time is excellent, and its key agility is
646 good. Rijndael's very low memory requirements make it very well
647 suited for restricted-space environments, in which it also
648 demonstrates excellent performance. Rijndael's operations are
649 among the easiest to defend against power and timing attacks.
1da177e4 650
584fffc8 651 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
652
653 See <http://csrc.nist.gov/encryption/aes/> for more information.
654
655config CRYPTO_AES_X86_64
656 tristate "AES cipher algorithms (x86_64)"
cce9e06d
HX
657 depends on (X86 || UML_X86) && 64BIT
658 select CRYPTO_ALGAPI
81190b32 659 select CRYPTO_AES
a2a892a2 660 help
584fffc8 661 AES cipher algorithms (FIPS-197). AES uses the Rijndael
a2a892a2
AS
662 algorithm.
663
664 Rijndael appears to be consistently a very good performer in
584fffc8
SS
665 both hardware and software across a wide range of computing
666 environments regardless of its use in feedback or non-feedback
667 modes. Its key setup time is excellent, and its key agility is
54b6a1bd
HY
668 good. Rijndael's very low memory requirements make it very well
669 suited for restricted-space environments, in which it also
670 demonstrates excellent performance. Rijndael's operations are
671 among the easiest to defend against power and timing attacks.
672
673 The AES specifies three key sizes: 128, 192 and 256 bits
674
675 See <http://csrc.nist.gov/encryption/aes/> for more information.
676
677config CRYPTO_AES_NI_INTEL
678 tristate "AES cipher algorithms (AES-NI)"
8af00860 679 depends on X86
0d258efb
MK
680 select CRYPTO_AES_X86_64 if 64BIT
681 select CRYPTO_AES_586 if !64BIT
54b6a1bd 682 select CRYPTO_CRYPTD
a9629d71 683 select CRYPTO_ABLK_HELPER_X86
54b6a1bd 684 select CRYPTO_ALGAPI
7643a11a 685 select CRYPTO_GLUE_HELPER_X86 if 64BIT
023af608
JK
686 select CRYPTO_LRW
687 select CRYPTO_XTS
54b6a1bd
HY
688 help
689 Use Intel AES-NI instructions for AES algorithm.
690
691 AES cipher algorithms (FIPS-197). AES uses the Rijndael
692 algorithm.
693
694 Rijndael appears to be consistently a very good performer in
695 both hardware and software across a wide range of computing
696 environments regardless of its use in feedback or non-feedback
697 modes. Its key setup time is excellent, and its key agility is
584fffc8
SS
698 good. Rijndael's very low memory requirements make it very well
699 suited for restricted-space environments, in which it also
700 demonstrates excellent performance. Rijndael's operations are
701 among the easiest to defend against power and timing attacks.
a2a892a2 702
584fffc8 703 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
704
705 See <http://csrc.nist.gov/encryption/aes/> for more information.
706
0d258efb
MK
707 In addition to AES cipher algorithm support, the acceleration
708 for some popular block cipher mode is supported too, including
709 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
710 acceleration for CTR.
2cf4ac8b 711
9bf4852d
DM
712config CRYPTO_AES_SPARC64
713 tristate "AES cipher algorithms (SPARC64)"
714 depends on SPARC64
715 select CRYPTO_CRYPTD
716 select CRYPTO_ALGAPI
717 help
718 Use SPARC64 crypto opcodes for AES algorithm.
719
720 AES cipher algorithms (FIPS-197). AES uses the Rijndael
721 algorithm.
722
723 Rijndael appears to be consistently a very good performer in
724 both hardware and software across a wide range of computing
725 environments regardless of its use in feedback or non-feedback
726 modes. Its key setup time is excellent, and its key agility is
727 good. Rijndael's very low memory requirements make it very well
728 suited for restricted-space environments, in which it also
729 demonstrates excellent performance. Rijndael's operations are
730 among the easiest to defend against power and timing attacks.
731
732 The AES specifies three key sizes: 128, 192 and 256 bits
733
734 See <http://csrc.nist.gov/encryption/aes/> for more information.
735
736 In addition to AES cipher algorithm support, the acceleration
737 for some popular block cipher mode is supported too, including
738 ECB and CBC.
739
f0be44f4
DM
740config CRYPTO_AES_ARM
741 tristate "AES cipher algorithms (ARM-asm)"
742 depends on ARM
743 select CRYPTO_ALGAPI
744 select CRYPTO_AES
6fa3eb70 745 select CRYPTO_AES_ARM32_CE if (ARCH_MT6752)
f0be44f4
DM
746 help
747 Use optimized AES assembler routines for ARM platforms.
748
749 AES cipher algorithms (FIPS-197). AES uses the Rijndael
750 algorithm.
751
752 Rijndael appears to be consistently a very good performer in
753 both hardware and software across a wide range of computing
754 environments regardless of its use in feedback or non-feedback
755 modes. Its key setup time is excellent, and its key agility is
756 good. Rijndael's very low memory requirements make it very well
757 suited for restricted-space environments, in which it also
758 demonstrates excellent performance. Rijndael's operations are
759 among the easiest to defend against power and timing attacks.
760
761 The AES specifies three key sizes: 128, 192 and 256 bits
762
763 See <http://csrc.nist.gov/encryption/aes/> for more information.
764
6fa3eb70
S
765config CRYPTO_AES_ARM32_CE
766 tristate "AES cipher using ARMv8 32bits Crypto Extensions"
767 select CRYPTO_ABLK_HELPER
768 help
769 AES cipher using ARMv8 32bits Crypto Extensions (HW) to
770 accelerate.
771
584fffc8
SS
772config CRYPTO_ANUBIS
773 tristate "Anubis cipher algorithm"
774 select CRYPTO_ALGAPI
775 help
776 Anubis cipher algorithm.
777
778 Anubis is a variable key length cipher which can use keys from
779 128 bits to 320 bits in length. It was evaluated as a entrant
780 in the NESSIE competition.
781
782 See also:
6d8de74c
JM
783 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
784 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
584fffc8
SS
785
786config CRYPTO_ARC4
787 tristate "ARC4 cipher algorithm"
b9b0f080 788 select CRYPTO_BLKCIPHER
584fffc8
SS
789 help
790 ARC4 cipher algorithm.
791
792 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
793 bits in length. This algorithm is required for driver-based
794 WEP, but it should not be for other purposes because of the
795 weakness of the algorithm.
796
797config CRYPTO_BLOWFISH
798 tristate "Blowfish cipher algorithm"
799 select CRYPTO_ALGAPI
52ba867c 800 select CRYPTO_BLOWFISH_COMMON
584fffc8
SS
801 help
802 Blowfish cipher algorithm, by Bruce Schneier.
803
804 This is a variable key length cipher which can use keys from 32
805 bits to 448 bits in length. It's fast, simple and specifically
806 designed for use on "large microprocessors".
807
808 See also:
809 <http://www.schneier.com/blowfish.html>
810
52ba867c
JK
811config CRYPTO_BLOWFISH_COMMON
812 tristate
813 help
814 Common parts of the Blowfish cipher algorithm shared by the
815 generic c and the assembler implementations.
816
817 See also:
818 <http://www.schneier.com/blowfish.html>
819
64b94cea
JK
820config CRYPTO_BLOWFISH_X86_64
821 tristate "Blowfish cipher algorithm (x86_64)"
f21a7c19 822 depends on X86 && 64BIT
64b94cea
JK
823 select CRYPTO_ALGAPI
824 select CRYPTO_BLOWFISH_COMMON
825 help
826 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
827
828 This is a variable key length cipher which can use keys from 32
829 bits to 448 bits in length. It's fast, simple and specifically
830 designed for use on "large microprocessors".
831
832 See also:
833 <http://www.schneier.com/blowfish.html>
834
60488010
JK
835config CRYPTO_BLOWFISH_AVX2_X86_64
836 tristate "Blowfish cipher algorithm (x86_64/AVX2)"
837 depends on X86 && 64BIT
edb7c7cd 838 depends on BROKEN
60488010
JK
839 select CRYPTO_ALGAPI
840 select CRYPTO_CRYPTD
841 select CRYPTO_ABLK_HELPER_X86
842 select CRYPTO_BLOWFISH_COMMON
843 select CRYPTO_BLOWFISH_X86_64
844 help
845 Blowfish cipher algorithm (x86_64/AVX2), by Bruce Schneier.
846
847 This is a variable key length cipher which can use keys from 32
848 bits to 448 bits in length. It's fast, simple and specifically
849 designed for use on "large microprocessors".
850
851 See also:
852 <http://www.schneier.com/blowfish.html>
853
584fffc8
SS
854config CRYPTO_CAMELLIA
855 tristate "Camellia cipher algorithms"
856 depends on CRYPTO
857 select CRYPTO_ALGAPI
858 help
859 Camellia cipher algorithms module.
860
861 Camellia is a symmetric key block cipher developed jointly
862 at NTT and Mitsubishi Electric Corporation.
863
864 The Camellia specifies three key sizes: 128, 192 and 256 bits.
865
866 See also:
867 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
868
0b95ec56
JK
869config CRYPTO_CAMELLIA_X86_64
870 tristate "Camellia cipher algorithm (x86_64)"
f21a7c19 871 depends on X86 && 64BIT
0b95ec56
JK
872 depends on CRYPTO
873 select CRYPTO_ALGAPI
964263af 874 select CRYPTO_GLUE_HELPER_X86
0b95ec56
JK
875 select CRYPTO_LRW
876 select CRYPTO_XTS
877 help
878 Camellia cipher algorithm module (x86_64).
879
880 Camellia is a symmetric key block cipher developed jointly
881 at NTT and Mitsubishi Electric Corporation.
882
883 The Camellia specifies three key sizes: 128, 192 and 256 bits.
884
885 See also:
d9b1d2e7
JK
886 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
887
888config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
889 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
890 depends on X86 && 64BIT
891 depends on CRYPTO
892 select CRYPTO_ALGAPI
893 select CRYPTO_CRYPTD
894 select CRYPTO_ABLK_HELPER_X86
895 select CRYPTO_GLUE_HELPER_X86
896 select CRYPTO_CAMELLIA_X86_64
897 select CRYPTO_LRW
898 select CRYPTO_XTS
899 help
900 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
901
902 Camellia is a symmetric key block cipher developed jointly
903 at NTT and Mitsubishi Electric Corporation.
904
905 The Camellia specifies three key sizes: 128, 192 and 256 bits.
906
907 See also:
0b95ec56
JK
908 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
909
f3f935a7
JK
910config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
911 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
912 depends on X86 && 64BIT
913 depends on CRYPTO
914 select CRYPTO_ALGAPI
915 select CRYPTO_CRYPTD
916 select CRYPTO_ABLK_HELPER_X86
917 select CRYPTO_GLUE_HELPER_X86
918 select CRYPTO_CAMELLIA_X86_64
919 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
920 select CRYPTO_LRW
921 select CRYPTO_XTS
922 help
923 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
924
925 Camellia is a symmetric key block cipher developed jointly
926 at NTT and Mitsubishi Electric Corporation.
927
928 The Camellia specifies three key sizes: 128, 192 and 256 bits.
929
930 See also:
931 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
932
81658ad0
DM
933config CRYPTO_CAMELLIA_SPARC64
934 tristate "Camellia cipher algorithm (SPARC64)"
935 depends on SPARC64
936 depends on CRYPTO
937 select CRYPTO_ALGAPI
938 help
939 Camellia cipher algorithm module (SPARC64).
940
941 Camellia is a symmetric key block cipher developed jointly
942 at NTT and Mitsubishi Electric Corporation.
943
944 The Camellia specifies three key sizes: 128, 192 and 256 bits.
945
946 See also:
947 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
948
044ab525
JK
949config CRYPTO_CAST_COMMON
950 tristate
951 help
952 Common parts of the CAST cipher algorithms shared by the
953 generic c and the assembler implementations.
954
1da177e4
LT
955config CRYPTO_CAST5
956 tristate "CAST5 (CAST-128) cipher algorithm"
cce9e06d 957 select CRYPTO_ALGAPI
044ab525 958 select CRYPTO_CAST_COMMON
1da177e4
LT
959 help
960 The CAST5 encryption algorithm (synonymous with CAST-128) is
961 described in RFC2144.
962
4d6d6a2c
JG
963config CRYPTO_CAST5_AVX_X86_64
964 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
965 depends on X86 && 64BIT
966 select CRYPTO_ALGAPI
967 select CRYPTO_CRYPTD
968 select CRYPTO_ABLK_HELPER_X86
044ab525 969 select CRYPTO_CAST_COMMON
4d6d6a2c
JG
970 select CRYPTO_CAST5
971 help
972 The CAST5 encryption algorithm (synonymous with CAST-128) is
973 described in RFC2144.
974
975 This module provides the Cast5 cipher algorithm that processes
976 sixteen blocks parallel using the AVX instruction set.
977
1da177e4
LT
978config CRYPTO_CAST6
979 tristate "CAST6 (CAST-256) cipher algorithm"
cce9e06d 980 select CRYPTO_ALGAPI
044ab525 981 select CRYPTO_CAST_COMMON
1da177e4
LT
982 help
983 The CAST6 encryption algorithm (synonymous with CAST-256) is
984 described in RFC2612.
985
4ea1277d
JG
986config CRYPTO_CAST6_AVX_X86_64
987 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
988 depends on X86 && 64BIT
989 select CRYPTO_ALGAPI
990 select CRYPTO_CRYPTD
991 select CRYPTO_ABLK_HELPER_X86
992 select CRYPTO_GLUE_HELPER_X86
044ab525 993 select CRYPTO_CAST_COMMON
4ea1277d
JG
994 select CRYPTO_CAST6
995 select CRYPTO_LRW
996 select CRYPTO_XTS
997 help
998 The CAST6 encryption algorithm (synonymous with CAST-256) is
999 described in RFC2612.
1000
1001 This module provides the Cast6 cipher algorithm that processes
1002 eight blocks parallel using the AVX instruction set.
1003
584fffc8
SS
1004config CRYPTO_DES
1005 tristate "DES and Triple DES EDE cipher algorithms"
cce9e06d 1006 select CRYPTO_ALGAPI
1da177e4 1007 help
584fffc8 1008 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
fb4f10ed 1009
c5aac2df
DM
1010config CRYPTO_DES_SPARC64
1011 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
97da37b3 1012 depends on SPARC64
c5aac2df
DM
1013 select CRYPTO_ALGAPI
1014 select CRYPTO_DES
1015 help
1016 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1017 optimized using SPARC64 crypto opcodes.
1018
584fffc8
SS
1019config CRYPTO_FCRYPT
1020 tristate "FCrypt cipher algorithm"
cce9e06d 1021 select CRYPTO_ALGAPI
584fffc8 1022 select CRYPTO_BLKCIPHER
1da177e4 1023 help
584fffc8 1024 FCrypt algorithm used by RxRPC.
1da177e4
LT
1025
1026config CRYPTO_KHAZAD
1027 tristate "Khazad cipher algorithm"
cce9e06d 1028 select CRYPTO_ALGAPI
1da177e4
LT
1029 help
1030 Khazad cipher algorithm.
1031
1032 Khazad was a finalist in the initial NESSIE competition. It is
1033 an algorithm optimized for 64-bit processors with good performance
1034 on 32-bit processors. Khazad uses an 128 bit key size.
1035
1036 See also:
6d8de74c 1037 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1da177e4 1038
2407d608 1039config CRYPTO_SALSA20
3b4afaf2 1040 tristate "Salsa20 stream cipher algorithm"
2407d608
TSH
1041 select CRYPTO_BLKCIPHER
1042 help
1043 Salsa20 stream cipher algorithm.
1044
1045 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1046 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
974e4b75
TSH
1047
1048 The Salsa20 stream cipher algorithm is designed by Daniel J.
1049 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1050
1051config CRYPTO_SALSA20_586
3b4afaf2 1052 tristate "Salsa20 stream cipher algorithm (i586)"
974e4b75 1053 depends on (X86 || UML_X86) && !64BIT
974e4b75 1054 select CRYPTO_BLKCIPHER
974e4b75
TSH
1055 help
1056 Salsa20 stream cipher algorithm.
1057
1058 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1059 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
9a7dafbb
TSH
1060
1061 The Salsa20 stream cipher algorithm is designed by Daniel J.
1062 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1063
1064config CRYPTO_SALSA20_X86_64
3b4afaf2 1065 tristate "Salsa20 stream cipher algorithm (x86_64)"
9a7dafbb 1066 depends on (X86 || UML_X86) && 64BIT
9a7dafbb 1067 select CRYPTO_BLKCIPHER
9a7dafbb
TSH
1068 help
1069 Salsa20 stream cipher algorithm.
1070
1071 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1072 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
2407d608
TSH
1073
1074 The Salsa20 stream cipher algorithm is designed by Daniel J.
1075 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1da177e4 1076
584fffc8
SS
1077config CRYPTO_SEED
1078 tristate "SEED cipher algorithm"
cce9e06d 1079 select CRYPTO_ALGAPI
1da177e4 1080 help
584fffc8 1081 SEED cipher algorithm (RFC4269).
1da177e4 1082
584fffc8
SS
1083 SEED is a 128-bit symmetric key block cipher that has been
1084 developed by KISA (Korea Information Security Agency) as a
1085 national standard encryption algorithm of the Republic of Korea.
1086 It is a 16 round block cipher with the key size of 128 bit.
1087
1088 See also:
1089 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1090
1091config CRYPTO_SERPENT
1092 tristate "Serpent cipher algorithm"
cce9e06d 1093 select CRYPTO_ALGAPI
1da177e4 1094 help
584fffc8 1095 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1da177e4 1096
584fffc8
SS
1097 Keys are allowed to be from 0 to 256 bits in length, in steps
1098 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1099 variant of Serpent for compatibility with old kerneli.org code.
1100
1101 See also:
1102 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1103
937c30d7
JK
1104config CRYPTO_SERPENT_SSE2_X86_64
1105 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1106 depends on X86 && 64BIT
1107 select CRYPTO_ALGAPI
341975bf 1108 select CRYPTO_CRYPTD
ffaf9156 1109 select CRYPTO_ABLK_HELPER_X86
596d8750 1110 select CRYPTO_GLUE_HELPER_X86
937c30d7 1111 select CRYPTO_SERPENT
feaf0cfc
JK
1112 select CRYPTO_LRW
1113 select CRYPTO_XTS
937c30d7
JK
1114 help
1115 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1116
1117 Keys are allowed to be from 0 to 256 bits in length, in steps
1118 of 8 bits.
1119
1120 This module provides Serpent cipher algorithm that processes eigth
1121 blocks parallel using SSE2 instruction set.
1122
1123 See also:
1124 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1125
251496db
JK
1126config CRYPTO_SERPENT_SSE2_586
1127 tristate "Serpent cipher algorithm (i586/SSE2)"
1128 depends on X86 && !64BIT
1129 select CRYPTO_ALGAPI
341975bf 1130 select CRYPTO_CRYPTD
ffaf9156 1131 select CRYPTO_ABLK_HELPER_X86
596d8750 1132 select CRYPTO_GLUE_HELPER_X86
251496db 1133 select CRYPTO_SERPENT
feaf0cfc
JK
1134 select CRYPTO_LRW
1135 select CRYPTO_XTS
251496db
JK
1136 help
1137 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1138
1139 Keys are allowed to be from 0 to 256 bits in length, in steps
1140 of 8 bits.
1141
1142 This module provides Serpent cipher algorithm that processes four
1143 blocks parallel using SSE2 instruction set.
1144
1145 See also:
1146 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
7efe4076
JG
1147
1148config CRYPTO_SERPENT_AVX_X86_64
1149 tristate "Serpent cipher algorithm (x86_64/AVX)"
1150 depends on X86 && 64BIT
1151 select CRYPTO_ALGAPI
1152 select CRYPTO_CRYPTD
ffaf9156 1153 select CRYPTO_ABLK_HELPER_X86
1d0debbd 1154 select CRYPTO_GLUE_HELPER_X86
7efe4076
JG
1155 select CRYPTO_SERPENT
1156 select CRYPTO_LRW
1157 select CRYPTO_XTS
1158 help
1159 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1160
1161 Keys are allowed to be from 0 to 256 bits in length, in steps
1162 of 8 bits.
1163
1164 This module provides the Serpent cipher algorithm that processes
1165 eight blocks parallel using the AVX instruction set.
1166
1167 See also:
1168 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
251496db 1169
56d76c96
JK
1170config CRYPTO_SERPENT_AVX2_X86_64
1171 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1172 depends on X86 && 64BIT
1173 select CRYPTO_ALGAPI
1174 select CRYPTO_CRYPTD
1175 select CRYPTO_ABLK_HELPER_X86
1176 select CRYPTO_GLUE_HELPER_X86
1177 select CRYPTO_SERPENT
1178 select CRYPTO_SERPENT_AVX_X86_64
1179 select CRYPTO_LRW
1180 select CRYPTO_XTS
1181 help
1182 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1183
1184 Keys are allowed to be from 0 to 256 bits in length, in steps
1185 of 8 bits.
1186
1187 This module provides Serpent cipher algorithm that processes 16
1188 blocks parallel using AVX2 instruction set.
1189
1190 See also:
1191 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1192
584fffc8
SS
1193config CRYPTO_TEA
1194 tristate "TEA, XTEA and XETA cipher algorithms"
cce9e06d 1195 select CRYPTO_ALGAPI
1da177e4 1196 help
584fffc8 1197 TEA cipher algorithm.
1da177e4 1198
584fffc8
SS
1199 Tiny Encryption Algorithm is a simple cipher that uses
1200 many rounds for security. It is very fast and uses
1201 little memory.
1202
1203 Xtendend Tiny Encryption Algorithm is a modification to
1204 the TEA algorithm to address a potential key weakness
1205 in the TEA algorithm.
1206
1207 Xtendend Encryption Tiny Algorithm is a mis-implementation
1208 of the XTEA algorithm for compatibility purposes.
1209
1210config CRYPTO_TWOFISH
1211 tristate "Twofish cipher algorithm"
04ac7db3 1212 select CRYPTO_ALGAPI
584fffc8 1213 select CRYPTO_TWOFISH_COMMON
04ac7db3 1214 help
584fffc8 1215 Twofish cipher algorithm.
04ac7db3 1216
584fffc8
SS
1217 Twofish was submitted as an AES (Advanced Encryption Standard)
1218 candidate cipher by researchers at CounterPane Systems. It is a
1219 16 round block cipher supporting key sizes of 128, 192, and 256
1220 bits.
04ac7db3 1221
584fffc8
SS
1222 See also:
1223 <http://www.schneier.com/twofish.html>
1224
1225config CRYPTO_TWOFISH_COMMON
1226 tristate
1227 help
1228 Common parts of the Twofish cipher algorithm shared by the
1229 generic c and the assembler implementations.
1230
1231config CRYPTO_TWOFISH_586
1232 tristate "Twofish cipher algorithms (i586)"
1233 depends on (X86 || UML_X86) && !64BIT
1234 select CRYPTO_ALGAPI
1235 select CRYPTO_TWOFISH_COMMON
1236 help
1237 Twofish cipher algorithm.
1238
1239 Twofish was submitted as an AES (Advanced Encryption Standard)
1240 candidate cipher by researchers at CounterPane Systems. It is a
1241 16 round block cipher supporting key sizes of 128, 192, and 256
1242 bits.
04ac7db3
NT
1243
1244 See also:
584fffc8 1245 <http://www.schneier.com/twofish.html>
04ac7db3 1246
584fffc8
SS
1247config CRYPTO_TWOFISH_X86_64
1248 tristate "Twofish cipher algorithm (x86_64)"
1249 depends on (X86 || UML_X86) && 64BIT
cce9e06d 1250 select CRYPTO_ALGAPI
584fffc8 1251 select CRYPTO_TWOFISH_COMMON
1da177e4 1252 help
584fffc8 1253 Twofish cipher algorithm (x86_64).
1da177e4 1254
584fffc8
SS
1255 Twofish was submitted as an AES (Advanced Encryption Standard)
1256 candidate cipher by researchers at CounterPane Systems. It is a
1257 16 round block cipher supporting key sizes of 128, 192, and 256
1258 bits.
1259
1260 See also:
1261 <http://www.schneier.com/twofish.html>
1262
8280daad
JK
1263config CRYPTO_TWOFISH_X86_64_3WAY
1264 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
f21a7c19 1265 depends on X86 && 64BIT
8280daad
JK
1266 select CRYPTO_ALGAPI
1267 select CRYPTO_TWOFISH_COMMON
1268 select CRYPTO_TWOFISH_X86_64
414cb5e7 1269 select CRYPTO_GLUE_HELPER_X86
e7cda5d2
JK
1270 select CRYPTO_LRW
1271 select CRYPTO_XTS
8280daad
JK
1272 help
1273 Twofish cipher algorithm (x86_64, 3-way parallel).
1274
1275 Twofish was submitted as an AES (Advanced Encryption Standard)
1276 candidate cipher by researchers at CounterPane Systems. It is a
1277 16 round block cipher supporting key sizes of 128, 192, and 256
1278 bits.
1279
1280 This module provides Twofish cipher algorithm that processes three
1281 blocks parallel, utilizing resources of out-of-order CPUs better.
1282
1283 See also:
1284 <http://www.schneier.com/twofish.html>
1285
107778b5
JG
1286config CRYPTO_TWOFISH_AVX_X86_64
1287 tristate "Twofish cipher algorithm (x86_64/AVX)"
1288 depends on X86 && 64BIT
1289 select CRYPTO_ALGAPI
1290 select CRYPTO_CRYPTD
30a04008 1291 select CRYPTO_ABLK_HELPER_X86
a7378d4e 1292 select CRYPTO_GLUE_HELPER_X86
107778b5
JG
1293 select CRYPTO_TWOFISH_COMMON
1294 select CRYPTO_TWOFISH_X86_64
1295 select CRYPTO_TWOFISH_X86_64_3WAY
1296 select CRYPTO_LRW
1297 select CRYPTO_XTS
1298 help
1299 Twofish cipher algorithm (x86_64/AVX).
1300
1301 Twofish was submitted as an AES (Advanced Encryption Standard)
1302 candidate cipher by researchers at CounterPane Systems. It is a
1303 16 round block cipher supporting key sizes of 128, 192, and 256
1304 bits.
1305
1306 This module provides the Twofish cipher algorithm that processes
1307 eight blocks parallel using the AVX Instruction Set.
1308
1309 See also:
1310 <http://www.schneier.com/twofish.html>
1311
cf1521a1
JK
1312config CRYPTO_TWOFISH_AVX2_X86_64
1313 tristate "Twofish cipher algorithm (x86_64/AVX2)"
1314 depends on X86 && 64BIT
3ef91f21 1315 depends on BROKEN
cf1521a1
JK
1316 select CRYPTO_ALGAPI
1317 select CRYPTO_CRYPTD
1318 select CRYPTO_ABLK_HELPER_X86
1319 select CRYPTO_GLUE_HELPER_X86
1320 select CRYPTO_TWOFISH_COMMON
1321 select CRYPTO_TWOFISH_X86_64
1322 select CRYPTO_TWOFISH_X86_64_3WAY
1323 select CRYPTO_TWOFISH_AVX_X86_64
1324 select CRYPTO_LRW
1325 select CRYPTO_XTS
1326 help
1327 Twofish cipher algorithm (x86_64/AVX2).
1328
1329 Twofish was submitted as an AES (Advanced Encryption Standard)
1330 candidate cipher by researchers at CounterPane Systems. It is a
1331 16 round block cipher supporting key sizes of 128, 192, and 256
1332 bits.
1333
1334 See also:
1335 <http://www.schneier.com/twofish.html>
1336
584fffc8
SS
1337comment "Compression"
1338
1339config CRYPTO_DEFLATE
1340 tristate "Deflate compression algorithm"
1341 select CRYPTO_ALGAPI
1342 select ZLIB_INFLATE
1343 select ZLIB_DEFLATE
3c09f17c 1344 help
584fffc8
SS
1345 This is the Deflate algorithm (RFC1951), specified for use in
1346 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1347
1348 You will most probably want this if using IPSec.
3c09f17c 1349
bf68e65e
GU
1350config CRYPTO_ZLIB
1351 tristate "Zlib compression algorithm"
1352 select CRYPTO_PCOMP
1353 select ZLIB_INFLATE
1354 select ZLIB_DEFLATE
1355 select NLATTR
1356 help
1357 This is the zlib algorithm.
1358
0b77abb3
ZS
1359config CRYPTO_LZO
1360 tristate "LZO compression algorithm"
1361 select CRYPTO_ALGAPI
1362 select LZO_COMPRESS
1363 select LZO_DECOMPRESS
1364 help
1365 This is the LZO algorithm.
1366
4b9e9796
S
1367config CRYPTO_LZ4K
1368 tristate "LZ4K compression algorithm"
1369 select CRYPTO_ALGAPI
1370 help
1371 This is the LZ4K algorithm.
1372
35a1fc18
SJ
1373config CRYPTO_842
1374 tristate "842 compression algorithm"
1375 depends on CRYPTO_DEV_NX_COMPRESS
1376 # 842 uses lzo if the hardware becomes unavailable
1377 select LZO_COMPRESS
1378 select LZO_DECOMPRESS
1379 help
1380 This is the 842 algorithm.
1381
17f0f4a4
NH
1382comment "Random Number Generation"
1383
1384config CRYPTO_ANSI_CPRNG
1385 tristate "Pseudo Random Number Generation for Cryptographic modules"
4e4ed83b 1386 default m
17f0f4a4
NH
1387 select CRYPTO_AES
1388 select CRYPTO_RNG
17f0f4a4
NH
1389 help
1390 This option enables the generic pseudo random number generator
1391 for cryptographic modules. Uses the Algorithm specified in
7dd607e8
JK
1392 ANSI X9.31 A.2.4. Note that this option must be enabled if
1393 CRYPTO_FIPS is selected
17f0f4a4 1394
03c8efc1
HX
1395config CRYPTO_USER_API
1396 tristate
1397
fe869cdb
HX
1398config CRYPTO_USER_API_HASH
1399 tristate "User-space interface for hash algorithms"
7451708f 1400 depends on NET
fe869cdb
HX
1401 select CRYPTO_HASH
1402 select CRYPTO_USER_API
1403 help
1404 This option enables the user-spaces interface for hash
1405 algorithms.
1406
8ff59090
HX
1407config CRYPTO_USER_API_SKCIPHER
1408 tristate "User-space interface for symmetric key cipher algorithms"
7451708f 1409 depends on NET
8ff59090
HX
1410 select CRYPTO_BLKCIPHER
1411 select CRYPTO_USER_API
1412 help
1413 This option enables the user-spaces interface for symmetric
1414 key cipher algorithms.
1415
1da177e4 1416source "drivers/crypto/Kconfig"
964f3b3b 1417source crypto/asymmetric_keys/Kconfig
1da177e4 1418
cce9e06d 1419endif # if CRYPTO