blob: de693e0451b828275c488602d658a43804b09823 [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
Joy Latten23e353c2007-10-23 08:50:32 +0800323config CRYPTO_CTR
324 tristate "CTR support"
325 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100326 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800327 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800328 help
329 CTR: Counter mode
330 This block cipher algorithm is required for IPSec.
331
Kevin Coffman76cb9522008-03-24 21:26:16 +0800332config CRYPTO_CTS
333 tristate "CTS support"
334 select CRYPTO_BLKCIPHER
335 help
336 CTS: Cipher Text Stealing
337 This is the Cipher Text Stealing mode as described by
338 Section 8 of rfc2040 and referenced by rfc3962.
339 (rfc3962 includes errata information in its Appendix A)
340 This mode is required for Kerberos gss mechanism support
341 for AES encryption.
342
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800343config CRYPTO_ECB
344 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800345 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000346 select CRYPTO_MANAGER
347 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800348 ECB: Electronic CodeBook mode
349 This is the simplest block cipher algorithm. It simply encrypts
350 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000351
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800352config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200353 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100354 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800355 select CRYPTO_MANAGER
356 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100357 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800358 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
359 narrow block cipher mode for dm-crypt. Use it with cipher
360 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
361 The first 128, 192 or 256 bits in the key are used for AES and the
362 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100363
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800364config CRYPTO_PCBC
365 tristate "PCBC support"
366 select CRYPTO_BLKCIPHER
367 select CRYPTO_MANAGER
368 help
369 PCBC: Propagating Cipher Block Chaining mode
370 This block cipher algorithm is required for RxRPC.
371
372config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200373 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800374 select CRYPTO_BLKCIPHER
375 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100376 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800377 help
378 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
379 key size 256, 384 or 512 bits. This implementation currently
380 can't handle a sectorsize which is not a multiple of 16 bytes.
381
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200382config CRYPTO_KEYWRAP
383 tristate "Key wrapping support"
384 select CRYPTO_BLKCIPHER
385 help
386 Support for key wrapping (NIST SP800-38F / RFC3394) without
387 padding.
388
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800389comment "Hash modes"
390
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300391config CRYPTO_CMAC
392 tristate "CMAC support"
393 select CRYPTO_HASH
394 select CRYPTO_MANAGER
395 help
396 Cipher-based Message Authentication Code (CMAC) specified by
397 The National Institute of Standards and Technology (NIST).
398
399 https://tools.ietf.org/html/rfc4493
400 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
401
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800402config CRYPTO_HMAC
403 tristate "HMAC support"
404 select CRYPTO_HASH
405 select CRYPTO_MANAGER
406 help
407 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
408 This is required for IPSec.
409
410config CRYPTO_XCBC
411 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800412 select CRYPTO_HASH
413 select CRYPTO_MANAGER
414 help
415 XCBC: Keyed-Hashing with encryption algorithm
416 http://www.ietf.org/rfc/rfc3566.txt
417 http://csrc.nist.gov/encryption/modes/proposedmodes/
418 xcbc-mac/xcbc-mac-spec.pdf
419
Shane Wangf1939f72009-09-02 20:05:22 +1000420config CRYPTO_VMAC
421 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000422 select CRYPTO_HASH
423 select CRYPTO_MANAGER
424 help
425 VMAC is a message authentication algorithm designed for
426 very high speed on 64-bit architectures.
427
428 See also:
429 <http://fastcrypto.org/vmac>
430
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800431comment "Digest"
432
433config CRYPTO_CRC32C
434 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800435 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700436 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800437 help
438 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
439 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800440 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800441
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800442config CRYPTO_CRC32C_INTEL
443 tristate "CRC32c INTEL hardware acceleration"
444 depends on X86
445 select CRYPTO_HASH
446 help
447 In Intel processor with SSE4.2 supported, the processor will
448 support CRC32C implementation using hardware accelerated CRC32
449 instruction. This option will create 'crc32c-intel' module,
450 which will enable any routine to use the CRC32 instruction to
451 gain performance compared with software implementation.
452 Module will be crc32c-intel.
453
Jean Delvare7cf31862016-11-22 10:32:44 +0100454config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000455 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000456 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000457 select CRYPTO_HASH
458 select CRC32
459 help
460 CRC32c algorithm implemented using vector polynomial multiply-sum
461 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
462 and newer processors for improved performance.
463
464
David S. Miller442a7c42012-08-22 20:47:36 -0700465config CRYPTO_CRC32C_SPARC64
466 tristate "CRC32c CRC algorithm (SPARC64)"
467 depends on SPARC64
468 select CRYPTO_HASH
469 select CRC32
470 help
471 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
472 when available.
473
Alexander Boyko78c37d12013-01-10 18:54:59 +0400474config CRYPTO_CRC32
475 tristate "CRC32 CRC algorithm"
476 select CRYPTO_HASH
477 select CRC32
478 help
479 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
480 Shash crypto api wrappers to crc32_le function.
481
482config CRYPTO_CRC32_PCLMUL
483 tristate "CRC32 PCLMULQDQ hardware acceleration"
484 depends on X86
485 select CRYPTO_HASH
486 select CRC32
487 help
488 From Intel Westmere and AMD Bulldozer processor with SSE4.2
489 and PCLMULQDQ supported, the processor will support
490 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
491 instruction. This option will create 'crc32-plcmul' module,
492 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
493 and gain better performance as compared with the table implementation.
494
Herbert Xu684115212013-09-07 12:56:26 +1000495config CRYPTO_CRCT10DIF
496 tristate "CRCT10DIF algorithm"
497 select CRYPTO_HASH
498 help
499 CRC T10 Data Integrity Field computation is being cast as
500 a crypto transform. This allows for faster crc t10 diff
501 transforms to be used if they are available.
502
503config CRYPTO_CRCT10DIF_PCLMUL
504 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
505 depends on X86 && 64BIT && CRC_T10DIF
506 select CRYPTO_HASH
507 help
508 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
509 CRC T10 DIF PCLMULQDQ computation can be hardware
510 accelerated PCLMULQDQ instruction. This option will create
511 'crct10dif-plcmul' module, which is faster when computing the
512 crct10dif checksum as compared with the generic table implementation.
513
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100514config CRYPTO_CRCT10DIF_VPMSUM
515 tristate "CRC32T10DIF powerpc64 hardware acceleration"
516 depends on PPC64 && ALTIVEC && CRC_T10DIF
517 select CRYPTO_HASH
518 help
519 CRC10T10DIF algorithm implemented using vector polynomial
520 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
521 POWER8 and newer processors for improved performance.
522
Daniel Axtens146c8682017-03-15 23:37:37 +1100523config CRYPTO_VPMSUM_TESTER
524 tristate "Powerpc64 vpmsum hardware acceleration tester"
525 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
526 help
527 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
528 POWER8 vpmsum instructions.
529 Unless you are testing these algorithms, you don't need this.
530
Huang Ying2cdc6892009-08-06 15:32:38 +1000531config CRYPTO_GHASH
532 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000533 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100534 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000535 help
536 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
537
Martin Willif979e012015-06-01 13:43:58 +0200538config CRYPTO_POLY1305
539 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100540 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200541 help
542 Poly1305 authenticator algorithm, RFC7539.
543
544 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
545 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
546 in IETF protocols. This is the portable C implementation of Poly1305.
547
Martin Willic70f4ab2015-07-16 19:14:06 +0200548config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200549 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200550 depends on X86 && 64BIT
551 select CRYPTO_POLY1305
552 help
553 Poly1305 authenticator algorithm, RFC7539.
554
555 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
556 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
557 in IETF protocols. This is the x86_64 assembler implementation using SIMD
558 instructions.
559
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800560config CRYPTO_MD4
561 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800562 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700563 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800564 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700565
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800566config CRYPTO_MD5
567 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800568 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700569 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800570 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700571
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200572config CRYPTO_MD5_OCTEON
573 tristate "MD5 digest algorithm (OCTEON)"
574 depends on CPU_CAVIUM_OCTEON
575 select CRYPTO_MD5
576 select CRYPTO_HASH
577 help
578 MD5 message digest algorithm (RFC1321) implemented
579 using OCTEON crypto instructions, when available.
580
Markus Stockhausene8e59952015-03-01 19:30:46 +0100581config CRYPTO_MD5_PPC
582 tristate "MD5 digest algorithm (PPC)"
583 depends on PPC
584 select CRYPTO_HASH
585 help
586 MD5 message digest algorithm (RFC1321) implemented
587 in PPC assembler.
588
David S. Millerfa4dfed2012-08-19 21:51:26 -0700589config CRYPTO_MD5_SPARC64
590 tristate "MD5 digest algorithm (SPARC64)"
591 depends on SPARC64
592 select CRYPTO_MD5
593 select CRYPTO_HASH
594 help
595 MD5 message digest algorithm (RFC1321) implemented
596 using sparc64 crypto instructions, when available.
597
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800598config CRYPTO_MICHAEL_MIC
599 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800600 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800601 help
602 Michael MIC is used for message integrity protection in TKIP
603 (IEEE 802.11i). This algorithm is required for TKIP, but it
604 should not be used for other purposes because of the weakness
605 of the algorithm.
606
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800607config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800608 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800609 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800610 help
611 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800612
Adrian Bunkb6d44342008-07-16 19:28:00 +0800613 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000614 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800615 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800616
Adrian Bunkb6d44342008-07-16 19:28:00 +0800617 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800618 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800619
620config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800621 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800622 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800623 help
624 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800625
Adrian Bunkb6d44342008-07-16 19:28:00 +0800626 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
627 to be used as a secure replacement for the 128-bit hash functions
628 MD4, MD5 and it's predecessor RIPEMD
629 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800630
Adrian Bunkb6d44342008-07-16 19:28:00 +0800631 It's speed is comparable to SHA1 and there are no known attacks
632 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +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 Rueegsegger534fe2c2008-05-09 21:30:27 +0800636
637config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800638 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800639 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800640 help
641 RIPEMD-256 is an optional extension of RIPEMD-128 with a
642 256 bit hash. It is intended for applications that require
643 longer hash-results, without needing a larger security level
644 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800645
Adrian Bunkb6d44342008-07-16 19:28:00 +0800646 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800647 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800648
649config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800650 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800651 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800652 help
653 RIPEMD-320 is an optional extension of RIPEMD-160 with a
654 320 bit hash. It is intended for applications that require
655 longer hash-results, without needing a larger security level
656 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800657
Adrian Bunkb6d44342008-07-16 19:28:00 +0800658 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800659 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800660
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800661config CRYPTO_SHA1
662 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800663 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800664 help
665 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
666
Mathias Krause66be8952011-08-04 20:19:25 +0200667config CRYPTO_SHA1_SSSE3
time38b6b72015-09-10 15:27:26 -0700668 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200669 depends on X86 && 64BIT
670 select CRYPTO_SHA1
671 select CRYPTO_HASH
672 help
673 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
674 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b72015-09-10 15:27:26 -0700675 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
676 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200677
Tim Chen8275d1a2013-03-26 13:59:17 -0700678config CRYPTO_SHA256_SSSE3
time38b6b72015-09-10 15:27:26 -0700679 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700680 depends on X86 && 64BIT
681 select CRYPTO_SHA256
682 select CRYPTO_HASH
683 help
684 SHA-256 secure hash standard (DFIPS 180-2) implemented
685 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
686 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b72015-09-10 15:27:26 -0700687 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
688 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700689
Tim Chen87de4572013-03-26 14:00:02 -0700690config CRYPTO_SHA512_SSSE3
691 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
692 depends on X86 && 64BIT
693 select CRYPTO_SHA512
694 select CRYPTO_HASH
695 help
696 SHA-512 secure hash standard (DFIPS 180-2) implemented
697 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
698 Extensions version 1 (AVX1), or Advanced Vector Extensions
699 version 2 (AVX2) instructions, when available.
700
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200701config CRYPTO_SHA1_OCTEON
702 tristate "SHA1 digest algorithm (OCTEON)"
703 depends on CPU_CAVIUM_OCTEON
704 select CRYPTO_SHA1
705 select CRYPTO_HASH
706 help
707 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
708 using OCTEON crypto instructions, when available.
709
David S. Miller4ff28d42012-08-19 15:41:53 -0700710config CRYPTO_SHA1_SPARC64
711 tristate "SHA1 digest algorithm (SPARC64)"
712 depends on SPARC64
713 select CRYPTO_SHA1
714 select CRYPTO_HASH
715 help
716 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
717 using sparc64 crypto instructions, when available.
718
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000719config CRYPTO_SHA1_PPC
720 tristate "SHA1 digest algorithm (powerpc)"
721 depends on PPC
722 help
723 This is the powerpc hardware accelerated implementation of the
724 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
725
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100726config CRYPTO_SHA1_PPC_SPE
727 tristate "SHA1 digest algorithm (PPC SPE)"
728 depends on PPC && SPE
729 help
730 SHA-1 secure hash standard (DFIPS 180-4) implemented
731 using powerpc SPE SIMD instruction set.
732
Tim Chen1e65b812014-07-31 10:29:51 -0700733config CRYPTO_SHA1_MB
734 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
735 depends on X86 && 64BIT
736 select CRYPTO_SHA1
737 select CRYPTO_HASH
738 select CRYPTO_MCRYPTD
739 help
740 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
741 using multi-buffer technique. This algorithm computes on
742 multiple data lanes concurrently with SIMD instructions for
743 better throughput. It should not be enabled by default but
744 used when there is significant amount of work to keep the keep
745 the data lanes filled to get performance benefit. If the data
746 lanes remain unfilled, a flush operation will be initiated to
747 process the crypto jobs, adding a slight latency.
748
Megha Dey9be7e242016-06-23 18:40:43 -0700749config CRYPTO_SHA256_MB
750 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
751 depends on X86 && 64BIT
752 select CRYPTO_SHA256
753 select CRYPTO_HASH
754 select CRYPTO_MCRYPTD
755 help
756 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
757 using multi-buffer technique. This algorithm computes on
758 multiple data lanes concurrently with SIMD instructions for
759 better throughput. It should not be enabled by default but
760 used when there is significant amount of work to keep the keep
761 the data lanes filled to get performance benefit. If the data
762 lanes remain unfilled, a flush operation will be initiated to
763 process the crypto jobs, adding a slight latency.
764
Megha Dey026bb8a2016-06-27 10:20:05 -0700765config CRYPTO_SHA512_MB
766 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
767 depends on X86 && 64BIT
768 select CRYPTO_SHA512
769 select CRYPTO_HASH
770 select CRYPTO_MCRYPTD
771 help
772 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
773 using multi-buffer technique. This algorithm computes on
774 multiple data lanes concurrently with SIMD instructions for
775 better throughput. It should not be enabled by default but
776 used when there is significant amount of work to keep the keep
777 the data lanes filled to get performance benefit. If the data
778 lanes remain unfilled, a flush operation will be initiated to
779 process the crypto jobs, adding a slight latency.
780
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800781config CRYPTO_SHA256
782 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800783 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800784 help
785 SHA256 secure hash standard (DFIPS 180-2).
786
787 This version of SHA implements a 256 bit hash with 128 bits of
788 security against collision attacks.
789
Adrian Bunkb6d44342008-07-16 19:28:00 +0800790 This code also includes SHA-224, a 224 bit hash with 112 bits
791 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800792
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100793config CRYPTO_SHA256_PPC_SPE
794 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
795 depends on PPC && SPE
796 select CRYPTO_SHA256
797 select CRYPTO_HASH
798 help
799 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
800 implemented using powerpc SPE SIMD instruction set.
801
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200802config CRYPTO_SHA256_OCTEON
803 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
804 depends on CPU_CAVIUM_OCTEON
805 select CRYPTO_SHA256
806 select CRYPTO_HASH
807 help
808 SHA-256 secure hash standard (DFIPS 180-2) implemented
809 using OCTEON crypto instructions, when available.
810
David S. Miller86c93b22012-08-19 17:11:37 -0700811config CRYPTO_SHA256_SPARC64
812 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
813 depends on SPARC64
814 select CRYPTO_SHA256
815 select CRYPTO_HASH
816 help
817 SHA-256 secure hash standard (DFIPS 180-2) implemented
818 using sparc64 crypto instructions, when available.
819
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800820config CRYPTO_SHA512
821 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100822 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800823 help
824 SHA512 secure hash standard (DFIPS 180-2).
825
826 This version of SHA implements a 512 bit hash with 256 bits of
827 security against collision attacks.
828
829 This code also includes SHA-384, a 384 bit hash with 192 bits
830 of security against collision attacks.
831
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200832config CRYPTO_SHA512_OCTEON
833 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
834 depends on CPU_CAVIUM_OCTEON
835 select CRYPTO_SHA512
836 select CRYPTO_HASH
837 help
838 SHA-512 secure hash standard (DFIPS 180-2) implemented
839 using OCTEON crypto instructions, when available.
840
David S. Miller775e0c62012-08-19 17:37:56 -0700841config CRYPTO_SHA512_SPARC64
842 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
843 depends on SPARC64
844 select CRYPTO_SHA512
845 select CRYPTO_HASH
846 help
847 SHA-512 secure hash standard (DFIPS 180-2) implemented
848 using sparc64 crypto instructions, when available.
849
Jeff Garzik53964b92016-06-17 10:30:35 +0530850config CRYPTO_SHA3
851 tristate "SHA3 digest algorithm"
852 select CRYPTO_HASH
853 help
854 SHA-3 secure hash standard (DFIPS 202). It's based on
855 cryptographic sponge function family called Keccak.
856
857 References:
858 http://keccak.noekeon.org/
859
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +0300860config CRYPTO_SM3
861 tristate "SM3 digest algorithm"
862 select CRYPTO_HASH
863 help
864 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
865 It is part of the Chinese Commercial Cryptography suite.
866
867 References:
868 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
869 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
870
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800871config CRYPTO_TGR192
872 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800873 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800874 help
875 Tiger hash algorithm 192, 160 and 128-bit hashes
876
877 Tiger is a hash function optimized for 64-bit processors while
878 still having decent performance on 32-bit processors.
879 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700880
881 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800882 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
883
884config CRYPTO_WP512
885 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800886 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800887 help
888 Whirlpool hash algorithm 512, 384 and 256-bit hashes
889
890 Whirlpool-512 is part of the NESSIE cryptographic primitives.
891 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
892
893 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800894 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800895
Huang Ying0e1227d2009-10-19 11:53:06 +0900896config CRYPTO_GHASH_CLMUL_NI_INTEL
897 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800898 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900899 select CRYPTO_CRYPTD
900 help
901 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
902 The implementation is accelerated by CLMUL-NI of Intel.
903
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800904comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700905
906config CRYPTO_AES
907 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000908 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700909 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800910 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700911 algorithm.
912
913 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800914 both hardware and software across a wide range of computing
915 environments regardless of its use in feedback or non-feedback
916 modes. Its key setup time is excellent, and its key agility is
917 good. Rijndael's very low memory requirements make it very well
918 suited for restricted-space environments, in which it also
919 demonstrates excellent performance. Rijndael's operations are
920 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700921
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800922 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700923
924 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
925
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000926config CRYPTO_AES_TI
927 tristate "Fixed time AES cipher"
928 select CRYPTO_ALGAPI
929 help
930 This is a generic implementation of AES that attempts to eliminate
931 data dependent latencies as much as possible without affecting
932 performance too much. It is intended for use by the generic CCM
933 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
934 solely on encryption (although decryption is supported as well, but
935 with a more dramatic performance hit)
936
937 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
938 8 for decryption), this implementation only uses just two S-boxes of
939 256 bytes each, and attempts to eliminate data dependent latencies by
940 prefetching the entire table into the cache at the start of each
941 block.
942
Linus Torvalds1da177e2005-04-16 15:20:36 -0700943config CRYPTO_AES_586
944 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000945 depends on (X86 || UML_X86) && !64BIT
946 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800947 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700948 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800949 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700950 algorithm.
951
952 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800953 both hardware and software across a wide range of computing
954 environments regardless of its use in feedback or non-feedback
955 modes. Its key setup time is excellent, and its key agility is
956 good. Rijndael's very low memory requirements make it very well
957 suited for restricted-space environments, in which it also
958 demonstrates excellent performance. Rijndael's operations are
959 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700960
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800961 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700962
963 See <http://csrc.nist.gov/encryption/aes/> for more information.
964
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700965config CRYPTO_AES_X86_64
966 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000967 depends on (X86 || UML_X86) && 64BIT
968 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +0800969 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700970 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800971 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700972 algorithm.
973
974 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800975 both hardware and software across a wide range of computing
976 environments regardless of its use in feedback or non-feedback
977 modes. Its key setup time is excellent, and its key agility is
978 good. Rijndael's very low memory requirements make it very well
979 suited for restricted-space environments, in which it also
980 demonstrates excellent performance. Rijndael's operations are
981 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700982
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800983 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700984
985 See <http://csrc.nist.gov/encryption/aes/> for more information.
986
Huang Ying54b6a1b2009-01-18 16:28:34 +1100987config CRYPTO_AES_NI_INTEL
988 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800989 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +0800990 select CRYPTO_AEAD
Mathias Krause0d258ef2010-11-27 16:34:46 +0800991 select CRYPTO_AES_X86_64 if 64BIT
992 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +1100993 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +0800994 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +0300995 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +0800996 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +1100997 help
998 Use Intel AES-NI instructions for AES algorithm.
999
1000 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1001 algorithm.
1002
1003 Rijndael appears to be consistently a very good performer in
1004 both hardware and software across a wide range of computing
1005 environments regardless of its use in feedback or non-feedback
1006 modes. Its key setup time is excellent, and its key agility is
1007 good. Rijndael's very low memory requirements make it very well
1008 suited for restricted-space environments, in which it also
1009 demonstrates excellent performance. Rijndael's operations are
1010 among the easiest to defend against power and timing attacks.
1011
1012 The AES specifies three key sizes: 128, 192 and 256 bits
1013
1014 See <http://csrc.nist.gov/encryption/aes/> for more information.
1015
Mathias Krause0d258ef2010-11-27 16:34:46 +08001016 In addition to AES cipher algorithm support, the acceleration
1017 for some popular block cipher mode is supported too, including
1018 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
1019 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001020
David S. Miller9bf48522012-08-21 03:58:13 -07001021config CRYPTO_AES_SPARC64
1022 tristate "AES cipher algorithms (SPARC64)"
1023 depends on SPARC64
1024 select CRYPTO_CRYPTD
1025 select CRYPTO_ALGAPI
1026 help
1027 Use SPARC64 crypto opcodes for AES algorithm.
1028
1029 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1030 algorithm.
1031
1032 Rijndael appears to be consistently a very good performer in
1033 both hardware and software across a wide range of computing
1034 environments regardless of its use in feedback or non-feedback
1035 modes. Its key setup time is excellent, and its key agility is
1036 good. Rijndael's very low memory requirements make it very well
1037 suited for restricted-space environments, in which it also
1038 demonstrates excellent performance. Rijndael's operations are
1039 among the easiest to defend against power and timing attacks.
1040
1041 The AES specifies three key sizes: 128, 192 and 256 bits
1042
1043 See <http://csrc.nist.gov/encryption/aes/> for more information.
1044
1045 In addition to AES cipher algorithm support, the acceleration
1046 for some popular block cipher mode is supported too, including
1047 ECB and CBC.
1048
Markus Stockhausen504c6142015-02-22 10:00:10 +01001049config CRYPTO_AES_PPC_SPE
1050 tristate "AES cipher algorithms (PPC SPE)"
1051 depends on PPC && SPE
1052 help
1053 AES cipher algorithms (FIPS-197). Additionally the acceleration
1054 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1055 This module should only be used for low power (router) devices
1056 without hardware AES acceleration (e.g. caam crypto). It reduces the
1057 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1058 timining attacks. Nevertheless it might be not as secure as other
1059 architecture specific assembler implementations that work on 1KB
1060 tables or 256 bytes S-boxes.
1061
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001062config CRYPTO_ANUBIS
1063 tristate "Anubis cipher algorithm"
1064 select CRYPTO_ALGAPI
1065 help
1066 Anubis cipher algorithm.
1067
1068 Anubis is a variable key length cipher which can use keys from
1069 128 bits to 320 bits in length. It was evaluated as a entrant
1070 in the NESSIE competition.
1071
1072 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001073 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1074 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001075
1076config CRYPTO_ARC4
1077 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001078 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001079 help
1080 ARC4 cipher algorithm.
1081
1082 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1083 bits in length. This algorithm is required for driver-based
1084 WEP, but it should not be for other purposes because of the
1085 weakness of the algorithm.
1086
1087config CRYPTO_BLOWFISH
1088 tristate "Blowfish cipher algorithm"
1089 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001090 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001091 help
1092 Blowfish cipher algorithm, by Bruce Schneier.
1093
1094 This is a variable key length cipher which can use keys from 32
1095 bits to 448 bits in length. It's fast, simple and specifically
1096 designed for use on "large microprocessors".
1097
1098 See also:
1099 <http://www.schneier.com/blowfish.html>
1100
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001101config CRYPTO_BLOWFISH_COMMON
1102 tristate
1103 help
1104 Common parts of the Blowfish cipher algorithm shared by the
1105 generic c and the assembler implementations.
1106
1107 See also:
1108 <http://www.schneier.com/blowfish.html>
1109
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001110config CRYPTO_BLOWFISH_X86_64
1111 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001112 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001113 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001114 select CRYPTO_BLOWFISH_COMMON
1115 help
1116 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1117
1118 This is a variable key length cipher which can use keys from 32
1119 bits to 448 bits in length. It's fast, simple and specifically
1120 designed for use on "large microprocessors".
1121
1122 See also:
1123 <http://www.schneier.com/blowfish.html>
1124
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001125config CRYPTO_CAMELLIA
1126 tristate "Camellia cipher algorithms"
1127 depends on CRYPTO
1128 select CRYPTO_ALGAPI
1129 help
1130 Camellia cipher algorithms module.
1131
1132 Camellia is a symmetric key block cipher developed jointly
1133 at NTT and Mitsubishi Electric Corporation.
1134
1135 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1136
1137 See also:
1138 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1139
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001140config CRYPTO_CAMELLIA_X86_64
1141 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001142 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001143 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001144 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001145 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001146 help
1147 Camellia cipher algorithm module (x86_64).
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 Kivilinnad9b1d2e2012-10-26 14:49:01 +03001157config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1158 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1159 depends on X86 && 64BIT
1160 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001161 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001162 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001163 select CRYPTO_GLUE_HELPER_X86
1164 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001165 select CRYPTO_XTS
1166 help
1167 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1168
1169 Camellia is a symmetric key block cipher developed jointly
1170 at NTT and Mitsubishi Electric Corporation.
1171
1172 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1173
1174 See also:
1175 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1176
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001177config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1178 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1179 depends on X86 && 64BIT
1180 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001181 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001182 help
1183 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1184
1185 Camellia is a symmetric key block cipher developed jointly
1186 at NTT and Mitsubishi Electric Corporation.
1187
1188 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1189
1190 See also:
1191 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1192
David S. Miller81658ad2012-08-28 12:05:54 -07001193config CRYPTO_CAMELLIA_SPARC64
1194 tristate "Camellia cipher algorithm (SPARC64)"
1195 depends on SPARC64
1196 depends on CRYPTO
1197 select CRYPTO_ALGAPI
1198 help
1199 Camellia cipher algorithm module (SPARC64).
1200
1201 Camellia is a symmetric key block cipher developed jointly
1202 at NTT and Mitsubishi Electric Corporation.
1203
1204 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1205
1206 See also:
1207 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1208
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001209config CRYPTO_CAST_COMMON
1210 tristate
1211 help
1212 Common parts of the CAST cipher algorithms shared by the
1213 generic c and the assembler implementations.
1214
Linus Torvalds1da177e2005-04-16 15:20:36 -07001215config CRYPTO_CAST5
1216 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001217 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001218 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001219 help
1220 The CAST5 encryption algorithm (synonymous with CAST-128) is
1221 described in RFC2144.
1222
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001223config CRYPTO_CAST5_AVX_X86_64
1224 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1225 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001226 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001227 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001228 select CRYPTO_CAST_COMMON
1229 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001230 help
1231 The CAST5 encryption algorithm (synonymous with CAST-128) is
1232 described in RFC2144.
1233
1234 This module provides the Cast5 cipher algorithm that processes
1235 sixteen blocks parallel using the AVX instruction set.
1236
Linus Torvalds1da177e2005-04-16 15:20:36 -07001237config CRYPTO_CAST6
1238 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001239 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001240 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001241 help
1242 The CAST6 encryption algorithm (synonymous with CAST-256) is
1243 described in RFC2612.
1244
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001245config CRYPTO_CAST6_AVX_X86_64
1246 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1247 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001248 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001249 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001250 select CRYPTO_CAST_COMMON
1251 select CRYPTO_GLUE_HELPER_X86
1252 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001253 select CRYPTO_XTS
1254 help
1255 The CAST6 encryption algorithm (synonymous with CAST-256) is
1256 described in RFC2612.
1257
1258 This module provides the Cast6 cipher algorithm that processes
1259 eight blocks parallel using the AVX instruction set.
1260
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001261config CRYPTO_DES
1262 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001263 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001264 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001265 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001266
David S. Millerc5aac2d2012-08-25 22:37:23 -07001267config CRYPTO_DES_SPARC64
1268 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001269 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001270 select CRYPTO_ALGAPI
1271 select CRYPTO_DES
1272 help
1273 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1274 optimized using SPARC64 crypto opcodes.
1275
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001276config CRYPTO_DES3_EDE_X86_64
1277 tristate "Triple DES EDE cipher algorithm (x86-64)"
1278 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001279 select CRYPTO_BLKCIPHER
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001280 select CRYPTO_DES
1281 help
1282 Triple DES EDE (FIPS 46-3) algorithm.
1283
1284 This module provides implementation of the Triple DES EDE cipher
1285 algorithm that is optimized for x86-64 processors. Two versions of
1286 algorithm are provided; regular processing one input block and
1287 one that processes three blocks parallel.
1288
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001289config CRYPTO_FCRYPT
1290 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001291 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001292 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001293 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001294 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001295
1296config CRYPTO_KHAZAD
1297 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001298 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001299 help
1300 Khazad cipher algorithm.
1301
1302 Khazad was a finalist in the initial NESSIE competition. It is
1303 an algorithm optimized for 64-bit processors with good performance
1304 on 32-bit processors. Khazad uses an 128 bit key size.
1305
1306 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001307 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001308
Tan Swee Heng2407d602007-11-23 19:45:00 +08001309config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001310 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001311 select CRYPTO_BLKCIPHER
1312 help
1313 Salsa20 stream cipher algorithm.
1314
1315 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1316 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1317
1318 The Salsa20 stream cipher algorithm is designed by Daniel J.
1319 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001320
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001321config CRYPTO_SALSA20_586
Kees Cook3b4afaf2012-10-02 11:16:49 -07001322 tristate "Salsa20 stream cipher algorithm (i586)"
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001323 depends on (X86 || UML_X86) && !64BIT
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001324 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001325 select CRYPTO_SALSA20
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001326 help
1327 Salsa20 stream cipher algorithm.
1328
1329 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1330 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1331
1332 The Salsa20 stream cipher algorithm is designed by Daniel J.
1333 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1334
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001335config CRYPTO_SALSA20_X86_64
Kees Cook3b4afaf2012-10-02 11:16:49 -07001336 tristate "Salsa20 stream cipher algorithm (x86_64)"
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001337 depends on (X86 || UML_X86) && 64BIT
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001338 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001339 select CRYPTO_SALSA20
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001340 help
1341 Salsa20 stream cipher algorithm.
1342
1343 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1344 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1345
1346 The Salsa20 stream cipher algorithm is designed by Daniel J.
1347 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1348
Martin Willic08d0e62015-06-01 13:43:56 +02001349config CRYPTO_CHACHA20
1350 tristate "ChaCha20 cipher algorithm"
1351 select CRYPTO_BLKCIPHER
1352 help
1353 ChaCha20 cipher algorithm, RFC7539.
1354
1355 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1356 Bernstein and further specified in RFC7539 for use in IETF protocols.
1357 This is the portable C implementation of ChaCha20.
1358
1359 See also:
1360 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1361
Martin Willic9320b62015-07-16 19:14:01 +02001362config CRYPTO_CHACHA20_X86_64
Martin Willi3d1e93c2015-07-16 19:14:03 +02001363 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
Martin Willic9320b62015-07-16 19:14:01 +02001364 depends on X86 && 64BIT
1365 select CRYPTO_BLKCIPHER
1366 select CRYPTO_CHACHA20
1367 help
1368 ChaCha20 cipher algorithm, RFC7539.
1369
1370 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1371 Bernstein and further specified in RFC7539 for use in IETF protocols.
1372 This is the x86_64 assembler implementation using SIMD instructions.
1373
1374 See also:
1375 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1376
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001377config CRYPTO_SEED
1378 tristate "SEED cipher algorithm"
1379 select CRYPTO_ALGAPI
1380 help
1381 SEED cipher algorithm (RFC4269).
1382
1383 SEED is a 128-bit symmetric key block cipher that has been
1384 developed by KISA (Korea Information Security Agency) as a
1385 national standard encryption algorithm of the Republic of Korea.
1386 It is a 16 round block cipher with the key size of 128 bit.
1387
1388 See also:
1389 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1390
1391config CRYPTO_SERPENT
1392 tristate "Serpent cipher algorithm"
1393 select CRYPTO_ALGAPI
1394 help
1395 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1396
1397 Keys are allowed to be from 0 to 256 bits in length, in steps
1398 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1399 variant of Serpent for compatibility with old kerneli.org code.
1400
1401 See also:
1402 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1403
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001404config CRYPTO_SERPENT_SSE2_X86_64
1405 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1406 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001407 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001408 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001409 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001410 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001411 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.
1416
Masanari Iida1e6232f2015-04-04 00:20:30 +09001417 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001418 blocks parallel using SSE2 instruction set.
1419
1420 See also:
1421 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1422
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001423config CRYPTO_SERPENT_SSE2_586
1424 tristate "Serpent cipher algorithm (i586/SSE2)"
1425 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001426 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001427 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001428 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001429 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001430 help
1431 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1432
1433 Keys are allowed to be from 0 to 256 bits in length, in steps
1434 of 8 bits.
1435
1436 This module provides Serpent cipher algorithm that processes four
1437 blocks parallel using SSE2 instruction set.
1438
1439 See also:
1440 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1441
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001442config CRYPTO_SERPENT_AVX_X86_64
1443 tristate "Serpent cipher algorithm (x86_64/AVX)"
1444 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001445 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001446 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001447 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001448 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001449 select CRYPTO_XTS
1450 help
1451 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1452
1453 Keys are allowed to be from 0 to 256 bits in length, in steps
1454 of 8 bits.
1455
1456 This module provides the Serpent cipher algorithm that processes
1457 eight blocks parallel using the AVX instruction set.
1458
1459 See also:
1460 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1461
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001462config CRYPTO_SERPENT_AVX2_X86_64
1463 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1464 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001465 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001466 help
1467 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1468
1469 Keys are allowed to be from 0 to 256 bits in length, in steps
1470 of 8 bits.
1471
1472 This module provides Serpent cipher algorithm that processes 16
1473 blocks parallel using AVX2 instruction set.
1474
1475 See also:
1476 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1477
Eric Biggersda7a0ab2018-02-14 10:42:19 -08001478config CRYPTO_SPECK
1479 tristate "Speck cipher algorithm"
1480 select CRYPTO_ALGAPI
1481 help
1482 Speck is a lightweight block cipher that is tuned for optimal
1483 performance in software (rather than hardware).
1484
1485 Speck may not be as secure as AES, and should only be used on systems
1486 where AES is not fast enough.
1487
1488 See also: <https://eprint.iacr.org/2013/404.pdf>
1489
1490 If unsure, say N.
1491
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001492config CRYPTO_TEA
1493 tristate "TEA, XTEA and XETA cipher algorithms"
1494 select CRYPTO_ALGAPI
1495 help
1496 TEA cipher algorithm.
1497
1498 Tiny Encryption Algorithm is a simple cipher that uses
1499 many rounds for security. It is very fast and uses
1500 little memory.
1501
1502 Xtendend Tiny Encryption Algorithm is a modification to
1503 the TEA algorithm to address a potential key weakness
1504 in the TEA algorithm.
1505
1506 Xtendend Encryption Tiny Algorithm is a mis-implementation
1507 of the XTEA algorithm for compatibility purposes.
1508
1509config CRYPTO_TWOFISH
1510 tristate "Twofish cipher algorithm"
1511 select CRYPTO_ALGAPI
1512 select CRYPTO_TWOFISH_COMMON
1513 help
1514 Twofish cipher algorithm.
1515
1516 Twofish was submitted as an AES (Advanced Encryption Standard)
1517 candidate cipher by researchers at CounterPane Systems. It is a
1518 16 round block cipher supporting key sizes of 128, 192, and 256
1519 bits.
1520
1521 See also:
1522 <http://www.schneier.com/twofish.html>
1523
1524config CRYPTO_TWOFISH_COMMON
1525 tristate
1526 help
1527 Common parts of the Twofish cipher algorithm shared by the
1528 generic c and the assembler implementations.
1529
1530config CRYPTO_TWOFISH_586
1531 tristate "Twofish cipher algorithms (i586)"
1532 depends on (X86 || UML_X86) && !64BIT
1533 select CRYPTO_ALGAPI
1534 select CRYPTO_TWOFISH_COMMON
1535 help
1536 Twofish cipher algorithm.
1537
1538 Twofish was submitted as an AES (Advanced Encryption Standard)
1539 candidate cipher by researchers at CounterPane Systems. It is a
1540 16 round block cipher supporting key sizes of 128, 192, and 256
1541 bits.
1542
1543 See also:
1544 <http://www.schneier.com/twofish.html>
1545
1546config CRYPTO_TWOFISH_X86_64
1547 tristate "Twofish cipher algorithm (x86_64)"
1548 depends on (X86 || UML_X86) && 64BIT
1549 select CRYPTO_ALGAPI
1550 select CRYPTO_TWOFISH_COMMON
1551 help
1552 Twofish cipher algorithm (x86_64).
1553
1554 Twofish was submitted as an AES (Advanced Encryption Standard)
1555 candidate cipher by researchers at CounterPane Systems. It is a
1556 16 round block cipher supporting key sizes of 128, 192, and 256
1557 bits.
1558
1559 See also:
1560 <http://www.schneier.com/twofish.html>
1561
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001562config CRYPTO_TWOFISH_X86_64_3WAY
1563 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001564 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001565 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001566 select CRYPTO_TWOFISH_COMMON
1567 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001568 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001569 help
1570 Twofish cipher algorithm (x86_64, 3-way parallel).
1571
1572 Twofish was submitted as an AES (Advanced Encryption Standard)
1573 candidate cipher by researchers at CounterPane Systems. It is a
1574 16 round block cipher supporting key sizes of 128, 192, and 256
1575 bits.
1576
1577 This module provides Twofish cipher algorithm that processes three
1578 blocks parallel, utilizing resources of out-of-order CPUs better.
1579
1580 See also:
1581 <http://www.schneier.com/twofish.html>
1582
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001583config CRYPTO_TWOFISH_AVX_X86_64
1584 tristate "Twofish cipher algorithm (x86_64/AVX)"
1585 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001586 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001587 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001588 select CRYPTO_SIMD
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001589 select CRYPTO_TWOFISH_COMMON
1590 select CRYPTO_TWOFISH_X86_64
1591 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001592 help
1593 Twofish cipher algorithm (x86_64/AVX).
1594
1595 Twofish was submitted as an AES (Advanced Encryption Standard)
1596 candidate cipher by researchers at CounterPane Systems. It is a
1597 16 round block cipher supporting key sizes of 128, 192, and 256
1598 bits.
1599
1600 This module provides the Twofish cipher algorithm that processes
1601 eight blocks parallel using the AVX Instruction Set.
1602
1603 See also:
1604 <http://www.schneier.com/twofish.html>
1605
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001606comment "Compression"
1607
Linus Torvalds1da177e2005-04-16 15:20:36 -07001608config CRYPTO_DEFLATE
1609 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001610 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001611 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001612 select ZLIB_INFLATE
1613 select ZLIB_DEFLATE
1614 help
1615 This is the Deflate algorithm (RFC1951), specified for use in
1616 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001617
Linus Torvalds1da177e2005-04-16 15:20:36 -07001618 You will most probably want this if using IPSec.
1619
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001620config CRYPTO_LZO
1621 tristate "LZO compression algorithm"
1622 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001623 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001624 select LZO_COMPRESS
1625 select LZO_DECOMPRESS
1626 help
1627 This is the LZO algorithm.
1628
Seth Jennings35a1fc12012-07-19 09:42:41 -05001629config CRYPTO_842
1630 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001631 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001632 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001633 select 842_COMPRESS
1634 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001635 help
1636 This is the 842 algorithm.
1637
Chanho Min0ea85302013-07-08 16:01:51 -07001638config CRYPTO_LZ4
1639 tristate "LZ4 compression algorithm"
1640 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001641 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001642 select LZ4_COMPRESS
1643 select LZ4_DECOMPRESS
1644 help
1645 This is the LZ4 algorithm.
1646
1647config CRYPTO_LZ4HC
1648 tristate "LZ4HC compression algorithm"
1649 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001650 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001651 select LZ4HC_COMPRESS
1652 select LZ4_DECOMPRESS
1653 help
1654 This is the LZ4 high compression mode algorithm.
1655
Neil Horman17f0f4a2008-08-14 22:15:52 +10001656comment "Random Number Generation"
1657
1658config CRYPTO_ANSI_CPRNG
1659 tristate "Pseudo Random Number Generation for Cryptographic modules"
1660 select CRYPTO_AES
1661 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001662 help
1663 This option enables the generic pseudo random number generator
1664 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001665 ANSI X9.31 A.2.4. Note that this option must be enabled if
1666 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001667
Herbert Xuf2c89a12014-07-04 22:15:08 +08001668menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001669 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001670 help
1671 NIST SP800-90A compliant DRBG. In the following submenu, one or
1672 more of the DRBG types must be selected.
1673
Herbert Xuf2c89a12014-07-04 22:15:08 +08001674if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001675
1676config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001677 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001678 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001679 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001680 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001681
1682config CRYPTO_DRBG_HASH
1683 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001684 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001685 help
1686 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1687
1688config CRYPTO_DRBG_CTR
1689 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001690 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001691 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001692 help
1693 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1694
Herbert Xuf2c89a12014-07-04 22:15:08 +08001695config CRYPTO_DRBG
1696 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001697 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001698 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001699 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001700
1701endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001702
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001703config CRYPTO_JITTERENTROPY
1704 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001705 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001706 help
1707 The Jitterentropy RNG is a noise that is intended
1708 to provide seed to another RNG. The RNG does not
1709 perform any cryptographic whitening of the generated
1710 random numbers. This Jitterentropy RNG registers with
1711 the kernel crypto API and can be used by any caller.
1712
Herbert Xu03c8efc2010-10-19 21:12:39 +08001713config CRYPTO_USER_API
1714 tristate
1715
Herbert Xufe869cd2010-10-19 21:23:00 +08001716config CRYPTO_USER_API_HASH
1717 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001718 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001719 select CRYPTO_HASH
1720 select CRYPTO_USER_API
1721 help
1722 This option enables the user-spaces interface for hash
1723 algorithms.
1724
Herbert Xu8ff59092010-10-19 21:31:55 +08001725config CRYPTO_USER_API_SKCIPHER
1726 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001727 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001728 select CRYPTO_BLKCIPHER
1729 select CRYPTO_USER_API
1730 help
1731 This option enables the user-spaces interface for symmetric
1732 key cipher algorithms.
1733
Stephan Mueller2f3755382014-12-25 23:00:39 +01001734config CRYPTO_USER_API_RNG
1735 tristate "User-space interface for random number generator algorithms"
1736 depends on NET
1737 select CRYPTO_RNG
1738 select CRYPTO_USER_API
1739 help
1740 This option enables the user-spaces interface for random
1741 number generator algorithms.
1742
Herbert Xub64a2d92015-05-28 11:30:35 +08001743config CRYPTO_USER_API_AEAD
1744 tristate "User-space interface for AEAD cipher algorithms"
1745 depends on NET
1746 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001747 select CRYPTO_BLKCIPHER
1748 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001749 select CRYPTO_USER_API
1750 help
1751 This option enables the user-spaces interface for AEAD
1752 cipher algorithms.
1753
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001754config CRYPTO_HASH_INFO
1755 bool
1756
Linus Torvalds1da177e2005-04-16 15:20:36 -07001757source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001758source crypto/asymmetric_keys/Kconfig
David Howellscfc411e2015-08-14 15:20:41 +01001759source certs/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001760
Herbert Xucce9e062006-08-21 21:08:13 +10001761endif # if CRYPTO