blob: 48856238a4908769a0897b6e0f1259de54450fd4 [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
Ondrej Mosnacekf606a882018-05-11 14:12:49 +0200292config CRYPTO_AEGIS128
293 tristate "AEGIS-128 AEAD algorithm"
294 select CRYPTO_AEAD
295 select CRYPTO_AES # for AES S-box tables
296 help
297 Support for the AEGIS-128 dedicated AEAD algorithm.
298
299config CRYPTO_AEGIS128L
300 tristate "AEGIS-128L AEAD algorithm"
301 select CRYPTO_AEAD
302 select CRYPTO_AES # for AES S-box tables
303 help
304 Support for the AEGIS-128L dedicated AEAD algorithm.
305
306config CRYPTO_AEGIS256
307 tristate "AEGIS-256 AEAD algorithm"
308 select CRYPTO_AEAD
309 select CRYPTO_AES # for AES S-box tables
310 help
311 Support for the AEGIS-256 dedicated AEAD algorithm.
312
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800313config CRYPTO_SEQIV
314 tristate "Sequence Number IV Generator"
315 select CRYPTO_AEAD
316 select CRYPTO_BLKCIPHER
Herbert Xu856e3f402015-05-21 15:11:13 +0800317 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800318 select CRYPTO_RNG_DEFAULT
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800319 help
320 This IV generator generates an IV based on a sequence number by
321 xoring it with a salt. This algorithm is mainly useful for CTR
322
Herbert Xua10f5542015-05-21 15:11:15 +0800323config CRYPTO_ECHAINIV
324 tristate "Encrypted Chain IV Generator"
325 select CRYPTO_AEAD
326 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800327 select CRYPTO_RNG_DEFAULT
Herbert Xu34912442015-06-03 14:49:29 +0800328 default m
Herbert Xua10f5542015-05-21 15:11:15 +0800329 help
330 This IV generator generates an IV based on the encryption of
331 a sequence number xored with a salt. This is the default
332 algorithm for CBC.
333
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800334comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000335
336config CRYPTO_CBC
337 tristate "CBC support"
338 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000339 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000340 help
341 CBC: Cipher Block Chaining mode
342 This block cipher algorithm is required for IPSec.
343
James Bottomleya7d85e02018-03-01 14:36:17 -0800344config CRYPTO_CFB
345 tristate "CFB support"
346 select CRYPTO_BLKCIPHER
347 select CRYPTO_MANAGER
348 help
349 CFB: Cipher FeedBack mode
350 This block cipher algorithm is required for TPM2 Cryptography.
351
Joy Latten23e353c2007-10-23 08:50:32 +0800352config CRYPTO_CTR
353 tristate "CTR support"
354 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100355 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800356 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800357 help
358 CTR: Counter mode
359 This block cipher algorithm is required for IPSec.
360
Kevin Coffman76cb9522008-03-24 21:26:16 +0800361config CRYPTO_CTS
362 tristate "CTS support"
363 select CRYPTO_BLKCIPHER
364 help
365 CTS: Cipher Text Stealing
366 This is the Cipher Text Stealing mode as described by
367 Section 8 of rfc2040 and referenced by rfc3962.
368 (rfc3962 includes errata information in its Appendix A)
369 This mode is required for Kerberos gss mechanism support
370 for AES encryption.
371
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800372config CRYPTO_ECB
373 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800374 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000375 select CRYPTO_MANAGER
376 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800377 ECB: Electronic CodeBook mode
378 This is the simplest block cipher algorithm. It simply encrypts
379 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000380
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800381config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200382 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100383 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800384 select CRYPTO_MANAGER
385 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100386 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800387 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
388 narrow block cipher mode for dm-crypt. Use it with cipher
389 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
390 The first 128, 192 or 256 bits in the key are used for AES and the
391 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100392
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800393config CRYPTO_PCBC
394 tristate "PCBC support"
395 select CRYPTO_BLKCIPHER
396 select CRYPTO_MANAGER
397 help
398 PCBC: Propagating Cipher Block Chaining mode
399 This block cipher algorithm is required for RxRPC.
400
401config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200402 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800403 select CRYPTO_BLKCIPHER
404 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100405 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800406 help
407 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
408 key size 256, 384 or 512 bits. This implementation currently
409 can't handle a sectorsize which is not a multiple of 16 bytes.
410
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200411config CRYPTO_KEYWRAP
412 tristate "Key wrapping support"
413 select CRYPTO_BLKCIPHER
414 help
415 Support for key wrapping (NIST SP800-38F / RFC3394) without
416 padding.
417
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800418comment "Hash modes"
419
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300420config CRYPTO_CMAC
421 tristate "CMAC support"
422 select CRYPTO_HASH
423 select CRYPTO_MANAGER
424 help
425 Cipher-based Message Authentication Code (CMAC) specified by
426 The National Institute of Standards and Technology (NIST).
427
428 https://tools.ietf.org/html/rfc4493
429 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
430
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800431config CRYPTO_HMAC
432 tristate "HMAC support"
433 select CRYPTO_HASH
434 select CRYPTO_MANAGER
435 help
436 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
437 This is required for IPSec.
438
439config CRYPTO_XCBC
440 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800441 select CRYPTO_HASH
442 select CRYPTO_MANAGER
443 help
444 XCBC: Keyed-Hashing with encryption algorithm
445 http://www.ietf.org/rfc/rfc3566.txt
446 http://csrc.nist.gov/encryption/modes/proposedmodes/
447 xcbc-mac/xcbc-mac-spec.pdf
448
Shane Wangf1939f72009-09-02 20:05:22 +1000449config CRYPTO_VMAC
450 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000451 select CRYPTO_HASH
452 select CRYPTO_MANAGER
453 help
454 VMAC is a message authentication algorithm designed for
455 very high speed on 64-bit architectures.
456
457 See also:
458 <http://fastcrypto.org/vmac>
459
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800460comment "Digest"
461
462config CRYPTO_CRC32C
463 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800464 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700465 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800466 help
467 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
468 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800469 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800470
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800471config CRYPTO_CRC32C_INTEL
472 tristate "CRC32c INTEL hardware acceleration"
473 depends on X86
474 select CRYPTO_HASH
475 help
476 In Intel processor with SSE4.2 supported, the processor will
477 support CRC32C implementation using hardware accelerated CRC32
478 instruction. This option will create 'crc32c-intel' module,
479 which will enable any routine to use the CRC32 instruction to
480 gain performance compared with software implementation.
481 Module will be crc32c-intel.
482
Jean Delvare7cf31862016-11-22 10:32:44 +0100483config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000484 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000485 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000486 select CRYPTO_HASH
487 select CRC32
488 help
489 CRC32c algorithm implemented using vector polynomial multiply-sum
490 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
491 and newer processors for improved performance.
492
493
David S. Miller442a7c42012-08-22 20:47:36 -0700494config CRYPTO_CRC32C_SPARC64
495 tristate "CRC32c CRC algorithm (SPARC64)"
496 depends on SPARC64
497 select CRYPTO_HASH
498 select CRC32
499 help
500 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
501 when available.
502
Alexander Boyko78c37d12013-01-10 18:54:59 +0400503config CRYPTO_CRC32
504 tristate "CRC32 CRC algorithm"
505 select CRYPTO_HASH
506 select CRC32
507 help
508 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
509 Shash crypto api wrappers to crc32_le function.
510
511config CRYPTO_CRC32_PCLMUL
512 tristate "CRC32 PCLMULQDQ hardware acceleration"
513 depends on X86
514 select CRYPTO_HASH
515 select CRC32
516 help
517 From Intel Westmere and AMD Bulldozer processor with SSE4.2
518 and PCLMULQDQ supported, the processor will support
519 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
520 instruction. This option will create 'crc32-plcmul' module,
521 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
522 and gain better performance as compared with the table implementation.
523
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +0000524config CRYPTO_CRC32_MIPS
525 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
526 depends on MIPS_CRC_SUPPORT
527 select CRYPTO_HASH
528 help
529 CRC32c and CRC32 CRC algorithms implemented using mips crypto
530 instructions, when available.
531
532
Herbert Xu684115212013-09-07 12:56:26 +1000533config CRYPTO_CRCT10DIF
534 tristate "CRCT10DIF algorithm"
535 select CRYPTO_HASH
536 help
537 CRC T10 Data Integrity Field computation is being cast as
538 a crypto transform. This allows for faster crc t10 diff
539 transforms to be used if they are available.
540
541config CRYPTO_CRCT10DIF_PCLMUL
542 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
543 depends on X86 && 64BIT && CRC_T10DIF
544 select CRYPTO_HASH
545 help
546 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
547 CRC T10 DIF PCLMULQDQ computation can be hardware
548 accelerated PCLMULQDQ instruction. This option will create
549 'crct10dif-plcmul' module, which is faster when computing the
550 crct10dif checksum as compared with the generic table implementation.
551
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100552config CRYPTO_CRCT10DIF_VPMSUM
553 tristate "CRC32T10DIF powerpc64 hardware acceleration"
554 depends on PPC64 && ALTIVEC && CRC_T10DIF
555 select CRYPTO_HASH
556 help
557 CRC10T10DIF algorithm implemented using vector polynomial
558 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
559 POWER8 and newer processors for improved performance.
560
Daniel Axtens146c8682017-03-15 23:37:37 +1100561config CRYPTO_VPMSUM_TESTER
562 tristate "Powerpc64 vpmsum hardware acceleration tester"
563 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
564 help
565 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
566 POWER8 vpmsum instructions.
567 Unless you are testing these algorithms, you don't need this.
568
Huang Ying2cdc6892009-08-06 15:32:38 +1000569config CRYPTO_GHASH
570 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000571 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100572 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000573 help
574 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
575
Martin Willif979e012015-06-01 13:43:58 +0200576config CRYPTO_POLY1305
577 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100578 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200579 help
580 Poly1305 authenticator algorithm, RFC7539.
581
582 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
583 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
584 in IETF protocols. This is the portable C implementation of Poly1305.
585
Martin Willic70f4ab2015-07-16 19:14:06 +0200586config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200587 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200588 depends on X86 && 64BIT
589 select CRYPTO_POLY1305
590 help
591 Poly1305 authenticator algorithm, RFC7539.
592
593 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
594 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
595 in IETF protocols. This is the x86_64 assembler implementation using SIMD
596 instructions.
597
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800598config CRYPTO_MD4
599 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800600 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700601 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800602 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700603
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800604config CRYPTO_MD5
605 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800606 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700607 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800608 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700609
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200610config CRYPTO_MD5_OCTEON
611 tristate "MD5 digest algorithm (OCTEON)"
612 depends on CPU_CAVIUM_OCTEON
613 select CRYPTO_MD5
614 select CRYPTO_HASH
615 help
616 MD5 message digest algorithm (RFC1321) implemented
617 using OCTEON crypto instructions, when available.
618
Markus Stockhausene8e59952015-03-01 19:30:46 +0100619config CRYPTO_MD5_PPC
620 tristate "MD5 digest algorithm (PPC)"
621 depends on PPC
622 select CRYPTO_HASH
623 help
624 MD5 message digest algorithm (RFC1321) implemented
625 in PPC assembler.
626
David S. Millerfa4dfed2012-08-19 21:51:26 -0700627config CRYPTO_MD5_SPARC64
628 tristate "MD5 digest algorithm (SPARC64)"
629 depends on SPARC64
630 select CRYPTO_MD5
631 select CRYPTO_HASH
632 help
633 MD5 message digest algorithm (RFC1321) implemented
634 using sparc64 crypto instructions, when available.
635
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800636config CRYPTO_MICHAEL_MIC
637 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800638 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800639 help
640 Michael MIC is used for message integrity protection in TKIP
641 (IEEE 802.11i). This algorithm is required for TKIP, but it
642 should not be used for other purposes because of the weakness
643 of the algorithm.
644
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800645config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800646 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800647 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800648 help
649 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800650
Adrian Bunkb6d44342008-07-16 19:28:00 +0800651 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000652 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800653 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800654
Adrian Bunkb6d44342008-07-16 19:28:00 +0800655 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800656 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800657
658config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800659 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800660 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800661 help
662 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800663
Adrian Bunkb6d44342008-07-16 19:28:00 +0800664 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
665 to be used as a secure replacement for the 128-bit hash functions
666 MD4, MD5 and it's predecessor RIPEMD
667 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800668
Adrian Bunkb6d44342008-07-16 19:28:00 +0800669 It's speed is comparable to SHA1 and there are no known attacks
670 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800671
Adrian Bunkb6d44342008-07-16 19:28:00 +0800672 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800673 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800674
675config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800676 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800677 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800678 help
679 RIPEMD-256 is an optional extension of RIPEMD-128 with a
680 256 bit hash. It is intended for applications that require
681 longer hash-results, without needing a larger security level
682 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800683
Adrian Bunkb6d44342008-07-16 19:28:00 +0800684 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800685 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800686
687config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800688 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800689 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800690 help
691 RIPEMD-320 is an optional extension of RIPEMD-160 with a
692 320 bit hash. It is intended for applications that require
693 longer hash-results, without needing a larger security level
694 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800695
Adrian Bunkb6d44342008-07-16 19:28:00 +0800696 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800697 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800698
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800699config CRYPTO_SHA1
700 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800701 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800702 help
703 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
704
Mathias Krause66be8952011-08-04 20:19:25 +0200705config CRYPTO_SHA1_SSSE3
time38b6b72015-09-10 15:27:26 -0700706 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200707 depends on X86 && 64BIT
708 select CRYPTO_SHA1
709 select CRYPTO_HASH
710 help
711 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
712 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b72015-09-10 15:27:26 -0700713 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
714 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200715
Tim Chen8275d1a2013-03-26 13:59:17 -0700716config CRYPTO_SHA256_SSSE3
time38b6b72015-09-10 15:27:26 -0700717 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700718 depends on X86 && 64BIT
719 select CRYPTO_SHA256
720 select CRYPTO_HASH
721 help
722 SHA-256 secure hash standard (DFIPS 180-2) implemented
723 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
724 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b72015-09-10 15:27:26 -0700725 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
726 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700727
Tim Chen87de4572013-03-26 14:00:02 -0700728config CRYPTO_SHA512_SSSE3
729 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
730 depends on X86 && 64BIT
731 select CRYPTO_SHA512
732 select CRYPTO_HASH
733 help
734 SHA-512 secure hash standard (DFIPS 180-2) implemented
735 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
736 Extensions version 1 (AVX1), or Advanced Vector Extensions
737 version 2 (AVX2) instructions, when available.
738
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200739config CRYPTO_SHA1_OCTEON
740 tristate "SHA1 digest algorithm (OCTEON)"
741 depends on CPU_CAVIUM_OCTEON
742 select CRYPTO_SHA1
743 select CRYPTO_HASH
744 help
745 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
746 using OCTEON crypto instructions, when available.
747
David S. Miller4ff28d42012-08-19 15:41:53 -0700748config CRYPTO_SHA1_SPARC64
749 tristate "SHA1 digest algorithm (SPARC64)"
750 depends on SPARC64
751 select CRYPTO_SHA1
752 select CRYPTO_HASH
753 help
754 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
755 using sparc64 crypto instructions, when available.
756
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000757config CRYPTO_SHA1_PPC
758 tristate "SHA1 digest algorithm (powerpc)"
759 depends on PPC
760 help
761 This is the powerpc hardware accelerated implementation of the
762 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
763
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100764config CRYPTO_SHA1_PPC_SPE
765 tristate "SHA1 digest algorithm (PPC SPE)"
766 depends on PPC && SPE
767 help
768 SHA-1 secure hash standard (DFIPS 180-4) implemented
769 using powerpc SPE SIMD instruction set.
770
Tim Chen1e65b812014-07-31 10:29:51 -0700771config CRYPTO_SHA1_MB
772 tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
773 depends on X86 && 64BIT
774 select CRYPTO_SHA1
775 select CRYPTO_HASH
776 select CRYPTO_MCRYPTD
777 help
778 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
779 using multi-buffer technique. This algorithm computes on
780 multiple data lanes concurrently with SIMD instructions for
781 better throughput. It should not be enabled by default but
782 used when there is significant amount of work to keep the keep
783 the data lanes filled to get performance benefit. If the data
784 lanes remain unfilled, a flush operation will be initiated to
785 process the crypto jobs, adding a slight latency.
786
Megha Dey9be7e242016-06-23 18:40:43 -0700787config CRYPTO_SHA256_MB
788 tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
789 depends on X86 && 64BIT
790 select CRYPTO_SHA256
791 select CRYPTO_HASH
792 select CRYPTO_MCRYPTD
793 help
794 SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
795 using multi-buffer technique. This algorithm computes on
796 multiple data lanes concurrently with SIMD instructions for
797 better throughput. It should not be enabled by default but
798 used when there is significant amount of work to keep the keep
799 the data lanes filled to get performance benefit. If the data
800 lanes remain unfilled, a flush operation will be initiated to
801 process the crypto jobs, adding a slight latency.
802
Megha Dey026bb8a2016-06-27 10:20:05 -0700803config CRYPTO_SHA512_MB
804 tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
805 depends on X86 && 64BIT
806 select CRYPTO_SHA512
807 select CRYPTO_HASH
808 select CRYPTO_MCRYPTD
809 help
810 SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
811 using multi-buffer technique. This algorithm computes on
812 multiple data lanes concurrently with SIMD instructions for
813 better throughput. It should not be enabled by default but
814 used when there is significant amount of work to keep the keep
815 the data lanes filled to get performance benefit. If the data
816 lanes remain unfilled, a flush operation will be initiated to
817 process the crypto jobs, adding a slight latency.
818
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800819config CRYPTO_SHA256
820 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800821 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800822 help
823 SHA256 secure hash standard (DFIPS 180-2).
824
825 This version of SHA implements a 256 bit hash with 128 bits of
826 security against collision attacks.
827
Adrian Bunkb6d44342008-07-16 19:28:00 +0800828 This code also includes SHA-224, a 224 bit hash with 112 bits
829 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800830
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100831config CRYPTO_SHA256_PPC_SPE
832 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
833 depends on PPC && SPE
834 select CRYPTO_SHA256
835 select CRYPTO_HASH
836 help
837 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
838 implemented using powerpc SPE SIMD instruction set.
839
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200840config CRYPTO_SHA256_OCTEON
841 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
842 depends on CPU_CAVIUM_OCTEON
843 select CRYPTO_SHA256
844 select CRYPTO_HASH
845 help
846 SHA-256 secure hash standard (DFIPS 180-2) implemented
847 using OCTEON crypto instructions, when available.
848
David S. Miller86c93b22012-08-19 17:11:37 -0700849config CRYPTO_SHA256_SPARC64
850 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
851 depends on SPARC64
852 select CRYPTO_SHA256
853 select CRYPTO_HASH
854 help
855 SHA-256 secure hash standard (DFIPS 180-2) implemented
856 using sparc64 crypto instructions, when available.
857
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800858config CRYPTO_SHA512
859 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100860 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800861 help
862 SHA512 secure hash standard (DFIPS 180-2).
863
864 This version of SHA implements a 512 bit hash with 256 bits of
865 security against collision attacks.
866
867 This code also includes SHA-384, a 384 bit hash with 192 bits
868 of security against collision attacks.
869
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200870config CRYPTO_SHA512_OCTEON
871 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
872 depends on CPU_CAVIUM_OCTEON
873 select CRYPTO_SHA512
874 select CRYPTO_HASH
875 help
876 SHA-512 secure hash standard (DFIPS 180-2) implemented
877 using OCTEON crypto instructions, when available.
878
David S. Miller775e0c62012-08-19 17:37:56 -0700879config CRYPTO_SHA512_SPARC64
880 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
881 depends on SPARC64
882 select CRYPTO_SHA512
883 select CRYPTO_HASH
884 help
885 SHA-512 secure hash standard (DFIPS 180-2) implemented
886 using sparc64 crypto instructions, when available.
887
Jeff Garzik53964b92016-06-17 10:30:35 +0530888config CRYPTO_SHA3
889 tristate "SHA3 digest algorithm"
890 select CRYPTO_HASH
891 help
892 SHA-3 secure hash standard (DFIPS 202). It's based on
893 cryptographic sponge function family called Keccak.
894
895 References:
896 http://keccak.noekeon.org/
897
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +0300898config CRYPTO_SM3
899 tristate "SM3 digest algorithm"
900 select CRYPTO_HASH
901 help
902 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
903 It is part of the Chinese Commercial Cryptography suite.
904
905 References:
906 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
907 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
908
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800909config CRYPTO_TGR192
910 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800911 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800912 help
913 Tiger hash algorithm 192, 160 and 128-bit hashes
914
915 Tiger is a hash function optimized for 64-bit processors while
916 still having decent performance on 32-bit processors.
917 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700918
919 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800920 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
921
922config CRYPTO_WP512
923 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800924 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800925 help
926 Whirlpool hash algorithm 512, 384 and 256-bit hashes
927
928 Whirlpool-512 is part of the NESSIE cryptographic primitives.
929 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
930
931 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800932 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800933
Huang Ying0e1227d2009-10-19 11:53:06 +0900934config CRYPTO_GHASH_CLMUL_NI_INTEL
935 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800936 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900937 select CRYPTO_CRYPTD
938 help
939 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
940 The implementation is accelerated by CLMUL-NI of Intel.
941
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800942comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700943
944config CRYPTO_AES
945 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000946 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700947 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800948 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700949 algorithm.
950
951 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800952 both hardware and software across a wide range of computing
953 environments regardless of its use in feedback or non-feedback
954 modes. Its key setup time is excellent, and its key agility is
955 good. Rijndael's very low memory requirements make it very well
956 suited for restricted-space environments, in which it also
957 demonstrates excellent performance. Rijndael's operations are
958 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700959
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800960 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700961
962 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
963
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +0000964config CRYPTO_AES_TI
965 tristate "Fixed time AES cipher"
966 select CRYPTO_ALGAPI
967 help
968 This is a generic implementation of AES that attempts to eliminate
969 data dependent latencies as much as possible without affecting
970 performance too much. It is intended for use by the generic CCM
971 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
972 solely on encryption (although decryption is supported as well, but
973 with a more dramatic performance hit)
974
975 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
976 8 for decryption), this implementation only uses just two S-boxes of
977 256 bytes each, and attempts to eliminate data dependent latencies by
978 prefetching the entire table into the cache at the start of each
979 block.
980
Linus Torvalds1da177e2005-04-16 15:20:36 -0700981config CRYPTO_AES_586
982 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000983 depends on (X86 || UML_X86) && !64BIT
984 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800985 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700986 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800987 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700988 algorithm.
989
990 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800991 both hardware and software across a wide range of computing
992 environments regardless of its use in feedback or non-feedback
993 modes. Its key setup time is excellent, and its key agility is
994 good. Rijndael's very low memory requirements make it very well
995 suited for restricted-space environments, in which it also
996 demonstrates excellent performance. Rijndael's operations are
997 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700998
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800999 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001000
1001 See <http://csrc.nist.gov/encryption/aes/> for more information.
1002
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001003config CRYPTO_AES_X86_64
1004 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +10001005 depends on (X86 || UML_X86) && 64BIT
1006 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +08001007 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001008 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001009 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001010 algorithm.
1011
1012 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001013 both hardware and software across a wide range of computing
1014 environments regardless of its use in feedback or non-feedback
1015 modes. Its key setup time is excellent, and its key agility is
1016 good. Rijndael's very low memory requirements make it very well
1017 suited for restricted-space environments, in which it also
1018 demonstrates excellent performance. Rijndael's operations are
1019 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001020
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001021 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -07001022
1023 See <http://csrc.nist.gov/encryption/aes/> for more information.
1024
Huang Ying54b6a1b2009-01-18 16:28:34 +11001025config CRYPTO_AES_NI_INTEL
1026 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001027 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +08001028 select CRYPTO_AEAD
Mathias Krause0d258ef2010-11-27 16:34:46 +08001029 select CRYPTO_AES_X86_64 if 64BIT
1030 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +11001031 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +08001032 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +03001033 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +08001034 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +11001035 help
1036 Use Intel AES-NI instructions for AES algorithm.
1037
1038 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1039 algorithm.
1040
1041 Rijndael appears to be consistently a very good performer in
1042 both hardware and software across a wide range of computing
1043 environments regardless of its use in feedback or non-feedback
1044 modes. Its key setup time is excellent, and its key agility is
1045 good. Rijndael's very low memory requirements make it very well
1046 suited for restricted-space environments, in which it also
1047 demonstrates excellent performance. Rijndael's operations are
1048 among the easiest to defend against power and timing attacks.
1049
1050 The AES specifies three key sizes: 128, 192 and 256 bits
1051
1052 See <http://csrc.nist.gov/encryption/aes/> for more information.
1053
Mathias Krause0d258ef2010-11-27 16:34:46 +08001054 In addition to AES cipher algorithm support, the acceleration
1055 for some popular block cipher mode is supported too, including
1056 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
1057 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001058
David S. Miller9bf48522012-08-21 03:58:13 -07001059config CRYPTO_AES_SPARC64
1060 tristate "AES cipher algorithms (SPARC64)"
1061 depends on SPARC64
1062 select CRYPTO_CRYPTD
1063 select CRYPTO_ALGAPI
1064 help
1065 Use SPARC64 crypto opcodes for AES algorithm.
1066
1067 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1068 algorithm.
1069
1070 Rijndael appears to be consistently a very good performer in
1071 both hardware and software across a wide range of computing
1072 environments regardless of its use in feedback or non-feedback
1073 modes. Its key setup time is excellent, and its key agility is
1074 good. Rijndael's very low memory requirements make it very well
1075 suited for restricted-space environments, in which it also
1076 demonstrates excellent performance. Rijndael's operations are
1077 among the easiest to defend against power and timing attacks.
1078
1079 The AES specifies three key sizes: 128, 192 and 256 bits
1080
1081 See <http://csrc.nist.gov/encryption/aes/> for more information.
1082
1083 In addition to AES cipher algorithm support, the acceleration
1084 for some popular block cipher mode is supported too, including
1085 ECB and CBC.
1086
Markus Stockhausen504c6142015-02-22 10:00:10 +01001087config CRYPTO_AES_PPC_SPE
1088 tristate "AES cipher algorithms (PPC SPE)"
1089 depends on PPC && SPE
1090 help
1091 AES cipher algorithms (FIPS-197). Additionally the acceleration
1092 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1093 This module should only be used for low power (router) devices
1094 without hardware AES acceleration (e.g. caam crypto). It reduces the
1095 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1096 timining attacks. Nevertheless it might be not as secure as other
1097 architecture specific assembler implementations that work on 1KB
1098 tables or 256 bytes S-boxes.
1099
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001100config CRYPTO_ANUBIS
1101 tristate "Anubis cipher algorithm"
1102 select CRYPTO_ALGAPI
1103 help
1104 Anubis cipher algorithm.
1105
1106 Anubis is a variable key length cipher which can use keys from
1107 128 bits to 320 bits in length. It was evaluated as a entrant
1108 in the NESSIE competition.
1109
1110 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001111 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1112 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001113
1114config CRYPTO_ARC4
1115 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001116 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001117 help
1118 ARC4 cipher algorithm.
1119
1120 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1121 bits in length. This algorithm is required for driver-based
1122 WEP, but it should not be for other purposes because of the
1123 weakness of the algorithm.
1124
1125config CRYPTO_BLOWFISH
1126 tristate "Blowfish cipher algorithm"
1127 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001128 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001129 help
1130 Blowfish cipher algorithm, by Bruce Schneier.
1131
1132 This is a variable key length cipher which can use keys from 32
1133 bits to 448 bits in length. It's fast, simple and specifically
1134 designed for use on "large microprocessors".
1135
1136 See also:
1137 <http://www.schneier.com/blowfish.html>
1138
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001139config CRYPTO_BLOWFISH_COMMON
1140 tristate
1141 help
1142 Common parts of the Blowfish cipher algorithm shared by the
1143 generic c and the assembler implementations.
1144
1145 See also:
1146 <http://www.schneier.com/blowfish.html>
1147
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001148config CRYPTO_BLOWFISH_X86_64
1149 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001150 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001151 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001152 select CRYPTO_BLOWFISH_COMMON
1153 help
1154 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1155
1156 This is a variable key length cipher which can use keys from 32
1157 bits to 448 bits in length. It's fast, simple and specifically
1158 designed for use on "large microprocessors".
1159
1160 See also:
1161 <http://www.schneier.com/blowfish.html>
1162
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001163config CRYPTO_CAMELLIA
1164 tristate "Camellia cipher algorithms"
1165 depends on CRYPTO
1166 select CRYPTO_ALGAPI
1167 help
1168 Camellia cipher algorithms module.
1169
1170 Camellia is a symmetric key block cipher developed jointly
1171 at NTT and Mitsubishi Electric Corporation.
1172
1173 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1174
1175 See also:
1176 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1177
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001178config CRYPTO_CAMELLIA_X86_64
1179 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001180 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001181 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001182 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001183 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001184 help
1185 Camellia cipher algorithm module (x86_64).
1186
1187 Camellia is a symmetric key block cipher developed jointly
1188 at NTT and Mitsubishi Electric Corporation.
1189
1190 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1191
1192 See also:
1193 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1194
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001195config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1196 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1197 depends on X86 && 64BIT
1198 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001199 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001200 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001201 select CRYPTO_GLUE_HELPER_X86
1202 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001203 select CRYPTO_XTS
1204 help
1205 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1206
1207 Camellia is a symmetric key block cipher developed jointly
1208 at NTT and Mitsubishi Electric Corporation.
1209
1210 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1211
1212 See also:
1213 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1214
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001215config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1216 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1217 depends on X86 && 64BIT
1218 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001219 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001220 help
1221 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1222
1223 Camellia is a symmetric key block cipher developed jointly
1224 at NTT and Mitsubishi Electric Corporation.
1225
1226 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1227
1228 See also:
1229 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1230
David S. Miller81658ad2012-08-28 12:05:54 -07001231config CRYPTO_CAMELLIA_SPARC64
1232 tristate "Camellia cipher algorithm (SPARC64)"
1233 depends on SPARC64
1234 depends on CRYPTO
1235 select CRYPTO_ALGAPI
1236 help
1237 Camellia cipher algorithm module (SPARC64).
1238
1239 Camellia is a symmetric key block cipher developed jointly
1240 at NTT and Mitsubishi Electric Corporation.
1241
1242 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1243
1244 See also:
1245 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1246
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001247config CRYPTO_CAST_COMMON
1248 tristate
1249 help
1250 Common parts of the CAST cipher algorithms shared by the
1251 generic c and the assembler implementations.
1252
Linus Torvalds1da177e2005-04-16 15:20:36 -07001253config CRYPTO_CAST5
1254 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001255 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001256 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001257 help
1258 The CAST5 encryption algorithm (synonymous with CAST-128) is
1259 described in RFC2144.
1260
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001261config CRYPTO_CAST5_AVX_X86_64
1262 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1263 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001264 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001265 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001266 select CRYPTO_CAST_COMMON
1267 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001268 help
1269 The CAST5 encryption algorithm (synonymous with CAST-128) is
1270 described in RFC2144.
1271
1272 This module provides the Cast5 cipher algorithm that processes
1273 sixteen blocks parallel using the AVX instruction set.
1274
Linus Torvalds1da177e2005-04-16 15:20:36 -07001275config CRYPTO_CAST6
1276 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001277 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001278 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001279 help
1280 The CAST6 encryption algorithm (synonymous with CAST-256) is
1281 described in RFC2612.
1282
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001283config CRYPTO_CAST6_AVX_X86_64
1284 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1285 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001286 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001287 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001288 select CRYPTO_CAST_COMMON
1289 select CRYPTO_GLUE_HELPER_X86
1290 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001291 select CRYPTO_XTS
1292 help
1293 The CAST6 encryption algorithm (synonymous with CAST-256) is
1294 described in RFC2612.
1295
1296 This module provides the Cast6 cipher algorithm that processes
1297 eight blocks parallel using the AVX instruction set.
1298
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001299config CRYPTO_DES
1300 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001301 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001302 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001303 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001304
David S. Millerc5aac2d2012-08-25 22:37:23 -07001305config CRYPTO_DES_SPARC64
1306 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001307 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001308 select CRYPTO_ALGAPI
1309 select CRYPTO_DES
1310 help
1311 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1312 optimized using SPARC64 crypto opcodes.
1313
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001314config CRYPTO_DES3_EDE_X86_64
1315 tristate "Triple DES EDE cipher algorithm (x86-64)"
1316 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001317 select CRYPTO_BLKCIPHER
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001318 select CRYPTO_DES
1319 help
1320 Triple DES EDE (FIPS 46-3) algorithm.
1321
1322 This module provides implementation of the Triple DES EDE cipher
1323 algorithm that is optimized for x86-64 processors. Two versions of
1324 algorithm are provided; regular processing one input block and
1325 one that processes three blocks parallel.
1326
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001327config CRYPTO_FCRYPT
1328 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001329 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001330 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001331 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001332 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001333
1334config CRYPTO_KHAZAD
1335 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001336 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001337 help
1338 Khazad cipher algorithm.
1339
1340 Khazad was a finalist in the initial NESSIE competition. It is
1341 an algorithm optimized for 64-bit processors with good performance
1342 on 32-bit processors. Khazad uses an 128 bit key size.
1343
1344 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001345 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001346
Tan Swee Heng2407d602007-11-23 19:45:00 +08001347config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001348 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001349 select CRYPTO_BLKCIPHER
1350 help
1351 Salsa20 stream cipher algorithm.
1352
1353 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1354 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1355
1356 The Salsa20 stream cipher algorithm is designed by Daniel J.
1357 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001358
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001359config CRYPTO_SALSA20_586
Kees Cook3b4afaf2012-10-02 11:16:49 -07001360 tristate "Salsa20 stream cipher algorithm (i586)"
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001361 depends on (X86 || UML_X86) && !64BIT
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001362 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001363 select CRYPTO_SALSA20
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001364 help
1365 Salsa20 stream cipher algorithm.
1366
1367 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1368 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1369
1370 The Salsa20 stream cipher algorithm is designed by Daniel J.
1371 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1372
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001373config CRYPTO_SALSA20_X86_64
Kees Cook3b4afaf2012-10-02 11:16:49 -07001374 tristate "Salsa20 stream cipher algorithm (x86_64)"
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001375 depends on (X86 || UML_X86) && 64BIT
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001376 select CRYPTO_BLKCIPHER
Eric Biggersc9a3ff82018-01-05 11:09:59 -08001377 select CRYPTO_SALSA20
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001378 help
1379 Salsa20 stream cipher algorithm.
1380
1381 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1382 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1383
1384 The Salsa20 stream cipher algorithm is designed by Daniel J.
1385 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1386
Martin Willic08d0e62015-06-01 13:43:56 +02001387config CRYPTO_CHACHA20
1388 tristate "ChaCha20 cipher algorithm"
1389 select CRYPTO_BLKCIPHER
1390 help
1391 ChaCha20 cipher algorithm, RFC7539.
1392
1393 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1394 Bernstein and further specified in RFC7539 for use in IETF protocols.
1395 This is the portable C implementation of ChaCha20.
1396
1397 See also:
1398 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1399
Martin Willic9320b62015-07-16 19:14:01 +02001400config CRYPTO_CHACHA20_X86_64
Martin Willi3d1e93c2015-07-16 19:14:03 +02001401 tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
Martin Willic9320b62015-07-16 19:14:01 +02001402 depends on X86 && 64BIT
1403 select CRYPTO_BLKCIPHER
1404 select CRYPTO_CHACHA20
1405 help
1406 ChaCha20 cipher algorithm, RFC7539.
1407
1408 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1409 Bernstein and further specified in RFC7539 for use in IETF protocols.
1410 This is the x86_64 assembler implementation using SIMD instructions.
1411
1412 See also:
1413 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1414
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001415config CRYPTO_SEED
1416 tristate "SEED cipher algorithm"
1417 select CRYPTO_ALGAPI
1418 help
1419 SEED cipher algorithm (RFC4269).
1420
1421 SEED is a 128-bit symmetric key block cipher that has been
1422 developed by KISA (Korea Information Security Agency) as a
1423 national standard encryption algorithm of the Republic of Korea.
1424 It is a 16 round block cipher with the key size of 128 bit.
1425
1426 See also:
1427 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1428
1429config CRYPTO_SERPENT
1430 tristate "Serpent cipher algorithm"
1431 select CRYPTO_ALGAPI
1432 help
1433 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1434
1435 Keys are allowed to be from 0 to 256 bits in length, in steps
1436 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1437 variant of Serpent for compatibility with old kerneli.org code.
1438
1439 See also:
1440 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1441
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001442config CRYPTO_SERPENT_SSE2_X86_64
1443 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1444 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001445 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001446 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001447 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001448 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001449 help
1450 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1451
1452 Keys are allowed to be from 0 to 256 bits in length, in steps
1453 of 8 bits.
1454
Masanari Iida1e6232f2015-04-04 00:20:30 +09001455 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001456 blocks parallel using SSE2 instruction set.
1457
1458 See also:
1459 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1460
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001461config CRYPTO_SERPENT_SSE2_586
1462 tristate "Serpent cipher algorithm (i586/SSE2)"
1463 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001464 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001465 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001466 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001467 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001468 help
1469 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1470
1471 Keys are allowed to be from 0 to 256 bits in length, in steps
1472 of 8 bits.
1473
1474 This module provides Serpent cipher algorithm that processes four
1475 blocks parallel using SSE2 instruction set.
1476
1477 See also:
1478 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1479
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001480config CRYPTO_SERPENT_AVX_X86_64
1481 tristate "Serpent cipher algorithm (x86_64/AVX)"
1482 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001483 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001484 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001485 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001486 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001487 select CRYPTO_XTS
1488 help
1489 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1490
1491 Keys are allowed to be from 0 to 256 bits in length, in steps
1492 of 8 bits.
1493
1494 This module provides the Serpent cipher algorithm that processes
1495 eight blocks parallel using the AVX instruction set.
1496
1497 See also:
1498 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1499
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001500config CRYPTO_SERPENT_AVX2_X86_64
1501 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1502 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001503 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001504 help
1505 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1506
1507 Keys are allowed to be from 0 to 256 bits in length, in steps
1508 of 8 bits.
1509
1510 This module provides Serpent cipher algorithm that processes 16
1511 blocks parallel using AVX2 instruction set.
1512
1513 See also:
1514 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1515
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +00001516config CRYPTO_SM4
1517 tristate "SM4 cipher algorithm"
1518 select CRYPTO_ALGAPI
1519 help
1520 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1521
1522 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1523 Organization of State Commercial Administration of China (OSCCA)
1524 as an authorized cryptographic algorithms for the use within China.
1525
1526 SMS4 was originally created for use in protecting wireless
1527 networks, and is mandated in the Chinese National Standard for
1528 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1529 (GB.15629.11-2003).
1530
1531 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1532 standardized through TC 260 of the Standardization Administration
1533 of the People's Republic of China (SAC).
1534
1535 The input, output, and key of SMS4 are each 128 bits.
1536
1537 See also: <https://eprint.iacr.org/2008/329.pdf>
1538
1539 If unsure, say N.
1540
Eric Biggersda7a0ab2018-02-14 10:42:19 -08001541config CRYPTO_SPECK
1542 tristate "Speck cipher algorithm"
1543 select CRYPTO_ALGAPI
1544 help
1545 Speck is a lightweight block cipher that is tuned for optimal
1546 performance in software (rather than hardware).
1547
1548 Speck may not be as secure as AES, and should only be used on systems
1549 where AES is not fast enough.
1550
1551 See also: <https://eprint.iacr.org/2013/404.pdf>
1552
1553 If unsure, say N.
1554
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001555config CRYPTO_TEA
1556 tristate "TEA, XTEA and XETA cipher algorithms"
1557 select CRYPTO_ALGAPI
1558 help
1559 TEA cipher algorithm.
1560
1561 Tiny Encryption Algorithm is a simple cipher that uses
1562 many rounds for security. It is very fast and uses
1563 little memory.
1564
1565 Xtendend Tiny Encryption Algorithm is a modification to
1566 the TEA algorithm to address a potential key weakness
1567 in the TEA algorithm.
1568
1569 Xtendend Encryption Tiny Algorithm is a mis-implementation
1570 of the XTEA algorithm for compatibility purposes.
1571
1572config CRYPTO_TWOFISH
1573 tristate "Twofish cipher algorithm"
1574 select CRYPTO_ALGAPI
1575 select CRYPTO_TWOFISH_COMMON
1576 help
1577 Twofish cipher algorithm.
1578
1579 Twofish was submitted as an AES (Advanced Encryption Standard)
1580 candidate cipher by researchers at CounterPane Systems. It is a
1581 16 round block cipher supporting key sizes of 128, 192, and 256
1582 bits.
1583
1584 See also:
1585 <http://www.schneier.com/twofish.html>
1586
1587config CRYPTO_TWOFISH_COMMON
1588 tristate
1589 help
1590 Common parts of the Twofish cipher algorithm shared by the
1591 generic c and the assembler implementations.
1592
1593config CRYPTO_TWOFISH_586
1594 tristate "Twofish cipher algorithms (i586)"
1595 depends on (X86 || UML_X86) && !64BIT
1596 select CRYPTO_ALGAPI
1597 select CRYPTO_TWOFISH_COMMON
1598 help
1599 Twofish cipher algorithm.
1600
1601 Twofish was submitted as an AES (Advanced Encryption Standard)
1602 candidate cipher by researchers at CounterPane Systems. It is a
1603 16 round block cipher supporting key sizes of 128, 192, and 256
1604 bits.
1605
1606 See also:
1607 <http://www.schneier.com/twofish.html>
1608
1609config CRYPTO_TWOFISH_X86_64
1610 tristate "Twofish cipher algorithm (x86_64)"
1611 depends on (X86 || UML_X86) && 64BIT
1612 select CRYPTO_ALGAPI
1613 select CRYPTO_TWOFISH_COMMON
1614 help
1615 Twofish cipher algorithm (x86_64).
1616
1617 Twofish was submitted as an AES (Advanced Encryption Standard)
1618 candidate cipher by researchers at CounterPane Systems. It is a
1619 16 round block cipher supporting key sizes of 128, 192, and 256
1620 bits.
1621
1622 See also:
1623 <http://www.schneier.com/twofish.html>
1624
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001625config CRYPTO_TWOFISH_X86_64_3WAY
1626 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001627 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001628 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001629 select CRYPTO_TWOFISH_COMMON
1630 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001631 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001632 help
1633 Twofish cipher algorithm (x86_64, 3-way parallel).
1634
1635 Twofish was submitted as an AES (Advanced Encryption Standard)
1636 candidate cipher by researchers at CounterPane Systems. It is a
1637 16 round block cipher supporting key sizes of 128, 192, and 256
1638 bits.
1639
1640 This module provides Twofish cipher algorithm that processes three
1641 blocks parallel, utilizing resources of out-of-order CPUs better.
1642
1643 See also:
1644 <http://www.schneier.com/twofish.html>
1645
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001646config CRYPTO_TWOFISH_AVX_X86_64
1647 tristate "Twofish cipher algorithm (x86_64/AVX)"
1648 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001649 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001650 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001651 select CRYPTO_SIMD
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001652 select CRYPTO_TWOFISH_COMMON
1653 select CRYPTO_TWOFISH_X86_64
1654 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001655 help
1656 Twofish cipher algorithm (x86_64/AVX).
1657
1658 Twofish was submitted as an AES (Advanced Encryption Standard)
1659 candidate cipher by researchers at CounterPane Systems. It is a
1660 16 round block cipher supporting key sizes of 128, 192, and 256
1661 bits.
1662
1663 This module provides the Twofish cipher algorithm that processes
1664 eight blocks parallel using the AVX Instruction Set.
1665
1666 See also:
1667 <http://www.schneier.com/twofish.html>
1668
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001669comment "Compression"
1670
Linus Torvalds1da177e2005-04-16 15:20:36 -07001671config CRYPTO_DEFLATE
1672 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001673 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001674 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001675 select ZLIB_INFLATE
1676 select ZLIB_DEFLATE
1677 help
1678 This is the Deflate algorithm (RFC1951), specified for use in
1679 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001680
Linus Torvalds1da177e2005-04-16 15:20:36 -07001681 You will most probably want this if using IPSec.
1682
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001683config CRYPTO_LZO
1684 tristate "LZO compression algorithm"
1685 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001686 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001687 select LZO_COMPRESS
1688 select LZO_DECOMPRESS
1689 help
1690 This is the LZO algorithm.
1691
Seth Jennings35a1fc12012-07-19 09:42:41 -05001692config CRYPTO_842
1693 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001694 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001695 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001696 select 842_COMPRESS
1697 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001698 help
1699 This is the 842 algorithm.
1700
Chanho Min0ea85302013-07-08 16:01:51 -07001701config CRYPTO_LZ4
1702 tristate "LZ4 compression algorithm"
1703 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001704 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001705 select LZ4_COMPRESS
1706 select LZ4_DECOMPRESS
1707 help
1708 This is the LZ4 algorithm.
1709
1710config CRYPTO_LZ4HC
1711 tristate "LZ4HC compression algorithm"
1712 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001713 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001714 select LZ4HC_COMPRESS
1715 select LZ4_DECOMPRESS
1716 help
1717 This is the LZ4 high compression mode algorithm.
1718
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001719config CRYPTO_ZSTD
1720 tristate "Zstd compression algorithm"
1721 select CRYPTO_ALGAPI
1722 select CRYPTO_ACOMP2
1723 select ZSTD_COMPRESS
1724 select ZSTD_DECOMPRESS
1725 help
1726 This is the zstd algorithm.
1727
Neil Horman17f0f4a2008-08-14 22:15:52 +10001728comment "Random Number Generation"
1729
1730config CRYPTO_ANSI_CPRNG
1731 tristate "Pseudo Random Number Generation for Cryptographic modules"
1732 select CRYPTO_AES
1733 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001734 help
1735 This option enables the generic pseudo random number generator
1736 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001737 ANSI X9.31 A.2.4. Note that this option must be enabled if
1738 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001739
Herbert Xuf2c89a12014-07-04 22:15:08 +08001740menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001741 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001742 help
1743 NIST SP800-90A compliant DRBG. In the following submenu, one or
1744 more of the DRBG types must be selected.
1745
Herbert Xuf2c89a12014-07-04 22:15:08 +08001746if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001747
1748config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001749 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001750 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001751 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001752 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001753
1754config CRYPTO_DRBG_HASH
1755 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001756 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001757 help
1758 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1759
1760config CRYPTO_DRBG_CTR
1761 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001762 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001763 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001764 help
1765 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1766
Herbert Xuf2c89a12014-07-04 22:15:08 +08001767config CRYPTO_DRBG
1768 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001769 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001770 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001771 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001772
1773endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001774
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001775config CRYPTO_JITTERENTROPY
1776 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001777 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001778 help
1779 The Jitterentropy RNG is a noise that is intended
1780 to provide seed to another RNG. The RNG does not
1781 perform any cryptographic whitening of the generated
1782 random numbers. This Jitterentropy RNG registers with
1783 the kernel crypto API and can be used by any caller.
1784
Herbert Xu03c8efc2010-10-19 21:12:39 +08001785config CRYPTO_USER_API
1786 tristate
1787
Herbert Xufe869cd2010-10-19 21:23:00 +08001788config CRYPTO_USER_API_HASH
1789 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001790 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001791 select CRYPTO_HASH
1792 select CRYPTO_USER_API
1793 help
1794 This option enables the user-spaces interface for hash
1795 algorithms.
1796
Herbert Xu8ff59092010-10-19 21:31:55 +08001797config CRYPTO_USER_API_SKCIPHER
1798 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001799 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001800 select CRYPTO_BLKCIPHER
1801 select CRYPTO_USER_API
1802 help
1803 This option enables the user-spaces interface for symmetric
1804 key cipher algorithms.
1805
Stephan Mueller2f3755382014-12-25 23:00:39 +01001806config CRYPTO_USER_API_RNG
1807 tristate "User-space interface for random number generator algorithms"
1808 depends on NET
1809 select CRYPTO_RNG
1810 select CRYPTO_USER_API
1811 help
1812 This option enables the user-spaces interface for random
1813 number generator algorithms.
1814
Herbert Xub64a2d92015-05-28 11:30:35 +08001815config CRYPTO_USER_API_AEAD
1816 tristate "User-space interface for AEAD cipher algorithms"
1817 depends on NET
1818 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001819 select CRYPTO_BLKCIPHER
1820 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001821 select CRYPTO_USER_API
1822 help
1823 This option enables the user-spaces interface for AEAD
1824 cipher algorithms.
1825
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001826config CRYPTO_HASH_INFO
1827 bool
1828
Linus Torvalds1da177e2005-04-16 15:20:36 -07001829source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001830source crypto/asymmetric_keys/Kconfig
David Howellscfc411e2015-08-14 15:20:41 +01001831source certs/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001832
Herbert Xucce9e062006-08-21 21:08:13 +10001833endif # if CRYPTO