blob: 42a17fe977034171851bf96d25d5a31cab3f71b2 [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
Geert Uytterhoevend99324c2019-03-20 11:41:03 +010030 This option enables the fips boot option which is
31 required if you want the system to operate in a FIPS 200
Neil Hormanccb778e2008-08-05 14:13:08 +080032 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
Herbert Xu5cde0af2006-08-22 00:07:53 +100064
Herbert Xu055bcee2006-08-19 22:24:23 +100065config CRYPTO_HASH
66 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110067 select CRYPTO_HASH2
Herbert Xu055bcee2006-08-19 22:24:23 +100068 select CRYPTO_ALGAPI
69
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110070config CRYPTO_HASH2
71 tristate
72 select CRYPTO_ALGAPI2
73
Neil Horman17f0f4a2008-08-14 22:15:52 +100074config CRYPTO_RNG
75 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110076 select CRYPTO_RNG2
Neil Horman17f0f4a2008-08-14 22:15:52 +100077 select CRYPTO_ALGAPI
78
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110079config CRYPTO_RNG2
80 tristate
81 select CRYPTO_ALGAPI2
82
Herbert Xu401e4232015-06-03 14:49:31 +080083config CRYPTO_RNG_DEFAULT
84 tristate
85 select CRYPTO_DRBG_MENU
86
Tadeusz Struk3c339ab2015-06-16 10:30:55 -070087config CRYPTO_AKCIPHER2
88 tristate
89 select CRYPTO_ALGAPI2
90
91config CRYPTO_AKCIPHER
92 tristate
93 select CRYPTO_AKCIPHER2
94 select CRYPTO_ALGAPI
95
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +010096config CRYPTO_KPP2
97 tristate
98 select CRYPTO_ALGAPI2
99
100config CRYPTO_KPP
101 tristate
102 select CRYPTO_ALGAPI
103 select CRYPTO_KPP2
104
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100105config CRYPTO_ACOMP2
106 tristate
107 select CRYPTO_ALGAPI2
Bart Van Assche8cd579d2018-01-05 08:26:47 -0800108 select SGL_ALLOC
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100109
110config CRYPTO_ACOMP
111 tristate
112 select CRYPTO_ALGAPI
113 select CRYPTO_ACOMP2
114
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000115config CRYPTO_MANAGER
116 tristate "Cryptographic algorithm manager"
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100117 select CRYPTO_MANAGER2
Herbert Xu2b8c19d2006-09-21 11:31:44 +1000118 help
119 Create default cryptographic template instantiations such as
120 cbc(aes).
121
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100122config CRYPTO_MANAGER2
123 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
124 select CRYPTO_AEAD2
125 select CRYPTO_HASH2
126 select CRYPTO_BLKCIPHER2
Tadeusz Struk946cc462015-06-16 10:31:06 -0700127 select CRYPTO_AKCIPHER2
Salvatore Benedetto4e5f2c42016-06-22 17:49:13 +0100128 select CRYPTO_KPP2
Giovanni Cabiddu2ebda742016-10-21 13:19:47 +0100129 select CRYPTO_ACOMP2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100130
Steffen Klasserta38f7902011-09-27 07:23:50 +0200131config CRYPTO_USER
132 tristate "Userspace cryptographic algorithm configuration"
Herbert Xu5db017a2011-11-01 12:12:43 +1100133 depends on NET
Steffen Klasserta38f7902011-09-27 07:23:50 +0200134 select CRYPTO_MANAGER
135 help
Valdis.Kletnieks@vt.edud19978f2011-11-09 01:29:20 -0500136 Userspace configuration for cryptographic instantiations such as
Steffen Klasserta38f7902011-09-27 07:23:50 +0200137 cbc(aes).
138
Eric Biggers929d34c2019-05-20 09:48:29 -0700139if CRYPTO_MANAGER2
140
Herbert Xu326a6342010-08-06 09:40:28 +0800141config CRYPTO_MANAGER_DISABLE_TESTS
142 bool "Disable run-time self tests"
Herbert Xu00ca28a2010-08-06 10:34:00 +0800143 default y
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000144 help
Herbert Xu326a6342010-08-06 09:40:28 +0800145 Disable run-time self tests that normally take place at
146 algorithm registration.
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000147
Eric Biggers5b2706a2019-01-31 23:51:44 -0800148config CRYPTO_MANAGER_EXTRA_TESTS
149 bool "Enable extra run-time crypto self tests"
150 depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS
151 help
152 Enable extra run-time self tests of registered crypto algorithms,
153 including randomized fuzz tests.
154
155 This is intended for developer use only, as these tests take much
156 longer to run than the normal self tests.
157
Eric Biggers929d34c2019-05-20 09:48:29 -0700158endif # if CRYPTO_MANAGER2
159
Rik Snelc494e072006-11-29 18:59:44 +1100160config CRYPTO_GF128MUL
Eric Biggerse590e132019-05-20 09:53:43 -0700161 tristate
Rik Snelc494e072006-11-29 18:59:44 +1100162
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800163config CRYPTO_NULL
164 tristate "Null algorithms"
Herbert Xu149a3972015-08-13 17:28:58 +0800165 select CRYPTO_NULL2
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800166 help
167 These are 'Null' algorithms, used by IPsec, which do nothing.
168
Herbert Xu149a3972015-08-13 17:28:58 +0800169config CRYPTO_NULL2
Herbert Xudd43c4e2015-08-17 20:39:40 +0800170 tristate
Herbert Xu149a3972015-08-13 17:28:58 +0800171 select CRYPTO_ALGAPI2
172 select CRYPTO_BLKCIPHER2
173 select CRYPTO_HASH2
174
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100175config CRYPTO_PCRYPT
Kees Cook3b4afaf2012-10-02 11:16:49 -0700176 tristate "Parallel crypto engine"
177 depends on SMP
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100178 select PADATA
179 select CRYPTO_MANAGER
180 select CRYPTO_AEAD
181 help
182 This converts an arbitrary crypto algorithm into a parallel
183 algorithm that executes in kernel threads.
184
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800185config CRYPTO_CRYPTD
186 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +1000187 select CRYPTO_BLKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +0800188 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +1000189 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000190 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800191 This is a generic software asynchronous crypto daemon that
192 converts an arbitrary synchronous software crypto algorithm
193 into an asynchronous algorithm that executes in a kernel thread.
194
195config CRYPTO_AUTHENC
196 tristate "Authenc support"
197 select CRYPTO_AEAD
198 select CRYPTO_BLKCIPHER
199 select CRYPTO_MANAGER
200 select CRYPTO_HASH
Herbert Xue94c6a72015-08-04 21:23:14 +0800201 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800202 help
203 Authenc: Combined mode wrapper for IPsec.
204 This is required for IPSec.
205
206config CRYPTO_TEST
207 tristate "Testing module"
208 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +0800209 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800210 help
211 Quick & dirty crypto test module.
212
Herbert Xu266d0512016-11-22 20:08:25 +0800213config CRYPTO_SIMD
214 tristate
215 select CRYPTO_CRYPTD
216
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300217config CRYPTO_GLUE_HELPER_X86
218 tristate
219 depends on X86
Herbert Xu065ce322016-11-22 20:08:29 +0800220 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300221
Baolin Wang735d37b2016-01-26 20:25:39 +0800222config CRYPTO_ENGINE
223 tristate
224
Vitaly Chikunov3d6228a2019-04-11 18:51:18 +0300225comment "Public-key cryptography"
226
227config CRYPTO_RSA
228 tristate "RSA algorithm"
229 select CRYPTO_AKCIPHER
230 select CRYPTO_MANAGER
231 select MPILIB
232 select ASN1
233 help
234 Generic implementation of the RSA public key algorithm.
235
236config CRYPTO_DH
237 tristate "Diffie-Hellman algorithm"
238 select CRYPTO_KPP
239 select MPILIB
240 help
241 Generic implementation of the Diffie-Hellman algorithm.
242
Vitaly Chikunov4a2289d2019-04-11 18:51:19 +0300243config CRYPTO_ECC
244 tristate
245
Vitaly Chikunov3d6228a2019-04-11 18:51:18 +0300246config CRYPTO_ECDH
247 tristate "ECDH algorithm"
Vitaly Chikunov4a2289d2019-04-11 18:51:19 +0300248 select CRYPTO_ECC
Vitaly Chikunov3d6228a2019-04-11 18:51:18 +0300249 select CRYPTO_KPP
250 select CRYPTO_RNG_DEFAULT
251 help
252 Generic implementation of the ECDH algorithm
253
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300254config CRYPTO_ECRDSA
255 tristate "EC-RDSA (GOST 34.10) algorithm"
256 select CRYPTO_ECC
257 select CRYPTO_AKCIPHER
258 select CRYPTO_STREEBOG
Vitaly Chikunov10366332019-04-24 04:32:40 +0300259 select OID_REGISTRY
260 select ASN1
Vitaly Chikunov0d7a7862019-04-11 18:51:20 +0300261 help
262 Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012,
263 RFC 7091, ISO/IEC 14888-3:2018) is one of the Russian cryptographic
264 standard algorithms (called GOST algorithms). Only signature verification
265 is implemented.
266
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800267comment "Authenticated Encryption with Associated Data"
268
269config CRYPTO_CCM
270 tristate "CCM support"
271 select CRYPTO_CTR
Ard Biesheuvelf15f05b2017-02-03 14:49:36 +0000272 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800273 select CRYPTO_AEAD
Eric Biggersc8a33152019-05-20 09:49:46 -0700274 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800275 help
276 Support for Counter with CBC MAC. Required for IPsec.
277
278config CRYPTO_GCM
279 tristate "GCM/GMAC support"
280 select CRYPTO_CTR
281 select CRYPTO_AEAD
Huang Ying9382d972009-08-06 15:34:26 +1000282 select CRYPTO_GHASH
Jussi Kivilinna9489667d2013-04-07 16:43:41 +0300283 select CRYPTO_NULL
Eric Biggersc8a33152019-05-20 09:49:46 -0700284 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800285 help
286 Support for Galois/Counter Mode (GCM) and Galois Message
287 Authentication Code (GMAC). Required for IPSec.
288
Martin Willi71ebc4d2015-06-01 13:44:00 +0200289config CRYPTO_CHACHA20POLY1305
290 tristate "ChaCha20-Poly1305 AEAD support"
291 select CRYPTO_CHACHA20
292 select CRYPTO_POLY1305
293 select CRYPTO_AEAD
Eric Biggersc8a33152019-05-20 09:49:46 -0700294 select CRYPTO_MANAGER
Martin Willi71ebc4d2015-06-01 13:44:00 +0200295 help
296 ChaCha20-Poly1305 AEAD support, RFC7539.
297
298 Support for the AEAD wrapper using the ChaCha20 stream cipher combined
299 with the Poly1305 authenticator. It is defined in RFC7539 for use in
300 IETF protocols.
301
Ondrej Mosnacekf606a882018-05-11 14:12:49 +0200302config CRYPTO_AEGIS128
303 tristate "AEGIS-128 AEAD algorithm"
304 select CRYPTO_AEAD
305 select CRYPTO_AES # for AES S-box tables
306 help
307 Support for the AEGIS-128 dedicated AEAD algorithm.
308
Ard Biesheuvela4397632019-08-12 01:59:11 +0300309config CRYPTO_AEGIS128_SIMD
310 bool "Support SIMD acceleration for AEGIS-128"
311 depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
312 default y
313
Ondrej Mosnacek1d373d42018-05-11 14:12:51 +0200314config CRYPTO_AEGIS128_AESNI_SSE2
315 tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
316 depends on X86 && 64BIT
317 select CRYPTO_AEAD
Eric Biggersde272ca2019-03-10 12:00:53 -0700318 select CRYPTO_SIMD
Ondrej Mosnacek1d373d42018-05-11 14:12:51 +0200319 help
Ondrej Mosnacek4e5180e2019-03-15 08:47:25 +0100320 AESNI+SSE2 implementation of the AEGIS-128 dedicated AEAD algorithm.
Ondrej Mosnacek1d373d42018-05-11 14:12:51 +0200321
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800322config CRYPTO_SEQIV
323 tristate "Sequence Number IV Generator"
324 select CRYPTO_AEAD
325 select CRYPTO_BLKCIPHER
Herbert Xu856e3f402015-05-21 15:11:13 +0800326 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800327 select CRYPTO_RNG_DEFAULT
Eric Biggersc8a33152019-05-20 09:49:46 -0700328 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800329 help
330 This IV generator generates an IV based on a sequence number by
331 xoring it with a salt. This algorithm is mainly useful for CTR
332
Herbert Xua10f5542015-05-21 15:11:15 +0800333config CRYPTO_ECHAINIV
334 tristate "Encrypted Chain IV Generator"
335 select CRYPTO_AEAD
336 select CRYPTO_NULL
Herbert Xu401e4232015-06-03 14:49:31 +0800337 select CRYPTO_RNG_DEFAULT
Eric Biggersc8a33152019-05-20 09:49:46 -0700338 select CRYPTO_MANAGER
Herbert Xua10f5542015-05-21 15:11:15 +0800339 help
340 This IV generator generates an IV based on the encryption of
341 a sequence number xored with a salt. This is the default
342 algorithm for CBC.
343
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800344comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000345
346config CRYPTO_CBC
347 tristate "CBC support"
348 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000349 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000350 help
351 CBC: Cipher Block Chaining mode
352 This block cipher algorithm is required for IPSec.
353
James Bottomleya7d85e02018-03-01 14:36:17 -0800354config CRYPTO_CFB
355 tristate "CFB support"
356 select CRYPTO_BLKCIPHER
357 select CRYPTO_MANAGER
358 help
359 CFB: Cipher FeedBack mode
360 This block cipher algorithm is required for TPM2 Cryptography.
361
Joy Latten23e353c2007-10-23 08:50:32 +0800362config CRYPTO_CTR
363 tristate "CTR support"
364 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100365 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800366 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800367 help
368 CTR: Counter mode
369 This block cipher algorithm is required for IPSec.
370
Kevin Coffman76cb9522008-03-24 21:26:16 +0800371config CRYPTO_CTS
372 tristate "CTS support"
373 select CRYPTO_BLKCIPHER
Eric Biggersc8a33152019-05-20 09:49:46 -0700374 select CRYPTO_MANAGER
Kevin Coffman76cb9522008-03-24 21:26:16 +0800375 help
376 CTS: Cipher Text Stealing
377 This is the Cipher Text Stealing mode as described by
Gilad Ben-Yossefecd6d5c2018-11-05 12:05:01 +0000378 Section 8 of rfc2040 and referenced by rfc3962
379 (rfc3962 includes errata information in its Appendix A) or
380 CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010.
Kevin Coffman76cb9522008-03-24 21:26:16 +0800381 This mode is required for Kerberos gss mechanism support
382 for AES encryption.
383
Gilad Ben-Yossefecd6d5c2018-11-05 12:05:01 +0000384 See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final
385
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800386config CRYPTO_ECB
387 tristate "ECB support"
Herbert Xu653ebd9c2007-11-27 19:48:27 +0800388 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000389 select CRYPTO_MANAGER
390 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800391 ECB: Electronic CodeBook mode
392 This is the simplest block cipher algorithm. It simply encrypts
393 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000394
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800395config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200396 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100397 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800398 select CRYPTO_MANAGER
399 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100400 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800401 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
402 narrow block cipher mode for dm-crypt. Use it with cipher
403 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
404 The first 128, 192 or 256 bits in the key are used for AES and the
405 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100406
Gilad Ben-Yossefe497c512018-09-20 14:18:39 +0100407config CRYPTO_OFB
408 tristate "OFB support"
409 select CRYPTO_BLKCIPHER
410 select CRYPTO_MANAGER
411 help
412 OFB: the Output Feedback mode makes a block cipher into a synchronous
413 stream cipher. It generates keystream blocks, which are then XORed
414 with the plaintext blocks to get the ciphertext. Flipping a bit in the
415 ciphertext produces a flipped bit in the plaintext at the same
416 location. This property allows many error correcting codes to function
417 normally even when applied before encryption.
418
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800419config CRYPTO_PCBC
420 tristate "PCBC support"
421 select CRYPTO_BLKCIPHER
422 select CRYPTO_MANAGER
423 help
424 PCBC: Propagating Cipher Block Chaining mode
425 This block cipher algorithm is required for RxRPC.
426
427config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200428 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800429 select CRYPTO_BLKCIPHER
430 select CRYPTO_MANAGER
Milan Broz12cb3a12017-02-23 08:38:26 +0100431 select CRYPTO_ECB
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800432 help
433 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
434 key size 256, 384 or 512 bits. This implementation currently
435 can't handle a sectorsize which is not a multiple of 16 bytes.
436
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200437config CRYPTO_KEYWRAP
438 tristate "Key wrapping support"
439 select CRYPTO_BLKCIPHER
Eric Biggersc8a33152019-05-20 09:49:46 -0700440 select CRYPTO_MANAGER
Stephan Mueller1c49678e2015-09-21 20:58:56 +0200441 help
442 Support for key wrapping (NIST SP800-38F / RFC3394) without
443 padding.
444
Eric Biggers26609a22018-11-16 17:26:29 -0800445config CRYPTO_NHPOLY1305
446 tristate
447 select CRYPTO_HASH
448 select CRYPTO_POLY1305
449
Eric Biggers012c8232018-12-04 22:20:00 -0800450config CRYPTO_NHPOLY1305_SSE2
451 tristate "NHPoly1305 hash function (x86_64 SSE2 implementation)"
452 depends on X86 && 64BIT
453 select CRYPTO_NHPOLY1305
454 help
455 SSE2 optimized implementation of the hash function used by the
456 Adiantum encryption mode.
457
Eric Biggers0f961f92018-12-04 22:20:01 -0800458config CRYPTO_NHPOLY1305_AVX2
459 tristate "NHPoly1305 hash function (x86_64 AVX2 implementation)"
460 depends on X86 && 64BIT
461 select CRYPTO_NHPOLY1305
462 help
463 AVX2 optimized implementation of the hash function used by the
464 Adiantum encryption mode.
465
Eric Biggers059c2a42018-11-16 17:26:31 -0800466config CRYPTO_ADIANTUM
467 tristate "Adiantum support"
468 select CRYPTO_CHACHA20
469 select CRYPTO_POLY1305
470 select CRYPTO_NHPOLY1305
Eric Biggersc8a33152019-05-20 09:49:46 -0700471 select CRYPTO_MANAGER
Eric Biggers059c2a42018-11-16 17:26:31 -0800472 help
473 Adiantum is a tweakable, length-preserving encryption mode
474 designed for fast and secure disk encryption, especially on
475 CPUs without dedicated crypto instructions. It encrypts
476 each sector using the XChaCha12 stream cipher, two passes of
477 an ε-almost-∆-universal hash function, and an invocation of
478 the AES-256 block cipher on a single 16-byte block. On CPUs
479 without AES instructions, Adiantum is much faster than
480 AES-XTS.
481
482 Adiantum's security is provably reducible to that of its
483 underlying stream and block ciphers, subject to a security
484 bound. Unlike XTS, Adiantum is a true wide-block encryption
485 mode, so it actually provides an even stronger notion of
486 security than XTS, subject to the security bound.
487
488 If unsure, say N.
489
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800490comment "Hash modes"
491
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300492config CRYPTO_CMAC
493 tristate "CMAC support"
494 select CRYPTO_HASH
495 select CRYPTO_MANAGER
496 help
497 Cipher-based Message Authentication Code (CMAC) specified by
498 The National Institute of Standards and Technology (NIST).
499
500 https://tools.ietf.org/html/rfc4493
501 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
502
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800503config CRYPTO_HMAC
504 tristate "HMAC support"
505 select CRYPTO_HASH
506 select CRYPTO_MANAGER
507 help
508 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
509 This is required for IPSec.
510
511config CRYPTO_XCBC
512 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800513 select CRYPTO_HASH
514 select CRYPTO_MANAGER
515 help
516 XCBC: Keyed-Hashing with encryption algorithm
517 http://www.ietf.org/rfc/rfc3566.txt
518 http://csrc.nist.gov/encryption/modes/proposedmodes/
519 xcbc-mac/xcbc-mac-spec.pdf
520
Shane Wangf1939f72009-09-02 20:05:22 +1000521config CRYPTO_VMAC
522 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000523 select CRYPTO_HASH
524 select CRYPTO_MANAGER
525 help
526 VMAC is a message authentication algorithm designed for
527 very high speed on 64-bit architectures.
528
529 See also:
530 <http://fastcrypto.org/vmac>
531
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800532comment "Digest"
533
534config CRYPTO_CRC32C
535 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800536 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700537 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800538 help
539 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
540 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800541 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800542
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800543config CRYPTO_CRC32C_INTEL
544 tristate "CRC32c INTEL hardware acceleration"
545 depends on X86
546 select CRYPTO_HASH
547 help
548 In Intel processor with SSE4.2 supported, the processor will
549 support CRC32C implementation using hardware accelerated CRC32
550 instruction. This option will create 'crc32c-intel' module,
551 which will enable any routine to use the CRC32 instruction to
552 gain performance compared with software implementation.
553 Module will be crc32c-intel.
554
Jean Delvare7cf31862016-11-22 10:32:44 +0100555config CRYPTO_CRC32C_VPMSUM
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000556 tristate "CRC32c CRC algorithm (powerpc64)"
Michael Ellermanc12abf32016-08-09 08:46:15 +1000557 depends on PPC64 && ALTIVEC
Anton Blanchard6dd7a822016-07-01 08:19:45 +1000558 select CRYPTO_HASH
559 select CRC32
560 help
561 CRC32c algorithm implemented using vector polynomial multiply-sum
562 (vpmsum) instructions, introduced in POWER8. Enable on POWER8
563 and newer processors for improved performance.
564
565
David S. Miller442a7c42012-08-22 20:47:36 -0700566config CRYPTO_CRC32C_SPARC64
567 tristate "CRC32c CRC algorithm (SPARC64)"
568 depends on SPARC64
569 select CRYPTO_HASH
570 select CRC32
571 help
572 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
573 when available.
574
Alexander Boyko78c37d12013-01-10 18:54:59 +0400575config CRYPTO_CRC32
576 tristate "CRC32 CRC algorithm"
577 select CRYPTO_HASH
578 select CRC32
579 help
580 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
581 Shash crypto api wrappers to crc32_le function.
582
583config CRYPTO_CRC32_PCLMUL
584 tristate "CRC32 PCLMULQDQ hardware acceleration"
585 depends on X86
586 select CRYPTO_HASH
587 select CRC32
588 help
589 From Intel Westmere and AMD Bulldozer processor with SSE4.2
590 and PCLMULQDQ supported, the processor will support
591 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
hacoaf8cb012018-12-28 10:09:40 +0000592 instruction. This option will create 'crc32-pclmul' module,
Alexander Boyko78c37d12013-01-10 18:54:59 +0400593 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
594 and gain better performance as compared with the table implementation.
595
Marcin Nowakowski4a5dc512018-02-09 22:11:06 +0000596config CRYPTO_CRC32_MIPS
597 tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
598 depends on MIPS_CRC_SUPPORT
599 select CRYPTO_HASH
600 help
601 CRC32c and CRC32 CRC algorithms implemented using mips crypto
602 instructions, when available.
603
604
Nikolay Borisov67882e72019-05-30 09:52:57 +0300605config CRYPTO_XXHASH
606 tristate "xxHash hash algorithm"
607 select CRYPTO_HASH
608 select XXHASH
609 help
610 xxHash non-cryptographic hash algorithm. Extremely fast, working at
611 speeds close to RAM limits.
612
Herbert Xu684115212013-09-07 12:56:26 +1000613config CRYPTO_CRCT10DIF
614 tristate "CRCT10DIF algorithm"
615 select CRYPTO_HASH
616 help
617 CRC T10 Data Integrity Field computation is being cast as
618 a crypto transform. This allows for faster crc t10 diff
619 transforms to be used if they are available.
620
621config CRYPTO_CRCT10DIF_PCLMUL
622 tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
623 depends on X86 && 64BIT && CRC_T10DIF
624 select CRYPTO_HASH
625 help
626 For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
627 CRC T10 DIF PCLMULQDQ computation can be hardware
628 accelerated PCLMULQDQ instruction. This option will create
hacoaf8cb012018-12-28 10:09:40 +0000629 'crct10dif-pclmul' module, which is faster when computing the
Herbert Xu684115212013-09-07 12:56:26 +1000630 crct10dif checksum as compared with the generic table implementation.
631
Daniel Axtensb01df1c2017-03-15 23:37:36 +1100632config CRYPTO_CRCT10DIF_VPMSUM
633 tristate "CRC32T10DIF powerpc64 hardware acceleration"
634 depends on PPC64 && ALTIVEC && CRC_T10DIF
635 select CRYPTO_HASH
636 help
637 CRC10T10DIF algorithm implemented using vector polynomial
638 multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
639 POWER8 and newer processors for improved performance.
640
Daniel Axtens146c8682017-03-15 23:37:37 +1100641config CRYPTO_VPMSUM_TESTER
642 tristate "Powerpc64 vpmsum hardware acceleration tester"
643 depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
644 help
645 Stress test for CRC32c and CRC-T10DIF algorithms implemented with
646 POWER8 vpmsum instructions.
647 Unless you are testing these algorithms, you don't need this.
648
Huang Ying2cdc6892009-08-06 15:32:38 +1000649config CRYPTO_GHASH
Eric Biggers8dfa20f2019-07-19 23:09:18 -0700650 tristate "GHASH hash function"
Huang Ying2cdc6892009-08-06 15:32:38 +1000651 select CRYPTO_GF128MUL
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100652 select CRYPTO_HASH
Huang Ying2cdc6892009-08-06 15:32:38 +1000653 help
Eric Biggers8dfa20f2019-07-19 23:09:18 -0700654 GHASH is the hash function used in GCM (Galois/Counter Mode).
655 It is not a general-purpose cryptographic hash function.
Huang Ying2cdc6892009-08-06 15:32:38 +1000656
Martin Willif979e012015-06-01 13:43:58 +0200657config CRYPTO_POLY1305
658 tristate "Poly1305 authenticator algorithm"
Arnd Bergmann578c60f2016-01-25 17:51:21 +0100659 select CRYPTO_HASH
Martin Willif979e012015-06-01 13:43:58 +0200660 help
661 Poly1305 authenticator algorithm, RFC7539.
662
663 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
664 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
665 in IETF protocols. This is the portable C implementation of Poly1305.
666
Martin Willic70f4ab2015-07-16 19:14:06 +0200667config CRYPTO_POLY1305_X86_64
Martin Willib1ccc8f2015-07-16 19:14:08 +0200668 tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
Martin Willic70f4ab2015-07-16 19:14:06 +0200669 depends on X86 && 64BIT
670 select CRYPTO_POLY1305
671 help
672 Poly1305 authenticator algorithm, RFC7539.
673
674 Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
675 It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
676 in IETF protocols. This is the x86_64 assembler implementation using SIMD
677 instructions.
678
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800679config CRYPTO_MD4
680 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800681 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700682 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800683 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700684
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800685config CRYPTO_MD5
686 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800687 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700688 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800689 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700690
Aaro Koskinend69e75d2014-12-21 22:54:02 +0200691config CRYPTO_MD5_OCTEON
692 tristate "MD5 digest algorithm (OCTEON)"
693 depends on CPU_CAVIUM_OCTEON
694 select CRYPTO_MD5
695 select CRYPTO_HASH
696 help
697 MD5 message digest algorithm (RFC1321) implemented
698 using OCTEON crypto instructions, when available.
699
Markus Stockhausene8e59952015-03-01 19:30:46 +0100700config CRYPTO_MD5_PPC
701 tristate "MD5 digest algorithm (PPC)"
702 depends on PPC
703 select CRYPTO_HASH
704 help
705 MD5 message digest algorithm (RFC1321) implemented
706 in PPC assembler.
707
David S. Millerfa4dfed2012-08-19 21:51:26 -0700708config CRYPTO_MD5_SPARC64
709 tristate "MD5 digest algorithm (SPARC64)"
710 depends on SPARC64
711 select CRYPTO_MD5
712 select CRYPTO_HASH
713 help
714 MD5 message digest algorithm (RFC1321) implemented
715 using sparc64 crypto instructions, when available.
716
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800717config CRYPTO_MICHAEL_MIC
718 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800719 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800720 help
721 Michael MIC is used for message integrity protection in TKIP
722 (IEEE 802.11i). This algorithm is required for TKIP, but it
723 should not be used for other purposes because of the weakness
724 of the algorithm.
725
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800726config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800727 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800728 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800729 help
730 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800731
Adrian Bunkb6d44342008-07-16 19:28:00 +0800732 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000733 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800734 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800735
Adrian Bunkb6d44342008-07-16 19:28:00 +0800736 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800737 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800738
739config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800740 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800741 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800742 help
743 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800744
Adrian Bunkb6d44342008-07-16 19:28:00 +0800745 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
746 to be used as a secure replacement for the 128-bit hash functions
747 MD4, MD5 and it's predecessor RIPEMD
748 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800749
Adrian Bunkb6d44342008-07-16 19:28:00 +0800750 It's speed is comparable to SHA1 and there are no known attacks
751 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800752
Adrian Bunkb6d44342008-07-16 19:28:00 +0800753 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800754 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800755
756config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800757 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800758 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800759 help
760 RIPEMD-256 is an optional extension of RIPEMD-128 with a
761 256 bit hash. It is intended for applications that require
762 longer hash-results, without needing a larger security level
763 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800764
Adrian Bunkb6d44342008-07-16 19:28:00 +0800765 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800766 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800767
768config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800769 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800770 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800771 help
772 RIPEMD-320 is an optional extension of RIPEMD-160 with a
773 320 bit hash. It is intended for applications that require
774 longer hash-results, without needing a larger security level
775 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800776
Adrian Bunkb6d44342008-07-16 19:28:00 +0800777 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800778 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800779
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800780config CRYPTO_SHA1
781 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800782 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800783 help
784 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
785
Mathias Krause66be8952011-08-04 20:19:25 +0200786config CRYPTO_SHA1_SSSE3
time38b6b72015-09-10 15:27:26 -0700787 tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Mathias Krause66be8952011-08-04 20:19:25 +0200788 depends on X86 && 64BIT
789 select CRYPTO_SHA1
790 select CRYPTO_HASH
791 help
792 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
793 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
time38b6b72015-09-10 15:27:26 -0700794 Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
795 when available.
Mathias Krause66be8952011-08-04 20:19:25 +0200796
Tim Chen8275d1a2013-03-26 13:59:17 -0700797config CRYPTO_SHA256_SSSE3
time38b6b72015-09-10 15:27:26 -0700798 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
Tim Chen8275d1a2013-03-26 13:59:17 -0700799 depends on X86 && 64BIT
800 select CRYPTO_SHA256
801 select CRYPTO_HASH
802 help
803 SHA-256 secure hash standard (DFIPS 180-2) implemented
804 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
805 Extensions version 1 (AVX1), or Advanced Vector Extensions
time38b6b72015-09-10 15:27:26 -0700806 version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
807 Instructions) when available.
Tim Chen8275d1a2013-03-26 13:59:17 -0700808
Tim Chen87de4572013-03-26 14:00:02 -0700809config CRYPTO_SHA512_SSSE3
810 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
811 depends on X86 && 64BIT
812 select CRYPTO_SHA512
813 select CRYPTO_HASH
814 help
815 SHA-512 secure hash standard (DFIPS 180-2) implemented
816 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
817 Extensions version 1 (AVX1), or Advanced Vector Extensions
818 version 2 (AVX2) instructions, when available.
819
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200820config CRYPTO_SHA1_OCTEON
821 tristate "SHA1 digest algorithm (OCTEON)"
822 depends on CPU_CAVIUM_OCTEON
823 select CRYPTO_SHA1
824 select CRYPTO_HASH
825 help
826 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
827 using OCTEON crypto instructions, when available.
828
David S. Miller4ff28d42012-08-19 15:41:53 -0700829config CRYPTO_SHA1_SPARC64
830 tristate "SHA1 digest algorithm (SPARC64)"
831 depends on SPARC64
832 select CRYPTO_SHA1
833 select CRYPTO_HASH
834 help
835 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
836 using sparc64 crypto instructions, when available.
837
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000838config CRYPTO_SHA1_PPC
839 tristate "SHA1 digest algorithm (powerpc)"
840 depends on PPC
841 help
842 This is the powerpc hardware accelerated implementation of the
843 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
844
Markus Stockhausend9850fc2015-02-24 20:36:50 +0100845config CRYPTO_SHA1_PPC_SPE
846 tristate "SHA1 digest algorithm (PPC SPE)"
847 depends on PPC && SPE
848 help
849 SHA-1 secure hash standard (DFIPS 180-4) implemented
850 using powerpc SPE SIMD instruction set.
851
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800852config CRYPTO_SHA256
853 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800854 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800855 help
856 SHA256 secure hash standard (DFIPS 180-2).
857
858 This version of SHA implements a 256 bit hash with 128 bits of
859 security against collision attacks.
860
Adrian Bunkb6d44342008-07-16 19:28:00 +0800861 This code also includes SHA-224, a 224 bit hash with 112 bits
862 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800863
Markus Stockhausen2ecc1e92015-01-30 15:39:34 +0100864config CRYPTO_SHA256_PPC_SPE
865 tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
866 depends on PPC && SPE
867 select CRYPTO_SHA256
868 select CRYPTO_HASH
869 help
870 SHA224 and SHA256 secure hash standard (DFIPS 180-2)
871 implemented using powerpc SPE SIMD instruction set.
872
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200873config CRYPTO_SHA256_OCTEON
874 tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
875 depends on CPU_CAVIUM_OCTEON
876 select CRYPTO_SHA256
877 select CRYPTO_HASH
878 help
879 SHA-256 secure hash standard (DFIPS 180-2) implemented
880 using OCTEON crypto instructions, when available.
881
David S. Miller86c93b22012-08-19 17:11:37 -0700882config CRYPTO_SHA256_SPARC64
883 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
884 depends on SPARC64
885 select CRYPTO_SHA256
886 select CRYPTO_HASH
887 help
888 SHA-256 secure hash standard (DFIPS 180-2) implemented
889 using sparc64 crypto instructions, when available.
890
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800891config CRYPTO_SHA512
892 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100893 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800894 help
895 SHA512 secure hash standard (DFIPS 180-2).
896
897 This version of SHA implements a 512 bit hash with 256 bits of
898 security against collision attacks.
899
900 This code also includes SHA-384, a 384 bit hash with 192 bits
901 of security against collision attacks.
902
Aaro Koskinenefdb6f62015-03-08 22:07:47 +0200903config CRYPTO_SHA512_OCTEON
904 tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
905 depends on CPU_CAVIUM_OCTEON
906 select CRYPTO_SHA512
907 select CRYPTO_HASH
908 help
909 SHA-512 secure hash standard (DFIPS 180-2) implemented
910 using OCTEON crypto instructions, when available.
911
David S. Miller775e0c62012-08-19 17:37:56 -0700912config CRYPTO_SHA512_SPARC64
913 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
914 depends on SPARC64
915 select CRYPTO_SHA512
916 select CRYPTO_HASH
917 help
918 SHA-512 secure hash standard (DFIPS 180-2) implemented
919 using sparc64 crypto instructions, when available.
920
Jeff Garzik53964b92016-06-17 10:30:35 +0530921config CRYPTO_SHA3
922 tristate "SHA3 digest algorithm"
923 select CRYPTO_HASH
924 help
925 SHA-3 secure hash standard (DFIPS 202). It's based on
926 cryptographic sponge function family called Keccak.
927
928 References:
929 http://keccak.noekeon.org/
930
Gilad Ben-Yossef4f0fc162017-08-21 13:51:28 +0300931config CRYPTO_SM3
932 tristate "SM3 digest algorithm"
933 select CRYPTO_HASH
934 help
935 SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
936 It is part of the Chinese Commercial Cryptography suite.
937
938 References:
939 http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
940 https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
941
Vitaly Chikunovfe189572018-11-07 00:00:01 +0300942config CRYPTO_STREEBOG
943 tristate "Streebog Hash Function"
944 select CRYPTO_HASH
945 help
946 Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian
947 cryptographic standard algorithms (called GOST algorithms).
948 This setting enables two hash algorithms with 256 and 512 bits output.
949
950 References:
951 https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
952 https://tools.ietf.org/html/rfc6986
953
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800954config CRYPTO_TGR192
955 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800956 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800957 help
958 Tiger hash algorithm 192, 160 and 128-bit hashes
959
960 Tiger is a hash function optimized for 64-bit processors while
961 still having decent performance on 32-bit processors.
962 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700963
964 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800965 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
966
967config CRYPTO_WP512
968 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800969 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800970 help
971 Whirlpool hash algorithm 512, 384 and 256-bit hashes
972
973 Whirlpool-512 is part of the NESSIE cryptographic primitives.
974 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
975
976 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800977 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800978
Huang Ying0e1227d2009-10-19 11:53:06 +0900979config CRYPTO_GHASH_CLMUL_NI_INTEL
Eric Biggers8dfa20f2019-07-19 23:09:18 -0700980 tristate "GHASH hash function (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800981 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900982 select CRYPTO_CRYPTD
983 help
Eric Biggers8dfa20f2019-07-19 23:09:18 -0700984 This is the x86_64 CLMUL-NI accelerated implementation of
985 GHASH, the hash function used in GCM (Galois/Counter mode).
Huang Ying0e1227d2009-10-19 11:53:06 +0900986
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800987comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700988
Ard Biesheuvele59c1c92019-07-02 21:41:22 +0200989config CRYPTO_LIB_AES
990 tristate
991
Linus Torvalds1da177e2005-04-16 15:20:36 -0700992config CRYPTO_AES
993 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000994 select CRYPTO_ALGAPI
Ard Biesheuvel5bb12d72019-07-02 21:41:33 +0200995 select CRYPTO_LIB_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700996 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800997 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700998 algorithm.
999
1000 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001001 both hardware and software across a wide range of computing
1002 environments regardless of its use in feedback or non-feedback
1003 modes. Its key setup time is excellent, and its key agility is
1004 good. Rijndael's very low memory requirements make it very well
1005 suited for restricted-space environments, in which it also
1006 demonstrates excellent performance. Rijndael's operations are
1007 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001008
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001009 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -07001010
1011 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
1012
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001013config CRYPTO_AES_TI
1014 tristate "Fixed time AES cipher"
1015 select CRYPTO_ALGAPI
Ard Biesheuvele59c1c92019-07-02 21:41:22 +02001016 select CRYPTO_LIB_AES
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001017 help
1018 This is a generic implementation of AES that attempts to eliminate
1019 data dependent latencies as much as possible without affecting
1020 performance too much. It is intended for use by the generic CCM
1021 and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
1022 solely on encryption (although decryption is supported as well, but
1023 with a more dramatic performance hit)
1024
1025 Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
1026 8 for decryption), this implementation only uses just two S-boxes of
1027 256 bytes each, and attempts to eliminate data dependent latencies by
1028 prefetching the entire table into the cache at the start of each
Eric Biggers0a6a40c2018-10-17 21:37:58 -07001029 block. Interrupts are also disabled to avoid races where cachelines
1030 are evicted when the CPU is interrupted to do something else.
Ard Biesheuvelb5e0b032017-02-02 16:37:40 +00001031
Huang Ying54b6a1b2009-01-18 16:28:34 +11001032config CRYPTO_AES_NI_INTEL
1033 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +08001034 depends on X86
Herbert Xu85671862016-11-22 20:08:33 +08001035 select CRYPTO_AEAD
Ard Biesheuvel2c53fd12019-07-02 21:41:23 +02001036 select CRYPTO_LIB_AES
Huang Ying54b6a1b2009-01-18 16:28:34 +11001037 select CRYPTO_ALGAPI
Herbert Xu85671862016-11-22 20:08:33 +08001038 select CRYPTO_BLKCIPHER
Jussi Kivilinna7643a112013-04-10 18:39:20 +03001039 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Herbert Xu85671862016-11-22 20:08:33 +08001040 select CRYPTO_SIMD
Huang Ying54b6a1b2009-01-18 16:28:34 +11001041 help
1042 Use Intel AES-NI instructions for AES algorithm.
1043
1044 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1045 algorithm.
1046
1047 Rijndael appears to be consistently a very good performer in
1048 both hardware and software across a wide range of computing
1049 environments regardless of its use in feedback or non-feedback
1050 modes. Its key setup time is excellent, and its key agility is
1051 good. Rijndael's very low memory requirements make it very well
1052 suited for restricted-space environments, in which it also
1053 demonstrates excellent performance. Rijndael's operations are
1054 among the easiest to defend against power and timing attacks.
1055
1056 The AES specifies three key sizes: 128, 192 and 256 bits
1057
1058 See <http://csrc.nist.gov/encryption/aes/> for more information.
1059
Mathias Krause0d258ef2010-11-27 16:34:46 +08001060 In addition to AES cipher algorithm support, the acceleration
1061 for some popular block cipher mode is supported too, including
Ard Biesheuvel944585a2018-09-24 14:48:16 +02001062 ECB, CBC, LRW, XTS. The 64 bit version has additional
Mathias Krause0d258ef2010-11-27 16:34:46 +08001063 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +08001064
David S. Miller9bf48522012-08-21 03:58:13 -07001065config CRYPTO_AES_SPARC64
1066 tristate "AES cipher algorithms (SPARC64)"
1067 depends on SPARC64
1068 select CRYPTO_CRYPTD
1069 select CRYPTO_ALGAPI
1070 help
1071 Use SPARC64 crypto opcodes for AES algorithm.
1072
1073 AES cipher algorithms (FIPS-197). AES uses the Rijndael
1074 algorithm.
1075
1076 Rijndael appears to be consistently a very good performer in
1077 both hardware and software across a wide range of computing
1078 environments regardless of its use in feedback or non-feedback
1079 modes. Its key setup time is excellent, and its key agility is
1080 good. Rijndael's very low memory requirements make it very well
1081 suited for restricted-space environments, in which it also
1082 demonstrates excellent performance. Rijndael's operations are
1083 among the easiest to defend against power and timing attacks.
1084
1085 The AES specifies three key sizes: 128, 192 and 256 bits
1086
1087 See <http://csrc.nist.gov/encryption/aes/> for more information.
1088
1089 In addition to AES cipher algorithm support, the acceleration
1090 for some popular block cipher mode is supported too, including
1091 ECB and CBC.
1092
Markus Stockhausen504c6142015-02-22 10:00:10 +01001093config CRYPTO_AES_PPC_SPE
1094 tristate "AES cipher algorithms (PPC SPE)"
1095 depends on PPC && SPE
1096 help
1097 AES cipher algorithms (FIPS-197). Additionally the acceleration
1098 for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1099 This module should only be used for low power (router) devices
1100 without hardware AES acceleration (e.g. caam crypto). It reduces the
1101 size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1102 timining attacks. Nevertheless it might be not as secure as other
1103 architecture specific assembler implementations that work on 1KB
1104 tables or 256 bytes S-boxes.
1105
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001106config CRYPTO_ANUBIS
1107 tristate "Anubis cipher algorithm"
1108 select CRYPTO_ALGAPI
1109 help
1110 Anubis cipher algorithm.
1111
1112 Anubis is a variable key length cipher which can use keys from
1113 128 bits to 320 bits in length. It was evaluated as a entrant
1114 in the NESSIE competition.
1115
1116 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001117 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
1118 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001119
Ard Biesheuveldc51f252019-06-12 18:19:53 +02001120config CRYPTO_LIB_ARC4
1121 tristate
1122
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001123config CRYPTO_ARC4
1124 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +02001125 select CRYPTO_BLKCIPHER
Ard Biesheuveldc51f252019-06-12 18:19:53 +02001126 select CRYPTO_LIB_ARC4
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001127 help
1128 ARC4 cipher algorithm.
1129
1130 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1131 bits in length. This algorithm is required for driver-based
1132 WEP, but it should not be for other purposes because of the
1133 weakness of the algorithm.
1134
1135config CRYPTO_BLOWFISH
1136 tristate "Blowfish cipher algorithm"
1137 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001138 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001139 help
1140 Blowfish cipher algorithm, by Bruce Schneier.
1141
1142 This is a variable key length cipher which can use keys from 32
1143 bits to 448 bits in length. It's fast, simple and specifically
1144 designed for use on "large microprocessors".
1145
1146 See also:
1147 <http://www.schneier.com/blowfish.html>
1148
Jussi Kivilinna52ba8672011-09-02 01:45:07 +03001149config CRYPTO_BLOWFISH_COMMON
1150 tristate
1151 help
1152 Common parts of the Blowfish cipher algorithm shared by the
1153 generic c and the assembler implementations.
1154
1155 See also:
1156 <http://www.schneier.com/blowfish.html>
1157
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001158config CRYPTO_BLOWFISH_X86_64
1159 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001160 depends on X86 && 64BIT
Eric Biggersc1679172018-02-19 23:48:16 -08001161 select CRYPTO_BLKCIPHER
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +03001162 select CRYPTO_BLOWFISH_COMMON
1163 help
1164 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
1165
1166 This is a variable key length cipher which can use keys from 32
1167 bits to 448 bits in length. It's fast, simple and specifically
1168 designed for use on "large microprocessors".
1169
1170 See also:
1171 <http://www.schneier.com/blowfish.html>
1172
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001173config CRYPTO_CAMELLIA
1174 tristate "Camellia cipher algorithms"
1175 depends on CRYPTO
1176 select CRYPTO_ALGAPI
1177 help
1178 Camellia cipher algorithms module.
1179
1180 Camellia is a symmetric key block cipher developed jointly
1181 at NTT and Mitsubishi Electric Corporation.
1182
1183 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1184
1185 See also:
1186 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1187
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001188config CRYPTO_CAMELLIA_X86_64
1189 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -04001190 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001191 depends on CRYPTO
Eric Biggers1af6d032018-02-19 23:48:22 -08001192 select CRYPTO_BLKCIPHER
Jussi Kivilinna964263a2012-06-18 14:07:29 +03001193 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +02001194 help
1195 Camellia cipher algorithm module (x86_64).
1196
1197 Camellia is a symmetric key block cipher developed jointly
1198 at NTT and Mitsubishi Electric Corporation.
1199
1200 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1201
1202 See also:
1203 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1204
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001205config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1206 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1207 depends on X86 && 64BIT
1208 depends on CRYPTO
Eric Biggers44893bc2018-02-19 23:48:23 -08001209 select CRYPTO_BLKCIPHER
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001210 select CRYPTO_CAMELLIA_X86_64
Eric Biggers44893bc2018-02-19 23:48:23 -08001211 select CRYPTO_GLUE_HELPER_X86
1212 select CRYPTO_SIMD
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +03001213 select CRYPTO_XTS
1214 help
1215 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1216
1217 Camellia is a symmetric key block cipher developed jointly
1218 at NTT and Mitsubishi Electric Corporation.
1219
1220 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1221
1222 See also:
1223 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1224
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001225config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1226 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1227 depends on X86 && 64BIT
1228 depends on CRYPTO
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001229 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +03001230 help
1231 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1232
1233 Camellia is a symmetric key block cipher developed jointly
1234 at NTT and Mitsubishi Electric Corporation.
1235
1236 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1237
1238 See also:
1239 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1240
David S. Miller81658ad2012-08-28 12:05:54 -07001241config CRYPTO_CAMELLIA_SPARC64
1242 tristate "Camellia cipher algorithm (SPARC64)"
1243 depends on SPARC64
1244 depends on CRYPTO
1245 select CRYPTO_ALGAPI
1246 help
1247 Camellia cipher algorithm module (SPARC64).
1248
1249 Camellia is a symmetric key block cipher developed jointly
1250 at NTT and Mitsubishi Electric Corporation.
1251
1252 The Camellia specifies three key sizes: 128, 192 and 256 bits.
1253
1254 See also:
1255 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1256
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001257config CRYPTO_CAST_COMMON
1258 tristate
1259 help
1260 Common parts of the CAST cipher algorithms shared by the
1261 generic c and the assembler implementations.
1262
Linus Torvalds1da177e2005-04-16 15:20:36 -07001263config CRYPTO_CAST5
1264 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001265 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001266 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001267 help
1268 The CAST5 encryption algorithm (synonymous with CAST-128) is
1269 described in RFC2144.
1270
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001271config CRYPTO_CAST5_AVX_X86_64
1272 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1273 depends on X86 && 64BIT
Eric Biggers1e631832018-02-19 23:48:13 -08001274 select CRYPTO_BLKCIPHER
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001275 select CRYPTO_CAST5
Eric Biggers1e631832018-02-19 23:48:13 -08001276 select CRYPTO_CAST_COMMON
1277 select CRYPTO_SIMD
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001278 help
1279 The CAST5 encryption algorithm (synonymous with CAST-128) is
1280 described in RFC2144.
1281
1282 This module provides the Cast5 cipher algorithm that processes
1283 sixteen blocks parallel using the AVX instruction set.
1284
Linus Torvalds1da177e2005-04-16 15:20:36 -07001285config CRYPTO_CAST6
1286 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001287 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001288 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001289 help
1290 The CAST6 encryption algorithm (synonymous with CAST-256) is
1291 described in RFC2612.
1292
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001293config CRYPTO_CAST6_AVX_X86_64
1294 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1295 depends on X86 && 64BIT
Eric Biggers4bd96922018-02-19 23:48:15 -08001296 select CRYPTO_BLKCIPHER
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001297 select CRYPTO_CAST6
Eric Biggers4bd96922018-02-19 23:48:15 -08001298 select CRYPTO_CAST_COMMON
1299 select CRYPTO_GLUE_HELPER_X86
1300 select CRYPTO_SIMD
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001301 select CRYPTO_XTS
1302 help
1303 The CAST6 encryption algorithm (synonymous with CAST-256) is
1304 described in RFC2612.
1305
1306 This module provides the Cast6 cipher algorithm that processes
1307 eight blocks parallel using the AVX instruction set.
1308
Ard Biesheuvel04007b02019-08-15 12:01:09 +03001309config CRYPTO_LIB_DES
1310 tristate
1311
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001312config CRYPTO_DES
1313 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001314 select CRYPTO_ALGAPI
Ard Biesheuvel04007b02019-08-15 12:01:09 +03001315 select CRYPTO_LIB_DES
Linus Torvalds1da177e2005-04-16 15:20:36 -07001316 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001317 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001318
David S. Millerc5aac2d2012-08-25 22:37:23 -07001319config CRYPTO_DES_SPARC64
1320 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001321 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001322 select CRYPTO_ALGAPI
Ard Biesheuvel04007b02019-08-15 12:01:09 +03001323 select CRYPTO_LIB_DES
David S. Millerc5aac2d2012-08-25 22:37:23 -07001324 help
1325 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1326 optimized using SPARC64 crypto opcodes.
1327
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001328config CRYPTO_DES3_EDE_X86_64
1329 tristate "Triple DES EDE cipher algorithm (x86-64)"
1330 depends on X86 && 64BIT
Eric Biggers09c0f032018-02-19 23:48:17 -08001331 select CRYPTO_BLKCIPHER
Ard Biesheuvel04007b02019-08-15 12:01:09 +03001332 select CRYPTO_LIB_DES
Jussi Kivilinna6574e6c2014-06-09 20:59:54 +03001333 help
1334 Triple DES EDE (FIPS 46-3) algorithm.
1335
1336 This module provides implementation of the Triple DES EDE cipher
1337 algorithm that is optimized for x86-64 processors. Two versions of
1338 algorithm are provided; regular processing one input block and
1339 one that processes three blocks parallel.
1340
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001341config CRYPTO_FCRYPT
1342 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001343 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001344 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001345 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001346 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001347
1348config CRYPTO_KHAZAD
1349 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001350 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001351 help
1352 Khazad cipher algorithm.
1353
1354 Khazad was a finalist in the initial NESSIE competition. It is
1355 an algorithm optimized for 64-bit processors with good performance
1356 on 32-bit processors. Khazad uses an 128 bit key size.
1357
1358 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001359 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001360
Tan Swee Heng2407d602007-11-23 19:45:00 +08001361config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001362 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001363 select CRYPTO_BLKCIPHER
1364 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>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001372
Martin Willic08d0e62015-06-01 13:43:56 +02001373config CRYPTO_CHACHA20
Eric Biggersaa762402018-11-16 17:26:22 -08001374 tristate "ChaCha stream cipher algorithms"
Martin Willic08d0e62015-06-01 13:43:56 +02001375 select CRYPTO_BLKCIPHER
1376 help
Eric Biggersaa762402018-11-16 17:26:22 -08001377 The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms.
Martin Willic08d0e62015-06-01 13:43:56 +02001378
1379 ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1380 Bernstein and further specified in RFC7539 for use in IETF protocols.
Eric Biggersde61d7a2018-11-16 17:26:20 -08001381 This is the portable C implementation of ChaCha20. See also:
Martin Willic08d0e62015-06-01 13:43:56 +02001382 <http://cr.yp.to/chacha/chacha-20080128.pdf>
1383
Eric Biggersde61d7a2018-11-16 17:26:20 -08001384 XChaCha20 is the application of the XSalsa20 construction to ChaCha20
1385 rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length
1386 from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
1387 while provably retaining ChaCha20's security. See also:
1388 <https://cr.yp.to/snuffle/xsalsa-20081128.pdf>
1389
Eric Biggersaa762402018-11-16 17:26:22 -08001390 XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
1391 reduced security margin but increased performance. It can be needed
1392 in some performance-sensitive scenarios.
1393
Martin Willic9320b62015-07-16 19:14:01 +02001394config CRYPTO_CHACHA20_X86_64
Eric Biggers4af78262018-12-04 22:20:02 -08001395 tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)"
Martin Willic9320b62015-07-16 19:14:01 +02001396 depends on X86 && 64BIT
1397 select CRYPTO_BLKCIPHER
1398 select CRYPTO_CHACHA20
1399 help
Eric Biggers7a507d62018-12-04 22:20:04 -08001400 SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20,
1401 XChaCha20, and XChaCha12 stream ciphers.
Martin Willic9320b62015-07-16 19:14:01 +02001402
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001403config CRYPTO_SEED
1404 tristate "SEED cipher algorithm"
1405 select CRYPTO_ALGAPI
1406 help
1407 SEED cipher algorithm (RFC4269).
1408
1409 SEED is a 128-bit symmetric key block cipher that has been
1410 developed by KISA (Korea Information Security Agency) as a
1411 national standard encryption algorithm of the Republic of Korea.
1412 It is a 16 round block cipher with the key size of 128 bit.
1413
1414 See also:
1415 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1416
1417config CRYPTO_SERPENT
1418 tristate "Serpent cipher algorithm"
1419 select CRYPTO_ALGAPI
1420 help
1421 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1422
1423 Keys are allowed to be from 0 to 256 bits in length, in steps
1424 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1425 variant of Serpent for compatibility with old kerneli.org code.
1426
1427 See also:
1428 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1429
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001430config CRYPTO_SERPENT_SSE2_X86_64
1431 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1432 depends on X86 && 64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001433 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001434 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001435 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001436 select CRYPTO_SIMD
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001437 help
1438 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1439
1440 Keys are allowed to be from 0 to 256 bits in length, in steps
1441 of 8 bits.
1442
Masanari Iida1e6232f2015-04-04 00:20:30 +09001443 This module provides Serpent cipher algorithm that processes eight
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001444 blocks parallel using SSE2 instruction set.
1445
1446 See also:
1447 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1448
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001449config CRYPTO_SERPENT_SSE2_586
1450 tristate "Serpent cipher algorithm (i586/SSE2)"
1451 depends on X86 && !64BIT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001452 select CRYPTO_BLKCIPHER
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001453 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001454 select CRYPTO_SERPENT
Eric Biggerse0f409d2018-02-19 23:48:03 -08001455 select CRYPTO_SIMD
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001456 help
1457 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1458
1459 Keys are allowed to be from 0 to 256 bits in length, in steps
1460 of 8 bits.
1461
1462 This module provides Serpent cipher algorithm that processes four
1463 blocks parallel using SSE2 instruction set.
1464
1465 See also:
1466 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1467
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001468config CRYPTO_SERPENT_AVX_X86_64
1469 tristate "Serpent cipher algorithm (x86_64/AVX)"
1470 depends on X86 && 64BIT
Eric Biggerse16bf972018-02-19 23:48:06 -08001471 select CRYPTO_BLKCIPHER
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001472 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001473 select CRYPTO_SERPENT
Eric Biggerse16bf972018-02-19 23:48:06 -08001474 select CRYPTO_SIMD
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001475 select CRYPTO_XTS
1476 help
1477 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1478
1479 Keys are allowed to be from 0 to 256 bits in length, in steps
1480 of 8 bits.
1481
1482 This module provides the Serpent cipher algorithm that processes
1483 eight blocks parallel using the AVX instruction set.
1484
1485 See also:
1486 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1487
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001488config CRYPTO_SERPENT_AVX2_X86_64
1489 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1490 depends on X86 && 64BIT
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001491 select CRYPTO_SERPENT_AVX_X86_64
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001492 help
1493 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1494
1495 Keys are allowed to be from 0 to 256 bits in length, in steps
1496 of 8 bits.
1497
1498 This module provides Serpent cipher algorithm that processes 16
1499 blocks parallel using AVX2 instruction set.
1500
1501 See also:
1502 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1503
Gilad Ben-Yossef747c8ce2018-03-06 09:44:42 +00001504config CRYPTO_SM4
1505 tristate "SM4 cipher algorithm"
1506 select CRYPTO_ALGAPI
1507 help
1508 SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1509
1510 SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1511 Organization of State Commercial Administration of China (OSCCA)
1512 as an authorized cryptographic algorithms for the use within China.
1513
1514 SMS4 was originally created for use in protecting wireless
1515 networks, and is mandated in the Chinese National Standard for
1516 Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1517 (GB.15629.11-2003).
1518
1519 The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1520 standardized through TC 260 of the Standardization Administration
1521 of the People's Republic of China (SAC).
1522
1523 The input, output, and key of SMS4 are each 128 bits.
1524
1525 See also: <https://eprint.iacr.org/2008/329.pdf>
1526
1527 If unsure, say N.
1528
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001529config CRYPTO_TEA
1530 tristate "TEA, XTEA and XETA cipher algorithms"
1531 select CRYPTO_ALGAPI
1532 help
1533 TEA cipher algorithm.
1534
1535 Tiny Encryption Algorithm is a simple cipher that uses
1536 many rounds for security. It is very fast and uses
1537 little memory.
1538
1539 Xtendend Tiny Encryption Algorithm is a modification to
1540 the TEA algorithm to address a potential key weakness
1541 in the TEA algorithm.
1542
1543 Xtendend Encryption Tiny Algorithm is a mis-implementation
1544 of the XTEA algorithm for compatibility purposes.
1545
1546config CRYPTO_TWOFISH
1547 tristate "Twofish cipher algorithm"
1548 select CRYPTO_ALGAPI
1549 select CRYPTO_TWOFISH_COMMON
1550 help
1551 Twofish cipher algorithm.
1552
1553 Twofish was submitted as an AES (Advanced Encryption Standard)
1554 candidate cipher by researchers at CounterPane Systems. It is a
1555 16 round block cipher supporting key sizes of 128, 192, and 256
1556 bits.
1557
1558 See also:
1559 <http://www.schneier.com/twofish.html>
1560
1561config CRYPTO_TWOFISH_COMMON
1562 tristate
1563 help
1564 Common parts of the Twofish cipher algorithm shared by the
1565 generic c and the assembler implementations.
1566
1567config CRYPTO_TWOFISH_586
1568 tristate "Twofish cipher algorithms (i586)"
1569 depends on (X86 || UML_X86) && !64BIT
1570 select CRYPTO_ALGAPI
1571 select CRYPTO_TWOFISH_COMMON
1572 help
1573 Twofish cipher algorithm.
1574
1575 Twofish was submitted as an AES (Advanced Encryption Standard)
1576 candidate cipher by researchers at CounterPane Systems. It is a
1577 16 round block cipher supporting key sizes of 128, 192, and 256
1578 bits.
1579
1580 See also:
1581 <http://www.schneier.com/twofish.html>
1582
1583config CRYPTO_TWOFISH_X86_64
1584 tristate "Twofish cipher algorithm (x86_64)"
1585 depends on (X86 || UML_X86) && 64BIT
1586 select CRYPTO_ALGAPI
1587 select CRYPTO_TWOFISH_COMMON
1588 help
1589 Twofish cipher algorithm (x86_64).
1590
1591 Twofish was submitted as an AES (Advanced Encryption Standard)
1592 candidate cipher by researchers at CounterPane Systems. It is a
1593 16 round block cipher supporting key sizes of 128, 192, and 256
1594 bits.
1595
1596 See also:
1597 <http://www.schneier.com/twofish.html>
1598
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001599config CRYPTO_TWOFISH_X86_64_3WAY
1600 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001601 depends on X86 && 64BIT
Eric Biggers37992fa2018-02-19 23:48:09 -08001602 select CRYPTO_BLKCIPHER
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001603 select CRYPTO_TWOFISH_COMMON
1604 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001605 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001606 help
1607 Twofish cipher algorithm (x86_64, 3-way parallel).
1608
1609 Twofish was submitted as an AES (Advanced Encryption Standard)
1610 candidate cipher by researchers at CounterPane Systems. It is a
1611 16 round block cipher supporting key sizes of 128, 192, and 256
1612 bits.
1613
1614 This module provides Twofish cipher algorithm that processes three
1615 blocks parallel, utilizing resources of out-of-order CPUs better.
1616
1617 See also:
1618 <http://www.schneier.com/twofish.html>
1619
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001620config CRYPTO_TWOFISH_AVX_X86_64
1621 tristate "Twofish cipher algorithm (x86_64/AVX)"
1622 depends on X86 && 64BIT
Eric Biggers0e6ab462018-02-19 23:48:11 -08001623 select CRYPTO_BLKCIPHER
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001624 select CRYPTO_GLUE_HELPER_X86
Eric Biggers0e6ab462018-02-19 23:48:11 -08001625 select CRYPTO_SIMD
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001626 select CRYPTO_TWOFISH_COMMON
1627 select CRYPTO_TWOFISH_X86_64
1628 select CRYPTO_TWOFISH_X86_64_3WAY
Johannes Goetzfried107778b52012-05-28 15:54:24 +02001629 help
1630 Twofish cipher algorithm (x86_64/AVX).
1631
1632 Twofish was submitted as an AES (Advanced Encryption Standard)
1633 candidate cipher by researchers at CounterPane Systems. It is a
1634 16 round block cipher supporting key sizes of 128, 192, and 256
1635 bits.
1636
1637 This module provides the Twofish cipher algorithm that processes
1638 eight blocks parallel using the AVX Instruction Set.
1639
1640 See also:
1641 <http://www.schneier.com/twofish.html>
1642
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001643comment "Compression"
1644
Linus Torvalds1da177e2005-04-16 15:20:36 -07001645config CRYPTO_DEFLATE
1646 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001647 select CRYPTO_ALGAPI
Giovanni Cabidduf6ded092016-10-21 13:19:53 +01001648 select CRYPTO_ACOMP2
Linus Torvalds1da177e2005-04-16 15:20:36 -07001649 select ZLIB_INFLATE
1650 select ZLIB_DEFLATE
1651 help
1652 This is the Deflate algorithm (RFC1951), specified for use in
1653 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001654
Linus Torvalds1da177e2005-04-16 15:20:36 -07001655 You will most probably want this if using IPSec.
1656
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001657config CRYPTO_LZO
1658 tristate "LZO compression algorithm"
1659 select CRYPTO_ALGAPI
Giovanni Cabidduac9d2c42016-10-21 13:19:49 +01001660 select CRYPTO_ACOMP2
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001661 select LZO_COMPRESS
1662 select LZO_DECOMPRESS
1663 help
1664 This is the LZO algorithm.
1665
Seth Jennings35a1fc12012-07-19 09:42:41 -05001666config CRYPTO_842
1667 tristate "842 compression algorithm"
Dan Streetman2062c5b2015-05-07 13:49:15 -04001668 select CRYPTO_ALGAPI
Giovanni Cabiddu6a8de3a2016-10-21 13:19:52 +01001669 select CRYPTO_ACOMP2
Dan Streetman2062c5b2015-05-07 13:49:15 -04001670 select 842_COMPRESS
1671 select 842_DECOMPRESS
Seth Jennings35a1fc12012-07-19 09:42:41 -05001672 help
1673 This is the 842 algorithm.
1674
Chanho Min0ea85302013-07-08 16:01:51 -07001675config CRYPTO_LZ4
1676 tristate "LZ4 compression algorithm"
1677 select CRYPTO_ALGAPI
Giovanni Cabiddu8cd93302016-10-21 13:19:50 +01001678 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001679 select LZ4_COMPRESS
1680 select LZ4_DECOMPRESS
1681 help
1682 This is the LZ4 algorithm.
1683
1684config CRYPTO_LZ4HC
1685 tristate "LZ4HC compression algorithm"
1686 select CRYPTO_ALGAPI
Giovanni Cabiddu91d53d92016-10-21 13:19:51 +01001687 select CRYPTO_ACOMP2
Chanho Min0ea85302013-07-08 16:01:51 -07001688 select LZ4HC_COMPRESS
1689 select LZ4_DECOMPRESS
1690 help
1691 This is the LZ4 high compression mode algorithm.
1692
Nick Terrelld28fc3d2018-03-30 12:14:53 -07001693config CRYPTO_ZSTD
1694 tristate "Zstd compression algorithm"
1695 select CRYPTO_ALGAPI
1696 select CRYPTO_ACOMP2
1697 select ZSTD_COMPRESS
1698 select ZSTD_DECOMPRESS
1699 help
1700 This is the zstd algorithm.
1701
Neil Horman17f0f4a2008-08-14 22:15:52 +10001702comment "Random Number Generation"
1703
1704config CRYPTO_ANSI_CPRNG
1705 tristate "Pseudo Random Number Generation for Cryptographic modules"
1706 select CRYPTO_AES
1707 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001708 help
1709 This option enables the generic pseudo random number generator
1710 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001711 ANSI X9.31 A.2.4. Note that this option must be enabled if
1712 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001713
Herbert Xuf2c89a12014-07-04 22:15:08 +08001714menuconfig CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001715 tristate "NIST SP800-90A DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001716 help
1717 NIST SP800-90A compliant DRBG. In the following submenu, one or
1718 more of the DRBG types must be selected.
1719
Herbert Xuf2c89a12014-07-04 22:15:08 +08001720if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001721
1722config CRYPTO_DRBG_HMAC
Herbert Xu401e4232015-06-03 14:49:31 +08001723 bool
Stephan Mueller419090c2014-05-31 17:22:31 +02001724 default y
Stephan Mueller419090c2014-05-31 17:22:31 +02001725 select CRYPTO_HMAC
Herbert Xu826775b2015-06-11 08:55:10 +08001726 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001727
1728config CRYPTO_DRBG_HASH
1729 bool "Enable Hash DRBG"
Herbert Xu826775b2015-06-11 08:55:10 +08001730 select CRYPTO_SHA256
Stephan Mueller419090c2014-05-31 17:22:31 +02001731 help
1732 Enable the Hash DRBG variant as defined in NIST SP800-90A.
1733
1734config CRYPTO_DRBG_CTR
1735 bool "Enable CTR DRBG"
Stephan Mueller419090c2014-05-31 17:22:31 +02001736 select CRYPTO_AES
Stephan Mueller35591282016-06-14 07:34:13 +02001737 depends on CRYPTO_CTR
Stephan Mueller419090c2014-05-31 17:22:31 +02001738 help
1739 Enable the CTR DRBG variant as defined in NIST SP800-90A.
1740
Herbert Xuf2c89a12014-07-04 22:15:08 +08001741config CRYPTO_DRBG
1742 tristate
Herbert Xu401e4232015-06-03 14:49:31 +08001743 default CRYPTO_DRBG_MENU
Herbert Xuf2c89a12014-07-04 22:15:08 +08001744 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001745 select CRYPTO_JITTERENTROPY
Herbert Xuf2c89a12014-07-04 22:15:08 +08001746
1747endif # if CRYPTO_DRBG_MENU
Stephan Mueller419090c2014-05-31 17:22:31 +02001748
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001749config CRYPTO_JITTERENTROPY
1750 tristate "Jitterentropy Non-Deterministic Random Number Generator"
Arnd Bergmann2f313e02016-01-26 14:47:10 +01001751 select CRYPTO_RNG
Stephan Muellerbb5530e2015-05-25 15:10:20 +02001752 help
1753 The Jitterentropy RNG is a noise that is intended
1754 to provide seed to another RNG. The RNG does not
1755 perform any cryptographic whitening of the generated
1756 random numbers. This Jitterentropy RNG registers with
1757 the kernel crypto API and can be used by any caller.
1758
Herbert Xu03c8efc2010-10-19 21:12:39 +08001759config CRYPTO_USER_API
1760 tristate
1761
Herbert Xufe869cd2010-10-19 21:23:00 +08001762config CRYPTO_USER_API_HASH
1763 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001764 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001765 select CRYPTO_HASH
1766 select CRYPTO_USER_API
1767 help
1768 This option enables the user-spaces interface for hash
1769 algorithms.
1770
Herbert Xu8ff59092010-10-19 21:31:55 +08001771config CRYPTO_USER_API_SKCIPHER
1772 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001773 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001774 select CRYPTO_BLKCIPHER
1775 select CRYPTO_USER_API
1776 help
1777 This option enables the user-spaces interface for symmetric
1778 key cipher algorithms.
1779
Stephan Mueller2f3755382014-12-25 23:00:39 +01001780config CRYPTO_USER_API_RNG
1781 tristate "User-space interface for random number generator algorithms"
1782 depends on NET
1783 select CRYPTO_RNG
1784 select CRYPTO_USER_API
1785 help
1786 This option enables the user-spaces interface for random
1787 number generator algorithms.
1788
Herbert Xub64a2d92015-05-28 11:30:35 +08001789config CRYPTO_USER_API_AEAD
1790 tristate "User-space interface for AEAD cipher algorithms"
1791 depends on NET
1792 select CRYPTO_AEAD
Stephan Mueller72548b02017-07-30 14:32:58 +02001793 select CRYPTO_BLKCIPHER
1794 select CRYPTO_NULL
Herbert Xub64a2d92015-05-28 11:30:35 +08001795 select CRYPTO_USER_API
1796 help
1797 This option enables the user-spaces interface for AEAD
1798 cipher algorithms.
1799
Corentin Labbecac58182018-09-19 10:10:54 +00001800config CRYPTO_STATS
1801 bool "Crypto usage statistics for User-space"
Corentin Labbea6a31382018-11-29 14:42:17 +00001802 depends on CRYPTO_USER
Corentin Labbecac58182018-09-19 10:10:54 +00001803 help
1804 This option enables the gathering of crypto stats.
1805 This will collect:
1806 - encrypt/decrypt size and numbers of symmeric operations
1807 - compress/decompress size and numbers of compress operations
1808 - size and numbers of hash operations
1809 - encrypt/decrypt/sign/verify numbers for asymmetric operations
1810 - generate/seed numbers for rng operations
1811
Dmitry Kasatkinee089972013-05-06 15:40:01 +03001812config CRYPTO_HASH_INFO
1813 bool
1814
Linus Torvalds1da177e2005-04-16 15:20:36 -07001815source "drivers/crypto/Kconfig"
Masahiro Yamada8636a1f2018-12-11 20:01:04 +09001816source "crypto/asymmetric_keys/Kconfig"
1817source "certs/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -07001818
Herbert Xucce9e062006-08-21 21:08:13 +10001819endif # if CRYPTO