]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - crypto/Kconfig
[CRYPTO] aead: Create default givcipher instances
[mirror_ubuntu-bionic-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
1da177e4
LT
16 bool "Cryptographic API"
17 help
18 This option provides the core Cryptographic API.
19
cce9e06d
HX
20if CRYPTO
21
22config CRYPTO_ALGAPI
23 tristate
24 help
25 This option provides the API for cryptographic algorithms.
26
1ae97820
HX
27config CRYPTO_AEAD
28 tristate
29 select CRYPTO_ALGAPI
30
5cde0af2
HX
31config CRYPTO_BLKCIPHER
32 tristate
33 select CRYPTO_ALGAPI
34
0a270321
HX
35config CRYPTO_SEQIV
36 tristate "Sequence Number IV Generator"
37 select CRYPTO_BLKCIPHER
38 help
39 This IV generator generates an IV based on a sequence number by
40 xoring it with a salt. This algorithm is mainly useful for CTR
41 and similar modes.
42
055bcee3
HX
43config CRYPTO_HASH
44 tristate
45 select CRYPTO_ALGAPI
46
2b8c19db
HX
47config CRYPTO_MANAGER
48 tristate "Cryptographic algorithm manager"
49 select CRYPTO_ALGAPI
2b8c19db
HX
50 help
51 Create default cryptographic template instantiations such as
52 cbc(aes).
53
1da177e4 54config CRYPTO_HMAC
8425165d 55 tristate "HMAC support"
0796ae06 56 select CRYPTO_HASH
43518407 57 select CRYPTO_MANAGER
1da177e4
LT
58 help
59 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
60 This is required for IPSec.
61
333b0d7e
KM
62config CRYPTO_XCBC
63 tristate "XCBC support"
64 depends on EXPERIMENTAL
65 select CRYPTO_HASH
66 select CRYPTO_MANAGER
67 help
68 XCBC: Keyed-Hashing with encryption algorithm
69 http://www.ietf.org/rfc/rfc3566.txt
70 http://csrc.nist.gov/encryption/modes/proposedmodes/
71 xcbc-mac/xcbc-mac-spec.pdf
72
1da177e4
LT
73config CRYPTO_NULL
74 tristate "Null algorithms"
cce9e06d 75 select CRYPTO_ALGAPI
1da177e4
LT
76 help
77 These are 'Null' algorithms, used by IPsec, which do nothing.
78
79config CRYPTO_MD4
80 tristate "MD4 digest algorithm"
cce9e06d 81 select CRYPTO_ALGAPI
1da177e4
LT
82 help
83 MD4 message digest algorithm (RFC1320).
84
85config CRYPTO_MD5
86 tristate "MD5 digest algorithm"
cce9e06d 87 select CRYPTO_ALGAPI
1da177e4
LT
88 help
89 MD5 message digest algorithm (RFC1321).
90
91config CRYPTO_SHA1
92 tristate "SHA1 digest algorithm"
cce9e06d 93 select CRYPTO_ALGAPI
1da177e4
LT
94 help
95 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
96
1da177e4 97config CRYPTO_SHA256
cd12fb90 98 tristate "SHA224 and SHA256 digest algorithm"
cce9e06d 99 select CRYPTO_ALGAPI
1da177e4
LT
100 help
101 SHA256 secure hash standard (DFIPS 180-2).
102
103 This version of SHA implements a 256 bit hash with 128 bits of
104 security against collision attacks.
105
cd12fb90
JL
106 This code also includes SHA-224, a 224 bit hash with 112 bits
107 of security against collision attacks.
108
1da177e4
LT
109config CRYPTO_SHA512
110 tristate "SHA384 and SHA512 digest algorithms"
cce9e06d 111 select CRYPTO_ALGAPI
1da177e4
LT
112 help
113 SHA512 secure hash standard (DFIPS 180-2).
114
115 This version of SHA implements a 512 bit hash with 256 bits of
116 security against collision attacks.
117
118 This code also includes SHA-384, a 384 bit hash with 192 bits
119 of security against collision attacks.
120
121config CRYPTO_WP512
122 tristate "Whirlpool digest algorithms"
cce9e06d 123 select CRYPTO_ALGAPI
1da177e4
LT
124 help
125 Whirlpool hash algorithm 512, 384 and 256-bit hashes
126
127 Whirlpool-512 is part of the NESSIE cryptographic primitives.
128 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
129
130 See also:
131 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
132
133config CRYPTO_TGR192
134 tristate "Tiger digest algorithms"
cce9e06d 135 select CRYPTO_ALGAPI
1da177e4
LT
136 help
137 Tiger hash algorithm 192, 160 and 128-bit hashes
138
139 Tiger is a hash function optimized for 64-bit processors while
140 still having decent performance on 32-bit processors.
141 Tiger was developed by Ross Anderson and Eli Biham.
142
143 See also:
144 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
145
c494e070
RS
146config CRYPTO_GF128MUL
147 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
148 depends on EXPERIMENTAL
149 help
150 Efficient table driven implementation of multiplications in the
151 field GF(2^128). This is needed by some cypher modes. This
152 option will be selected automatically if you select such a
153 cipher mode. Only select this option by hand if you expect to load
154 an external module that requires these functions.
155
db131ef9
HX
156config CRYPTO_ECB
157 tristate "ECB support"
158 select CRYPTO_BLKCIPHER
43518407 159 select CRYPTO_MANAGER
db131ef9
HX
160 help
161 ECB: Electronic CodeBook mode
162 This is the simplest block cipher algorithm. It simply encrypts
163 the input block by block.
164
165config CRYPTO_CBC
166 tristate "CBC support"
167 select CRYPTO_BLKCIPHER
43518407 168 select CRYPTO_MANAGER
db131ef9
HX
169 help
170 CBC: Cipher Block Chaining mode
171 This block cipher algorithm is required for IPSec.
172
91652be5
DH
173config CRYPTO_PCBC
174 tristate "PCBC support"
175 select CRYPTO_BLKCIPHER
176 select CRYPTO_MANAGER
91652be5
DH
177 help
178 PCBC: Propagating Cipher Block Chaining mode
179 This block cipher algorithm is required for RxRPC.
180
64470f1b
RS
181config CRYPTO_LRW
182 tristate "LRW support (EXPERIMENTAL)"
183 depends on EXPERIMENTAL
184 select CRYPTO_BLKCIPHER
185 select CRYPTO_MANAGER
186 select CRYPTO_GF128MUL
187 help
188 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
189 narrow block cipher mode for dm-crypt. Use it with cipher
190 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
191 The first 128, 192 or 256 bits in the key are used for AES and the
192 rest is used to tie each cipher block to its logical position.
193
f19f5111
RS
194config CRYPTO_XTS
195 tristate "XTS support (EXPERIMENTAL)"
196 depends on EXPERIMENTAL
197 select CRYPTO_BLKCIPHER
198 select CRYPTO_MANAGER
199 select CRYPTO_GF128MUL
200 help
201 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
202 key size 256, 384 or 512 bits. This implementation currently
203 can't handle a sectorsize which is not a multiple of 16 bytes.
204
23e353c8
JL
205config CRYPTO_CTR
206 tristate "CTR support"
207 select CRYPTO_BLKCIPHER
0a270321 208 select CRYPTO_SEQIV
23e353c8 209 select CRYPTO_MANAGER
23e353c8
JL
210 help
211 CTR: Counter mode
212 This block cipher algorithm is required for IPSec.
213
28db8e3e
MH
214config CRYPTO_GCM
215 tristate "GCM/GMAC support"
216 select CRYPTO_CTR
217 select CRYPTO_AEAD
218 select CRYPTO_GF128MUL
219 help
220 Support for Galois/Counter Mode (GCM) and Galois Message
221 Authentication Code (GMAC). Required for IPSec.
222
124b53d0
HX
223config CRYPTO_CRYPTD
224 tristate "Software async crypto daemon"
653ebd9c 225 select CRYPTO_BLKCIPHER
124b53d0
HX
226 select CRYPTO_MANAGER
227 help
228 This is a generic software asynchronous crypto daemon that
229 converts an arbitrary synchronous software crypto algorithm
230 into an asynchronous algorithm that executes in a kernel thread.
231
1da177e4
LT
232config CRYPTO_DES
233 tristate "DES and Triple DES EDE cipher algorithms"
cce9e06d 234 select CRYPTO_ALGAPI
1da177e4
LT
235 help
236 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
237
90831639
DH
238config CRYPTO_FCRYPT
239 tristate "FCrypt cipher algorithm"
240 select CRYPTO_ALGAPI
241 select CRYPTO_BLKCIPHER
242 help
243 FCrypt algorithm used by RxRPC.
244
1da177e4
LT
245config CRYPTO_BLOWFISH
246 tristate "Blowfish cipher algorithm"
cce9e06d 247 select CRYPTO_ALGAPI
1da177e4
LT
248 help
249 Blowfish cipher algorithm, by Bruce Schneier.
250
251 This is a variable key length cipher which can use keys from 32
252 bits to 448 bits in length. It's fast, simple and specifically
253 designed for use on "large microprocessors".
254
255 See also:
256 <http://www.schneier.com/blowfish.html>
257
258config CRYPTO_TWOFISH
259 tristate "Twofish cipher algorithm"
cce9e06d 260 select CRYPTO_ALGAPI
2729bb42 261 select CRYPTO_TWOFISH_COMMON
1da177e4
LT
262 help
263 Twofish cipher algorithm.
264
265 Twofish was submitted as an AES (Advanced Encryption Standard)
266 candidate cipher by researchers at CounterPane Systems. It is a
267 16 round block cipher supporting key sizes of 128, 192, and 256
268 bits.
269
270 See also:
271 <http://www.schneier.com/twofish.html>
272
2729bb42
JF
273config CRYPTO_TWOFISH_COMMON
274 tristate
2729bb42
JF
275 help
276 Common parts of the Twofish cipher algorithm shared by the
277 generic c and the assembler implementations.
278
b9f535ff
JF
279config CRYPTO_TWOFISH_586
280 tristate "Twofish cipher algorithms (i586)"
cce9e06d
HX
281 depends on (X86 || UML_X86) && !64BIT
282 select CRYPTO_ALGAPI
b9f535ff
JF
283 select CRYPTO_TWOFISH_COMMON
284 help
285 Twofish cipher algorithm.
286
287 Twofish was submitted as an AES (Advanced Encryption Standard)
288 candidate cipher by researchers at CounterPane Systems. It is a
289 16 round block cipher supporting key sizes of 128, 192, and 256
290 bits.
291
292 See also:
293 <http://www.schneier.com/twofish.html>
294
eaf44088
JF
295config CRYPTO_TWOFISH_X86_64
296 tristate "Twofish cipher algorithm (x86_64)"
cce9e06d
HX
297 depends on (X86 || UML_X86) && 64BIT
298 select CRYPTO_ALGAPI
eaf44088
JF
299 select CRYPTO_TWOFISH_COMMON
300 help
301 Twofish cipher algorithm (x86_64).
302
303 Twofish was submitted as an AES (Advanced Encryption Standard)
304 candidate cipher by researchers at CounterPane Systems. It is a
305 16 round block cipher supporting key sizes of 128, 192, and 256
306 bits.
307
308 See also:
309 <http://www.schneier.com/twofish.html>
310
1da177e4
LT
311config CRYPTO_SERPENT
312 tristate "Serpent cipher algorithm"
cce9e06d 313 select CRYPTO_ALGAPI
1da177e4
LT
314 help
315 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
316
317 Keys are allowed to be from 0 to 256 bits in length, in steps
318 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
3dde6ad8 319 variant of Serpent for compatibility with old kerneli.org code.
1da177e4
LT
320
321 See also:
322 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
323
324config CRYPTO_AES
325 tristate "AES cipher algorithms"
cce9e06d 326 select CRYPTO_ALGAPI
1da177e4
LT
327 help
328 AES cipher algorithms (FIPS-197). AES uses the Rijndael
329 algorithm.
330
331 Rijndael appears to be consistently a very good performer in
332 both hardware and software across a wide range of computing
333 environments regardless of its use in feedback or non-feedback
334 modes. Its key setup time is excellent, and its key agility is
335 good. Rijndael's very low memory requirements make it very well
336 suited for restricted-space environments, in which it also
337 demonstrates excellent performance. Rijndael's operations are
338 among the easiest to defend against power and timing attacks.
339
340 The AES specifies three key sizes: 128, 192 and 256 bits
341
342 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
343
344config CRYPTO_AES_586
345 tristate "AES cipher algorithms (i586)"
cce9e06d
HX
346 depends on (X86 || UML_X86) && !64BIT
347 select CRYPTO_ALGAPI
5157dea8 348 select CRYPTO_AES
1da177e4
LT
349 help
350 AES cipher algorithms (FIPS-197). AES uses the Rijndael
351 algorithm.
352
353 Rijndael appears to be consistently a very good performer in
354 both hardware and software across a wide range of computing
355 environments regardless of its use in feedback or non-feedback
356 modes. Its key setup time is excellent, and its key agility is
357 good. Rijndael's very low memory requirements make it very well
358 suited for restricted-space environments, in which it also
359 demonstrates excellent performance. Rijndael's operations are
360 among the easiest to defend against power and timing attacks.
361
362 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
363
364 See <http://csrc.nist.gov/encryption/aes/> for more information.
365
366config CRYPTO_AES_X86_64
367 tristate "AES cipher algorithms (x86_64)"
cce9e06d
HX
368 depends on (X86 || UML_X86) && 64BIT
369 select CRYPTO_ALGAPI
81190b32 370 select CRYPTO_AES
a2a892a2
AS
371 help
372 AES cipher algorithms (FIPS-197). AES uses the Rijndael
373 algorithm.
374
375 Rijndael appears to be consistently a very good performer in
376 both hardware and software across a wide range of computing
377 environments regardless of its use in feedback or non-feedback
378 modes. Its key setup time is excellent, and its key agility is
379 good. Rijndael's very low memory requirements make it very well
380 suited for restricted-space environments, in which it also
381 demonstrates excellent performance. Rijndael's operations are
382 among the easiest to defend against power and timing attacks.
383
384 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
385
386 See <http://csrc.nist.gov/encryption/aes/> for more information.
387
388config CRYPTO_CAST5
389 tristate "CAST5 (CAST-128) cipher algorithm"
cce9e06d 390 select CRYPTO_ALGAPI
1da177e4
LT
391 help
392 The CAST5 encryption algorithm (synonymous with CAST-128) is
393 described in RFC2144.
394
395config CRYPTO_CAST6
396 tristate "CAST6 (CAST-256) cipher algorithm"
cce9e06d 397 select CRYPTO_ALGAPI
1da177e4
LT
398 help
399 The CAST6 encryption algorithm (synonymous with CAST-256) is
400 described in RFC2612.
401
402config CRYPTO_TEA
fb4f10ed 403 tristate "TEA, XTEA and XETA cipher algorithms"
cce9e06d 404 select CRYPTO_ALGAPI
1da177e4
LT
405 help
406 TEA cipher algorithm.
407
408 Tiny Encryption Algorithm is a simple cipher that uses
409 many rounds for security. It is very fast and uses
410 little memory.
411
412 Xtendend Tiny Encryption Algorithm is a modification to
413 the TEA algorithm to address a potential key weakness
414 in the TEA algorithm.
415
fb4f10ed
AG
416 Xtendend Encryption Tiny Algorithm is a mis-implementation
417 of the XTEA algorithm for compatibility purposes.
418
1da177e4
LT
419config CRYPTO_ARC4
420 tristate "ARC4 cipher algorithm"
cce9e06d 421 select CRYPTO_ALGAPI
1da177e4
LT
422 help
423 ARC4 cipher algorithm.
424
425 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
426 bits in length. This algorithm is required for driver-based
427 WEP, but it should not be for other purposes because of the
428 weakness of the algorithm.
429
430config CRYPTO_KHAZAD
431 tristate "Khazad cipher algorithm"
cce9e06d 432 select CRYPTO_ALGAPI
1da177e4
LT
433 help
434 Khazad cipher algorithm.
435
436 Khazad was a finalist in the initial NESSIE competition. It is
437 an algorithm optimized for 64-bit processors with good performance
438 on 32-bit processors. Khazad uses an 128 bit key size.
439
440 See also:
441 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
442
443config CRYPTO_ANUBIS
444 tristate "Anubis cipher algorithm"
cce9e06d 445 select CRYPTO_ALGAPI
1da177e4
LT
446 help
447 Anubis cipher algorithm.
448
449 Anubis is a variable key length cipher which can use keys from
450 128 bits to 320 bits in length. It was evaluated as a entrant
451 in the NESSIE competition.
452
453 See also:
454 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
455 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
456
e2ee95b8
HSC
457config CRYPTO_SEED
458 tristate "SEED cipher algorithm"
459 select CRYPTO_ALGAPI
460 help
461 SEED cipher algorithm (RFC4269).
462
463 SEED is a 128-bit symmetric key block cipher that has been
464 developed by KISA (Korea Information Security Agency) as a
465 national standard encryption algorithm of the Republic of Korea.
466 It is a 16 round block cipher with the key size of 128 bit.
467
468 See also:
469 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
470
2407d608
TSH
471config CRYPTO_SALSA20
472 tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
473 depends on EXPERIMENTAL
474 select CRYPTO_BLKCIPHER
475 help
476 Salsa20 stream cipher algorithm.
477
478 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
479 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
480
481 The Salsa20 stream cipher algorithm is designed by Daniel J.
482 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1da177e4
LT
483
484config CRYPTO_DEFLATE
485 tristate "Deflate compression algorithm"
cce9e06d 486 select CRYPTO_ALGAPI
1da177e4
LT
487 select ZLIB_INFLATE
488 select ZLIB_DEFLATE
489 help
490 This is the Deflate algorithm (RFC1951), specified for use in
491 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
492
493 You will most probably want this if using IPSec.
494
495config CRYPTO_MICHAEL_MIC
496 tristate "Michael MIC keyed digest algorithm"
cce9e06d 497 select CRYPTO_ALGAPI
1da177e4
LT
498 help
499 Michael MIC is used for message integrity protection in TKIP
500 (IEEE 802.11i). This algorithm is required for TKIP, but it
501 should not be used for other purposes because of the weakness
502 of the algorithm.
503
504config CRYPTO_CRC32C
505 tristate "CRC32c CRC algorithm"
cce9e06d 506 select CRYPTO_ALGAPI
1da177e4
LT
507 select LIBCRC32C
508 help
509 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
510 by iSCSI for header and data digests and by others.
511 See Castagnoli93. This implementation uses lib/libcrc32c.
512 Module will be crc32c.
513
04ac7db3
NT
514config CRYPTO_CAMELLIA
515 tristate "Camellia cipher algorithms"
516 depends on CRYPTO
517 select CRYPTO_ALGAPI
518 help
519 Camellia cipher algorithms module.
520
521 Camellia is a symmetric key block cipher developed jointly
522 at NTT and Mitsubishi Electric Corporation.
523
524 The Camellia specifies three key sizes: 128, 192 and 256 bits.
525
526 See also:
527 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
528
1da177e4
LT
529config CRYPTO_TEST
530 tristate "Testing module"
cce9e06d
HX
531 depends on m
532 select CRYPTO_ALGAPI
1da177e4
LT
533 help
534 Quick & dirty crypto test module.
535
3c09f17c
HX
536config CRYPTO_AUTHENC
537 tristate "Authenc support"
538 select CRYPTO_AEAD
539 select CRYPTO_MANAGER
5e553110 540 select CRYPTO_HASH
3c09f17c
HX
541 help
542 Authenc: Combined mode wrapper for IPsec.
543 This is required for IPSec.
544
0b77abb3
ZS
545config CRYPTO_LZO
546 tristate "LZO compression algorithm"
547 select CRYPTO_ALGAPI
548 select LZO_COMPRESS
549 select LZO_DECOMPRESS
550 help
551 This is the LZO algorithm.
552
1da177e4 553source "drivers/crypto/Kconfig"
1da177e4 554
cce9e06d 555endif # if CRYPTO