xref: /linux/crypto/Kconfig (revision f606a88e58230c30f5d56a53eff8da6fdbf1e4ee)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds#
3685784aaSDan Williams# Generic algorithms support
4685784aaSDan Williams#
5685784aaSDan Williamsconfig XOR_BLOCKS
6685784aaSDan Williams	tristate
7685784aaSDan Williams
8685784aaSDan Williams#
99bc89cd8SDan Williams# async_tx api: hardware offloaded memory transfer/transform support
109bc89cd8SDan Williams#
119bc89cd8SDan Williamssource "crypto/async_tx/Kconfig"
129bc89cd8SDan Williams
139bc89cd8SDan Williams#
141da177e4SLinus Torvalds# Cryptographic API Configuration
151da177e4SLinus Torvalds#
162e290f43SJan Engelhardtmenuconfig CRYPTO
17c3715cb9SSebastian Siewior	tristate "Cryptographic API"
181da177e4SLinus Torvalds	help
191da177e4SLinus Torvalds	  This option provides the core Cryptographic API.
201da177e4SLinus Torvalds
21cce9e06dSHerbert Xuif CRYPTO
22cce9e06dSHerbert Xu
23584fffc8SSebastian Siewiorcomment "Crypto core or helper"
24584fffc8SSebastian Siewior
25ccb778e1SNeil Hormanconfig CRYPTO_FIPS
26ccb778e1SNeil Horman	bool "FIPS 200 compliance"
27f2c89a10SHerbert Xu	depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
281f696097SAlec Ari	depends on (MODULE_SIG || !MODULES)
29ccb778e1SNeil Horman	help
30ccb778e1SNeil Horman	  This options enables the fips boot option which is
31ccb778e1SNeil Horman	  required if you want to system to operate in a FIPS 200
32ccb778e1SNeil Horman	  certification.  You should say no unless you know what
33e84c5480SChuck Ebbert	  this is.
34ccb778e1SNeil Horman
35cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI
36cce9e06dSHerbert Xu	tristate
376a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
38cce9e06dSHerbert Xu	help
39cce9e06dSHerbert Xu	  This option provides the API for cryptographic algorithms.
40cce9e06dSHerbert Xu
416a0fcbb4SHerbert Xuconfig CRYPTO_ALGAPI2
426a0fcbb4SHerbert Xu	tristate
436a0fcbb4SHerbert Xu
441ae97820SHerbert Xuconfig CRYPTO_AEAD
451ae97820SHerbert Xu	tristate
466a0fcbb4SHerbert Xu	select CRYPTO_AEAD2
471ae97820SHerbert Xu	select CRYPTO_ALGAPI
481ae97820SHerbert Xu
496a0fcbb4SHerbert Xuconfig CRYPTO_AEAD2
506a0fcbb4SHerbert Xu	tristate
516a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
52149a3971SHerbert Xu	select CRYPTO_NULL2
53149a3971SHerbert Xu	select CRYPTO_RNG2
546a0fcbb4SHerbert Xu
555cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER
565cde0af2SHerbert Xu	tristate
576a0fcbb4SHerbert Xu	select CRYPTO_BLKCIPHER2
585cde0af2SHerbert Xu	select CRYPTO_ALGAPI
596a0fcbb4SHerbert Xu
606a0fcbb4SHerbert Xuconfig CRYPTO_BLKCIPHER2
616a0fcbb4SHerbert Xu	tristate
626a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
636a0fcbb4SHerbert Xu	select CRYPTO_RNG2
640a2e821dSHuang Ying	select CRYPTO_WORKQUEUE
655cde0af2SHerbert Xu
66055bcee3SHerbert Xuconfig CRYPTO_HASH
67055bcee3SHerbert Xu	tristate
686a0fcbb4SHerbert Xu	select CRYPTO_HASH2
69055bcee3SHerbert Xu	select CRYPTO_ALGAPI
70055bcee3SHerbert Xu
716a0fcbb4SHerbert Xuconfig CRYPTO_HASH2
726a0fcbb4SHerbert Xu	tristate
736a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
746a0fcbb4SHerbert Xu
7517f0f4a4SNeil Hormanconfig CRYPTO_RNG
7617f0f4a4SNeil Horman	tristate
776a0fcbb4SHerbert Xu	select CRYPTO_RNG2
7817f0f4a4SNeil Horman	select CRYPTO_ALGAPI
7917f0f4a4SNeil Horman
806a0fcbb4SHerbert Xuconfig CRYPTO_RNG2
816a0fcbb4SHerbert Xu	tristate
826a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
836a0fcbb4SHerbert Xu
84401e4238SHerbert Xuconfig CRYPTO_RNG_DEFAULT
85401e4238SHerbert Xu	tristate
86401e4238SHerbert Xu	select CRYPTO_DRBG_MENU
87401e4238SHerbert Xu
883c339ab8STadeusz Strukconfig CRYPTO_AKCIPHER2
893c339ab8STadeusz Struk	tristate
903c339ab8STadeusz Struk	select CRYPTO_ALGAPI2
913c339ab8STadeusz Struk
923c339ab8STadeusz Strukconfig CRYPTO_AKCIPHER
933c339ab8STadeusz Struk	tristate
943c339ab8STadeusz Struk	select CRYPTO_AKCIPHER2
953c339ab8STadeusz Struk	select CRYPTO_ALGAPI
963c339ab8STadeusz Struk
974e5f2c40SSalvatore Benedettoconfig CRYPTO_KPP2
984e5f2c40SSalvatore Benedetto	tristate
994e5f2c40SSalvatore Benedetto	select CRYPTO_ALGAPI2
1004e5f2c40SSalvatore Benedetto
1014e5f2c40SSalvatore Benedettoconfig CRYPTO_KPP
1024e5f2c40SSalvatore Benedetto	tristate
1034e5f2c40SSalvatore Benedetto	select CRYPTO_ALGAPI
1044e5f2c40SSalvatore Benedetto	select CRYPTO_KPP2
1054e5f2c40SSalvatore Benedetto
1062ebda74fSGiovanni Cabidduconfig CRYPTO_ACOMP2
1072ebda74fSGiovanni Cabiddu	tristate
1082ebda74fSGiovanni Cabiddu	select CRYPTO_ALGAPI2
1098cd579d2SBart Van Assche	select SGL_ALLOC
1102ebda74fSGiovanni Cabiddu
1112ebda74fSGiovanni Cabidduconfig CRYPTO_ACOMP
1122ebda74fSGiovanni Cabiddu	tristate
1132ebda74fSGiovanni Cabiddu	select CRYPTO_ALGAPI
1142ebda74fSGiovanni Cabiddu	select CRYPTO_ACOMP2
1152ebda74fSGiovanni Cabiddu
116cfc2bb32STadeusz Strukconfig CRYPTO_RSA
117cfc2bb32STadeusz Struk	tristate "RSA algorithm"
118425e0172STadeusz Struk	select CRYPTO_AKCIPHER
11958446fefSTadeusz Struk	select CRYPTO_MANAGER
120cfc2bb32STadeusz Struk	select MPILIB
121cfc2bb32STadeusz Struk	select ASN1
122cfc2bb32STadeusz Struk	help
123cfc2bb32STadeusz Struk	  Generic implementation of the RSA public key algorithm.
124cfc2bb32STadeusz Struk
125802c7f1cSSalvatore Benedettoconfig CRYPTO_DH
126802c7f1cSSalvatore Benedetto	tristate "Diffie-Hellman algorithm"
127802c7f1cSSalvatore Benedetto	select CRYPTO_KPP
128802c7f1cSSalvatore Benedetto	select MPILIB
129802c7f1cSSalvatore Benedetto	help
130802c7f1cSSalvatore Benedetto	  Generic implementation of the Diffie-Hellman algorithm.
131802c7f1cSSalvatore Benedetto
1323c4b2390SSalvatore Benedettoconfig CRYPTO_ECDH
1333c4b2390SSalvatore Benedetto	tristate "ECDH algorithm"
134b5b90077SHauke Mehrtens	select CRYPTO_KPP
1356755fd26STudor-Dan Ambarus	select CRYPTO_RNG_DEFAULT
1363c4b2390SSalvatore Benedetto	help
1373c4b2390SSalvatore Benedetto	  Generic implementation of the ECDH algorithm
138802c7f1cSSalvatore Benedetto
1392b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
1402b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
1416a0fcbb4SHerbert Xu	select CRYPTO_MANAGER2
1422b8c19dbSHerbert Xu	help
1432b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
1442b8c19dbSHerbert Xu	  cbc(aes).
1452b8c19dbSHerbert Xu
1466a0fcbb4SHerbert Xuconfig CRYPTO_MANAGER2
1476a0fcbb4SHerbert Xu	def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
1486a0fcbb4SHerbert Xu	select CRYPTO_AEAD2
1496a0fcbb4SHerbert Xu	select CRYPTO_HASH2
1506a0fcbb4SHerbert Xu	select CRYPTO_BLKCIPHER2
151946cc463STadeusz Struk	select CRYPTO_AKCIPHER2
1524e5f2c40SSalvatore Benedetto	select CRYPTO_KPP2
1532ebda74fSGiovanni Cabiddu	select CRYPTO_ACOMP2
1546a0fcbb4SHerbert Xu
155a38f7907SSteffen Klassertconfig CRYPTO_USER
156a38f7907SSteffen Klassert	tristate "Userspace cryptographic algorithm configuration"
1575db017aaSHerbert Xu	depends on NET
158a38f7907SSteffen Klassert	select CRYPTO_MANAGER
159a38f7907SSteffen Klassert	help
160d19978f5SValdis.Kletnieks@vt.edu	  Userspace configuration for cryptographic instantiations such as
161a38f7907SSteffen Klassert	  cbc(aes).
162a38f7907SSteffen Klassert
163326a6346SHerbert Xuconfig CRYPTO_MANAGER_DISABLE_TESTS
164326a6346SHerbert Xu	bool "Disable run-time self tests"
16500ca28a5SHerbert Xu	default y
16600ca28a5SHerbert Xu	depends on CRYPTO_MANAGER2
1670b767f96SAlexander Shishkin	help
168326a6346SHerbert Xu	  Disable run-time self tests that normally take place at
169326a6346SHerbert Xu	  algorithm registration.
1700b767f96SAlexander Shishkin
171584fffc8SSebastian Siewiorconfig CRYPTO_GF128MUL
17208c70fc3SJussi Kivilinna	tristate "GF(2^128) multiplication functions"
173584fffc8SSebastian Siewior	help
174584fffc8SSebastian Siewior	  Efficient table driven implementation of multiplications in the
175584fffc8SSebastian Siewior	  field GF(2^128).  This is needed by some cypher modes. This
176584fffc8SSebastian Siewior	  option will be selected automatically if you select such a
177584fffc8SSebastian Siewior	  cipher mode.  Only select this option by hand if you expect to load
178584fffc8SSebastian Siewior	  an external module that requires these functions.
179584fffc8SSebastian Siewior
180584fffc8SSebastian Siewiorconfig CRYPTO_NULL
181584fffc8SSebastian Siewior	tristate "Null algorithms"
182149a3971SHerbert Xu	select CRYPTO_NULL2
183584fffc8SSebastian Siewior	help
184584fffc8SSebastian Siewior	  These are 'Null' algorithms, used by IPsec, which do nothing.
185584fffc8SSebastian Siewior
186149a3971SHerbert Xuconfig CRYPTO_NULL2
187dd43c4e9SHerbert Xu	tristate
188149a3971SHerbert Xu	select CRYPTO_ALGAPI2
189149a3971SHerbert Xu	select CRYPTO_BLKCIPHER2
190149a3971SHerbert Xu	select CRYPTO_HASH2
191149a3971SHerbert Xu
1925068c7a8SSteffen Klassertconfig CRYPTO_PCRYPT
1933b4afaf2SKees Cook	tristate "Parallel crypto engine"
1943b4afaf2SKees Cook	depends on SMP
1955068c7a8SSteffen Klassert	select PADATA
1965068c7a8SSteffen Klassert	select CRYPTO_MANAGER
1975068c7a8SSteffen Klassert	select CRYPTO_AEAD
1985068c7a8SSteffen Klassert	help
1995068c7a8SSteffen Klassert	  This converts an arbitrary crypto algorithm into a parallel
2005068c7a8SSteffen Klassert	  algorithm that executes in kernel threads.
2015068c7a8SSteffen Klassert
20225c38d3fSHuang Yingconfig CRYPTO_WORKQUEUE
20325c38d3fSHuang Ying       tristate
20425c38d3fSHuang Ying
205584fffc8SSebastian Siewiorconfig CRYPTO_CRYPTD
206584fffc8SSebastian Siewior	tristate "Software async crypto daemon"
207584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
208b8a28251SLoc Ho	select CRYPTO_HASH
209584fffc8SSebastian Siewior	select CRYPTO_MANAGER
210254eff77SHuang Ying	select CRYPTO_WORKQUEUE
211584fffc8SSebastian Siewior	help
212584fffc8SSebastian Siewior	  This is a generic software asynchronous crypto daemon that
213584fffc8SSebastian Siewior	  converts an arbitrary synchronous software crypto algorithm
214584fffc8SSebastian Siewior	  into an asynchronous algorithm that executes in a kernel thread.
215584fffc8SSebastian Siewior
2161e65b81aSTim Chenconfig CRYPTO_MCRYPTD
2171e65b81aSTim Chen	tristate "Software async multi-buffer crypto daemon"
2181e65b81aSTim Chen	select CRYPTO_BLKCIPHER
2191e65b81aSTim Chen	select CRYPTO_HASH
2201e65b81aSTim Chen	select CRYPTO_MANAGER
2211e65b81aSTim Chen	select CRYPTO_WORKQUEUE
2221e65b81aSTim Chen	help
2231e65b81aSTim Chen	  This is a generic software asynchronous crypto daemon that
2241e65b81aSTim Chen	  provides the kernel thread to assist multi-buffer crypto
2251e65b81aSTim Chen	  algorithms for submitting jobs and flushing jobs in multi-buffer
2261e65b81aSTim Chen	  crypto algorithms.  Multi-buffer crypto algorithms are executed
2271e65b81aSTim Chen	  in the context of this kernel thread and drivers can post
2280e56673bSTed Percival	  their crypto request asynchronously to be processed by this daemon.
2291e65b81aSTim Chen
230584fffc8SSebastian Siewiorconfig CRYPTO_AUTHENC
231584fffc8SSebastian Siewior	tristate "Authenc support"
232584fffc8SSebastian Siewior	select CRYPTO_AEAD
233584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
234584fffc8SSebastian Siewior	select CRYPTO_MANAGER
235584fffc8SSebastian Siewior	select CRYPTO_HASH
236e94c6a7aSHerbert Xu	select CRYPTO_NULL
237584fffc8SSebastian Siewior	help
238584fffc8SSebastian Siewior	  Authenc: Combined mode wrapper for IPsec.
239584fffc8SSebastian Siewior	  This is required for IPSec.
240584fffc8SSebastian Siewior
241584fffc8SSebastian Siewiorconfig CRYPTO_TEST
242584fffc8SSebastian Siewior	tristate "Testing module"
243584fffc8SSebastian Siewior	depends on m
244da7f033dSHerbert Xu	select CRYPTO_MANAGER
245584fffc8SSebastian Siewior	help
246584fffc8SSebastian Siewior	  Quick & dirty crypto test module.
247584fffc8SSebastian Siewior
248266d0516SHerbert Xuconfig CRYPTO_SIMD
249266d0516SHerbert Xu	tristate
250266d0516SHerbert Xu	select CRYPTO_CRYPTD
251266d0516SHerbert Xu
252596d8750SJussi Kivilinnaconfig CRYPTO_GLUE_HELPER_X86
253596d8750SJussi Kivilinna	tristate
254596d8750SJussi Kivilinna	depends on X86
255065ce327SHerbert Xu	select CRYPTO_BLKCIPHER
256596d8750SJussi Kivilinna
257735d37b5SBaolin Wangconfig CRYPTO_ENGINE
258735d37b5SBaolin Wang	tristate
259735d37b5SBaolin Wang
260584fffc8SSebastian Siewiorcomment "Authenticated Encryption with Associated Data"
261584fffc8SSebastian Siewior
262584fffc8SSebastian Siewiorconfig CRYPTO_CCM
263584fffc8SSebastian Siewior	tristate "CCM support"
264584fffc8SSebastian Siewior	select CRYPTO_CTR
265f15f05b0SArd Biesheuvel	select CRYPTO_HASH
266584fffc8SSebastian Siewior	select CRYPTO_AEAD
267584fffc8SSebastian Siewior	help
268584fffc8SSebastian Siewior	  Support for Counter with CBC MAC. Required for IPsec.
269584fffc8SSebastian Siewior
270584fffc8SSebastian Siewiorconfig CRYPTO_GCM
271584fffc8SSebastian Siewior	tristate "GCM/GMAC support"
272584fffc8SSebastian Siewior	select CRYPTO_CTR
273584fffc8SSebastian Siewior	select CRYPTO_AEAD
2749382d97aSHuang Ying	select CRYPTO_GHASH
2759489667dSJussi Kivilinna	select CRYPTO_NULL
276584fffc8SSebastian Siewior	help
277584fffc8SSebastian Siewior	  Support for Galois/Counter Mode (GCM) and Galois Message
278584fffc8SSebastian Siewior	  Authentication Code (GMAC). Required for IPSec.
279584fffc8SSebastian Siewior
28071ebc4d1SMartin Williconfig CRYPTO_CHACHA20POLY1305
28171ebc4d1SMartin Willi	tristate "ChaCha20-Poly1305 AEAD support"
28271ebc4d1SMartin Willi	select CRYPTO_CHACHA20
28371ebc4d1SMartin Willi	select CRYPTO_POLY1305
28471ebc4d1SMartin Willi	select CRYPTO_AEAD
28571ebc4d1SMartin Willi	help
28671ebc4d1SMartin Willi	  ChaCha20-Poly1305 AEAD support, RFC7539.
28771ebc4d1SMartin Willi
28871ebc4d1SMartin Willi	  Support for the AEAD wrapper using the ChaCha20 stream cipher combined
28971ebc4d1SMartin Willi	  with the Poly1305 authenticator. It is defined in RFC7539 for use in
29071ebc4d1SMartin Willi	  IETF protocols.
29171ebc4d1SMartin Willi
292*f606a88eSOndrej Mosnacekconfig CRYPTO_AEGIS128
293*f606a88eSOndrej Mosnacek	tristate "AEGIS-128 AEAD algorithm"
294*f606a88eSOndrej Mosnacek	select CRYPTO_AEAD
295*f606a88eSOndrej Mosnacek	select CRYPTO_AES  # for AES S-box tables
296*f606a88eSOndrej Mosnacek	help
297*f606a88eSOndrej Mosnacek	 Support for the AEGIS-128 dedicated AEAD algorithm.
298*f606a88eSOndrej Mosnacek
299*f606a88eSOndrej Mosnacekconfig CRYPTO_AEGIS128L
300*f606a88eSOndrej Mosnacek	tristate "AEGIS-128L AEAD algorithm"
301*f606a88eSOndrej Mosnacek	select CRYPTO_AEAD
302*f606a88eSOndrej Mosnacek	select CRYPTO_AES  # for AES S-box tables
303*f606a88eSOndrej Mosnacek	help
304*f606a88eSOndrej Mosnacek	 Support for the AEGIS-128L dedicated AEAD algorithm.
305*f606a88eSOndrej Mosnacek
306*f606a88eSOndrej Mosnacekconfig CRYPTO_AEGIS256
307*f606a88eSOndrej Mosnacek	tristate "AEGIS-256 AEAD algorithm"
308*f606a88eSOndrej Mosnacek	select CRYPTO_AEAD
309*f606a88eSOndrej Mosnacek	select CRYPTO_AES  # for AES S-box tables
310*f606a88eSOndrej Mosnacek	help
311*f606a88eSOndrej Mosnacek	 Support for the AEGIS-256 dedicated AEAD algorithm.
312*f606a88eSOndrej Mosnacek
313584fffc8SSebastian Siewiorconfig CRYPTO_SEQIV
314584fffc8SSebastian Siewior	tristate "Sequence Number IV Generator"
315584fffc8SSebastian Siewior	select CRYPTO_AEAD
316584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
317856e3f40SHerbert Xu	select CRYPTO_NULL
318401e4238SHerbert Xu	select CRYPTO_RNG_DEFAULT
319584fffc8SSebastian Siewior	help
320584fffc8SSebastian Siewior	  This IV generator generates an IV based on a sequence number by
321584fffc8SSebastian Siewior	  xoring it with a salt.  This algorithm is mainly useful for CTR
322584fffc8SSebastian Siewior
323a10f554fSHerbert Xuconfig CRYPTO_ECHAINIV
324a10f554fSHerbert Xu	tristate "Encrypted Chain IV Generator"
325a10f554fSHerbert Xu	select CRYPTO_AEAD
326a10f554fSHerbert Xu	select CRYPTO_NULL
327401e4238SHerbert Xu	select CRYPTO_RNG_DEFAULT
3283491244cSHerbert Xu	default m
329a10f554fSHerbert Xu	help
330a10f554fSHerbert Xu	  This IV generator generates an IV based on the encryption of
331a10f554fSHerbert Xu	  a sequence number xored with a salt.  This is the default
332a10f554fSHerbert Xu	  algorithm for CBC.
333a10f554fSHerbert Xu
334584fffc8SSebastian Siewiorcomment "Block modes"
335584fffc8SSebastian Siewior
336584fffc8SSebastian Siewiorconfig CRYPTO_CBC
337584fffc8SSebastian Siewior	tristate "CBC support"
338584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
339584fffc8SSebastian Siewior	select CRYPTO_MANAGER
340584fffc8SSebastian Siewior	help
341584fffc8SSebastian Siewior	  CBC: Cipher Block Chaining mode
342584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
343584fffc8SSebastian Siewior
344a7d85e06SJames Bottomleyconfig CRYPTO_CFB
345a7d85e06SJames Bottomley	tristate "CFB support"
346a7d85e06SJames Bottomley	select CRYPTO_BLKCIPHER
347a7d85e06SJames Bottomley	select CRYPTO_MANAGER
348a7d85e06SJames Bottomley	help
349a7d85e06SJames Bottomley	  CFB: Cipher FeedBack mode
350a7d85e06SJames Bottomley	  This block cipher algorithm is required for TPM2 Cryptography.
351a7d85e06SJames Bottomley
352584fffc8SSebastian Siewiorconfig CRYPTO_CTR
353584fffc8SSebastian Siewior	tristate "CTR support"
354584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
355584fffc8SSebastian Siewior	select CRYPTO_SEQIV
356584fffc8SSebastian Siewior	select CRYPTO_MANAGER
357584fffc8SSebastian Siewior	help
358584fffc8SSebastian Siewior	  CTR: Counter mode
359584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
360584fffc8SSebastian Siewior
361584fffc8SSebastian Siewiorconfig CRYPTO_CTS
362584fffc8SSebastian Siewior	tristate "CTS support"
363584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
364584fffc8SSebastian Siewior	help
365584fffc8SSebastian Siewior	  CTS: Cipher Text Stealing
366584fffc8SSebastian Siewior	  This is the Cipher Text Stealing mode as described by
367584fffc8SSebastian Siewior	  Section 8 of rfc2040 and referenced by rfc3962.
368584fffc8SSebastian Siewior	  (rfc3962 includes errata information in its Appendix A)
369584fffc8SSebastian Siewior	  This mode is required for Kerberos gss mechanism support
370584fffc8SSebastian Siewior	  for AES encryption.
371584fffc8SSebastian Siewior
372584fffc8SSebastian Siewiorconfig CRYPTO_ECB
373584fffc8SSebastian Siewior	tristate "ECB support"
374584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
375584fffc8SSebastian Siewior	select CRYPTO_MANAGER
376584fffc8SSebastian Siewior	help
377584fffc8SSebastian Siewior	  ECB: Electronic CodeBook mode
378584fffc8SSebastian Siewior	  This is the simplest block cipher algorithm.  It simply encrypts
379584fffc8SSebastian Siewior	  the input block by block.
380584fffc8SSebastian Siewior
381584fffc8SSebastian Siewiorconfig CRYPTO_LRW
3822470a2b2SJussi Kivilinna	tristate "LRW support"
383584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
384584fffc8SSebastian Siewior	select CRYPTO_MANAGER
385584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
386584fffc8SSebastian Siewior	help
387584fffc8SSebastian Siewior	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
388584fffc8SSebastian Siewior	  narrow block cipher mode for dm-crypt.  Use it with cipher
389584fffc8SSebastian Siewior	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
390584fffc8SSebastian Siewior	  The first 128, 192 or 256 bits in the key are used for AES and the
391584fffc8SSebastian Siewior	  rest is used to tie each cipher block to its logical position.
392584fffc8SSebastian Siewior
393584fffc8SSebastian Siewiorconfig CRYPTO_PCBC
394584fffc8SSebastian Siewior	tristate "PCBC support"
395584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
396584fffc8SSebastian Siewior	select CRYPTO_MANAGER
397584fffc8SSebastian Siewior	help
398584fffc8SSebastian Siewior	  PCBC: Propagating Cipher Block Chaining mode
399584fffc8SSebastian Siewior	  This block cipher algorithm is required for RxRPC.
400584fffc8SSebastian Siewior
401584fffc8SSebastian Siewiorconfig CRYPTO_XTS
4025bcf8e6dSJussi Kivilinna	tristate "XTS support"
403584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
404584fffc8SSebastian Siewior	select CRYPTO_MANAGER
40512cb3a1cSMilan Broz	select CRYPTO_ECB
406584fffc8SSebastian Siewior	help
407584fffc8SSebastian Siewior	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
408584fffc8SSebastian Siewior	  key size 256, 384 or 512 bits. This implementation currently
409584fffc8SSebastian Siewior	  can't handle a sectorsize which is not a multiple of 16 bytes.
410584fffc8SSebastian Siewior
4111c49678eSStephan Muellerconfig CRYPTO_KEYWRAP
4121c49678eSStephan Mueller	tristate "Key wrapping support"
4131c49678eSStephan Mueller	select CRYPTO_BLKCIPHER
4141c49678eSStephan Mueller	help
4151c49678eSStephan Mueller	  Support for key wrapping (NIST SP800-38F / RFC3394) without
4161c49678eSStephan Mueller	  padding.
4171c49678eSStephan Mueller
418584fffc8SSebastian Siewiorcomment "Hash modes"
419584fffc8SSebastian Siewior
42093b5e86aSJussi Kivilinnaconfig CRYPTO_CMAC
42193b5e86aSJussi Kivilinna	tristate "CMAC support"
42293b5e86aSJussi Kivilinna	select CRYPTO_HASH
42393b5e86aSJussi Kivilinna	select CRYPTO_MANAGER
42493b5e86aSJussi Kivilinna	help
42593b5e86aSJussi Kivilinna	  Cipher-based Message Authentication Code (CMAC) specified by
42693b5e86aSJussi Kivilinna	  The National Institute of Standards and Technology (NIST).
42793b5e86aSJussi Kivilinna
42893b5e86aSJussi Kivilinna	  https://tools.ietf.org/html/rfc4493
42993b5e86aSJussi Kivilinna	  http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
43093b5e86aSJussi Kivilinna
4311da177e4SLinus Torvaldsconfig CRYPTO_HMAC
4328425165dSHerbert Xu	tristate "HMAC support"
4330796ae06SHerbert Xu	select CRYPTO_HASH
43443518407SHerbert Xu	select CRYPTO_MANAGER
4351da177e4SLinus Torvalds	help
4361da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
4371da177e4SLinus Torvalds	  This is required for IPSec.
4381da177e4SLinus Torvalds
439333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
440333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
441333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
442333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
443333b0d7eSKazunori MIYAZAWA	help
444333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
445333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
446333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
447333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
448333b0d7eSKazunori MIYAZAWA
449f1939f7cSShane Wangconfig CRYPTO_VMAC
450f1939f7cSShane Wang	tristate "VMAC support"
451f1939f7cSShane Wang	select CRYPTO_HASH
452f1939f7cSShane Wang	select CRYPTO_MANAGER
453f1939f7cSShane Wang	help
454f1939f7cSShane Wang	  VMAC is a message authentication algorithm designed for
455f1939f7cSShane Wang	  very high speed on 64-bit architectures.
456f1939f7cSShane Wang
457f1939f7cSShane Wang	  See also:
458f1939f7cSShane Wang	  <http://fastcrypto.org/vmac>
459f1939f7cSShane Wang
460584fffc8SSebastian Siewiorcomment "Digest"
461584fffc8SSebastian Siewior
462584fffc8SSebastian Siewiorconfig CRYPTO_CRC32C
463584fffc8SSebastian Siewior	tristate "CRC32c CRC algorithm"
4645773a3e6SHerbert Xu	select CRYPTO_HASH
4656a0962b2SDarrick J. Wong	select CRC32
4661da177e4SLinus Torvalds	help
467584fffc8SSebastian Siewior	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
468584fffc8SSebastian Siewior	  by iSCSI for header and data digests and by others.
46969c35efcSHerbert Xu	  See Castagnoli93.  Module will be crc32c.
4701da177e4SLinus Torvalds
4718cb51ba8SAustin Zhangconfig CRYPTO_CRC32C_INTEL
4728cb51ba8SAustin Zhang	tristate "CRC32c INTEL hardware acceleration"
4738cb51ba8SAustin Zhang	depends on X86
4748cb51ba8SAustin Zhang	select CRYPTO_HASH
4758cb51ba8SAustin Zhang	help
4768cb51ba8SAustin Zhang	  In Intel processor with SSE4.2 supported, the processor will
4778cb51ba8SAustin Zhang	  support CRC32C implementation using hardware accelerated CRC32
4788cb51ba8SAustin Zhang	  instruction. This option will create 'crc32c-intel' module,
4798cb51ba8SAustin Zhang	  which will enable any routine to use the CRC32 instruction to
4808cb51ba8SAustin Zhang	  gain performance compared with software implementation.
4818cb51ba8SAustin Zhang	  Module will be crc32c-intel.
4828cb51ba8SAustin Zhang
4837cf31864SJean Delvareconfig CRYPTO_CRC32C_VPMSUM
4846dd7a82cSAnton Blanchard	tristate "CRC32c CRC algorithm (powerpc64)"
485c12abf34SMichael Ellerman	depends on PPC64 && ALTIVEC
4866dd7a82cSAnton Blanchard	select CRYPTO_HASH
4876dd7a82cSAnton Blanchard	select CRC32
4886dd7a82cSAnton Blanchard	help
4896dd7a82cSAnton Blanchard	  CRC32c algorithm implemented using vector polynomial multiply-sum
4906dd7a82cSAnton Blanchard	  (vpmsum) instructions, introduced in POWER8. Enable on POWER8
4916dd7a82cSAnton Blanchard	  and newer processors for improved performance.
4926dd7a82cSAnton Blanchard
4936dd7a82cSAnton Blanchard
494442a7c40SDavid S. Millerconfig CRYPTO_CRC32C_SPARC64
495442a7c40SDavid S. Miller	tristate "CRC32c CRC algorithm (SPARC64)"
496442a7c40SDavid S. Miller	depends on SPARC64
497442a7c40SDavid S. Miller	select CRYPTO_HASH
498442a7c40SDavid S. Miller	select CRC32
499442a7c40SDavid S. Miller	help
500442a7c40SDavid S. Miller	  CRC32c CRC algorithm implemented using sparc64 crypto instructions,
501442a7c40SDavid S. Miller	  when available.
502442a7c40SDavid S. Miller
50378c37d19SAlexander Boykoconfig CRYPTO_CRC32
50478c37d19SAlexander Boyko	tristate "CRC32 CRC algorithm"
50578c37d19SAlexander Boyko	select CRYPTO_HASH
50678c37d19SAlexander Boyko	select CRC32
50778c37d19SAlexander Boyko	help
50878c37d19SAlexander Boyko	  CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
50978c37d19SAlexander Boyko	  Shash crypto api wrappers to crc32_le function.
51078c37d19SAlexander Boyko
51178c37d19SAlexander Boykoconfig CRYPTO_CRC32_PCLMUL
51278c37d19SAlexander Boyko	tristate "CRC32 PCLMULQDQ hardware acceleration"
51378c37d19SAlexander Boyko	depends on X86
51478c37d19SAlexander Boyko	select CRYPTO_HASH
51578c37d19SAlexander Boyko	select CRC32
51678c37d19SAlexander Boyko	help
51778c37d19SAlexander Boyko	  From Intel Westmere and AMD Bulldozer processor with SSE4.2
51878c37d19SAlexander Boyko	  and PCLMULQDQ supported, the processor will support
51978c37d19SAlexander Boyko	  CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
52078c37d19SAlexander Boyko	  instruction. This option will create 'crc32-plcmul' module,
52178c37d19SAlexander Boyko	  which will enable any routine to use the CRC-32-IEEE 802.3 checksum
52278c37d19SAlexander Boyko	  and gain better performance as compared with the table implementation.
52378c37d19SAlexander Boyko
5244a5dc51eSMarcin Nowakowskiconfig CRYPTO_CRC32_MIPS
5254a5dc51eSMarcin Nowakowski	tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
5264a5dc51eSMarcin Nowakowski	depends on MIPS_CRC_SUPPORT
5274a5dc51eSMarcin Nowakowski	select CRYPTO_HASH
5284a5dc51eSMarcin Nowakowski	help
5294a5dc51eSMarcin Nowakowski	  CRC32c and CRC32 CRC algorithms implemented using mips crypto
5304a5dc51eSMarcin Nowakowski	  instructions, when available.
5314a5dc51eSMarcin Nowakowski
5324a5dc51eSMarcin Nowakowski
53368411521SHerbert Xuconfig CRYPTO_CRCT10DIF
53468411521SHerbert Xu	tristate "CRCT10DIF algorithm"
53568411521SHerbert Xu	select CRYPTO_HASH
53668411521SHerbert Xu	help
53768411521SHerbert Xu	  CRC T10 Data Integrity Field computation is being cast as
53868411521SHerbert Xu	  a crypto transform.  This allows for faster crc t10 diff
53968411521SHerbert Xu	  transforms to be used if they are available.
54068411521SHerbert Xu
54168411521SHerbert Xuconfig CRYPTO_CRCT10DIF_PCLMUL
54268411521SHerbert Xu	tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
54368411521SHerbert Xu	depends on X86 && 64BIT && CRC_T10DIF
54468411521SHerbert Xu	select CRYPTO_HASH
54568411521SHerbert Xu	help
54668411521SHerbert Xu	  For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
54768411521SHerbert Xu	  CRC T10 DIF PCLMULQDQ computation can be hardware
54868411521SHerbert Xu	  accelerated PCLMULQDQ instruction. This option will create
54968411521SHerbert Xu	  'crct10dif-plcmul' module, which is faster when computing the
55068411521SHerbert Xu	  crct10dif checksum as compared with the generic table implementation.
55168411521SHerbert Xu
552b01df1c1SDaniel Axtensconfig CRYPTO_CRCT10DIF_VPMSUM
553b01df1c1SDaniel Axtens	tristate "CRC32T10DIF powerpc64 hardware acceleration"
554b01df1c1SDaniel Axtens	depends on PPC64 && ALTIVEC && CRC_T10DIF
555b01df1c1SDaniel Axtens	select CRYPTO_HASH
556b01df1c1SDaniel Axtens	help
557b01df1c1SDaniel Axtens	  CRC10T10DIF algorithm implemented using vector polynomial
558b01df1c1SDaniel Axtens	  multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
559b01df1c1SDaniel Axtens	  POWER8 and newer processors for improved performance.
560b01df1c1SDaniel Axtens
561146c8688SDaniel Axtensconfig CRYPTO_VPMSUM_TESTER
562146c8688SDaniel Axtens	tristate "Powerpc64 vpmsum hardware acceleration tester"
563146c8688SDaniel Axtens	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
564146c8688SDaniel Axtens	help
565146c8688SDaniel Axtens	  Stress test for CRC32c and CRC-T10DIF algorithms implemented with
566146c8688SDaniel Axtens	  POWER8 vpmsum instructions.
567146c8688SDaniel Axtens	  Unless you are testing these algorithms, you don't need this.
568146c8688SDaniel Axtens
5692cdc6899SHuang Yingconfig CRYPTO_GHASH
5702cdc6899SHuang Ying	tristate "GHASH digest algorithm"
5712cdc6899SHuang Ying	select CRYPTO_GF128MUL
572578c60fbSArnd Bergmann	select CRYPTO_HASH
5732cdc6899SHuang Ying	help
5742cdc6899SHuang Ying	  GHASH is message digest algorithm for GCM (Galois/Counter Mode).
5752cdc6899SHuang Ying
576f979e014SMartin Williconfig CRYPTO_POLY1305
577f979e014SMartin Willi	tristate "Poly1305 authenticator algorithm"
578578c60fbSArnd Bergmann	select CRYPTO_HASH
579f979e014SMartin Willi	help
580f979e014SMartin Willi	  Poly1305 authenticator algorithm, RFC7539.
581f979e014SMartin Willi
582f979e014SMartin Willi	  Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
583f979e014SMartin Willi	  It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
584f979e014SMartin Willi	  in IETF protocols. This is the portable C implementation of Poly1305.
585f979e014SMartin Willi
586c70f4abeSMartin Williconfig CRYPTO_POLY1305_X86_64
587b1ccc8f4SMartin Willi	tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
588c70f4abeSMartin Willi	depends on X86 && 64BIT
589c70f4abeSMartin Willi	select CRYPTO_POLY1305
590c70f4abeSMartin Willi	help
591c70f4abeSMartin Willi	  Poly1305 authenticator algorithm, RFC7539.
592c70f4abeSMartin Willi
593c70f4abeSMartin Willi	  Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
594c70f4abeSMartin Willi	  It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
595c70f4abeSMartin Willi	  in IETF protocols. This is the x86_64 assembler implementation using SIMD
596c70f4abeSMartin Willi	  instructions.
597c70f4abeSMartin Willi
5981da177e4SLinus Torvaldsconfig CRYPTO_MD4
5991da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
600808a1763SAdrian-Ken Rueegsegger	select CRYPTO_HASH
6011da177e4SLinus Torvalds	help
6021da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
6031da177e4SLinus Torvalds
6041da177e4SLinus Torvaldsconfig CRYPTO_MD5
6051da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
60614b75ba7SAdrian-Ken Rueegsegger	select CRYPTO_HASH
6071da177e4SLinus Torvalds	help
6081da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
6091da177e4SLinus Torvalds
610d69e75deSAaro Koskinenconfig CRYPTO_MD5_OCTEON
611d69e75deSAaro Koskinen	tristate "MD5 digest algorithm (OCTEON)"
612d69e75deSAaro Koskinen	depends on CPU_CAVIUM_OCTEON
613d69e75deSAaro Koskinen	select CRYPTO_MD5
614d69e75deSAaro Koskinen	select CRYPTO_HASH
615d69e75deSAaro Koskinen	help
616d69e75deSAaro Koskinen	  MD5 message digest algorithm (RFC1321) implemented
617d69e75deSAaro Koskinen	  using OCTEON crypto instructions, when available.
618d69e75deSAaro Koskinen
619e8e59953SMarkus Stockhausenconfig CRYPTO_MD5_PPC
620e8e59953SMarkus Stockhausen	tristate "MD5 digest algorithm (PPC)"
621e8e59953SMarkus Stockhausen	depends on PPC
622e8e59953SMarkus Stockhausen	select CRYPTO_HASH
623e8e59953SMarkus Stockhausen	help
624e8e59953SMarkus Stockhausen	  MD5 message digest algorithm (RFC1321) implemented
625e8e59953SMarkus Stockhausen	  in PPC assembler.
626e8e59953SMarkus Stockhausen
627fa4dfedcSDavid S. Millerconfig CRYPTO_MD5_SPARC64
628fa4dfedcSDavid S. Miller	tristate "MD5 digest algorithm (SPARC64)"
629fa4dfedcSDavid S. Miller	depends on SPARC64
630fa4dfedcSDavid S. Miller	select CRYPTO_MD5
631fa4dfedcSDavid S. Miller	select CRYPTO_HASH
632fa4dfedcSDavid S. Miller	help
633fa4dfedcSDavid S. Miller	  MD5 message digest algorithm (RFC1321) implemented
634fa4dfedcSDavid S. Miller	  using sparc64 crypto instructions, when available.
635fa4dfedcSDavid S. Miller
636584fffc8SSebastian Siewiorconfig CRYPTO_MICHAEL_MIC
637584fffc8SSebastian Siewior	tristate "Michael MIC keyed digest algorithm"
63819e2bf14SAdrian-Ken Rueegsegger	select CRYPTO_HASH
639584fffc8SSebastian Siewior	help
640584fffc8SSebastian Siewior	  Michael MIC is used for message integrity protection in TKIP
641584fffc8SSebastian Siewior	  (IEEE 802.11i). This algorithm is required for TKIP, but it
642584fffc8SSebastian Siewior	  should not be used for other purposes because of the weakness
643584fffc8SSebastian Siewior	  of the algorithm.
644584fffc8SSebastian Siewior
64582798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD128
64682798f90SAdrian-Ken Rueegsegger	tristate "RIPEMD-128 digest algorithm"
6477c4468bcSHerbert Xu	select CRYPTO_HASH
64882798f90SAdrian-Ken Rueegsegger	help
64982798f90SAdrian-Ken Rueegsegger	  RIPEMD-128 (ISO/IEC 10118-3:2004).
65082798f90SAdrian-Ken Rueegsegger
65182798f90SAdrian-Ken Rueegsegger	  RIPEMD-128 is a 128-bit cryptographic hash function. It should only
65235ed4b35SMichael Witten	  be used as a secure replacement for RIPEMD. For other use cases,
65382798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 should be used.
65482798f90SAdrian-Ken Rueegsegger
65582798f90SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6566d8de74cSJustin P. Mattock	  See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
65782798f90SAdrian-Ken Rueegsegger
65882798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD160
65982798f90SAdrian-Ken Rueegsegger	tristate "RIPEMD-160 digest algorithm"
660e5835fbaSHerbert Xu	select CRYPTO_HASH
66182798f90SAdrian-Ken Rueegsegger	help
66282798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 (ISO/IEC 10118-3:2004).
66382798f90SAdrian-Ken Rueegsegger
66482798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
66582798f90SAdrian-Ken Rueegsegger	  to be used as a secure replacement for the 128-bit hash functions
666b6d44341SAdrian Bunk	  MD4, MD5 and it's predecessor RIPEMD
667b6d44341SAdrian Bunk	  (not to be confused with RIPEMD-128).
66882798f90SAdrian-Ken Rueegsegger
669b6d44341SAdrian Bunk	  It's speed is comparable to SHA1 and there are no known attacks
670b6d44341SAdrian Bunk	  against RIPEMD-160.
671534fe2c1SAdrian-Ken Rueegsegger
672534fe2c1SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6736d8de74cSJustin P. Mattock	  See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
674534fe2c1SAdrian-Ken Rueegsegger
675534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD256
676534fe2c1SAdrian-Ken Rueegsegger	tristate "RIPEMD-256 digest algorithm"
677d8a5e2e9SHerbert Xu	select CRYPTO_HASH
678534fe2c1SAdrian-Ken Rueegsegger	help
679b6d44341SAdrian Bunk	  RIPEMD-256 is an optional extension of RIPEMD-128 with a
680b6d44341SAdrian Bunk	  256 bit hash. It is intended for applications that require
681b6d44341SAdrian Bunk	  longer hash-results, without needing a larger security level
682b6d44341SAdrian Bunk	  (than RIPEMD-128).
683534fe2c1SAdrian-Ken Rueegsegger
684534fe2c1SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6856d8de74cSJustin P. Mattock	  See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
686534fe2c1SAdrian-Ken Rueegsegger
687534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD320
688534fe2c1SAdrian-Ken Rueegsegger	tristate "RIPEMD-320 digest algorithm"
6893b8efb4cSHerbert Xu	select CRYPTO_HASH
690534fe2c1SAdrian-Ken Rueegsegger	help
691b6d44341SAdrian Bunk	  RIPEMD-320 is an optional extension of RIPEMD-160 with a
692b6d44341SAdrian Bunk	  320 bit hash. It is intended for applications that require
693b6d44341SAdrian Bunk	  longer hash-results, without needing a larger security level
694b6d44341SAdrian Bunk	  (than RIPEMD-160).
695534fe2c1SAdrian-Ken Rueegsegger
69682798f90SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
6976d8de74cSJustin P. Mattock	  See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
69882798f90SAdrian-Ken Rueegsegger
6991da177e4SLinus Torvaldsconfig CRYPTO_SHA1
7001da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
70154ccb367SAdrian-Ken Rueegsegger	select CRYPTO_HASH
7021da177e4SLinus Torvalds	help
7031da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
7041da177e4SLinus Torvalds
70566be8951SMathias Krauseconfig CRYPTO_SHA1_SSSE3
706e38b6b7fStim	tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
70766be8951SMathias Krause	depends on X86 && 64BIT
70866be8951SMathias Krause	select CRYPTO_SHA1
70966be8951SMathias Krause	select CRYPTO_HASH
71066be8951SMathias Krause	help
71166be8951SMathias Krause	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
71266be8951SMathias Krause	  using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
713e38b6b7fStim	  Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
714e38b6b7fStim	  when available.
71566be8951SMathias Krause
7168275d1aaSTim Chenconfig CRYPTO_SHA256_SSSE3
717e38b6b7fStim	tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
7188275d1aaSTim Chen	depends on X86 && 64BIT
7198275d1aaSTim Chen	select CRYPTO_SHA256
7208275d1aaSTim Chen	select CRYPTO_HASH
7218275d1aaSTim Chen	help
7228275d1aaSTim Chen	  SHA-256 secure hash standard (DFIPS 180-2) implemented
7238275d1aaSTim Chen	  using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
7248275d1aaSTim Chen	  Extensions version 1 (AVX1), or Advanced Vector Extensions
725e38b6b7fStim	  version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
726e38b6b7fStim	  Instructions) when available.
7278275d1aaSTim Chen
72887de4579STim Chenconfig CRYPTO_SHA512_SSSE3
72987de4579STim Chen	tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
73087de4579STim Chen	depends on X86 && 64BIT
73187de4579STim Chen	select CRYPTO_SHA512
73287de4579STim Chen	select CRYPTO_HASH
73387de4579STim Chen	help
73487de4579STim Chen	  SHA-512 secure hash standard (DFIPS 180-2) implemented
73587de4579STim Chen	  using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
73687de4579STim Chen	  Extensions version 1 (AVX1), or Advanced Vector Extensions
73787de4579STim Chen	  version 2 (AVX2) instructions, when available.
73887de4579STim Chen
739efdb6f6eSAaro Koskinenconfig CRYPTO_SHA1_OCTEON
740efdb6f6eSAaro Koskinen	tristate "SHA1 digest algorithm (OCTEON)"
741efdb6f6eSAaro Koskinen	depends on CPU_CAVIUM_OCTEON
742efdb6f6eSAaro Koskinen	select CRYPTO_SHA1
743efdb6f6eSAaro Koskinen	select CRYPTO_HASH
744efdb6f6eSAaro Koskinen	help
745efdb6f6eSAaro Koskinen	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
746efdb6f6eSAaro Koskinen	  using OCTEON crypto instructions, when available.
747efdb6f6eSAaro Koskinen
7484ff28d4cSDavid S. Millerconfig CRYPTO_SHA1_SPARC64
7494ff28d4cSDavid S. Miller	tristate "SHA1 digest algorithm (SPARC64)"
7504ff28d4cSDavid S. Miller	depends on SPARC64
7514ff28d4cSDavid S. Miller	select CRYPTO_SHA1
7524ff28d4cSDavid S. Miller	select CRYPTO_HASH
7534ff28d4cSDavid S. Miller	help
7544ff28d4cSDavid S. Miller	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
7554ff28d4cSDavid S. Miller	  using sparc64 crypto instructions, when available.
7564ff28d4cSDavid S. Miller
757323a6bf1SMichael Ellermanconfig CRYPTO_SHA1_PPC
758323a6bf1SMichael Ellerman	tristate "SHA1 digest algorithm (powerpc)"
759323a6bf1SMichael Ellerman	depends on PPC
760323a6bf1SMichael Ellerman	help
761323a6bf1SMichael Ellerman	  This is the powerpc hardware accelerated implementation of the
762323a6bf1SMichael Ellerman	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
763323a6bf1SMichael Ellerman
764d9850fc5SMarkus Stockhausenconfig CRYPTO_SHA1_PPC_SPE
765d9850fc5SMarkus Stockhausen	tristate "SHA1 digest algorithm (PPC SPE)"
766d9850fc5SMarkus Stockhausen	depends on PPC && SPE
767d9850fc5SMarkus Stockhausen	help
768d9850fc5SMarkus Stockhausen	  SHA-1 secure hash standard (DFIPS 180-4) implemented
769d9850fc5SMarkus Stockhausen	  using powerpc SPE SIMD instruction set.
770d9850fc5SMarkus Stockhausen
7711e65b81aSTim Chenconfig CRYPTO_SHA1_MB
7721e65b81aSTim Chen	tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
7731e65b81aSTim Chen	depends on X86 && 64BIT
7741e65b81aSTim Chen	select CRYPTO_SHA1
7751e65b81aSTim Chen	select CRYPTO_HASH
7761e65b81aSTim Chen	select CRYPTO_MCRYPTD
7771e65b81aSTim Chen	help
7781e65b81aSTim Chen	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
7791e65b81aSTim Chen	  using multi-buffer technique.  This algorithm computes on
7801e65b81aSTim Chen	  multiple data lanes concurrently with SIMD instructions for
7811e65b81aSTim Chen	  better throughput.  It should not be enabled by default but
7821e65b81aSTim Chen	  used when there is significant amount of work to keep the keep
7831e65b81aSTim Chen	  the data lanes filled to get performance benefit.  If the data
7841e65b81aSTim Chen	  lanes remain unfilled, a flush operation will be initiated to
7851e65b81aSTim Chen	  process the crypto jobs, adding a slight latency.
7861e65b81aSTim Chen
7879be7e244SMegha Deyconfig CRYPTO_SHA256_MB
7889be7e244SMegha Dey	tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
7899be7e244SMegha Dey	depends on X86 && 64BIT
7909be7e244SMegha Dey	select CRYPTO_SHA256
7919be7e244SMegha Dey	select CRYPTO_HASH
7929be7e244SMegha Dey	select CRYPTO_MCRYPTD
7939be7e244SMegha Dey	help
7949be7e244SMegha Dey	  SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
7959be7e244SMegha Dey	  using multi-buffer technique.  This algorithm computes on
7969be7e244SMegha Dey	  multiple data lanes concurrently with SIMD instructions for
7979be7e244SMegha Dey	  better throughput.  It should not be enabled by default but
7989be7e244SMegha Dey	  used when there is significant amount of work to keep the keep
7999be7e244SMegha Dey	  the data lanes filled to get performance benefit.  If the data
8009be7e244SMegha Dey	  lanes remain unfilled, a flush operation will be initiated to
8019be7e244SMegha Dey	  process the crypto jobs, adding a slight latency.
8029be7e244SMegha Dey
803026bb8aaSMegha Deyconfig CRYPTO_SHA512_MB
804026bb8aaSMegha Dey        tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
805026bb8aaSMegha Dey        depends on X86 && 64BIT
806026bb8aaSMegha Dey        select CRYPTO_SHA512
807026bb8aaSMegha Dey        select CRYPTO_HASH
808026bb8aaSMegha Dey        select CRYPTO_MCRYPTD
809026bb8aaSMegha Dey        help
810026bb8aaSMegha Dey          SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
811026bb8aaSMegha Dey          using multi-buffer technique.  This algorithm computes on
812026bb8aaSMegha Dey          multiple data lanes concurrently with SIMD instructions for
813026bb8aaSMegha Dey          better throughput.  It should not be enabled by default but
814026bb8aaSMegha Dey          used when there is significant amount of work to keep the keep
815026bb8aaSMegha Dey          the data lanes filled to get performance benefit.  If the data
816026bb8aaSMegha Dey          lanes remain unfilled, a flush operation will be initiated to
817026bb8aaSMegha Dey          process the crypto jobs, adding a slight latency.
818026bb8aaSMegha Dey
8191da177e4SLinus Torvaldsconfig CRYPTO_SHA256
820cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
82150e109b5SAdrian-Ken Rueegsegger	select CRYPTO_HASH
8221da177e4SLinus Torvalds	help
8231da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
8241da177e4SLinus Torvalds
8251da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
8261da177e4SLinus Torvalds	  security against collision attacks.
8271da177e4SLinus Torvalds
828cd12fb90SJonathan Lynch	  This code also includes SHA-224, a 224 bit hash with 112 bits
829cd12fb90SJonathan Lynch	  of security against collision attacks.
830cd12fb90SJonathan Lynch
8312ecc1e95SMarkus Stockhausenconfig CRYPTO_SHA256_PPC_SPE
8322ecc1e95SMarkus Stockhausen	tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
8332ecc1e95SMarkus Stockhausen	depends on PPC && SPE
8342ecc1e95SMarkus Stockhausen	select CRYPTO_SHA256
8352ecc1e95SMarkus Stockhausen	select CRYPTO_HASH
8362ecc1e95SMarkus Stockhausen	help
8372ecc1e95SMarkus Stockhausen	  SHA224 and SHA256 secure hash standard (DFIPS 180-2)
8382ecc1e95SMarkus Stockhausen	  implemented using powerpc SPE SIMD instruction set.
8392ecc1e95SMarkus Stockhausen
840efdb6f6eSAaro Koskinenconfig CRYPTO_SHA256_OCTEON
841efdb6f6eSAaro Koskinen	tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
842efdb6f6eSAaro Koskinen	depends on CPU_CAVIUM_OCTEON
843efdb6f6eSAaro Koskinen	select CRYPTO_SHA256
844efdb6f6eSAaro Koskinen	select CRYPTO_HASH
845efdb6f6eSAaro Koskinen	help
846efdb6f6eSAaro Koskinen	  SHA-256 secure hash standard (DFIPS 180-2) implemented
847efdb6f6eSAaro Koskinen	  using OCTEON crypto instructions, when available.
848efdb6f6eSAaro Koskinen
84986c93b24SDavid S. Millerconfig CRYPTO_SHA256_SPARC64
85086c93b24SDavid S. Miller	tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
85186c93b24SDavid S. Miller	depends on SPARC64
85286c93b24SDavid S. Miller	select CRYPTO_SHA256
85386c93b24SDavid S. Miller	select CRYPTO_HASH
85486c93b24SDavid S. Miller	help
85586c93b24SDavid S. Miller	  SHA-256 secure hash standard (DFIPS 180-2) implemented
85686c93b24SDavid S. Miller	  using sparc64 crypto instructions, when available.
85786c93b24SDavid S. Miller
8581da177e4SLinus Torvaldsconfig CRYPTO_SHA512
8591da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
860bd9d20dbSAdrian-Ken Rueegsegger	select CRYPTO_HASH
8611da177e4SLinus Torvalds	help
8621da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
8631da177e4SLinus Torvalds
8641da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
8651da177e4SLinus Torvalds	  security against collision attacks.
8661da177e4SLinus Torvalds
8671da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
8681da177e4SLinus Torvalds	  of security against collision attacks.
8691da177e4SLinus Torvalds
870efdb6f6eSAaro Koskinenconfig CRYPTO_SHA512_OCTEON
871efdb6f6eSAaro Koskinen	tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
872efdb6f6eSAaro Koskinen	depends on CPU_CAVIUM_OCTEON
873efdb6f6eSAaro Koskinen	select CRYPTO_SHA512
874efdb6f6eSAaro Koskinen	select CRYPTO_HASH
875efdb6f6eSAaro Koskinen	help
876efdb6f6eSAaro Koskinen	  SHA-512 secure hash standard (DFIPS 180-2) implemented
877efdb6f6eSAaro Koskinen	  using OCTEON crypto instructions, when available.
878efdb6f6eSAaro Koskinen
879775e0c69SDavid S. Millerconfig CRYPTO_SHA512_SPARC64
880775e0c69SDavid S. Miller	tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
881775e0c69SDavid S. Miller	depends on SPARC64
882775e0c69SDavid S. Miller	select CRYPTO_SHA512
883775e0c69SDavid S. Miller	select CRYPTO_HASH
884775e0c69SDavid S. Miller	help
885775e0c69SDavid S. Miller	  SHA-512 secure hash standard (DFIPS 180-2) implemented
886775e0c69SDavid S. Miller	  using sparc64 crypto instructions, when available.
887775e0c69SDavid S. Miller
88853964b9eSJeff Garzikconfig CRYPTO_SHA3
88953964b9eSJeff Garzik	tristate "SHA3 digest algorithm"
89053964b9eSJeff Garzik	select CRYPTO_HASH
89153964b9eSJeff Garzik	help
89253964b9eSJeff Garzik	  SHA-3 secure hash standard (DFIPS 202). It's based on
89353964b9eSJeff Garzik	  cryptographic sponge function family called Keccak.
89453964b9eSJeff Garzik
89553964b9eSJeff Garzik	  References:
89653964b9eSJeff Garzik	  http://keccak.noekeon.org/
89753964b9eSJeff Garzik
8984f0fc160SGilad Ben-Yossefconfig CRYPTO_SM3
8994f0fc160SGilad Ben-Yossef	tristate "SM3 digest algorithm"
9004f0fc160SGilad Ben-Yossef	select CRYPTO_HASH
9014f0fc160SGilad Ben-Yossef	help
9024f0fc160SGilad Ben-Yossef	  SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
9034f0fc160SGilad Ben-Yossef	  It is part of the Chinese Commercial Cryptography suite.
9044f0fc160SGilad Ben-Yossef
9054f0fc160SGilad Ben-Yossef	  References:
9064f0fc160SGilad Ben-Yossef	  http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
9074f0fc160SGilad Ben-Yossef	  https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
9084f0fc160SGilad Ben-Yossef
9091da177e4SLinus Torvaldsconfig CRYPTO_TGR192
9101da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
911f63fbd3dSAdrian-Ken Rueegsegger	select CRYPTO_HASH
9121da177e4SLinus Torvalds	help
9131da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
9141da177e4SLinus Torvalds
9151da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
9161da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
9171da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
9181da177e4SLinus Torvalds
9191da177e4SLinus Torvalds	  See also:
9201da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
9211da177e4SLinus Torvalds
922584fffc8SSebastian Siewiorconfig CRYPTO_WP512
923584fffc8SSebastian Siewior	tristate "Whirlpool digest algorithms"
9244946510bSAdrian-Ken Rueegsegger	select CRYPTO_HASH
9251da177e4SLinus Torvalds	help
926584fffc8SSebastian Siewior	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
9271da177e4SLinus Torvalds
928584fffc8SSebastian Siewior	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
929584fffc8SSebastian Siewior	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
9301da177e4SLinus Torvalds
9311da177e4SLinus Torvalds	  See also:
9326d8de74cSJustin P. Mattock	  <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
9331da177e4SLinus Torvalds
9340e1227d3SHuang Yingconfig CRYPTO_GHASH_CLMUL_NI_INTEL
9350e1227d3SHuang Ying	tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
9368af00860SRichard Weinberger	depends on X86 && 64BIT
9370e1227d3SHuang Ying	select CRYPTO_CRYPTD
9380e1227d3SHuang Ying	help
9390e1227d3SHuang Ying	  GHASH is message digest algorithm for GCM (Galois/Counter Mode).
9400e1227d3SHuang Ying	  The implementation is accelerated by CLMUL-NI of Intel.
9410e1227d3SHuang Ying
942584fffc8SSebastian Siewiorcomment "Ciphers"
9431da177e4SLinus Torvalds
9441da177e4SLinus Torvaldsconfig CRYPTO_AES
9451da177e4SLinus Torvalds	tristate "AES cipher algorithms"
946cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
9471da177e4SLinus Torvalds	help
9481da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
9491da177e4SLinus Torvalds	  algorithm.
9501da177e4SLinus Torvalds
9511da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
9521da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
9531da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
9541da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
9551da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
9561da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
9571da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
9581da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
9591da177e4SLinus Torvalds
9601da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
9611da177e4SLinus Torvalds
9621da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
9631da177e4SLinus Torvalds
964b5e0b032SArd Biesheuvelconfig CRYPTO_AES_TI
965b5e0b032SArd Biesheuvel	tristate "Fixed time AES cipher"
966b5e0b032SArd Biesheuvel	select CRYPTO_ALGAPI
967b5e0b032SArd Biesheuvel	help
968b5e0b032SArd Biesheuvel	  This is a generic implementation of AES that attempts to eliminate
969b5e0b032SArd Biesheuvel	  data dependent latencies as much as possible without affecting
970b5e0b032SArd Biesheuvel	  performance too much. It is intended for use by the generic CCM
971b5e0b032SArd Biesheuvel	  and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
972b5e0b032SArd Biesheuvel	  solely on encryption (although decryption is supported as well, but
973b5e0b032SArd Biesheuvel	  with a more dramatic performance hit)
974b5e0b032SArd Biesheuvel
975b5e0b032SArd Biesheuvel	  Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
976b5e0b032SArd Biesheuvel	  8 for decryption), this implementation only uses just two S-boxes of
977b5e0b032SArd Biesheuvel	  256 bytes each, and attempts to eliminate data dependent latencies by
978b5e0b032SArd Biesheuvel	  prefetching the entire table into the cache at the start of each
979b5e0b032SArd Biesheuvel	  block.
980b5e0b032SArd Biesheuvel
9811da177e4SLinus Torvaldsconfig CRYPTO_AES_586
9821da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
983cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
984cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
9855157dea8SSebastian Siewior	select CRYPTO_AES
9861da177e4SLinus Torvalds	help
9871da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
9881da177e4SLinus Torvalds	  algorithm.
9891da177e4SLinus Torvalds
9901da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
9911da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
9921da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
9931da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
9941da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
9951da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
9961da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
9971da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
9981da177e4SLinus Torvalds
9991da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
10001da177e4SLinus Torvalds
10011da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
10021da177e4SLinus Torvalds
1003a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
1004a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
1005cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
1006cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
100781190b32SSebastian Siewior	select CRYPTO_AES
1008a2a892a2SAndreas Steinmetz	help
1009a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
1010a2a892a2SAndreas Steinmetz	  algorithm.
1011a2a892a2SAndreas Steinmetz
1012a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
1013a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
1014a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
1015a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
1016a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
1017a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
1018a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
1019a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
1020a2a892a2SAndreas Steinmetz
1021a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
1022a2a892a2SAndreas Steinmetz
1023a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
1024a2a892a2SAndreas Steinmetz
102554b6a1bdSHuang Yingconfig CRYPTO_AES_NI_INTEL
102654b6a1bdSHuang Ying	tristate "AES cipher algorithms (AES-NI)"
10278af00860SRichard Weinberger	depends on X86
102885671860SHerbert Xu	select CRYPTO_AEAD
10290d258efbSMathias Krause	select CRYPTO_AES_X86_64 if 64BIT
10300d258efbSMathias Krause	select CRYPTO_AES_586 if !64BIT
103154b6a1bdSHuang Ying	select CRYPTO_ALGAPI
103285671860SHerbert Xu	select CRYPTO_BLKCIPHER
10337643a11aSJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86 if 64BIT
103485671860SHerbert Xu	select CRYPTO_SIMD
103554b6a1bdSHuang Ying	help
103654b6a1bdSHuang Ying	  Use Intel AES-NI instructions for AES algorithm.
103754b6a1bdSHuang Ying
103854b6a1bdSHuang Ying	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
103954b6a1bdSHuang Ying	  algorithm.
104054b6a1bdSHuang Ying
104154b6a1bdSHuang Ying	  Rijndael appears to be consistently a very good performer in
104254b6a1bdSHuang Ying	  both hardware and software across a wide range of computing
104354b6a1bdSHuang Ying	  environments regardless of its use in feedback or non-feedback
104454b6a1bdSHuang Ying	  modes. Its key setup time is excellent, and its key agility is
104554b6a1bdSHuang Ying	  good. Rijndael's very low memory requirements make it very well
104654b6a1bdSHuang Ying	  suited for restricted-space environments, in which it also
104754b6a1bdSHuang Ying	  demonstrates excellent performance. Rijndael's operations are
104854b6a1bdSHuang Ying	  among the easiest to defend against power and timing attacks.
104954b6a1bdSHuang Ying
105054b6a1bdSHuang Ying	  The AES specifies three key sizes: 128, 192 and 256 bits
105154b6a1bdSHuang Ying
105254b6a1bdSHuang Ying	  See <http://csrc.nist.gov/encryption/aes/> for more information.
105354b6a1bdSHuang Ying
10540d258efbSMathias Krause	  In addition to AES cipher algorithm support, the acceleration
10550d258efbSMathias Krause	  for some popular block cipher mode is supported too, including
10560d258efbSMathias Krause	  ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
10570d258efbSMathias Krause	  acceleration for CTR.
10582cf4ac8bSHuang Ying
10599bf4852dSDavid S. Millerconfig CRYPTO_AES_SPARC64
10609bf4852dSDavid S. Miller	tristate "AES cipher algorithms (SPARC64)"
10619bf4852dSDavid S. Miller	depends on SPARC64
10629bf4852dSDavid S. Miller	select CRYPTO_CRYPTD
10639bf4852dSDavid S. Miller	select CRYPTO_ALGAPI
10649bf4852dSDavid S. Miller	help
10659bf4852dSDavid S. Miller	  Use SPARC64 crypto opcodes for AES algorithm.
10669bf4852dSDavid S. Miller
10679bf4852dSDavid S. Miller	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
10689bf4852dSDavid S. Miller	  algorithm.
10699bf4852dSDavid S. Miller
10709bf4852dSDavid S. Miller	  Rijndael appears to be consistently a very good performer in
10719bf4852dSDavid S. Miller	  both hardware and software across a wide range of computing
10729bf4852dSDavid S. Miller	  environments regardless of its use in feedback or non-feedback
10739bf4852dSDavid S. Miller	  modes. Its key setup time is excellent, and its key agility is
10749bf4852dSDavid S. Miller	  good. Rijndael's very low memory requirements make it very well
10759bf4852dSDavid S. Miller	  suited for restricted-space environments, in which it also
10769bf4852dSDavid S. Miller	  demonstrates excellent performance. Rijndael's operations are
10779bf4852dSDavid S. Miller	  among the easiest to defend against power and timing attacks.
10789bf4852dSDavid S. Miller
10799bf4852dSDavid S. Miller	  The AES specifies three key sizes: 128, 192 and 256 bits
10809bf4852dSDavid S. Miller
10819bf4852dSDavid S. Miller	  See <http://csrc.nist.gov/encryption/aes/> for more information.
10829bf4852dSDavid S. Miller
10839bf4852dSDavid S. Miller	  In addition to AES cipher algorithm support, the acceleration
10849bf4852dSDavid S. Miller	  for some popular block cipher mode is supported too, including
10859bf4852dSDavid S. Miller	  ECB and CBC.
10869bf4852dSDavid S. Miller
1087504c6143SMarkus Stockhausenconfig CRYPTO_AES_PPC_SPE
1088504c6143SMarkus Stockhausen	tristate "AES cipher algorithms (PPC SPE)"
1089504c6143SMarkus Stockhausen	depends on PPC && SPE
1090504c6143SMarkus Stockhausen	help
1091504c6143SMarkus Stockhausen	  AES cipher algorithms (FIPS-197). Additionally the acceleration
1092504c6143SMarkus Stockhausen	  for popular block cipher modes ECB, CBC, CTR and XTS is supported.
1093504c6143SMarkus Stockhausen	  This module should only be used for low power (router) devices
1094504c6143SMarkus Stockhausen	  without hardware AES acceleration (e.g. caam crypto). It reduces the
1095504c6143SMarkus Stockhausen	  size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1096504c6143SMarkus Stockhausen	  timining attacks. Nevertheless it might be not as secure as other
1097504c6143SMarkus Stockhausen	  architecture specific assembler implementations that work on 1KB
1098504c6143SMarkus Stockhausen	  tables or 256 bytes S-boxes.
1099504c6143SMarkus Stockhausen
11001da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
11011da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
1102cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
11031da177e4SLinus Torvalds	help
11041da177e4SLinus Torvalds	  Anubis cipher algorithm.
11051da177e4SLinus Torvalds
11061da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
11071da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
11081da177e4SLinus Torvalds	  in the NESSIE competition.
11091da177e4SLinus Torvalds
11101da177e4SLinus Torvalds	  See also:
11116d8de74cSJustin P. Mattock	  <https://www.cosic.esat.kuleuven.be/nessie/reports/>
11126d8de74cSJustin P. Mattock	  <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
11131da177e4SLinus Torvalds
1114584fffc8SSebastian Siewiorconfig CRYPTO_ARC4
1115584fffc8SSebastian Siewior	tristate "ARC4 cipher algorithm"
1116b9b0f080SSebastian Andrzej Siewior	select CRYPTO_BLKCIPHER
1117e2ee95b8SHye-Shik Chang	help
1118584fffc8SSebastian Siewior	  ARC4 cipher algorithm.
1119e2ee95b8SHye-Shik Chang
1120584fffc8SSebastian Siewior	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
1121584fffc8SSebastian Siewior	  bits in length.  This algorithm is required for driver-based
1122584fffc8SSebastian Siewior	  WEP, but it should not be for other purposes because of the
1123584fffc8SSebastian Siewior	  weakness of the algorithm.
1124584fffc8SSebastian Siewior
1125584fffc8SSebastian Siewiorconfig CRYPTO_BLOWFISH
1126584fffc8SSebastian Siewior	tristate "Blowfish cipher algorithm"
1127584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
112852ba867cSJussi Kivilinna	select CRYPTO_BLOWFISH_COMMON
1129584fffc8SSebastian Siewior	help
1130584fffc8SSebastian Siewior	  Blowfish cipher algorithm, by Bruce Schneier.
1131584fffc8SSebastian Siewior
1132584fffc8SSebastian Siewior	  This is a variable key length cipher which can use keys from 32
1133584fffc8SSebastian Siewior	  bits to 448 bits in length.  It's fast, simple and specifically
1134584fffc8SSebastian Siewior	  designed for use on "large microprocessors".
1135e2ee95b8SHye-Shik Chang
1136e2ee95b8SHye-Shik Chang	  See also:
1137584fffc8SSebastian Siewior	  <http://www.schneier.com/blowfish.html>
1138584fffc8SSebastian Siewior
113952ba867cSJussi Kivilinnaconfig CRYPTO_BLOWFISH_COMMON
114052ba867cSJussi Kivilinna	tristate
114152ba867cSJussi Kivilinna	help
114252ba867cSJussi Kivilinna	  Common parts of the Blowfish cipher algorithm shared by the
114352ba867cSJussi Kivilinna	  generic c and the assembler implementations.
114452ba867cSJussi Kivilinna
114552ba867cSJussi Kivilinna	  See also:
114652ba867cSJussi Kivilinna	  <http://www.schneier.com/blowfish.html>
114752ba867cSJussi Kivilinna
114864b94ceaSJussi Kivilinnaconfig CRYPTO_BLOWFISH_X86_64
114964b94ceaSJussi Kivilinna	tristate "Blowfish cipher algorithm (x86_64)"
1150f21a7c19SAl Viro	depends on X86 && 64BIT
1151c1679171SEric Biggers	select CRYPTO_BLKCIPHER
115264b94ceaSJussi Kivilinna	select CRYPTO_BLOWFISH_COMMON
115364b94ceaSJussi Kivilinna	help
115464b94ceaSJussi Kivilinna	  Blowfish cipher algorithm (x86_64), by Bruce Schneier.
115564b94ceaSJussi Kivilinna
115664b94ceaSJussi Kivilinna	  This is a variable key length cipher which can use keys from 32
115764b94ceaSJussi Kivilinna	  bits to 448 bits in length.  It's fast, simple and specifically
115864b94ceaSJussi Kivilinna	  designed for use on "large microprocessors".
115964b94ceaSJussi Kivilinna
116064b94ceaSJussi Kivilinna	  See also:
116164b94ceaSJussi Kivilinna	  <http://www.schneier.com/blowfish.html>
116264b94ceaSJussi Kivilinna
1163584fffc8SSebastian Siewiorconfig CRYPTO_CAMELLIA
1164584fffc8SSebastian Siewior	tristate "Camellia cipher algorithms"
1165584fffc8SSebastian Siewior	depends on CRYPTO
1166584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1167584fffc8SSebastian Siewior	help
1168584fffc8SSebastian Siewior	  Camellia cipher algorithms module.
1169584fffc8SSebastian Siewior
1170584fffc8SSebastian Siewior	  Camellia is a symmetric key block cipher developed jointly
1171584fffc8SSebastian Siewior	  at NTT and Mitsubishi Electric Corporation.
1172584fffc8SSebastian Siewior
1173584fffc8SSebastian Siewior	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
1174584fffc8SSebastian Siewior
1175584fffc8SSebastian Siewior	  See also:
1176584fffc8SSebastian Siewior	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1177584fffc8SSebastian Siewior
11780b95ec56SJussi Kivilinnaconfig CRYPTO_CAMELLIA_X86_64
11790b95ec56SJussi Kivilinna	tristate "Camellia cipher algorithm (x86_64)"
1180f21a7c19SAl Viro	depends on X86 && 64BIT
11810b95ec56SJussi Kivilinna	depends on CRYPTO
11821af6d037SEric Biggers	select CRYPTO_BLKCIPHER
1183964263afSJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
11840b95ec56SJussi Kivilinna	help
11850b95ec56SJussi Kivilinna	  Camellia cipher algorithm module (x86_64).
11860b95ec56SJussi Kivilinna
11870b95ec56SJussi Kivilinna	  Camellia is a symmetric key block cipher developed jointly
11880b95ec56SJussi Kivilinna	  at NTT and Mitsubishi Electric Corporation.
11890b95ec56SJussi Kivilinna
11900b95ec56SJussi Kivilinna	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
11910b95ec56SJussi Kivilinna
11920b95ec56SJussi Kivilinna	  See also:
11930b95ec56SJussi Kivilinna	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
11940b95ec56SJussi Kivilinna
1195d9b1d2e7SJussi Kivilinnaconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1196d9b1d2e7SJussi Kivilinna	tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
1197d9b1d2e7SJussi Kivilinna	depends on X86 && 64BIT
1198d9b1d2e7SJussi Kivilinna	depends on CRYPTO
119944893bc2SEric Biggers	select CRYPTO_BLKCIPHER
1200d9b1d2e7SJussi Kivilinna	select CRYPTO_CAMELLIA_X86_64
120144893bc2SEric Biggers	select CRYPTO_GLUE_HELPER_X86
120244893bc2SEric Biggers	select CRYPTO_SIMD
1203d9b1d2e7SJussi Kivilinna	select CRYPTO_XTS
1204d9b1d2e7SJussi Kivilinna	help
1205d9b1d2e7SJussi Kivilinna	  Camellia cipher algorithm module (x86_64/AES-NI/AVX).
1206d9b1d2e7SJussi Kivilinna
1207d9b1d2e7SJussi Kivilinna	  Camellia is a symmetric key block cipher developed jointly
1208d9b1d2e7SJussi Kivilinna	  at NTT and Mitsubishi Electric Corporation.
1209d9b1d2e7SJussi Kivilinna
1210d9b1d2e7SJussi Kivilinna	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
1211d9b1d2e7SJussi Kivilinna
1212d9b1d2e7SJussi Kivilinna	  See also:
1213d9b1d2e7SJussi Kivilinna	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1214d9b1d2e7SJussi Kivilinna
1215f3f935a7SJussi Kivilinnaconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
1216f3f935a7SJussi Kivilinna	tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
1217f3f935a7SJussi Kivilinna	depends on X86 && 64BIT
1218f3f935a7SJussi Kivilinna	depends on CRYPTO
1219f3f935a7SJussi Kivilinna	select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
1220f3f935a7SJussi Kivilinna	help
1221f3f935a7SJussi Kivilinna	  Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
1222f3f935a7SJussi Kivilinna
1223f3f935a7SJussi Kivilinna	  Camellia is a symmetric key block cipher developed jointly
1224f3f935a7SJussi Kivilinna	  at NTT and Mitsubishi Electric Corporation.
1225f3f935a7SJussi Kivilinna
1226f3f935a7SJussi Kivilinna	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
1227f3f935a7SJussi Kivilinna
1228f3f935a7SJussi Kivilinna	  See also:
1229f3f935a7SJussi Kivilinna	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
1230f3f935a7SJussi Kivilinna
123181658ad0SDavid S. Millerconfig CRYPTO_CAMELLIA_SPARC64
123281658ad0SDavid S. Miller	tristate "Camellia cipher algorithm (SPARC64)"
123381658ad0SDavid S. Miller	depends on SPARC64
123481658ad0SDavid S. Miller	depends on CRYPTO
123581658ad0SDavid S. Miller	select CRYPTO_ALGAPI
123681658ad0SDavid S. Miller	help
123781658ad0SDavid S. Miller	  Camellia cipher algorithm module (SPARC64).
123881658ad0SDavid S. Miller
123981658ad0SDavid S. Miller	  Camellia is a symmetric key block cipher developed jointly
124081658ad0SDavid S. Miller	  at NTT and Mitsubishi Electric Corporation.
124181658ad0SDavid S. Miller
124281658ad0SDavid S. Miller	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
124381658ad0SDavid S. Miller
124481658ad0SDavid S. Miller	  See also:
124581658ad0SDavid S. Miller	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
124681658ad0SDavid S. Miller
1247044ab525SJussi Kivilinnaconfig CRYPTO_CAST_COMMON
1248044ab525SJussi Kivilinna	tristate
1249044ab525SJussi Kivilinna	help
1250044ab525SJussi Kivilinna	  Common parts of the CAST cipher algorithms shared by the
1251044ab525SJussi Kivilinna	  generic c and the assembler implementations.
1252044ab525SJussi Kivilinna
1253584fffc8SSebastian Siewiorconfig CRYPTO_CAST5
1254584fffc8SSebastian Siewior	tristate "CAST5 (CAST-128) cipher algorithm"
1255584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1256044ab525SJussi Kivilinna	select CRYPTO_CAST_COMMON
1257584fffc8SSebastian Siewior	help
1258584fffc8SSebastian Siewior	  The CAST5 encryption algorithm (synonymous with CAST-128) is
1259584fffc8SSebastian Siewior	  described in RFC2144.
1260584fffc8SSebastian Siewior
12614d6d6a2cSJohannes Goetzfriedconfig CRYPTO_CAST5_AVX_X86_64
12624d6d6a2cSJohannes Goetzfried	tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
12634d6d6a2cSJohannes Goetzfried	depends on X86 && 64BIT
12641e63183aSEric Biggers	select CRYPTO_BLKCIPHER
12654d6d6a2cSJohannes Goetzfried	select CRYPTO_CAST5
12661e63183aSEric Biggers	select CRYPTO_CAST_COMMON
12671e63183aSEric Biggers	select CRYPTO_SIMD
12684d6d6a2cSJohannes Goetzfried	help
12694d6d6a2cSJohannes Goetzfried	  The CAST5 encryption algorithm (synonymous with CAST-128) is
12704d6d6a2cSJohannes Goetzfried	  described in RFC2144.
12714d6d6a2cSJohannes Goetzfried
12724d6d6a2cSJohannes Goetzfried	  This module provides the Cast5 cipher algorithm that processes
12734d6d6a2cSJohannes Goetzfried	  sixteen blocks parallel using the AVX instruction set.
12744d6d6a2cSJohannes Goetzfried
1275584fffc8SSebastian Siewiorconfig CRYPTO_CAST6
1276584fffc8SSebastian Siewior	tristate "CAST6 (CAST-256) cipher algorithm"
1277584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1278044ab525SJussi Kivilinna	select CRYPTO_CAST_COMMON
1279584fffc8SSebastian Siewior	help
1280584fffc8SSebastian Siewior	  The CAST6 encryption algorithm (synonymous with CAST-256) is
1281584fffc8SSebastian Siewior	  described in RFC2612.
1282584fffc8SSebastian Siewior
12834ea1277dSJohannes Goetzfriedconfig CRYPTO_CAST6_AVX_X86_64
12844ea1277dSJohannes Goetzfried	tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
12854ea1277dSJohannes Goetzfried	depends on X86 && 64BIT
12864bd96924SEric Biggers	select CRYPTO_BLKCIPHER
12874ea1277dSJohannes Goetzfried	select CRYPTO_CAST6
12884bd96924SEric Biggers	select CRYPTO_CAST_COMMON
12894bd96924SEric Biggers	select CRYPTO_GLUE_HELPER_X86
12904bd96924SEric Biggers	select CRYPTO_SIMD
12914ea1277dSJohannes Goetzfried	select CRYPTO_XTS
12924ea1277dSJohannes Goetzfried	help
12934ea1277dSJohannes Goetzfried	  The CAST6 encryption algorithm (synonymous with CAST-256) is
12944ea1277dSJohannes Goetzfried	  described in RFC2612.
12954ea1277dSJohannes Goetzfried
12964ea1277dSJohannes Goetzfried	  This module provides the Cast6 cipher algorithm that processes
12974ea1277dSJohannes Goetzfried	  eight blocks parallel using the AVX instruction set.
12984ea1277dSJohannes Goetzfried
1299584fffc8SSebastian Siewiorconfig CRYPTO_DES
1300584fffc8SSebastian Siewior	tristate "DES and Triple DES EDE cipher algorithms"
1301584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1302584fffc8SSebastian Siewior	help
1303584fffc8SSebastian Siewior	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1304584fffc8SSebastian Siewior
1305c5aac2dfSDavid S. Millerconfig CRYPTO_DES_SPARC64
1306c5aac2dfSDavid S. Miller	tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
130797da37b3SDave Jones	depends on SPARC64
1308c5aac2dfSDavid S. Miller	select CRYPTO_ALGAPI
1309c5aac2dfSDavid S. Miller	select CRYPTO_DES
1310c5aac2dfSDavid S. Miller	help
1311c5aac2dfSDavid S. Miller	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1312c5aac2dfSDavid S. Miller	  optimized using SPARC64 crypto opcodes.
1313c5aac2dfSDavid S. Miller
13146574e6c6SJussi Kivilinnaconfig CRYPTO_DES3_EDE_X86_64
13156574e6c6SJussi Kivilinna	tristate "Triple DES EDE cipher algorithm (x86-64)"
13166574e6c6SJussi Kivilinna	depends on X86 && 64BIT
131709c0f03bSEric Biggers	select CRYPTO_BLKCIPHER
13186574e6c6SJussi Kivilinna	select CRYPTO_DES
13196574e6c6SJussi Kivilinna	help
13206574e6c6SJussi Kivilinna	  Triple DES EDE (FIPS 46-3) algorithm.
13216574e6c6SJussi Kivilinna
13226574e6c6SJussi Kivilinna	  This module provides implementation of the Triple DES EDE cipher
13236574e6c6SJussi Kivilinna	  algorithm that is optimized for x86-64 processors. Two versions of
13246574e6c6SJussi Kivilinna	  algorithm are provided; regular processing one input block and
13256574e6c6SJussi Kivilinna	  one that processes three blocks parallel.
13266574e6c6SJussi Kivilinna
1327584fffc8SSebastian Siewiorconfig CRYPTO_FCRYPT
1328584fffc8SSebastian Siewior	tristate "FCrypt cipher algorithm"
1329584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1330584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
1331584fffc8SSebastian Siewior	help
1332584fffc8SSebastian Siewior	  FCrypt algorithm used by RxRPC.
1333584fffc8SSebastian Siewior
1334584fffc8SSebastian Siewiorconfig CRYPTO_KHAZAD
1335584fffc8SSebastian Siewior	tristate "Khazad cipher algorithm"
1336584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1337584fffc8SSebastian Siewior	help
1338584fffc8SSebastian Siewior	  Khazad cipher algorithm.
1339584fffc8SSebastian Siewior
1340584fffc8SSebastian Siewior	  Khazad was a finalist in the initial NESSIE competition.  It is
1341584fffc8SSebastian Siewior	  an algorithm optimized for 64-bit processors with good performance
1342584fffc8SSebastian Siewior	  on 32-bit processors.  Khazad uses an 128 bit key size.
1343584fffc8SSebastian Siewior
1344584fffc8SSebastian Siewior	  See also:
13456d8de74cSJustin P. Mattock	  <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1346e2ee95b8SHye-Shik Chang
13472407d608STan Swee Hengconfig CRYPTO_SALSA20
13483b4afaf2SKees Cook	tristate "Salsa20 stream cipher algorithm"
13492407d608STan Swee Heng	select CRYPTO_BLKCIPHER
13502407d608STan Swee Heng	help
13512407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
13522407d608STan Swee Heng
13532407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
13542407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
13552407d608STan Swee Heng
13562407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
13572407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
13581da177e4SLinus Torvalds
1359974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586
13603b4afaf2SKees Cook	tristate "Salsa20 stream cipher algorithm (i586)"
1361974e4b75STan Swee Heng	depends on (X86 || UML_X86) && !64BIT
1362974e4b75STan Swee Heng	select CRYPTO_BLKCIPHER
1363c9a3ff8fSEric Biggers	select CRYPTO_SALSA20
1364974e4b75STan Swee Heng	help
1365974e4b75STan Swee Heng	  Salsa20 stream cipher algorithm.
1366974e4b75STan Swee Heng
1367974e4b75STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1368974e4b75STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1369974e4b75STan Swee Heng
1370974e4b75STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
1371974e4b75STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1372974e4b75STan Swee Heng
13739a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64
13743b4afaf2SKees Cook	tristate "Salsa20 stream cipher algorithm (x86_64)"
13759a7dafbbSTan Swee Heng	depends on (X86 || UML_X86) && 64BIT
13769a7dafbbSTan Swee Heng	select CRYPTO_BLKCIPHER
1377c9a3ff8fSEric Biggers	select CRYPTO_SALSA20
13789a7dafbbSTan Swee Heng	help
13799a7dafbbSTan Swee Heng	  Salsa20 stream cipher algorithm.
13809a7dafbbSTan Swee Heng
13819a7dafbbSTan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
13829a7dafbbSTan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
13839a7dafbbSTan Swee Heng
13849a7dafbbSTan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
13859a7dafbbSTan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
13869a7dafbbSTan Swee Heng
1387c08d0e64SMartin Williconfig CRYPTO_CHACHA20
1388c08d0e64SMartin Willi	tristate "ChaCha20 cipher algorithm"
1389c08d0e64SMartin Willi	select CRYPTO_BLKCIPHER
1390c08d0e64SMartin Willi	help
1391c08d0e64SMartin Willi	  ChaCha20 cipher algorithm, RFC7539.
1392c08d0e64SMartin Willi
1393c08d0e64SMartin Willi	  ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1394c08d0e64SMartin Willi	  Bernstein and further specified in RFC7539 for use in IETF protocols.
1395c08d0e64SMartin Willi	  This is the portable C implementation of ChaCha20.
1396c08d0e64SMartin Willi
1397c08d0e64SMartin Willi	  See also:
1398c08d0e64SMartin Willi	  <http://cr.yp.to/chacha/chacha-20080128.pdf>
1399c08d0e64SMartin Willi
1400c9320b6dSMartin Williconfig CRYPTO_CHACHA20_X86_64
14013d1e93cdSMartin Willi	tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
1402c9320b6dSMartin Willi	depends on X86 && 64BIT
1403c9320b6dSMartin Willi	select CRYPTO_BLKCIPHER
1404c9320b6dSMartin Willi	select CRYPTO_CHACHA20
1405c9320b6dSMartin Willi	help
1406c9320b6dSMartin Willi	  ChaCha20 cipher algorithm, RFC7539.
1407c9320b6dSMartin Willi
1408c9320b6dSMartin Willi	  ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
1409c9320b6dSMartin Willi	  Bernstein and further specified in RFC7539 for use in IETF protocols.
1410c9320b6dSMartin Willi	  This is the x86_64 assembler implementation using SIMD instructions.
1411c9320b6dSMartin Willi
1412c9320b6dSMartin Willi	  See also:
1413c9320b6dSMartin Willi	  <http://cr.yp.to/chacha/chacha-20080128.pdf>
1414c9320b6dSMartin Willi
1415584fffc8SSebastian Siewiorconfig CRYPTO_SEED
1416584fffc8SSebastian Siewior	tristate "SEED cipher algorithm"
1417584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1418584fffc8SSebastian Siewior	help
1419584fffc8SSebastian Siewior	  SEED cipher algorithm (RFC4269).
1420584fffc8SSebastian Siewior
1421584fffc8SSebastian Siewior	  SEED is a 128-bit symmetric key block cipher that has been
1422584fffc8SSebastian Siewior	  developed by KISA (Korea Information Security Agency) as a
1423584fffc8SSebastian Siewior	  national standard encryption algorithm of the Republic of Korea.
1424584fffc8SSebastian Siewior	  It is a 16 round block cipher with the key size of 128 bit.
1425584fffc8SSebastian Siewior
1426584fffc8SSebastian Siewior	  See also:
1427584fffc8SSebastian Siewior	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1428584fffc8SSebastian Siewior
1429584fffc8SSebastian Siewiorconfig CRYPTO_SERPENT
1430584fffc8SSebastian Siewior	tristate "Serpent cipher algorithm"
1431584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1432584fffc8SSebastian Siewior	help
1433584fffc8SSebastian Siewior	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1434584fffc8SSebastian Siewior
1435584fffc8SSebastian Siewior	  Keys are allowed to be from 0 to 256 bits in length, in steps
1436584fffc8SSebastian Siewior	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
1437584fffc8SSebastian Siewior	  variant of Serpent for compatibility with old kerneli.org code.
1438584fffc8SSebastian Siewior
1439584fffc8SSebastian Siewior	  See also:
1440584fffc8SSebastian Siewior	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1441584fffc8SSebastian Siewior
1442937c30d7SJussi Kivilinnaconfig CRYPTO_SERPENT_SSE2_X86_64
1443937c30d7SJussi Kivilinna	tristate "Serpent cipher algorithm (x86_64/SSE2)"
1444937c30d7SJussi Kivilinna	depends on X86 && 64BIT
1445e0f409dcSEric Biggers	select CRYPTO_BLKCIPHER
1446596d8750SJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
1447937c30d7SJussi Kivilinna	select CRYPTO_SERPENT
1448e0f409dcSEric Biggers	select CRYPTO_SIMD
1449937c30d7SJussi Kivilinna	help
1450937c30d7SJussi Kivilinna	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1451937c30d7SJussi Kivilinna
1452937c30d7SJussi Kivilinna	  Keys are allowed to be from 0 to 256 bits in length, in steps
1453937c30d7SJussi Kivilinna	  of 8 bits.
1454937c30d7SJussi Kivilinna
14551e6232f8SMasanari Iida	  This module provides Serpent cipher algorithm that processes eight
1456937c30d7SJussi Kivilinna	  blocks parallel using SSE2 instruction set.
1457937c30d7SJussi Kivilinna
1458937c30d7SJussi Kivilinna	  See also:
1459937c30d7SJussi Kivilinna	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1460937c30d7SJussi Kivilinna
1461251496dbSJussi Kivilinnaconfig CRYPTO_SERPENT_SSE2_586
1462251496dbSJussi Kivilinna	tristate "Serpent cipher algorithm (i586/SSE2)"
1463251496dbSJussi Kivilinna	depends on X86 && !64BIT
1464e0f409dcSEric Biggers	select CRYPTO_BLKCIPHER
1465596d8750SJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
1466251496dbSJussi Kivilinna	select CRYPTO_SERPENT
1467e0f409dcSEric Biggers	select CRYPTO_SIMD
1468251496dbSJussi Kivilinna	help
1469251496dbSJussi Kivilinna	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1470251496dbSJussi Kivilinna
1471251496dbSJussi Kivilinna	  Keys are allowed to be from 0 to 256 bits in length, in steps
1472251496dbSJussi Kivilinna	  of 8 bits.
1473251496dbSJussi Kivilinna
1474251496dbSJussi Kivilinna	  This module provides Serpent cipher algorithm that processes four
1475251496dbSJussi Kivilinna	  blocks parallel using SSE2 instruction set.
1476251496dbSJussi Kivilinna
1477251496dbSJussi Kivilinna	  See also:
1478251496dbSJussi Kivilinna	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1479251496dbSJussi Kivilinna
14807efe4076SJohannes Goetzfriedconfig CRYPTO_SERPENT_AVX_X86_64
14817efe4076SJohannes Goetzfried	tristate "Serpent cipher algorithm (x86_64/AVX)"
14827efe4076SJohannes Goetzfried	depends on X86 && 64BIT
1483e16bf974SEric Biggers	select CRYPTO_BLKCIPHER
14841d0debbdSJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
14857efe4076SJohannes Goetzfried	select CRYPTO_SERPENT
1486e16bf974SEric Biggers	select CRYPTO_SIMD
14877efe4076SJohannes Goetzfried	select CRYPTO_XTS
14887efe4076SJohannes Goetzfried	help
14897efe4076SJohannes Goetzfried	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
14907efe4076SJohannes Goetzfried
14917efe4076SJohannes Goetzfried	  Keys are allowed to be from 0 to 256 bits in length, in steps
14927efe4076SJohannes Goetzfried	  of 8 bits.
14937efe4076SJohannes Goetzfried
14947efe4076SJohannes Goetzfried	  This module provides the Serpent cipher algorithm that processes
14957efe4076SJohannes Goetzfried	  eight blocks parallel using the AVX instruction set.
14967efe4076SJohannes Goetzfried
14977efe4076SJohannes Goetzfried	  See also:
14987efe4076SJohannes Goetzfried	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
14997efe4076SJohannes Goetzfried
150056d76c96SJussi Kivilinnaconfig CRYPTO_SERPENT_AVX2_X86_64
150156d76c96SJussi Kivilinna	tristate "Serpent cipher algorithm (x86_64/AVX2)"
150256d76c96SJussi Kivilinna	depends on X86 && 64BIT
150356d76c96SJussi Kivilinna	select CRYPTO_SERPENT_AVX_X86_64
150456d76c96SJussi Kivilinna	help
150556d76c96SJussi Kivilinna	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
150656d76c96SJussi Kivilinna
150756d76c96SJussi Kivilinna	  Keys are allowed to be from 0 to 256 bits in length, in steps
150856d76c96SJussi Kivilinna	  of 8 bits.
150956d76c96SJussi Kivilinna
151056d76c96SJussi Kivilinna	  This module provides Serpent cipher algorithm that processes 16
151156d76c96SJussi Kivilinna	  blocks parallel using AVX2 instruction set.
151256d76c96SJussi Kivilinna
151356d76c96SJussi Kivilinna	  See also:
151456d76c96SJussi Kivilinna	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
151556d76c96SJussi Kivilinna
1516747c8ce4SGilad Ben-Yossefconfig CRYPTO_SM4
1517747c8ce4SGilad Ben-Yossef	tristate "SM4 cipher algorithm"
1518747c8ce4SGilad Ben-Yossef	select CRYPTO_ALGAPI
1519747c8ce4SGilad Ben-Yossef	help
1520747c8ce4SGilad Ben-Yossef	  SM4 cipher algorithms (OSCCA GB/T 32907-2016).
1521747c8ce4SGilad Ben-Yossef
1522747c8ce4SGilad Ben-Yossef	  SM4 (GBT.32907-2016) is a cryptographic standard issued by the
1523747c8ce4SGilad Ben-Yossef	  Organization of State Commercial Administration of China (OSCCA)
1524747c8ce4SGilad Ben-Yossef	  as an authorized cryptographic algorithms for the use within China.
1525747c8ce4SGilad Ben-Yossef
1526747c8ce4SGilad Ben-Yossef	  SMS4 was originally created for use in protecting wireless
1527747c8ce4SGilad Ben-Yossef	  networks, and is mandated in the Chinese National Standard for
1528747c8ce4SGilad Ben-Yossef	  Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
1529747c8ce4SGilad Ben-Yossef	  (GB.15629.11-2003).
1530747c8ce4SGilad Ben-Yossef
1531747c8ce4SGilad Ben-Yossef	  The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
1532747c8ce4SGilad Ben-Yossef	  standardized through TC 260 of the Standardization Administration
1533747c8ce4SGilad Ben-Yossef	  of the People's Republic of China (SAC).
1534747c8ce4SGilad Ben-Yossef
1535747c8ce4SGilad Ben-Yossef	  The input, output, and key of SMS4 are each 128 bits.
1536747c8ce4SGilad Ben-Yossef
1537747c8ce4SGilad Ben-Yossef	  See also: <https://eprint.iacr.org/2008/329.pdf>
1538747c8ce4SGilad Ben-Yossef
1539747c8ce4SGilad Ben-Yossef	  If unsure, say N.
1540747c8ce4SGilad Ben-Yossef
1541da7a0ab5SEric Biggersconfig CRYPTO_SPECK
1542da7a0ab5SEric Biggers	tristate "Speck cipher algorithm"
1543da7a0ab5SEric Biggers	select CRYPTO_ALGAPI
1544da7a0ab5SEric Biggers	help
1545da7a0ab5SEric Biggers	  Speck is a lightweight block cipher that is tuned for optimal
1546da7a0ab5SEric Biggers	  performance in software (rather than hardware).
1547da7a0ab5SEric Biggers
1548da7a0ab5SEric Biggers	  Speck may not be as secure as AES, and should only be used on systems
1549da7a0ab5SEric Biggers	  where AES is not fast enough.
1550da7a0ab5SEric Biggers
1551da7a0ab5SEric Biggers	  See also: <https://eprint.iacr.org/2013/404.pdf>
1552da7a0ab5SEric Biggers
1553da7a0ab5SEric Biggers	  If unsure, say N.
1554da7a0ab5SEric Biggers
1555584fffc8SSebastian Siewiorconfig CRYPTO_TEA
1556584fffc8SSebastian Siewior	tristate "TEA, XTEA and XETA cipher algorithms"
1557584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1558584fffc8SSebastian Siewior	help
1559584fffc8SSebastian Siewior	  TEA cipher algorithm.
1560584fffc8SSebastian Siewior
1561584fffc8SSebastian Siewior	  Tiny Encryption Algorithm is a simple cipher that uses
1562584fffc8SSebastian Siewior	  many rounds for security.  It is very fast and uses
1563584fffc8SSebastian Siewior	  little memory.
1564584fffc8SSebastian Siewior
1565584fffc8SSebastian Siewior	  Xtendend Tiny Encryption Algorithm is a modification to
1566584fffc8SSebastian Siewior	  the TEA algorithm to address a potential key weakness
1567584fffc8SSebastian Siewior	  in the TEA algorithm.
1568584fffc8SSebastian Siewior
1569584fffc8SSebastian Siewior	  Xtendend Encryption Tiny Algorithm is a mis-implementation
1570584fffc8SSebastian Siewior	  of the XTEA algorithm for compatibility purposes.
1571584fffc8SSebastian Siewior
1572584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH
1573584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm"
1574584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1575584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
1576584fffc8SSebastian Siewior	help
1577584fffc8SSebastian Siewior	  Twofish cipher algorithm.
1578584fffc8SSebastian Siewior
1579584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
1580584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
1581584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
1582584fffc8SSebastian Siewior	  bits.
1583584fffc8SSebastian Siewior
1584584fffc8SSebastian Siewior	  See also:
1585584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
1586584fffc8SSebastian Siewior
1587584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_COMMON
1588584fffc8SSebastian Siewior	tristate
1589584fffc8SSebastian Siewior	help
1590584fffc8SSebastian Siewior	  Common parts of the Twofish cipher algorithm shared by the
1591584fffc8SSebastian Siewior	  generic c and the assembler implementations.
1592584fffc8SSebastian Siewior
1593584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_586
1594584fffc8SSebastian Siewior	tristate "Twofish cipher algorithms (i586)"
1595584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && !64BIT
1596584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1597584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
1598584fffc8SSebastian Siewior	help
1599584fffc8SSebastian Siewior	  Twofish cipher algorithm.
1600584fffc8SSebastian Siewior
1601584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
1602584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
1603584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
1604584fffc8SSebastian Siewior	  bits.
1605584fffc8SSebastian Siewior
1606584fffc8SSebastian Siewior	  See also:
1607584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
1608584fffc8SSebastian Siewior
1609584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_X86_64
1610584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm (x86_64)"
1611584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && 64BIT
1612584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
1613584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
1614584fffc8SSebastian Siewior	help
1615584fffc8SSebastian Siewior	  Twofish cipher algorithm (x86_64).
1616584fffc8SSebastian Siewior
1617584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
1618584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
1619584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
1620584fffc8SSebastian Siewior	  bits.
1621584fffc8SSebastian Siewior
1622584fffc8SSebastian Siewior	  See also:
1623584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
1624584fffc8SSebastian Siewior
16258280daadSJussi Kivilinnaconfig CRYPTO_TWOFISH_X86_64_3WAY
16268280daadSJussi Kivilinna	tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
1627f21a7c19SAl Viro	depends on X86 && 64BIT
162837992fa4SEric Biggers	select CRYPTO_BLKCIPHER
16298280daadSJussi Kivilinna	select CRYPTO_TWOFISH_COMMON
16308280daadSJussi Kivilinna	select CRYPTO_TWOFISH_X86_64
1631414cb5e7SJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
16328280daadSJussi Kivilinna	help
16338280daadSJussi Kivilinna	  Twofish cipher algorithm (x86_64, 3-way parallel).
16348280daadSJussi Kivilinna
16358280daadSJussi Kivilinna	  Twofish was submitted as an AES (Advanced Encryption Standard)
16368280daadSJussi Kivilinna	  candidate cipher by researchers at CounterPane Systems.  It is a
16378280daadSJussi Kivilinna	  16 round block cipher supporting key sizes of 128, 192, and 256
16388280daadSJussi Kivilinna	  bits.
16398280daadSJussi Kivilinna
16408280daadSJussi Kivilinna	  This module provides Twofish cipher algorithm that processes three
16418280daadSJussi Kivilinna	  blocks parallel, utilizing resources of out-of-order CPUs better.
16428280daadSJussi Kivilinna
16438280daadSJussi Kivilinna	  See also:
16448280daadSJussi Kivilinna	  <http://www.schneier.com/twofish.html>
16458280daadSJussi Kivilinna
1646107778b5SJohannes Goetzfriedconfig CRYPTO_TWOFISH_AVX_X86_64
1647107778b5SJohannes Goetzfried	tristate "Twofish cipher algorithm (x86_64/AVX)"
1648107778b5SJohannes Goetzfried	depends on X86 && 64BIT
16490e6ab46dSEric Biggers	select CRYPTO_BLKCIPHER
1650a7378d4eSJussi Kivilinna	select CRYPTO_GLUE_HELPER_X86
16510e6ab46dSEric Biggers	select CRYPTO_SIMD
1652107778b5SJohannes Goetzfried	select CRYPTO_TWOFISH_COMMON
1653107778b5SJohannes Goetzfried	select CRYPTO_TWOFISH_X86_64
1654107778b5SJohannes Goetzfried	select CRYPTO_TWOFISH_X86_64_3WAY
1655107778b5SJohannes Goetzfried	help
1656107778b5SJohannes Goetzfried	  Twofish cipher algorithm (x86_64/AVX).
1657107778b5SJohannes Goetzfried
1658107778b5SJohannes Goetzfried	  Twofish was submitted as an AES (Advanced Encryption Standard)
1659107778b5SJohannes Goetzfried	  candidate cipher by researchers at CounterPane Systems.  It is a
1660107778b5SJohannes Goetzfried	  16 round block cipher supporting key sizes of 128, 192, and 256
1661107778b5SJohannes Goetzfried	  bits.
1662107778b5SJohannes Goetzfried
1663107778b5SJohannes Goetzfried	  This module provides the Twofish cipher algorithm that processes
1664107778b5SJohannes Goetzfried	  eight blocks parallel using the AVX Instruction Set.
1665107778b5SJohannes Goetzfried
1666107778b5SJohannes Goetzfried	  See also:
1667107778b5SJohannes Goetzfried	  <http://www.schneier.com/twofish.html>
1668107778b5SJohannes Goetzfried
1669584fffc8SSebastian Siewiorcomment "Compression"
1670584fffc8SSebastian Siewior
16711da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
16721da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
1673cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1674f6ded09dSGiovanni Cabiddu	select CRYPTO_ACOMP2
16751da177e4SLinus Torvalds	select ZLIB_INFLATE
16761da177e4SLinus Torvalds	select ZLIB_DEFLATE
16771da177e4SLinus Torvalds	help
16781da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
16791da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
16801da177e4SLinus Torvalds
16811da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
16821da177e4SLinus Torvalds
16830b77abb3SZoltan Sogorconfig CRYPTO_LZO
16840b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
16850b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
1686ac9d2c4bSGiovanni Cabiddu	select CRYPTO_ACOMP2
16870b77abb3SZoltan Sogor	select LZO_COMPRESS
16880b77abb3SZoltan Sogor	select LZO_DECOMPRESS
16890b77abb3SZoltan Sogor	help
16900b77abb3SZoltan Sogor	  This is the LZO algorithm.
16910b77abb3SZoltan Sogor
169235a1fc18SSeth Jenningsconfig CRYPTO_842
169335a1fc18SSeth Jennings	tristate "842 compression algorithm"
16942062c5b6SDan Streetman	select CRYPTO_ALGAPI
16956a8de3aeSGiovanni Cabiddu	select CRYPTO_ACOMP2
16962062c5b6SDan Streetman	select 842_COMPRESS
16972062c5b6SDan Streetman	select 842_DECOMPRESS
169835a1fc18SSeth Jennings	help
169935a1fc18SSeth Jennings	  This is the 842 algorithm.
170035a1fc18SSeth Jennings
17010ea8530dSChanho Minconfig CRYPTO_LZ4
17020ea8530dSChanho Min	tristate "LZ4 compression algorithm"
17030ea8530dSChanho Min	select CRYPTO_ALGAPI
17048cd9330eSGiovanni Cabiddu	select CRYPTO_ACOMP2
17050ea8530dSChanho Min	select LZ4_COMPRESS
17060ea8530dSChanho Min	select LZ4_DECOMPRESS
17070ea8530dSChanho Min	help
17080ea8530dSChanho Min	  This is the LZ4 algorithm.
17090ea8530dSChanho Min
17100ea8530dSChanho Minconfig CRYPTO_LZ4HC
17110ea8530dSChanho Min	tristate "LZ4HC compression algorithm"
17120ea8530dSChanho Min	select CRYPTO_ALGAPI
171391d53d96SGiovanni Cabiddu	select CRYPTO_ACOMP2
17140ea8530dSChanho Min	select LZ4HC_COMPRESS
17150ea8530dSChanho Min	select LZ4_DECOMPRESS
17160ea8530dSChanho Min	help
17170ea8530dSChanho Min	  This is the LZ4 high compression mode algorithm.
17180ea8530dSChanho Min
1719d28fc3dbSNick Terrellconfig CRYPTO_ZSTD
1720d28fc3dbSNick Terrell	tristate "Zstd compression algorithm"
1721d28fc3dbSNick Terrell	select CRYPTO_ALGAPI
1722d28fc3dbSNick Terrell	select CRYPTO_ACOMP2
1723d28fc3dbSNick Terrell	select ZSTD_COMPRESS
1724d28fc3dbSNick Terrell	select ZSTD_DECOMPRESS
1725d28fc3dbSNick Terrell	help
1726d28fc3dbSNick Terrell	  This is the zstd algorithm.
1727d28fc3dbSNick Terrell
172817f0f4a4SNeil Hormancomment "Random Number Generation"
172917f0f4a4SNeil Horman
173017f0f4a4SNeil Hormanconfig CRYPTO_ANSI_CPRNG
173117f0f4a4SNeil Horman	tristate "Pseudo Random Number Generation for Cryptographic modules"
173217f0f4a4SNeil Horman	select CRYPTO_AES
173317f0f4a4SNeil Horman	select CRYPTO_RNG
173417f0f4a4SNeil Horman	help
173517f0f4a4SNeil Horman	  This option enables the generic pseudo random number generator
173617f0f4a4SNeil Horman	  for cryptographic modules.  Uses the Algorithm specified in
17377dd607e8SJiri Kosina	  ANSI X9.31 A.2.4. Note that this option must be enabled if
17387dd607e8SJiri Kosina	  CRYPTO_FIPS is selected
173917f0f4a4SNeil Horman
1740f2c89a10SHerbert Xumenuconfig CRYPTO_DRBG_MENU
1741419090c6SStephan Mueller	tristate "NIST SP800-90A DRBG"
1742419090c6SStephan Mueller	help
1743419090c6SStephan Mueller	  NIST SP800-90A compliant DRBG. In the following submenu, one or
1744419090c6SStephan Mueller	  more of the DRBG types must be selected.
1745419090c6SStephan Mueller
1746f2c89a10SHerbert Xuif CRYPTO_DRBG_MENU
1747419090c6SStephan Mueller
1748419090c6SStephan Muellerconfig CRYPTO_DRBG_HMAC
1749401e4238SHerbert Xu	bool
1750419090c6SStephan Mueller	default y
1751419090c6SStephan Mueller	select CRYPTO_HMAC
1752826775bbSHerbert Xu	select CRYPTO_SHA256
1753419090c6SStephan Mueller
1754419090c6SStephan Muellerconfig CRYPTO_DRBG_HASH
1755419090c6SStephan Mueller	bool "Enable Hash DRBG"
1756826775bbSHerbert Xu	select CRYPTO_SHA256
1757419090c6SStephan Mueller	help
1758419090c6SStephan Mueller	  Enable the Hash DRBG variant as defined in NIST SP800-90A.
1759419090c6SStephan Mueller
1760419090c6SStephan Muellerconfig CRYPTO_DRBG_CTR
1761419090c6SStephan Mueller	bool "Enable CTR DRBG"
1762419090c6SStephan Mueller	select CRYPTO_AES
176335591285SStephan Mueller	depends on CRYPTO_CTR
1764419090c6SStephan Mueller	help
1765419090c6SStephan Mueller	  Enable the CTR DRBG variant as defined in NIST SP800-90A.
1766419090c6SStephan Mueller
1767f2c89a10SHerbert Xuconfig CRYPTO_DRBG
1768f2c89a10SHerbert Xu	tristate
1769401e4238SHerbert Xu	default CRYPTO_DRBG_MENU
1770f2c89a10SHerbert Xu	select CRYPTO_RNG
1771bb5530e4SStephan Mueller	select CRYPTO_JITTERENTROPY
1772f2c89a10SHerbert Xu
1773f2c89a10SHerbert Xuendif	# if CRYPTO_DRBG_MENU
1774419090c6SStephan Mueller
1775bb5530e4SStephan Muellerconfig CRYPTO_JITTERENTROPY
1776bb5530e4SStephan Mueller	tristate "Jitterentropy Non-Deterministic Random Number Generator"
17772f313e02SArnd Bergmann	select CRYPTO_RNG
1778bb5530e4SStephan Mueller	help
1779bb5530e4SStephan Mueller	  The Jitterentropy RNG is a noise that is intended
1780bb5530e4SStephan Mueller	  to provide seed to another RNG. The RNG does not
1781bb5530e4SStephan Mueller	  perform any cryptographic whitening of the generated
1782bb5530e4SStephan Mueller	  random numbers. This Jitterentropy RNG registers with
1783bb5530e4SStephan Mueller	  the kernel crypto API and can be used by any caller.
1784bb5530e4SStephan Mueller
178503c8efc1SHerbert Xuconfig CRYPTO_USER_API
178603c8efc1SHerbert Xu	tristate
178703c8efc1SHerbert Xu
1788fe869cdbSHerbert Xuconfig CRYPTO_USER_API_HASH
1789fe869cdbSHerbert Xu	tristate "User-space interface for hash algorithms"
17907451708fSHerbert Xu	depends on NET
1791fe869cdbSHerbert Xu	select CRYPTO_HASH
1792fe869cdbSHerbert Xu	select CRYPTO_USER_API
1793fe869cdbSHerbert Xu	help
1794fe869cdbSHerbert Xu	  This option enables the user-spaces interface for hash
1795fe869cdbSHerbert Xu	  algorithms.
1796fe869cdbSHerbert Xu
17978ff59090SHerbert Xuconfig CRYPTO_USER_API_SKCIPHER
17988ff59090SHerbert Xu	tristate "User-space interface for symmetric key cipher algorithms"
17997451708fSHerbert Xu	depends on NET
18008ff59090SHerbert Xu	select CRYPTO_BLKCIPHER
18018ff59090SHerbert Xu	select CRYPTO_USER_API
18028ff59090SHerbert Xu	help
18038ff59090SHerbert Xu	  This option enables the user-spaces interface for symmetric
18048ff59090SHerbert Xu	  key cipher algorithms.
18058ff59090SHerbert Xu
18062f375538SStephan Muellerconfig CRYPTO_USER_API_RNG
18072f375538SStephan Mueller	tristate "User-space interface for random number generator algorithms"
18082f375538SStephan Mueller	depends on NET
18092f375538SStephan Mueller	select CRYPTO_RNG
18102f375538SStephan Mueller	select CRYPTO_USER_API
18112f375538SStephan Mueller	help
18122f375538SStephan Mueller	  This option enables the user-spaces interface for random
18132f375538SStephan Mueller	  number generator algorithms.
18142f375538SStephan Mueller
1815b64a2d95SHerbert Xuconfig CRYPTO_USER_API_AEAD
1816b64a2d95SHerbert Xu	tristate "User-space interface for AEAD cipher algorithms"
1817b64a2d95SHerbert Xu	depends on NET
1818b64a2d95SHerbert Xu	select CRYPTO_AEAD
181972548b09SStephan Mueller	select CRYPTO_BLKCIPHER
182072548b09SStephan Mueller	select CRYPTO_NULL
1821b64a2d95SHerbert Xu	select CRYPTO_USER_API
1822b64a2d95SHerbert Xu	help
1823b64a2d95SHerbert Xu	  This option enables the user-spaces interface for AEAD
1824b64a2d95SHerbert Xu	  cipher algorithms.
1825b64a2d95SHerbert Xu
1826ee08997fSDmitry Kasatkinconfig CRYPTO_HASH_INFO
1827ee08997fSDmitry Kasatkin	bool
1828ee08997fSDmitry Kasatkin
18291da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
1830964f3b3bSDavid Howellssource crypto/asymmetric_keys/Kconfig
1831cfc411e7SDavid Howellssource certs/Kconfig
18321da177e4SLinus Torvalds
1833cce9e06dSHerbert Xuendif	# if CRYPTO
1834