blob: 76e8c88c97b4da98204fa225888ea8da4fdd050e [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
Dan Williams685784a2007-07-09 11:56:42 -07003# Generic algorithms support
4#
5config XOR_BLOCKS
6 tristate
7
8#
Dan Williams9bc89cd2007-01-02 11:10:44 -07009# async_tx api: hardware offloaded memory transfer/transform support
10#
11source "crypto/async_tx/Kconfig"
12
13#
Linus Torvalds1da177e2005-04-16 15:20:36 -070014# Cryptographic API Configuration
15#
Jan Engelhardt2e290f42007-05-18 15:11:01 +100016menuconfig CRYPTO
Sebastian Siewiorc3715cb92008-03-30 16:36:09 +080017 tristate "Cryptographic API"
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 help
19 This option provides the core Cryptographic API.
20
Herbert Xucce9e062006-08-21 21:08:13 +100021if CRYPTO
22
Sebastian Siewior584fffc2008-04-05 21:04:48 +080023comment "Crypto core or helper"
24
Neil Hormanccb778e2008-08-05 14:13:08 +080025config CRYPTO_FIPS
26 bool "FIPS 200 compliance"
Herbert Xuf2c89a12014-07-04 22:15:08 +080027 depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
Alec Ari1f696092016-10-04 19:34:30 -030028 depends on (MODULE_SIG || !MODULES)
Neil Hormanccb778e2008-08-05 14:13:08 +080029 help
30 This options enables the fips boot option which is
31 required if you want to system to operate in a FIPS 200
32 certification. You should say no unless you know what
Chuck Ebberte84c5482010-09-03 19:17:49 +080033 this is.
Neil Hormanccb778e2008-08-05 14:13:08 +080034
Herbert Xucce9e062006-08-21 21:08:13 +100035config CRYPTO_ALGAPI
36 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110037 select CRYPTO_ALGAPI2
Herbert Xucce9e062006-08-21 21:08:13 +100038 help
39 This option provides the API for cryptographic algorithms.
40
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110041config CRYPTO_ALGAPI2
42 tristate
43
Herbert Xu1ae97822007-08-30 15:36:14 +080044config CRYPTO_AEAD
45 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110046 select CRYPTO_AEAD2
Herbert Xu1ae97822007-08-30 15:36:14 +080047 select CRYPTO_ALGAPI
48
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110049config CRYPTO_AEAD2
50 tristate
51 select CRYPTO_ALGAPI2
Herbert Xu149a3972015-08-13 17:28:58 +080052 select CRYPTO_NULL2
53 select CRYPTO_RNG2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110054
Herbert Xu5cde0af2006-08-22 00:07:53 +100055config CRYPTO_BLKCIPHER
56 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110057 select CRYPTO_BLKCIPHER2
Herbert Xu5cde0af2006-08-22 00:07:53 +100058 select CRYPTO_ALGAPI
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110059
60config CRYPTO_BLKCIPHER2
61 tristate
62 select CRYPTO_ALGAPI2
63 select CRYPTO_RNG2
Huang Ying0a2e8212009-02-19 14:44:02 +080064 select CRYPTO_WORKQUEUE
Herbert Xu5cde0af2006-08-22 00:07:53 +100065
Herbert Xu055bcee2006-08-19 22:24:23 +100066config CRYPTO_HASH
67 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110068 select CRYPTO_HASH2
Herbert Xu055bcee2006-08-19 22:24:23 +100069 select CRYPTO_ALGAPI
70
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110071config CRYPTO_HASH2
72 tristate
73 select CRYPTO_ALGAPI2
74
Neil Horman17f0f4a2008-08-14 22:15:52 +100075config CRYPTO_RNG
76 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110077 select CRYPTO_RNG2
Neil Horman17f0f4a2008-08-14 22:15:52 +100078 select CRYPTO_ALGAPI
79
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110080config CRYPTO_RNG2
81 tristate
82 select CRYPTO_ALGAPI2
83
Herbert Xu401e4232015-06-03 14:49:31 +080084config CRYPTO_RNG_DEFAULT
85 tristate
86 select CRYPTO_DRBG_MENU
87
Tadeusz Struk3c339ab2015-06-16 10:30:55 -070088config CRYPTO_AKCIPHER2
89 tristate
90 select CRYPTO_ALGAPI2
91
92config CRYPTO_AKCIPHER
93 tristate
94 select CRYPTO_AKCIPHER2
95 select CRYPTO_ALGAPI
96
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +010097config CRYPTO_KPP2
98 tristate
99 select CRYPTO_ALGAPI2
100
101config CRYPTO_KPP
102 tristate
103 select CRYPTO_ALGAPI
104 select CRYPTO_KPP2
105
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100106config CRYPTO_ACOMP2
107 tristate
108 select CRYPTO_ALGAPI2
Bart Van Assche8cd579d2018-01-05 08:26:47 -0800109 select SGL_ALLOC
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100110
111config CRYPTO_ACOMP
112 tristate
113 select CRYPTO_ALGAPI
114 select CRYPTO_ACOMP2
115
Tadeusz Strukcfc2bb32015-06-16 10:31:01 -0700116config CRYPTO_RSA
117 tristate "RSA algorithm"
Tadeusz Struk425e0172015-06-19 10:27:39 -0700118 select CRYPTO_AKCIPHER
Tadeusz Struk58446fe2016-05-04 06:38:46 -0700119 select CRYPTO_MANAGER
Tadeusz Strukcfc2bb32015-06-16 10:31:01 -0700120 select MPILIB
121 select ASN1
122 help
123 Generic implementation of the RSA public key algorithm.
124
Salvatore Benedetto802c7f12016-06-22 17:49:14 +0100125config CRYPTO_DH
126 tristate "Diffie-Hellman algorithm"
127 select CRYPTO_KPP
128 select MPILIB
129 help
130 Generic implementation of the Diffie-Hellman algorithm.
131
Salvatore Benedetto3c4b2392016-06-22 17:49:15 +0100132config CRYPTO_ECDH
133 tristate "ECDH algorithm"
Hauke Mehrtensb5b90072017-11-26 00:16:46 +0100134 select CRYPTO_KPP
Tudor-Dan Ambarus6755fd22017-05-30 17:52:48 +0300135 select CRYPTO_RNG_DEFAULT
Salvatore Benedetto3c4b2392016-06-22 17:49:15 +0100136 help
137 Generic implementation of the ECDH algorithm
Salvatore Benedetto802c7f12016-06-22 17:49:14 +0100138
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000139config CRYPTO_MANAGER
140 tristate "Cryptographic algorithm manager"
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100141 select CRYPTO_MANAGER2
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000142 help
143 Create default cryptographic template instantiations such as
144 cbc(aes).
145
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100146config CRYPTO_MANAGER2
147 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
148 select CRYPTO_AEAD2
149 select CRYPTO_HASH2
150 select CRYPTO_BLKCIPHER2
Tadeusz Struk946cc462015-06-16 10:31:06 -0700151 select CRYPTO_AKCIPHER2
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +0100152 select CRYPTO_KPP2
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100153 select CRYPTO_ACOMP2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100154
Steffen Klasserta38f7902011-09-27 07:23:50 +0200155config CRYPTO_USER
156 tristate "Userspace cryptographic algorithm configuration"
Herbert Xu5db017a2011-11-01 12:12:43 +1100157 depends on NET
Steffen Klasserta38f7902011-09-27 07:23:50 +0200158 select CRYPTO_MANAGER
159 help
Valdis.Kletnieks@vt.edud19978f2011-11-09 01:29:20 -0500160 Userspace configuration for cryptographic instantiations such as
Steffen Klasserta38f7902011-09-27 07:23:50 +0200161 cbc(aes).
162
Herbert Xu326a6342010-08-06 09:40:28 +0800163config CRYPTO_MANAGER_DISABLE_TESTS
164 bool "Disable run-time self tests"
Herbert Xu00ca28a2010-08-06 10:34:00 +0800165 default y
166 depends on CRYPTO_MANAGER2
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000167 help
Herbert Xu326a6342010-08-06 09:40:28 +0800168 Disable run-time self tests that normally take place at
169 algorithm registration.
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000170
Rik Snelc494e072006-11-29 18:59:44 +1100171config CRYPTO_GF128MUL
Jussi Kivilinna08c70fc2011-12-13 12:53:22 +0200172 tristate "GF(2^128) multiplication functions"
Rik Snelc494e072006-11-29 18:59:44 +1100173 help
174 Efficient table driven implementation of multiplications in the
175 field GF(2^128). This is needed by some cypher modes. This
176 option will be selected automatically if you select such a
177 cipher mode. Only select this option by hand if you expect to load
178 an external module that requires these functions.
179
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800180config CRYPTO_NULL
181 tristate "Null algorithms"
Herbert Xu149a3972015-08-13 17:28:58 +0800182 select CRYPTO_NULL2
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800183 help
184 These are 'Null' algorithms, used by IPsec, which do nothing.
185
Herbert Xu149a3972015-08-13 17:28:58 +0800186config CRYPTO_NULL2
Herbert Xudd43c4e2015-08-17 20:39:40 +0800187 tristate
Herbert Xu149a3972015-08-13 17:28:58 +0800188 select CRYPTO_ALGAPI2
189 select CRYPTO_BLKCIPHER2
190 select CRYPTO_HASH2
191
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100192config CRYPTO_PCRYPT
Kees Cook3b4afaf2012-10-02 11:16:49 -0700193 tristate "Parallel crypto engine"
194 depends on SMP
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100195 select PADATA
196 select CRYPTO_MANAGER
197 select CRYPTO_AEAD
198 help
199 This converts an arbitrary crypto algorithm into a parallel
200 algorithm that executes in kernel threads.
201
Huang Ying25c38d32009-02-19 14:33:40 +0800202config CRYPTO_WORKQUEUE
203 tristate
204
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800205config CRYPTO_CRYPTD
206 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +1000207 select CRYPTO_BLKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +0800208 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +1000209 select CRYPTO_MANAGER
Huang Ying254eff72009-02-19 14:42:19 +0800210 select CRYPTO_WORKQUEUE
Herbert Xudb131ef2006-09-21 11:44:08 +1000211 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800212 This is a generic software asynchronous crypto daemon that
213 converts an arbitrary synchronous software crypto algorithm
214 into an asynchronous algorithm that executes in a kernel thread.
215
Tim Chen1e65b812014-07-31 10:29:51 -0700216config CRYPTO_MCRYPTD
217 tristate "Software async multi-buffer crypto daemon"
218 select CRYPTO_BLKCIPHER
219 select CRYPTO_HASH
220 select CRYPTO_MANAGER
221 select CRYPTO_WORKQUEUE
222 help
223 This is a generic software asynchronous crypto daemon that
224 provides the kernel thread to assist multi-buffer crypto
225 algorithms for submitting jobs and flushing jobs in multi-buffer
226 crypto algorithms. Multi-buffer crypto algorithms are executed
227 in the context of this kernel thread and drivers can post
Ted Percival0e566732014-09-04 15:18:21 +0800228 their crypto request asynchronously to be processed by this daemon.
Tim Chen1e65b812014-07-31 10:29:51 -0700229
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800230config CRYPTO_AUTHENC
231 tristate "Authenc support"
232 select CRYPTO_AEAD
233 select CRYPTO_BLKCIPHER
234 select CRYPTO_MANAGER
235 select CRYPTO_HASH
Herbert Xue94c6a72015-08-04 21:23:14 +0800236 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800237 help
238 Authenc: Combined mode wrapper for IPsec.
239 This is required for IPSec.
240
241config CRYPTO_TEST
242 tristate "Testing module"
243 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +0800244 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800245 help
246 Quick & dirty crypto test module.
247
Herbert Xu266d0512016-11-22 20:08:25 +0800248config CRYPTO_SIMD
249 tristate
250 select CRYPTO_CRYPTD
251
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300252config CRYPTO_GLUE_HELPER_X86
253 tristate
254 depends on X86
Herbert Xu065ce322016-11-22 20:08:29 +0800255 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300256
Baolin Wang735d37b2016-01-26 20:25:39 +0800257config CRYPTO_ENGINE
258 tristate
259
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800260comment "Authenticated Encryption with Associated Data"
261
262config CRYPTO_CCM
263 tristate "CCM support"
264 select CRYPTO_CTR
Ard Biesheuvelf15f05b2017-02-03 14:49:36 +0000265 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800266 select CRYPTO_AEAD
267 help
268 Support for Counter with CBC MAC. Required for IPsec.
269
270config CRYPTO_GCM
271 tristate "GCM/GMAC support"
272 select CRYPTO_CTR
273 select CRYPTO_AEAD
Huang Ying9382d972009-08-06 15:34:26 +1000274 select CRYPTO_GHASH
Jussi Kivilinna9489667d2013-04-07 16:43:41 +0300275 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800276 help
277 Support for Galois/Counter Mode (GCM) and Galois Message
278 Authentication Code (GMAC). Required for IPSec.
279
Martin Willi71ebc4d2015-06-01 13:44:00 +0200280config CRYPTO_CHACHA20POLY1305
281 tristate "ChaCha20-Poly1305 AEAD support"
282 select CRYPTO_CHACHA20
283 select CRYPTO_POLY1305
284 select CRYPTO_AEAD
285 help
286 ChaCha20-Poly1305 AEAD support, RFC7539.
287
288 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
289 with the Poly1305 authenticator. It is defined in RFC7539 for use in
290 IETF protocols.
291
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800292config CRYPTO_SEQIV
293 tristate "Sequence Number IV Generator"
294 select CRYPTO_AEAD
295 select CRYPTO_BLKCIPHER
Herbert Xu856e3f402015-05-21 15:11:13 +0800296 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800297 select CRYPTO_RNG_DEFAULT
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800298 help
299 This IV generator generates an IV based on a sequence number by
300 xoring it with a salt. This algorithm is mainly useful for CTR
301
Herbert Xua10f5542015-05-21 15:11:15 +0800302config CRYPTO_ECHAINIV
303 tristate "Encrypted Chain IV Generator"
304 select CRYPTO_AEAD
305 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800306 select CRYPTO_RNG_DEFAULT
Herbert Xu34912442015-06-03 14:49:29 +0800307 default m
Herbert Xua10f5542015-05-21 15:11:15 +0800308 help
309 This IV generator generates an IV based on the encryption of
310 a sequence number xored with a salt. This is the default
311 algorithm for CBC.
312
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800313comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000314
315config CRYPTO_CBC
316 tristate "CBC support"
317 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000318 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000319 help
320 CBC: Cipher Block Chaining mode
321 This block cipher algorithm is required for IPSec.
322
James Bottomleya7d85e02018-03-01 14:36:17 -0800323config CRYPTO_CFB
324 tristate "CFB support"
325 select CRYPTO_BLKCIPHER
326 select CRYPTO_MANAGER
327 help
328 CFB: Cipher FeedBack mode
329 This block cipher algorithm is required for TPM2 Cryptography.
330
Joy Latten23e353c2007-10-23 08:50:32 +0800331config CRYPTO_CTR
332 tristate "CTR support"
333 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100334 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800335 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800336 help
337 CTR: Counter mode
338 This block cipher algorithm is required for IPSec.
339
Kevin Coffman76cb9522008-03-24 21:26:16 +0800340config CRYPTO_CTS
341 tristate "CTS support"
342 select CRYPTO_BLKCIPHER
343 help
344 CTS: Cipher Text Stealing
345 This is the Cipher Text Stealing mode as described by
346 Section 8 of rfc2040 and referenced by rfc3962.
347 (rfc3962 includes errata information in its Appendix A)
348 This mode is required for Kerberos gss mechanism support
349 for AES encryption.
350
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800351config CRYPTO_ECB
352 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800353 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000354 select CRYPTO_MANAGER
355 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800356 ECB: Electronic CodeBook mode
357 This is the simplest block cipher algorithm. It simply encrypts
358 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000359
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800360config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200361 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100362 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800363 select CRYPTO_MANAGER
364 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100365 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800366 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
367 narrow block cipher mode for dm-crypt. Use it with cipher
368 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
369 The first 128, 192 or 256 bits in the key are used for AES and the
370 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100371
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800372config CRYPTO_PCBC
373 tristate "PCBC support"
374 select CRYPTO_BLKCIPHER
375 select CRYPTO_MANAGER
376 help
377 PCBC: Propagating Cipher Block Chaining mode
378 This block cipher algorithm is required for RxRPC.
379
380config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200381 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800382 select CRYPTO_BLKCIPHER
383 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100384 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800385 help
386 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
387 key size 256, 384 or 512 bits. This implementation currently
388 can't handle a sectorsize which is not a multiple of 16 bytes.
389
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200390config CRYPTO_KEYWRAP
391 tristate "Key wrapping support"
392 select CRYPTO_BLKCIPHER
393 help
394 Support for key wrapping (NIST SP800-38F / RFC3394) without
395 padding.
396
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800397comment "Hash modes"
398
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300399config CRYPTO_CMAC
400 tristate "CMAC support"
401 select CRYPTO_HASH
402 select CRYPTO_MANAGER
403 help
404 Cipher-based Message Authentication Code (CMAC) specified by
405 The National Institute of Standards and Technology (NIST).
406
407 https://tools.ietf.org/html/rfc4493
408 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
409
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800410config CRYPTO_HMAC
411 tristate "HMAC support"
412 select CRYPTO_HASH
413 select CRYPTO_MANAGER
414 help
415 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
416 This is required for IPSec.
417
418config CRYPTO_XCBC
419 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800420 select CRYPTO_HASH
421 select CRYPTO_MANAGER
422 help
423 XCBC: Keyed-Hashing with encryption algorithm
424 http://www.ietf.org/rfc/rfc3566.txt
425 http://csrc.nist.gov/encryption/modes/proposedmodes/
426 xcbc-mac/xcbc-mac-spec.pdf
427
Shane Wangf1939f72009-09-02 20:05:22 +1000428config CRYPTO_VMAC
429 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000430 select CRYPTO_HASH
431 select CRYPTO_MANAGER
432 help
433 VMAC is a message authentication algorithm designed for
434 very high speed on 64-bit architectures.
435
436 See also:
437 <http://fastcrypto.org/vmac>
438
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800439comment "Digest"
440
441config CRYPTO_CRC32C
442 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800443 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700444 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800445 help
446 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
447 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800448 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800449
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800450config CRYPTO_CRC32C_INTEL
451 tristate "CRC32c INTEL hardware acceleration"
452 depends on X86
453 select CRYPTO_HASH
454 help
455 In Intel processor with SSE4.2 supported, the processor will
456 support CRC32C implementation using hardware accelerated CRC32
457 instruction. This option will create 'crc32c-intel' module,
458 which will enable any routine to use the CRC32 instruction to
459 gain performance compared with software implementation.
460 Module will be crc32c-intel.
461
Jean Delvare7cf31862016-11-22 10:32:44 +0100462config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000463 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000464 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000465 select CRYPTO_HASH
466 select CRC32
467 help
468 CRC32c algorithm implemented using vector polynomial multiply-sum
469 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
470 and newer processors for improved performance.
471
472
David S. Miller442a7c42012-08-22 20:47:36 -0700473config CRYPTO_CRC32C_SPARC64
474 tristate "CRC32c CRC algorithm (SPARC64)"
475 depends on SPARC64
476 select CRYPTO_HASH
477 select CRC32
478 help
479 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
480 when available.
481
Alexander Boyko78c37d12013-01-10 18:54:59 +0400482config CRYPTO_CRC32
483 tristate "CRC32 CRC algorithm"
484 select CRYPTO_HASH
485 select CRC32
486 help
487 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
488 Shash crypto api wrappers to crc32_le function.
489
490config CRYPTO_CRC32_PCLMUL
491 tristate "CRC32 PCLMULQDQ hardware acceleration"
492 depends on X86
493 select CRYPTO_HASH
494 select CRC32
495 help
496 From Intel Westmere and AMD Bulldozer processor with SSE4.2
497 and PCLMULQDQ supported, the processor will support
498 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
499 instruction. This option will create 'crc32-plcmul' module,
500 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
501 and gain better performance as compared with the table implementation.
502
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +0000503config CRYPTO_CRC32_MIPS
504 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
505 depends on MIPS_CRC_SUPPORT
506 select CRYPTO_HASH
507 help
508 CRC32c and CRC32 CRC algorithms implemented using mips crypto
509 instructions, when available.
510
511
Herbert Xu684115212013-09-07 12:56:26 +1000512config CRYPTO_CRCT10DIF
513 tristate "CRCT10DIF algorithm"
514 select CRYPTO_HASH
515 help
516 CRC T10 Data Integrity Field computation is being cast as
517 a crypto transform. This allows for faster crc t10 diff
518 transforms to be used if they are available.
519
520config CRYPTO_CRCT10DIF_PCLMUL
521 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
522 depends on X86 && 64BIT && CRC_T10DIF
523 select CRYPTO_HASH
524 help
525 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
526 CRC T10 DIF PCLMULQDQ computation can be hardware
527 accelerated PCLMULQDQ instruction. This option will create
528 'crct10dif-plcmul' module, which is faster when computing the
529 crct10dif checksum as compared with the generic table implementation.
530
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100531config CRYPTO_CRCT10DIF_VPMSUM
532 tristate "CRC32T10DIF powerpc64 hardware acceleration"
533 depends on PPC64 && ALTIVEC && CRC_T10DIF
534 select CRYPTO_HASH
535 help
536 CRC10T10DIF algorithm implemented using vector polynomial
537 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
538 POWER8 and newer processors for improved performance.
539
Daniel Axtens146c8682017-03-15 23:37:37 +1100540config CRYPTO_VPMSUM_TESTER
541 tristate "Powerpc64 vpmsum hardware acceleration tester"
542 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
543 help
544 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
545 POWER8 vpmsum instructions.
546 Unless you are testing these algorithms, you don't need this.
547
Huang Ying2cdc6892009-08-06 15:32:38 +1000548config CRYPTO_GHASH
549 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000550 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100551 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000552 help
553 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
554
Martin Willif979e012015-06-01 13:43:58 +0200555config CRYPTO_POLY1305
556 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100557 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200558 help
559 Poly1305 authenticator algorithm, RFC7539.
560
561 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
562 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
563 in IETF protocols. This is the portable C implementation of Poly1305.
564
Martin Willic70f4ab2015-07-16 19:14:06 +0200565config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200566 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200567 depends on X86 && 64BIT
568 select CRYPTO_POLY1305
569 help
570 Poly1305 authenticator algorithm, RFC7539.
571
572 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
573 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
574 in IETF protocols. This is the x86_64 assembler implementation using SIMD
575 instructions.
576
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800577config CRYPTO_MD4
578 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800579 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700580 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800581 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700582
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800583config CRYPTO_MD5
584 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800585 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700586 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800587 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700588
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200589config CRYPTO_MD5_OCTEON
590 tristate "MD5 digest algorithm (OCTEON)"
591 depends on CPU_CAVIUM_OCTEON
592 select CRYPTO_MD5
593 select CRYPTO_HASH
594 help
595 MD5 message digest algorithm (RFC1321) implemented
596 using OCTEON crypto instructions, when available.
597
Markus Stockhausene8e59952015-03-01 19:30:46 +0100598config CRYPTO_MD5_PPC
599 tristate "MD5 digest algorithm (PPC)"
600 depends on PPC
601 select CRYPTO_HASH
602 help
603 MD5 message digest algorithm (RFC1321) implemented
604 in PPC assembler.
605
David S. Millerfa4dfed2012-08-19 21:51:26 -0700606config CRYPTO_MD5_SPARC64
607 tristate "MD5 digest algorithm (SPARC64)"
608 depends on SPARC64
609 select CRYPTO_MD5
610 select CRYPTO_HASH
611 help
612 MD5 message digest algorithm (RFC1321) implemented
613 using sparc64 crypto instructions, when available.
614
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800615config CRYPTO_MICHAEL_MIC
616 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800617 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800618 help
619 Michael MIC is used for message integrity protection in TKIP
620 (IEEE 802.11i). This algorithm is required for TKIP, but it
621 should not be used for other purposes because of the weakness
622 of the algorithm.
623
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800624config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800625 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800626 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800627 help
628 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800629
Adrian Bunkb6d44342008-07-16 19:28:00 +0800630 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000631 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800632 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800633
Adrian Bunkb6d44342008-07-16 19:28:00 +0800634 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800635 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800636
637config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800638 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800639 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800640 help
641 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800642
Adrian Bunkb6d44342008-07-16 19:28:00 +0800643 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
644 to be used as a secure replacement for the 128-bit hash functions
645 MD4, MD5 and it's predecessor RIPEMD
646 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800647
Adrian Bunkb6d44342008-07-16 19:28:00 +0800648 It's speed is comparable to SHA1 and there are no known attacks
649 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800650
Adrian Bunkb6d44342008-07-16 19:28:00 +0800651 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800652 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800653
654config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800655 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800656 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800657 help
658 RIPEMD-256 is an optional extension of RIPEMD-128 with a
659 256 bit hash. It is intended for applications that require
660 longer hash-results, without needing a larger security level
661 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800662
Adrian Bunkb6d44342008-07-16 19:28:00 +0800663 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800664 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800665
666config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800667 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800668 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800669 help
670 RIPEMD-320 is an optional extension of RIPEMD-160 with a
671 320 bit hash. It is intended for applications that require
672 longer hash-results, without needing a larger security level
673 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c12008-05-09 21:30:27 +0800674
Adrian Bunkb6d44342008-07-16 19:28:00 +0800675 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800676 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800677
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800678config CRYPTO_SHA1
679 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800680 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800681 help
682 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
683
Mathias Krause66be8952011-08-04 20:19:25 +0200684config CRYPTO_SHA1_SSSE3
time38b6b7f2015-09-10 15:27:26 -0700685 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200686 depends on X86 && 64BIT
687 select CRYPTO_SHA1
688 select CRYPTO_HASH
689 help
690 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
691 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b7f2015-09-10 15:27:26 -0700692 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
693 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200694
Tim Chen8275d1a2013-03-26 13:59:17 -0700695config CRYPTO_SHA256_SSSE3
time38b6b7f2015-09-10 15:27:26 -0700696 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700697 depends on X86 && 64BIT
698 select CRYPTO_SHA256
699 select CRYPTO_HASH
700 help
701 SHA-256 secure hash standard (DFIPS 180-2) implemented
702 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
703 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b7f2015-09-10 15:27:26 -0700704 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
705 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700706
Tim Chen87de4572013-03-26 14:00:02 -0700707config CRYPTO_SHA512_SSSE3
708 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
709 depends on X86 && 64BIT
710 select CRYPTO_SHA512
711 select CRYPTO_HASH
712 help
713 SHA-512 secure hash standard (DFIPS 180-2) implemented
714 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
715 Extensions version 1 (AVX1), or Advanced Vector Extensions
716 version 2 (AVX2) instructions, when available.
717
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200718config CRYPTO_SHA1_OCTEON
719 tristate "SHA1 digest algorithm (OCTEON)"
720 depends on CPU_CAVIUM_OCTEON
721 select CRYPTO_SHA1
722 select CRYPTO_HASH
723 help
724 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
725 using OCTEON crypto instructions, when available.
726
David S. Miller4ff28d42012-08-19 15:41:53 -0700727config CRYPTO_SHA1_SPARC64
728 tristate "SHA1 digest algorithm (SPARC64)"
729 depends on SPARC64
730 select CRYPTO_SHA1
731 select CRYPTO_HASH
732 help
733 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
734 using sparc64 crypto instructions, when available.
735
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000736config CRYPTO_SHA1_PPC
737 tristate "SHA1 digest algorithm (powerpc)"
738 depends on PPC
739 help
740 This is the powerpc hardware accelerated implementation of the
741 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
742
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100743config CRYPTO_SHA1_PPC_SPE
744 tristate "SHA1 digest algorithm (PPC SPE)"
745 depends on PPC && SPE
746 help
747 SHA-1 secure hash standard (DFIPS 180-4) implemented
748 using powerpc SPE SIMD instruction set.
749
Tim Chen1e65b812014-07-31 10:29:51 -0700750config CRYPTO_SHA1_MB
751 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
752 depends on X86 && 64BIT
753 select CRYPTO_SHA1
754 select CRYPTO_HASH
755 select CRYPTO_MCRYPTD
756 help
757 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
758 using multi-buffer technique. This algorithm computes on
759 multiple data lanes concurrently with SIMD instructions for
760 better throughput. It should not be enabled by default but
761 used when there is significant amount of work to keep the keep
762 the data lanes filled to get performance benefit. If the data
763 lanes remain unfilled, a flush operation will be initiated to
764 process the crypto jobs, adding a slight latency.
765
Megha Dey9be7e242016-06-23 18:40:43 -0700766config CRYPTO_SHA256_MB
767 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
768 depends on X86 && 64BIT
769 select CRYPTO_SHA256
770 select CRYPTO_HASH
771 select CRYPTO_MCRYPTD
772 help
773 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
774 using multi-buffer technique. This algorithm computes on
775 multiple data lanes concurrently with SIMD instructions for
776 better throughput. It should not be enabled by default but
777 used when there is significant amount of work to keep the keep
778 the data lanes filled to get performance benefit. If the data
779 lanes remain unfilled, a flush operation will be initiated to
780 process the crypto jobs, adding a slight latency.
781
Megha Dey026bb8a2016-06-27 10:20:05 -0700782config CRYPTO_SHA512_MB
783 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
784 depends on X86 && 64BIT
785 select CRYPTO_SHA512
786 select CRYPTO_HASH
787 select CRYPTO_MCRYPTD
788 help
789 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
790 using multi-buffer technique. This algorithm computes on
791 multiple data lanes concurrently with SIMD instructions for
792 better throughput. It should not be enabled by default but
793 used when there is significant amount of work to keep the keep
794 the data lanes filled to get performance benefit. If the data
795 lanes remain unfilled, a flush operation will be initiated to
796 process the crypto jobs, adding a slight latency.
797
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800798config CRYPTO_SHA256
799 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800800 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800801 help
802 SHA256 secure hash standard (DFIPS 180-2).
803
804 This version of SHA implements a 256 bit hash with 128 bits of
805 security against collision attacks.
806
Adrian Bunkb6d44342008-07-16 19:28:00 +0800807 This code also includes SHA-224, a 224 bit hash with 112 bits
808 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800809
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100810config CRYPTO_SHA256_PPC_SPE
811 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
812 depends on PPC && SPE
813 select CRYPTO_SHA256
814 select CRYPTO_HASH
815 help
816 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
817 implemented using powerpc SPE SIMD instruction set.
818
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200819config CRYPTO_SHA256_OCTEON
820 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
821 depends on CPU_CAVIUM_OCTEON
822 select CRYPTO_SHA256
823 select CRYPTO_HASH
824 help
825 SHA-256 secure hash standard (DFIPS 180-2) implemented
826 using OCTEON crypto instructions, when available.
827
David S. Miller86c93b22012-08-19 17:11:37 -0700828config CRYPTO_SHA256_SPARC64
829 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
830 depends on SPARC64
831 select CRYPTO_SHA256
832 select CRYPTO_HASH
833 help
834 SHA-256 secure hash standard (DFIPS 180-2) implemented
835 using sparc64 crypto instructions, when available.
836
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800837config CRYPTO_SHA512
838 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100839 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800840 help
841 SHA512 secure hash standard (DFIPS 180-2).
842
843 This version of SHA implements a 512 bit hash with 256 bits of
844 security against collision attacks.
845
846 This code also includes SHA-384, a 384 bit hash with 192 bits
847 of security against collision attacks.
848
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200849config CRYPTO_SHA512_OCTEON
850 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
851 depends on CPU_CAVIUM_OCTEON
852 select CRYPTO_SHA512
853 select CRYPTO_HASH
854 help
855 SHA-512 secure hash standard (DFIPS 180-2) implemented
856 using OCTEON crypto instructions, when available.
857
David S. Miller775e0c62012-08-19 17:37:56 -0700858config CRYPTO_SHA512_SPARC64
859 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
860 depends on SPARC64
861 select CRYPTO_SHA512
862 select CRYPTO_HASH
863 help
864 SHA-512 secure hash standard (DFIPS 180-2) implemented
865 using sparc64 crypto instructions, when available.
866
Jeff Garzik53964b92016-06-17 10:30:35 +0530867config CRYPTO_SHA3
868 tristate "SHA3 digest algorithm"
869 select CRYPTO_HASH
870 help
871 SHA-3 secure hash standard (DFIPS 202). It's based on
872 cryptographic sponge function family called Keccak.
873
874 References:
875 http://keccak.noekeon.org/
876
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +0300877config CRYPTO_SM3
878 tristate "SM3 digest algorithm"
879 select CRYPTO_HASH
880 help
881 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
882 It is part of the Chinese Commercial Cryptography suite.
883
884 References:
885 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
886 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
887
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800888config CRYPTO_TGR192
889 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800890 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800891 help
892 Tiger hash algorithm 192, 160 and 128-bit hashes
893
894 Tiger is a hash function optimized for 64-bit processors while
895 still having decent performance on 32-bit processors.
896 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700897
898 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800899 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
900
901config CRYPTO_WP512
902 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800903 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800904 help
905 Whirlpool hash algorithm 512, 384 and 256-bit hashes
906
907 Whirlpool-512 is part of the NESSIE cryptographic primitives.
908 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
909
910 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800911 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800912
Huang Ying0e1227d2009-10-19 11:53:06 +0900913config CRYPTO_GHASH_CLMUL_NI_INTEL
914 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800915 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900916 select CRYPTO_CRYPTD
917 help
918 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
919 The implementation is accelerated by CLMUL-NI of Intel.
920
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800921comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700922
923config CRYPTO_AES
924 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000925 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700926 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800927 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700928 algorithm.
929
930 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800931 both hardware and software across a wide range of computing
932 environments regardless of its use in feedback or non-feedback
933 modes. Its key setup time is excellent, and its key agility is
934 good. Rijndael's very low memory requirements make it very well
935 suited for restricted-space environments, in which it also
936 demonstrates excellent performance. Rijndael's operations are
937 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700938
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800939 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700940
941 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
942
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000943config CRYPTO_AES_TI
944 tristate "Fixed time AES cipher"
945 select CRYPTO_ALGAPI
946 help
947 This is a generic implementation of AES that attempts to eliminate
948 data dependent latencies as much as possible without affecting
949 performance too much. It is intended for use by the generic CCM
950 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
951 solely on encryption (although decryption is supported as well, but
952 with a more dramatic performance hit)
953
954 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
955 8 for decryption), this implementation only uses just two S-boxes of
956 256 bytes each, and attempts to eliminate data dependent latencies by
957 prefetching the entire table into the cache at the start of each
958 block.
959
Linus Torvalds1da177e2005-04-16 15:20:36 -0700960config CRYPTO_AES_586
961 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000962 depends on (X86 || UML_X86) && !64BIT
963 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800964 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700965 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800966 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700967 algorithm.
968
969 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800970 both hardware and software across a wide range of computing
971 environments regardless of its use in feedback or non-feedback
972 modes. Its key setup time is excellent, and its key agility is
973 good. Rijndael's very low memory requirements make it very well
974 suited for restricted-space environments, in which it also
975 demonstrates excellent performance. Rijndael's operations are
976 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700977
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800978 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700979
980 See <http://csrc.nist.gov/encryption/aes/> for more information.
981
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700982config CRYPTO_AES_X86_64
983 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000984 depends on (X86 || UML_X86) && 64BIT
985 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +0800986 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700987 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800988 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700989 algorithm.
990
991 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800992 both hardware and software across a wide range of computing
993 environments regardless of its use in feedback or non-feedback
994 modes. Its key setup time is excellent, and its key agility is
995 good. Rijndael's very low memory requirements make it very well
996 suited for restricted-space environments, in which it also
997 demonstrates excellent performance. Rijndael's operations are
998 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700999
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001000 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001001
1002 See <http://csrc.nist.gov/encryption/aes/> for more information.
1003
Huang Ying54b6a1b2009-01-18 16:28:34 +11001004config CRYPTO_AES_NI_INTEL
1005 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001006 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +08001007 select CRYPTO_AEAD
Mathias Krause0d258ef2010-11-27 16:34:46 +08001008 select CRYPTO_AES_X86_64 if 64BIT
1009 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +11001010 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +08001011 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +03001012 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +08001013 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +11001014 help
1015 Use Intel AES-NI instructions for AES algorithm.
1016
1017 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1018 algorithm.
1019
1020 Rijndael appears to be consistently a very good performer in
1021 both hardware and software across a wide range of computing
1022 environments regardless of its use in feedback or non-feedback
1023 modes. Its key setup time is excellent, and its key agility is
1024 good. Rijndael's very low memory requirements make it very well
1025 suited for restricted-space environments, in which it also
1026 demonstrates excellent performance. Rijndael's operations are
1027 among the easiest to defend against power and timing attacks.
1028
1029 The AES specifies three key sizes: 128, 192 and 256 bits
1030
1031 See <http://csrc.nist.gov/encryption/aes/> for more information.
1032
Mathias Krause0d258ef2010-11-27 16:34:46 +08001033 In addition to AES cipher algorithm support, the acceleration
1034 for some popular block cipher mode is supported too, including
1035 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
1036 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001037
David S. Miller9bf48522012-08-21 03:58:13 -07001038config CRYPTO_AES_SPARC64
1039 tristate "AES cipher algorithms (SPARC64)"
1040 depends on SPARC64
1041 select CRYPTO_CRYPTD
1042 select CRYPTO_ALGAPI
1043 help
1044 Use SPARC64 crypto opcodes for AES algorithm.
1045
1046 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1047 algorithm.
1048
1049 Rijndael appears to be consistently a very good performer in
1050 both hardware and software across a wide range of computing
1051 environments regardless of its use in feedback or non-feedback
1052 modes. Its key setup time is excellent, and its key agility is
1053 good. Rijndael's very low memory requirements make it very well
1054 suited for restricted-space environments, in which it also
1055 demonstrates excellent performance. Rijndael's operations are
1056 among the easiest to defend against power and timing attacks.
1057
1058 The AES specifies three key sizes: 128, 192 and 256 bits
1059
1060 See <http://csrc.nist.gov/encryption/aes/> for more information.
1061
1062 In addition to AES cipher algorithm support, the acceleration
1063 for some popular block cipher mode is supported too, including
1064 ECB and CBC.
1065
Markus Stockhausen504c6142015-02-22 10:00:10 +01001066config CRYPTO_AES_PPC_SPE
1067 tristate "AES cipher algorithms (PPC SPE)"
1068 depends on PPC && SPE
1069 help
1070 AES cipher algorithms (FIPS-197). Additionally the acceleration
1071 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1072 This module should only be used for low power (router) devices
1073 without hardware AES acceleration (e.g. caam crypto). It reduces the
1074 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1075 timining attacks. Nevertheless it might be not as secure as other
1076 architecture specific assembler implementations that work on 1KB
1077 tables or 256 bytes S-boxes.
1078
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001079config CRYPTO_ANUBIS
1080 tristate "Anubis cipher algorithm"
1081 select CRYPTO_ALGAPI
1082 help
1083 Anubis cipher algorithm.
1084
1085 Anubis is a variable key length cipher which can use keys from
1086 128 bits to 320 bits in length. It was evaluated as a entrant
1087 in the NESSIE competition.
1088
1089 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001090 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1091 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001092
1093config CRYPTO_ARC4
1094 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001095 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001096 help
1097 ARC4 cipher algorithm.
1098
1099 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1100 bits in length. This algorithm is required for driver-based
1101 WEP, but it should not be for other purposes because of the
1102 weakness of the algorithm.
1103
1104config CRYPTO_BLOWFISH
1105 tristate "Blowfish cipher algorithm"
1106 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001107 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001108 help
1109 Blowfish cipher algorithm, by Bruce Schneier.
1110
1111 This is a variable key length cipher which can use keys from 32
1112 bits to 448 bits in length. It's fast, simple and specifically
1113 designed for use on "large microprocessors".
1114
1115 See also:
1116 <http://www.schneier.com/blowfish.html>
1117
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001118config CRYPTO_BLOWFISH_COMMON
1119 tristate
1120 help
1121 Common parts of the Blowfish cipher algorithm shared by the
1122 generic c and the assembler implementations.
1123
1124 See also:
1125 <http://www.schneier.com/blowfish.html>
1126
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001127config CRYPTO_BLOWFISH_X86_64
1128 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001129 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001130 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001131 select CRYPTO_BLOWFISH_COMMON
1132 help
1133 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1134
1135 This is a variable key length cipher which can use keys from 32
1136 bits to 448 bits in length. It's fast, simple and specifically
1137 designed for use on "large microprocessors".
1138
1139 See also:
1140 <http://www.schneier.com/blowfish.html>
1141
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001142config CRYPTO_CAMELLIA
1143 tristate "Camellia cipher algorithms"
1144 depends on CRYPTO
1145 select CRYPTO_ALGAPI
1146 help
1147 Camellia cipher algorithms module.
1148
1149 Camellia is a symmetric key block cipher developed jointly
1150 at NTT and Mitsubishi Electric Corporation.
1151
1152 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1153
1154 See also:
1155 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1156
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001157config CRYPTO_CAMELLIA_X86_64
1158 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001159 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001160 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001161 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001162 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001163 help
1164 Camellia cipher algorithm module (x86_64).
1165
1166 Camellia is a symmetric key block cipher developed jointly
1167 at NTT and Mitsubishi Electric Corporation.
1168
1169 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1170
1171 See also:
1172 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1173
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001174config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1175 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1176 depends on X86 && 64BIT
1177 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001178 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001179 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001180 select CRYPTO_GLUE_HELPER_X86
1181 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001182 select CRYPTO_XTS
1183 help
1184 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1185
1186 Camellia is a symmetric key block cipher developed jointly
1187 at NTT and Mitsubishi Electric Corporation.
1188
1189 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1190
1191 See also:
1192 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1193
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001194config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1195 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1196 depends on X86 && 64BIT
1197 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001198 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001199 help
1200 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1201
1202 Camellia is a symmetric key block cipher developed jointly
1203 at NTT and Mitsubishi Electric Corporation.
1204
1205 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1206
1207 See also:
1208 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1209
David S. Miller81658ad2012-08-28 12:05:54 -07001210config CRYPTO_CAMELLIA_SPARC64
1211 tristate "Camellia cipher algorithm (SPARC64)"
1212 depends on SPARC64
1213 depends on CRYPTO
1214 select CRYPTO_ALGAPI
1215 help
1216 Camellia cipher algorithm module (SPARC64).
1217
1218 Camellia is a symmetric key block cipher developed jointly
1219 at NTT and Mitsubishi Electric Corporation.
1220
1221 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1222
1223 See also:
1224 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1225
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001226config CRYPTO_CAST_COMMON
1227 tristate
1228 help
1229 Common parts of the CAST cipher algorithms shared by the
1230 generic c and the assembler implementations.
1231
Linus Torvalds1da177e2005-04-16 15:20:36 -07001232config CRYPTO_CAST5
1233 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001234 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001235 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001236 help
1237 The CAST5 encryption algorithm (synonymous with CAST-128) is
1238 described in RFC2144.
1239
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001240config CRYPTO_CAST5_AVX_X86_64
1241 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1242 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001243 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001244 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001245 select CRYPTO_CAST_COMMON
1246 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001247 help
1248 The CAST5 encryption algorithm (synonymous with CAST-128) is
1249 described in RFC2144.
1250
1251 This module provides the Cast5 cipher algorithm that processes
1252 sixteen blocks parallel using the AVX instruction set.
1253
Linus Torvalds1da177e2005-04-16 15:20:36 -07001254config CRYPTO_CAST6
1255 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001256 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001257 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001258 help
1259 The CAST6 encryption algorithm (synonymous with CAST-256) is
1260 described in RFC2612.
1261
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001262config CRYPTO_CAST6_AVX_X86_64
1263 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1264 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001265 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001266 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001267 select CRYPTO_CAST_COMMON
1268 select CRYPTO_GLUE_HELPER_X86
1269 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001270 select CRYPTO_XTS
1271 help
1272 The CAST6 encryption algorithm (synonymous with CAST-256) is
1273 described in RFC2612.
1274
1275 This module provides the Cast6 cipher algorithm that processes
1276 eight blocks parallel using the AVX instruction set.
1277
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001278config CRYPTO_DES
1279 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001280 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001281 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001282 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001283
David S. Millerc5aac2d2012-08-25 22:37:23 -07001284config CRYPTO_DES_SPARC64
1285 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001286 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001287 select CRYPTO_ALGAPI
1288 select CRYPTO_DES
1289 help
1290 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1291 optimized using SPARC64 crypto opcodes.
1292
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001293config CRYPTO_DES3_EDE_X86_64
1294 tristate "Triple DES EDE cipher algorithm (x86-64)"
1295 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001296 select CRYPTO_BLKCIPHER
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001297 select CRYPTO_DES
1298 help
1299 Triple DES EDE (FIPS 46-3) algorithm.
1300
1301 This module provides implementation of the Triple DES EDE cipher
1302 algorithm that is optimized for x86-64 processors. Two versions of
1303 algorithm are provided; regular processing one input block and
1304 one that processes three blocks parallel.
1305
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001306config CRYPTO_FCRYPT
1307 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001308 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001309 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001310 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001311 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001312
1313config CRYPTO_KHAZAD
1314 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001315 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001316 help
1317 Khazad cipher algorithm.
1318
1319 Khazad was a finalist in the initial NESSIE competition. It is
1320 an algorithm optimized for 64-bit processors with good performance
1321 on 32-bit processors. Khazad uses an 128 bit key size.
1322
1323 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001324 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001325
Tan Swee Heng2407d602007-11-23 19:45:00 +08001326config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001327 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001328 select CRYPTO_BLKCIPHER
1329 help
1330 Salsa20 stream cipher algorithm.
1331
1332 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1333 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1334
1335 The Salsa20 stream cipher algorithm is designed by Daniel J.
1336 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001337
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001338config CRYPTO_SALSA20_586
Kees Cook3b4afaf2012-10-02 11:16:49 -07001339 tristate "Salsa20 stream cipher algorithm (i586)"
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001340 depends on (X86 || UML_X86) && !64BIT
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001341 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001342 select CRYPTO_SALSA20
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001343 help
1344 Salsa20 stream cipher algorithm.
1345
1346 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1347 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1348
1349 The Salsa20 stream cipher algorithm is designed by Daniel J.
1350 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1351
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001352config CRYPTO_SALSA20_X86_64
Kees Cook3b4afaf2012-10-02 11:16:49 -07001353 tristate "Salsa20 stream cipher algorithm (x86_64)"
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001354 depends on (X86 || UML_X86) && 64BIT
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001355 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001356 select CRYPTO_SALSA20
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001357 help
1358 Salsa20 stream cipher algorithm.
1359
1360 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1361 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1362
1363 The Salsa20 stream cipher algorithm is designed by Daniel J.
1364 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1365
Martin Willic08d0e62015-06-01 13:43:56 +02001366config CRYPTO_CHACHA20
1367 tristate "ChaCha20 cipher algorithm"
1368 select CRYPTO_BLKCIPHER
1369 help
1370 ChaCha20 cipher algorithm, RFC7539.
1371
1372 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1373 Bernstein and further specified in RFC7539 for use in IETF protocols.
1374 This is the portable C implementation of ChaCha20.
1375
1376 See also:
1377 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1378
Martin Willic9320b62015-07-16 19:14:01 +02001379config CRYPTO_CHACHA20_X86_64
Martin Willi3d1e93c2015-07-16 19:14:03 +02001380 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
Martin Willic9320b62015-07-16 19:14:01 +02001381 depends on X86 && 64BIT
1382 select CRYPTO_BLKCIPHER
1383 select CRYPTO_CHACHA20
1384 help
1385 ChaCha20 cipher algorithm, RFC7539.
1386
1387 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1388 Bernstein and further specified in RFC7539 for use in IETF protocols.
1389 This is the x86_64 assembler implementation using SIMD instructions.
1390
1391 See also:
1392 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1393
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001394config CRYPTO_SEED
1395 tristate "SEED cipher algorithm"
1396 select CRYPTO_ALGAPI
1397 help
1398 SEED cipher algorithm (RFC4269).
1399
1400 SEED is a 128-bit symmetric key block cipher that has been
1401 developed by KISA (Korea Information Security Agency) as a
1402 national standard encryption algorithm of the Republic of Korea.
1403 It is a 16 round block cipher with the key size of 128 bit.
1404
1405 See also:
1406 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1407
1408config CRYPTO_SERPENT
1409 tristate "Serpent cipher algorithm"
1410 select CRYPTO_ALGAPI
1411 help
1412 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1413
1414 Keys are allowed to be from 0 to 256 bits in length, in steps
1415 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1416 variant of Serpent for compatibility with old kerneli.org code.
1417
1418 See also:
1419 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1420
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001421config CRYPTO_SERPENT_SSE2_X86_64
1422 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1423 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001424 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001425 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001426 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001427 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001428 help
1429 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1430
1431 Keys are allowed to be from 0 to 256 bits in length, in steps
1432 of 8 bits.
1433
Masanari Iida1e6232f2015-04-04 00:20:30 +09001434 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001435 blocks parallel using SSE2 instruction set.
1436
1437 See also:
1438 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1439
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001440config CRYPTO_SERPENT_SSE2_586
1441 tristate "Serpent cipher algorithm (i586/SSE2)"
1442 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001443 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001444 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001445 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001446 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001447 help
1448 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1449
1450 Keys are allowed to be from 0 to 256 bits in length, in steps
1451 of 8 bits.
1452
1453 This module provides Serpent cipher algorithm that processes four
1454 blocks parallel using SSE2 instruction set.
1455
1456 See also:
1457 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1458
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001459config CRYPTO_SERPENT_AVX_X86_64
1460 tristate "Serpent cipher algorithm (x86_64/AVX)"
1461 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001462 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001463 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001464 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001465 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001466 select CRYPTO_XTS
1467 help
1468 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1469
1470 Keys are allowed to be from 0 to 256 bits in length, in steps
1471 of 8 bits.
1472
1473 This module provides the Serpent cipher algorithm that processes
1474 eight blocks parallel using the AVX instruction set.
1475
1476 See also:
1477 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1478
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001479config CRYPTO_SERPENT_AVX2_X86_64
1480 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1481 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001482 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001483 help
1484 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1485
1486 Keys are allowed to be from 0 to 256 bits in length, in steps
1487 of 8 bits.
1488
1489 This module provides Serpent cipher algorithm that processes 16
1490 blocks parallel using AVX2 instruction set.
1491
1492 See also:
1493 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1494
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +00001495config CRYPTO_SM4
1496 tristate "SM4 cipher algorithm"
1497 select CRYPTO_ALGAPI
1498 help
1499 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1500
1501 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1502 Organization of State Commercial Administration of China (OSCCA)
1503 as an authorized cryptographic algorithms for the use within China.
1504
1505 SMS4 was originally created for use in protecting wireless
1506 networks, and is mandated in the Chinese National Standard for
1507 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1508 (GB.15629.11-2003).
1509
1510 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1511 standardized through TC 260 of the Standardization Administration
1512 of the People's Republic of China (SAC).
1513
1514 The input, output, and key of SMS4 are each 128 bits.
1515
1516 See also: <https://eprint.iacr.org/2008/329.pdf>
1517
1518 If unsure, say N.
1519
Eric Biggersda7a0ab2018-02-14 10:42:19 -08001520config CRYPTO_SPECK
1521 tristate "Speck cipher algorithm"
1522 select CRYPTO_ALGAPI
1523 help
1524 Speck is a lightweight block cipher that is tuned for optimal
1525 performance in software (rather than hardware).
1526
1527 Speck may not be as secure as AES, and should only be used on systems
1528 where AES is not fast enough.
1529
1530 See also: <https://eprint.iacr.org/2013/404.pdf>
1531
1532 If unsure, say N.
1533
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001534config CRYPTO_TEA
1535 tristate "TEA, XTEA and XETA cipher algorithms"
1536 select CRYPTO_ALGAPI
1537 help
1538 TEA cipher algorithm.
1539
1540 Tiny Encryption Algorithm is a simple cipher that uses
1541 many rounds for security. It is very fast and uses
1542 little memory.
1543
1544 Xtendend Tiny Encryption Algorithm is a modification to
1545 the TEA algorithm to address a potential key weakness
1546 in the TEA algorithm.
1547
1548 Xtendend Encryption Tiny Algorithm is a mis-implementation
1549 of the XTEA algorithm for compatibility purposes.
1550
1551config CRYPTO_TWOFISH
1552 tristate "Twofish cipher algorithm"
1553 select CRYPTO_ALGAPI
1554 select CRYPTO_TWOFISH_COMMON
1555 help
1556 Twofish cipher algorithm.
1557
1558 Twofish was submitted as an AES (Advanced Encryption Standard)
1559 candidate cipher by researchers at CounterPane Systems. It is a
1560 16 round block cipher supporting key sizes of 128, 192, and 256
1561 bits.
1562
1563 See also:
1564 <http://www.schneier.com/twofish.html>
1565
1566config CRYPTO_TWOFISH_COMMON
1567 tristate
1568 help
1569 Common parts of the Twofish cipher algorithm shared by the
1570 generic c and the assembler implementations.
1571
1572config CRYPTO_TWOFISH_586
1573 tristate "Twofish cipher algorithms (i586)"
1574 depends on (X86 || UML_X86) && !64BIT
1575 select CRYPTO_ALGAPI
1576 select CRYPTO_TWOFISH_COMMON
1577 help
1578 Twofish cipher algorithm.
1579
1580 Twofish was submitted as an AES (Advanced Encryption Standard)
1581 candidate cipher by researchers at CounterPane Systems. It is a
1582 16 round block cipher supporting key sizes of 128, 192, and 256
1583 bits.
1584
1585 See also:
1586 <http://www.schneier.com/twofish.html>
1587
1588config CRYPTO_TWOFISH_X86_64
1589 tristate "Twofish cipher algorithm (x86_64)"
1590 depends on (X86 || UML_X86) && 64BIT
1591 select CRYPTO_ALGAPI
1592 select CRYPTO_TWOFISH_COMMON
1593 help
1594 Twofish cipher algorithm (x86_64).
1595
1596 Twofish was submitted as an AES (Advanced Encryption Standard)
1597 candidate cipher by researchers at CounterPane Systems. It is a
1598 16 round block cipher supporting key sizes of 128, 192, and 256
1599 bits.
1600
1601 See also:
1602 <http://www.schneier.com/twofish.html>
1603
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001604config CRYPTO_TWOFISH_X86_64_3WAY
1605 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001606 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001607 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001608 select CRYPTO_TWOFISH_COMMON
1609 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001610 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001611 help
1612 Twofish cipher algorithm (x86_64, 3-way parallel).
1613
1614 Twofish was submitted as an AES (Advanced Encryption Standard)
1615 candidate cipher by researchers at CounterPane Systems. It is a
1616 16 round block cipher supporting key sizes of 128, 192, and 256
1617 bits.
1618
1619 This module provides Twofish cipher algorithm that processes three
1620 blocks parallel, utilizing resources of out-of-order CPUs better.
1621
1622 See also:
1623 <http://www.schneier.com/twofish.html>
1624
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001625config CRYPTO_TWOFISH_AVX_X86_64
1626 tristate "Twofish cipher algorithm (x86_64/AVX)"
1627 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001628 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001629 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001630 select CRYPTO_SIMD
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001631 select CRYPTO_TWOFISH_COMMON
1632 select CRYPTO_TWOFISH_X86_64
1633 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001634 help
1635 Twofish cipher algorithm (x86_64/AVX).
1636
1637 Twofish was submitted as an AES (Advanced Encryption Standard)
1638 candidate cipher by researchers at CounterPane Systems. It is a
1639 16 round block cipher supporting key sizes of 128, 192, and 256
1640 bits.
1641
1642 This module provides the Twofish cipher algorithm that processes
1643 eight blocks parallel using the AVX Instruction Set.
1644
1645 See also:
1646 <http://www.schneier.com/twofish.html>
1647
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001648comment "Compression"
1649
Linus Torvalds1da177e2005-04-16 15:20:36 -07001650config CRYPTO_DEFLATE
1651 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001652 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001653 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001654 select ZLIB_INFLATE
1655 select ZLIB_DEFLATE
1656 help
1657 This is the Deflate algorithm (RFC1951), specified for use in
1658 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001659
Linus Torvalds1da177e2005-04-16 15:20:36 -07001660 You will most probably want this if using IPSec.
1661
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001662config CRYPTO_LZO
1663 tristate "LZO compression algorithm"
1664 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001665 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001666 select LZO_COMPRESS
1667 select LZO_DECOMPRESS
1668 help
1669 This is the LZO algorithm.
1670
Seth Jennings35a1fc12012-07-19 09:42:41 -05001671config CRYPTO_842
1672 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001673 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001674 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001675 select 842_COMPRESS
1676 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001677 help
1678 This is the 842 algorithm.
1679
Chanho Min0ea85302013-07-08 16:01:51 -07001680config CRYPTO_LZ4
1681 tristate "LZ4 compression algorithm"
1682 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001683 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001684 select LZ4_COMPRESS
1685 select LZ4_DECOMPRESS
1686 help
1687 This is the LZ4 algorithm.
1688
1689config CRYPTO_LZ4HC
1690 tristate "LZ4HC compression algorithm"
1691 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001692 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001693 select LZ4HC_COMPRESS
1694 select LZ4_DECOMPRESS
1695 help
1696 This is the LZ4 high compression mode algorithm.
1697
Neil Horman17f0f4a2008-08-14 22:15:52 +10001698comment "Random Number Generation"
1699
1700config CRYPTO_ANSI_CPRNG
1701 tristate "Pseudo Random Number Generation for Cryptographic modules"
1702 select CRYPTO_AES
1703 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001704 help
1705 This option enables the generic pseudo random number generator
1706 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001707 ANSI X9.31 A.2.4. Note that this option must be enabled if
1708 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001709
Herbert Xuf2c89a12014-07-04 22:15:08 +08001710menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001711 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001712 help
1713 NIST SP800-90A compliant DRBG. In the following submenu, one or
1714 more of the DRBG types must be selected.
1715
Herbert Xuf2c89a12014-07-04 22:15:08 +08001716if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001717
1718config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001719 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001720 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001721 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001722 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001723
1724config CRYPTO_DRBG_HASH
1725 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001726 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001727 help
1728 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1729
1730config CRYPTO_DRBG_CTR
1731 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001732 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001733 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001734 help
1735 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1736
Herbert Xuf2c89a12014-07-04 22:15:08 +08001737config CRYPTO_DRBG
1738 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001739 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001740 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001741 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001742
1743endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001744
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001745config CRYPTO_JITTERENTROPY
1746 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001747 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001748 help
1749 The Jitterentropy RNG is a noise that is intended
1750 to provide seed to another RNG. The RNG does not
1751 perform any cryptographic whitening of the generated
1752 random numbers. This Jitterentropy RNG registers with
1753 the kernel crypto API and can be used by any caller.
1754
Herbert Xu03c8efc2010-10-19 21:12:39 +08001755config CRYPTO_USER_API
1756 tristate
1757
Herbert Xufe869cd2010-10-19 21:23:00 +08001758config CRYPTO_USER_API_HASH
1759 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001760 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001761 select CRYPTO_HASH
1762 select CRYPTO_USER_API
1763 help
1764 This option enables the user-spaces interface for hash
1765 algorithms.
1766
Herbert Xu8ff59092010-10-19 21:31:55 +08001767config CRYPTO_USER_API_SKCIPHER
1768 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001769 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001770 select CRYPTO_BLKCIPHER
1771 select CRYPTO_USER_API
1772 help
1773 This option enables the user-spaces interface for symmetric
1774 key cipher algorithms.
1775
Stephan Mueller2f3755382014-12-25 23:00:39 +01001776config CRYPTO_USER_API_RNG
1777 tristate "User-space interface for random number generator algorithms"
1778 depends on NET
1779 select CRYPTO_RNG
1780 select CRYPTO_USER_API
1781 help
1782 This option enables the user-spaces interface for random
1783 number generator algorithms.
1784
Herbert Xub64a2d92015-05-28 11:30:35 +08001785config CRYPTO_USER_API_AEAD
1786 tristate "User-space interface for AEAD cipher algorithms"
1787 depends on NET
1788 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001789 select CRYPTO_BLKCIPHER
1790 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001791 select CRYPTO_USER_API
1792 help
1793 This option enables the user-spaces interface for AEAD
1794 cipher algorithms.
1795
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001796config CRYPTO_HASH_INFO
1797 bool
1798
Linus Torvalds1da177e2005-04-16 15:20:36 -07001799source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001800source crypto/asymmetric_keys/Kconfig
David Howellscfc411e2015-08-14 15:20:41 +01001801source certs/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001802
Herbert Xucce9e062006-08-21 21:08:13 +10001803endif # if CRYPTO