xref: /linux/crypto/Kconfig (revision 2f1648220214d18168e55920c21014e71c2d5bbc)
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"
187033b937SEric Biggers	select CRYPTO_LIB_UTILS
191da177e4SLinus Torvalds	help
201da177e4SLinus Torvalds	  This option provides the core Cryptographic API.
211da177e4SLinus Torvalds
22cce9e06dSHerbert Xuif CRYPTO
23cce9e06dSHerbert Xu
24f1f142adSRobert Elliottmenu "Crypto core or helper"
25584fffc8SSebastian Siewior
26ccb778e1SNeil Hormanconfig CRYPTO_FIPS
27ccb778e1SNeil Horman	bool "FIPS 200 compliance"
28f2c89a10SHerbert Xu	depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
291f696097SAlec Ari	depends on (MODULE_SIG || !MODULES)
30ccb778e1SNeil Horman	help
31d99324c2SGeert Uytterhoeven	  This option enables the fips boot option which is
32d99324c2SGeert Uytterhoeven	  required if you want the system to operate in a FIPS 200
33ccb778e1SNeil Horman	  certification.  You should say no unless you know what
34e84c5480SChuck Ebbert	  this is.
35ccb778e1SNeil Horman
365a44749fSVladis Dronovconfig CRYPTO_FIPS_NAME
375a44749fSVladis Dronov	string "FIPS Module Name"
385a44749fSVladis Dronov	default "Linux Kernel Cryptographic API"
395a44749fSVladis Dronov	depends on CRYPTO_FIPS
405a44749fSVladis Dronov	help
415a44749fSVladis Dronov	  This option sets the FIPS Module name reported by the Crypto API via
425a44749fSVladis Dronov	  the /proc/sys/crypto/fips_name file.
435a44749fSVladis Dronov
445a44749fSVladis Dronovconfig CRYPTO_FIPS_CUSTOM_VERSION
455a44749fSVladis Dronov	bool "Use Custom FIPS Module Version"
465a44749fSVladis Dronov	depends on CRYPTO_FIPS
475a44749fSVladis Dronov	default n
485a44749fSVladis Dronov
495a44749fSVladis Dronovconfig CRYPTO_FIPS_VERSION
505a44749fSVladis Dronov	string "FIPS Module Version"
515a44749fSVladis Dronov	default "(none)"
525a44749fSVladis Dronov	depends on CRYPTO_FIPS_CUSTOM_VERSION
535a44749fSVladis Dronov	help
545a44749fSVladis Dronov	  This option provides the ability to override the FIPS Module Version.
555a44749fSVladis Dronov	  By default the KERNELRELEASE value is used.
565a44749fSVladis Dronov
57cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI
58cce9e06dSHerbert Xu	tristate
596a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
60cce9e06dSHerbert Xu	help
61cce9e06dSHerbert Xu	  This option provides the API for cryptographic algorithms.
62cce9e06dSHerbert Xu
636a0fcbb4SHerbert Xuconfig CRYPTO_ALGAPI2
646a0fcbb4SHerbert Xu	tristate
656a0fcbb4SHerbert Xu
661ae97820SHerbert Xuconfig CRYPTO_AEAD
671ae97820SHerbert Xu	tristate
686a0fcbb4SHerbert Xu	select CRYPTO_AEAD2
691ae97820SHerbert Xu	select CRYPTO_ALGAPI
701ae97820SHerbert Xu
716a0fcbb4SHerbert Xuconfig CRYPTO_AEAD2
726a0fcbb4SHerbert Xu	tristate
736a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
74149a3971SHerbert Xu	select CRYPTO_NULL2
75149a3971SHerbert Xu	select CRYPTO_RNG2
766a0fcbb4SHerbert Xu
77b95bba5dSEric Biggersconfig CRYPTO_SKCIPHER
785cde0af2SHerbert Xu	tristate
79b95bba5dSEric Biggers	select CRYPTO_SKCIPHER2
805cde0af2SHerbert Xu	select CRYPTO_ALGAPI
816a0fcbb4SHerbert Xu
82b95bba5dSEric Biggersconfig CRYPTO_SKCIPHER2
836a0fcbb4SHerbert Xu	tristate
846a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
856a0fcbb4SHerbert Xu	select CRYPTO_RNG2
865cde0af2SHerbert Xu
87055bcee3SHerbert Xuconfig CRYPTO_HASH
88055bcee3SHerbert Xu	tristate
896a0fcbb4SHerbert Xu	select CRYPTO_HASH2
90055bcee3SHerbert Xu	select CRYPTO_ALGAPI
91055bcee3SHerbert Xu
926a0fcbb4SHerbert Xuconfig CRYPTO_HASH2
936a0fcbb4SHerbert Xu	tristate
946a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
956a0fcbb4SHerbert Xu
9617f0f4a4SNeil Hormanconfig CRYPTO_RNG
9717f0f4a4SNeil Horman	tristate
986a0fcbb4SHerbert Xu	select CRYPTO_RNG2
9917f0f4a4SNeil Horman	select CRYPTO_ALGAPI
10017f0f4a4SNeil Horman
1016a0fcbb4SHerbert Xuconfig CRYPTO_RNG2
1026a0fcbb4SHerbert Xu	tristate
1036a0fcbb4SHerbert Xu	select CRYPTO_ALGAPI2
1046a0fcbb4SHerbert Xu
105401e4238SHerbert Xuconfig CRYPTO_RNG_DEFAULT
106401e4238SHerbert Xu	tristate
107401e4238SHerbert Xu	select CRYPTO_DRBG_MENU
108401e4238SHerbert Xu
1093c339ab8STadeusz Strukconfig CRYPTO_AKCIPHER2
1103c339ab8STadeusz Struk	tristate
1113c339ab8STadeusz Struk	select CRYPTO_ALGAPI2
1123c339ab8STadeusz Struk
1133c339ab8STadeusz Strukconfig CRYPTO_AKCIPHER
1143c339ab8STadeusz Struk	tristate
1153c339ab8STadeusz Struk	select CRYPTO_AKCIPHER2
1163c339ab8STadeusz Struk	select CRYPTO_ALGAPI
1173c339ab8STadeusz Struk
1184e5f2c40SSalvatore Benedettoconfig CRYPTO_KPP2
1194e5f2c40SSalvatore Benedetto	tristate
1204e5f2c40SSalvatore Benedetto	select CRYPTO_ALGAPI2
1214e5f2c40SSalvatore Benedetto
1224e5f2c40SSalvatore Benedettoconfig CRYPTO_KPP
1234e5f2c40SSalvatore Benedetto	tristate
1244e5f2c40SSalvatore Benedetto	select CRYPTO_ALGAPI
1254e5f2c40SSalvatore Benedetto	select CRYPTO_KPP2
1264e5f2c40SSalvatore Benedetto
1272ebda74fSGiovanni Cabidduconfig CRYPTO_ACOMP2
1282ebda74fSGiovanni Cabiddu	tristate
1292ebda74fSGiovanni Cabiddu	select CRYPTO_ALGAPI2
1308cd579d2SBart Van Assche	select SGL_ALLOC
1312ebda74fSGiovanni Cabiddu
1322ebda74fSGiovanni Cabidduconfig CRYPTO_ACOMP
1332ebda74fSGiovanni Cabiddu	tristate
1342ebda74fSGiovanni Cabiddu	select CRYPTO_ALGAPI
1352ebda74fSGiovanni Cabiddu	select CRYPTO_ACOMP2
1362ebda74fSGiovanni Cabiddu
1372b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
1382b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
1396a0fcbb4SHerbert Xu	select CRYPTO_MANAGER2
1402b8c19dbSHerbert Xu	help
1412b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
1422b8c19dbSHerbert Xu	  cbc(aes).
1432b8c19dbSHerbert Xu
1446a0fcbb4SHerbert Xuconfig CRYPTO_MANAGER2
1456a0fcbb4SHerbert Xu	def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
1466a0fcbb4SHerbert Xu	select CRYPTO_AEAD2
1476a0fcbb4SHerbert Xu	select CRYPTO_HASH2
148b95bba5dSEric Biggers	select CRYPTO_SKCIPHER2
149946cc463STadeusz Struk	select CRYPTO_AKCIPHER2
1504e5f2c40SSalvatore Benedetto	select CRYPTO_KPP2
1512ebda74fSGiovanni Cabiddu	select CRYPTO_ACOMP2
1526a0fcbb4SHerbert Xu
153a38f7907SSteffen Klassertconfig CRYPTO_USER
154a38f7907SSteffen Klassert	tristate "Userspace cryptographic algorithm configuration"
1555db017aaSHerbert Xu	depends on NET
156a38f7907SSteffen Klassert	select CRYPTO_MANAGER
157a38f7907SSteffen Klassert	help
158d19978f5SValdis.Kletnieks@vt.edu	  Userspace configuration for cryptographic instantiations such as
159a38f7907SSteffen Klassert	  cbc(aes).
160a38f7907SSteffen Klassert
161326a6346SHerbert Xuconfig CRYPTO_MANAGER_DISABLE_TESTS
162326a6346SHerbert Xu	bool "Disable run-time self tests"
16300ca28a5SHerbert Xu	default y
1640b767f96SAlexander Shishkin	help
165326a6346SHerbert Xu	  Disable run-time self tests that normally take place at
166326a6346SHerbert Xu	  algorithm registration.
1670b767f96SAlexander Shishkin
1685b2706a4SEric Biggersconfig CRYPTO_MANAGER_EXTRA_TESTS
1695b2706a4SEric Biggers	bool "Enable extra run-time crypto self tests"
1706569e309SJason A. Donenfeld	depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER
1715b2706a4SEric Biggers	help
1725b2706a4SEric Biggers	  Enable extra run-time self tests of registered crypto algorithms,
1735b2706a4SEric Biggers	  including randomized fuzz tests.
1745b2706a4SEric Biggers
1755b2706a4SEric Biggers	  This is intended for developer use only, as these tests take much
1765b2706a4SEric Biggers	  longer to run than the normal self tests.
1775b2706a4SEric Biggers
178584fffc8SSebastian Siewiorconfig CRYPTO_NULL
179584fffc8SSebastian Siewior	tristate "Null algorithms"
180149a3971SHerbert Xu	select CRYPTO_NULL2
181584fffc8SSebastian Siewior	help
182584fffc8SSebastian Siewior	  These are 'Null' algorithms, used by IPsec, which do nothing.
183584fffc8SSebastian Siewior
184149a3971SHerbert Xuconfig CRYPTO_NULL2
185dd43c4e9SHerbert Xu	tristate
186149a3971SHerbert Xu	select CRYPTO_ALGAPI2
187b95bba5dSEric Biggers	select CRYPTO_SKCIPHER2
188149a3971SHerbert Xu	select CRYPTO_HASH2
189149a3971SHerbert Xu
1905068c7a8SSteffen Klassertconfig CRYPTO_PCRYPT
1913b4afaf2SKees Cook	tristate "Parallel crypto engine"
1923b4afaf2SKees Cook	depends on SMP
1935068c7a8SSteffen Klassert	select PADATA
1945068c7a8SSteffen Klassert	select CRYPTO_MANAGER
1955068c7a8SSteffen Klassert	select CRYPTO_AEAD
1965068c7a8SSteffen Klassert	help
1975068c7a8SSteffen Klassert	  This converts an arbitrary crypto algorithm into a parallel
1985068c7a8SSteffen Klassert	  algorithm that executes in kernel threads.
1995068c7a8SSteffen Klassert
200584fffc8SSebastian Siewiorconfig CRYPTO_CRYPTD
201584fffc8SSebastian Siewior	tristate "Software async crypto daemon"
202b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
203b8a28251SLoc Ho	select CRYPTO_HASH
204584fffc8SSebastian Siewior	select CRYPTO_MANAGER
205584fffc8SSebastian Siewior	help
206584fffc8SSebastian Siewior	  This is a generic software asynchronous crypto daemon that
207584fffc8SSebastian Siewior	  converts an arbitrary synchronous software crypto algorithm
208584fffc8SSebastian Siewior	  into an asynchronous algorithm that executes in a kernel thread.
209584fffc8SSebastian Siewior
210584fffc8SSebastian Siewiorconfig CRYPTO_AUTHENC
211584fffc8SSebastian Siewior	tristate "Authenc support"
212584fffc8SSebastian Siewior	select CRYPTO_AEAD
213b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
214584fffc8SSebastian Siewior	select CRYPTO_MANAGER
215584fffc8SSebastian Siewior	select CRYPTO_HASH
216e94c6a7aSHerbert Xu	select CRYPTO_NULL
217584fffc8SSebastian Siewior	help
218584fffc8SSebastian Siewior	  Authenc: Combined mode wrapper for IPsec.
219cf514b2aSRobert Elliott
220cf514b2aSRobert Elliott	  This is required for IPSec ESP (XFRM_ESP).
221584fffc8SSebastian Siewior
222584fffc8SSebastian Siewiorconfig CRYPTO_TEST
223584fffc8SSebastian Siewior	tristate "Testing module"
22400ea27f1SArd Biesheuvel	depends on m || EXPERT
225da7f033dSHerbert Xu	select CRYPTO_MANAGER
226584fffc8SSebastian Siewior	help
227584fffc8SSebastian Siewior	  Quick & dirty crypto test module.
228584fffc8SSebastian Siewior
229266d0516SHerbert Xuconfig CRYPTO_SIMD
230266d0516SHerbert Xu	tristate
231266d0516SHerbert Xu	select CRYPTO_CRYPTD
232266d0516SHerbert Xu
233735d37b5SBaolin Wangconfig CRYPTO_ENGINE
234735d37b5SBaolin Wang	tristate
235735d37b5SBaolin Wang
236f1f142adSRobert Elliottendmenu
237f1f142adSRobert Elliott
238f1f142adSRobert Elliottmenu "Public-key cryptography"
2393d6228a5SVitaly Chikunov
2403d6228a5SVitaly Chikunovconfig CRYPTO_RSA
24105b37465SRobert Elliott	tristate "RSA (Rivest-Shamir-Adleman)"
2423d6228a5SVitaly Chikunov	select CRYPTO_AKCIPHER
2433d6228a5SVitaly Chikunov	select CRYPTO_MANAGER
2443d6228a5SVitaly Chikunov	select MPILIB
2453d6228a5SVitaly Chikunov	select ASN1
2463d6228a5SVitaly Chikunov	help
24705b37465SRobert Elliott	  RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017)
2483d6228a5SVitaly Chikunov
2493d6228a5SVitaly Chikunovconfig CRYPTO_DH
25005b37465SRobert Elliott	tristate "DH (Diffie-Hellman)"
2513d6228a5SVitaly Chikunov	select CRYPTO_KPP
2523d6228a5SVitaly Chikunov	select MPILIB
2533d6228a5SVitaly Chikunov	help
25405b37465SRobert Elliott	  DH (Diffie-Hellman) key exchange algorithm
2553d6228a5SVitaly Chikunov
2567dce5981SNicolai Stangeconfig CRYPTO_DH_RFC7919_GROUPS
25705b37465SRobert Elliott	bool "RFC 7919 FFDHE groups"
2587dce5981SNicolai Stange	depends on CRYPTO_DH
2591e207964SNicolai Stange	select CRYPTO_RNG_DEFAULT
2607dce5981SNicolai Stange	help
26105b37465SRobert Elliott	  FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups
26205b37465SRobert Elliott	  defined in RFC7919.
26305b37465SRobert Elliott
26405b37465SRobert Elliott	  Support these finite-field groups in DH key exchanges:
26505b37465SRobert Elliott	  - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192
26605b37465SRobert Elliott
26705b37465SRobert Elliott	  If unsure, say N.
2687dce5981SNicolai Stange
2694a2289daSVitaly Chikunovconfig CRYPTO_ECC
2704a2289daSVitaly Chikunov	tristate
27138aa192aSArnd Bergmann	select CRYPTO_RNG_DEFAULT
2724a2289daSVitaly Chikunov
2733d6228a5SVitaly Chikunovconfig CRYPTO_ECDH
27405b37465SRobert Elliott	tristate "ECDH (Elliptic Curve Diffie-Hellman)"
2754a2289daSVitaly Chikunov	select CRYPTO_ECC
2763d6228a5SVitaly Chikunov	select CRYPTO_KPP
2773d6228a5SVitaly Chikunov	help
27805b37465SRobert Elliott	  ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm
27905b37465SRobert Elliott	  using curves P-192, P-256, and P-384 (FIPS 186)
2803d6228a5SVitaly Chikunov
2814e660291SStefan Bergerconfig CRYPTO_ECDSA
28205b37465SRobert Elliott	tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)"
2834e660291SStefan Berger	select CRYPTO_ECC
2844e660291SStefan Berger	select CRYPTO_AKCIPHER
2854e660291SStefan Berger	select ASN1
2864e660291SStefan Berger	help
28705b37465SRobert Elliott	  ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186,
28805b37465SRobert Elliott	  ISO/IEC 14888-3)
28905b37465SRobert Elliott	  using curves P-192, P-256, and P-384
29005b37465SRobert Elliott
29105b37465SRobert Elliott	  Only signature verification is implemented.
2924e660291SStefan Berger
2930d7a7864SVitaly Chikunovconfig CRYPTO_ECRDSA
29405b37465SRobert Elliott	tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)"
2950d7a7864SVitaly Chikunov	select CRYPTO_ECC
2960d7a7864SVitaly Chikunov	select CRYPTO_AKCIPHER
2970d7a7864SVitaly Chikunov	select CRYPTO_STREEBOG
2981036633eSVitaly Chikunov	select OID_REGISTRY
2991036633eSVitaly Chikunov	select ASN1
3000d7a7864SVitaly Chikunov	help
3010d7a7864SVitaly Chikunov	  Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012,
30205b37465SRobert Elliott	  RFC 7091, ISO/IEC 14888-3)
30305b37465SRobert Elliott
30405b37465SRobert Elliott	  One of the Russian cryptographic standard algorithms (called GOST
30505b37465SRobert Elliott	  algorithms). Only signature verification is implemented.
3060d7a7864SVitaly Chikunov
307ea7ecb66STianjia Zhangconfig CRYPTO_SM2
30805b37465SRobert Elliott	tristate "SM2 (ShangMi 2)"
309d2825fa9SJason A. Donenfeld	select CRYPTO_SM3
310ea7ecb66STianjia Zhang	select CRYPTO_AKCIPHER
311ea7ecb66STianjia Zhang	select CRYPTO_MANAGER
312ea7ecb66STianjia Zhang	select MPILIB
313ea7ecb66STianjia Zhang	select ASN1
314ea7ecb66STianjia Zhang	help
31505b37465SRobert Elliott	  SM2 (ShangMi 2) public key algorithm
31605b37465SRobert Elliott
31705b37465SRobert Elliott	  Published by State Encryption Management Bureau, China,
318ea7ecb66STianjia Zhang	  as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012.
319ea7ecb66STianjia Zhang
320ea7ecb66STianjia Zhang	  References:
32105b37465SRobert Elliott	  https://datatracker.ietf.org/doc/draft-shen-sm2-ecdsa/
322ea7ecb66STianjia Zhang	  http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml
323ea7ecb66STianjia Zhang	  http://www.gmbz.org.cn/main/bzlb.html
324ea7ecb66STianjia Zhang
325ee772cb6SArd Biesheuvelconfig CRYPTO_CURVE25519
32605b37465SRobert Elliott	tristate "Curve25519"
327ee772cb6SArd Biesheuvel	select CRYPTO_KPP
328ee772cb6SArd Biesheuvel	select CRYPTO_LIB_CURVE25519_GENERIC
32905b37465SRobert Elliott	help
33005b37465SRobert Elliott	  Curve25519 elliptic curve (RFC7748)
331ee772cb6SArd Biesheuvel
332f1f142adSRobert Elliottendmenu
333584fffc8SSebastian Siewior
334f1f142adSRobert Elliottmenu "Block ciphers"
3351da177e4SLinus Torvalds
3361da177e4SLinus Torvaldsconfig CRYPTO_AES
337cf514b2aSRobert Elliott	tristate "AES (Advanced Encryption Standard)"
338cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3395bb12d78SArd Biesheuvel	select CRYPTO_LIB_AES
3401da177e4SLinus Torvalds	help
341cf514b2aSRobert Elliott	  AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
3421da177e4SLinus Torvalds
3431da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3441da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3451da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3461da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3471da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3481da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3491da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3501da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3511da177e4SLinus Torvalds
3521da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3531da177e4SLinus Torvalds
354b5e0b032SArd Biesheuvelconfig CRYPTO_AES_TI
355cf514b2aSRobert Elliott	tristate "AES (Advanced Encryption Standard) (fixed time)"
356b5e0b032SArd Biesheuvel	select CRYPTO_ALGAPI
357e59c1c98SArd Biesheuvel	select CRYPTO_LIB_AES
358b5e0b032SArd Biesheuvel	help
359cf514b2aSRobert Elliott	  AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
360cf514b2aSRobert Elliott
361b5e0b032SArd Biesheuvel	  This is a generic implementation of AES that attempts to eliminate
362b5e0b032SArd Biesheuvel	  data dependent latencies as much as possible without affecting
363b5e0b032SArd Biesheuvel	  performance too much. It is intended for use by the generic CCM
364b5e0b032SArd Biesheuvel	  and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
365b5e0b032SArd Biesheuvel	  solely on encryption (although decryption is supported as well, but
366b5e0b032SArd Biesheuvel	  with a more dramatic performance hit)
367b5e0b032SArd Biesheuvel
368b5e0b032SArd Biesheuvel	  Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
369b5e0b032SArd Biesheuvel	  8 for decryption), this implementation only uses just two S-boxes of
370b5e0b032SArd Biesheuvel	  256 bytes each, and attempts to eliminate data dependent latencies by
371b5e0b032SArd Biesheuvel	  prefetching the entire table into the cache at the start of each
3720a6a40c2SEric Biggers	  block. Interrupts are also disabled to avoid races where cachelines
3730a6a40c2SEric Biggers	  are evicted when the CPU is interrupted to do something else.
374b5e0b032SArd Biesheuvel
3751da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
376cf514b2aSRobert Elliott	tristate "Anubis"
3771674aea5SArd Biesheuvel	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
378cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3791da177e4SLinus Torvalds	help
380cf514b2aSRobert Elliott	  Anubis cipher algorithm
3811da177e4SLinus Torvalds
3821da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
3831da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
3841da177e4SLinus Torvalds	  in the NESSIE competition.
3851da177e4SLinus Torvalds
386cf514b2aSRobert Elliott	  See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html
387cf514b2aSRobert Elliott	  for further information.
3881da177e4SLinus Torvalds
389f1f142adSRobert Elliottconfig CRYPTO_ARIA
390cf514b2aSRobert Elliott	tristate "ARIA"
391f1f142adSRobert Elliott	select CRYPTO_ALGAPI
392e2ee95b8SHye-Shik Chang	help
393cf514b2aSRobert Elliott	  ARIA cipher algorithm (RFC5794)
394e2ee95b8SHye-Shik Chang
395f1f142adSRobert Elliott	  ARIA is a standard encryption algorithm of the Republic of Korea.
396f1f142adSRobert Elliott	  The ARIA specifies three key sizes and rounds.
397f1f142adSRobert Elliott	  128-bit: 12 rounds.
398f1f142adSRobert Elliott	  192-bit: 14 rounds.
399f1f142adSRobert Elliott	  256-bit: 16 rounds.
400f1f142adSRobert Elliott
401cf514b2aSRobert Elliott	  See:
402cf514b2aSRobert Elliott	  https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do
403584fffc8SSebastian Siewior
404584fffc8SSebastian Siewiorconfig CRYPTO_BLOWFISH
405cf514b2aSRobert Elliott	tristate "Blowfish"
406584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
40752ba867cSJussi Kivilinna	select CRYPTO_BLOWFISH_COMMON
408584fffc8SSebastian Siewior	help
409cf514b2aSRobert Elliott	  Blowfish cipher algorithm, by Bruce Schneier
410584fffc8SSebastian Siewior
411584fffc8SSebastian Siewior	  This is a variable key length cipher which can use keys from 32
412584fffc8SSebastian Siewior	  bits to 448 bits in length.  It's fast, simple and specifically
413584fffc8SSebastian Siewior	  designed for use on "large microprocessors".
414e2ee95b8SHye-Shik Chang
415cf514b2aSRobert Elliott	  See https://www.schneier.com/blowfish.html for further information.
416584fffc8SSebastian Siewior
41752ba867cSJussi Kivilinnaconfig CRYPTO_BLOWFISH_COMMON
41852ba867cSJussi Kivilinna	tristate
41952ba867cSJussi Kivilinna	help
42052ba867cSJussi Kivilinna	  Common parts of the Blowfish cipher algorithm shared by the
42152ba867cSJussi Kivilinna	  generic c and the assembler implementations.
42252ba867cSJussi Kivilinna
423584fffc8SSebastian Siewiorconfig CRYPTO_CAMELLIA
424cf514b2aSRobert Elliott	tristate "Camellia"
425584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
426584fffc8SSebastian Siewior	help
427cf514b2aSRobert Elliott	  Camellia cipher algorithms (ISO/IEC 18033-3)
428584fffc8SSebastian Siewior
429584fffc8SSebastian Siewior	  Camellia is a symmetric key block cipher developed jointly
430584fffc8SSebastian Siewior	  at NTT and Mitsubishi Electric Corporation.
431584fffc8SSebastian Siewior
432584fffc8SSebastian Siewior	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
433584fffc8SSebastian Siewior
434cf514b2aSRobert Elliott	  See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information.
435584fffc8SSebastian Siewior
436044ab525SJussi Kivilinnaconfig CRYPTO_CAST_COMMON
437044ab525SJussi Kivilinna	tristate
438044ab525SJussi Kivilinna	help
439044ab525SJussi Kivilinna	  Common parts of the CAST cipher algorithms shared by the
440044ab525SJussi Kivilinna	  generic c and the assembler implementations.
441044ab525SJussi Kivilinna
442584fffc8SSebastian Siewiorconfig CRYPTO_CAST5
443cf514b2aSRobert Elliott	tristate "CAST5 (CAST-128)"
444584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
445044ab525SJussi Kivilinna	select CRYPTO_CAST_COMMON
446584fffc8SSebastian Siewior	help
447cf514b2aSRobert Elliott	  CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3)
448584fffc8SSebastian Siewior
449584fffc8SSebastian Siewiorconfig CRYPTO_CAST6
450cf514b2aSRobert Elliott	tristate "CAST6 (CAST-256)"
451584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
452044ab525SJussi Kivilinna	select CRYPTO_CAST_COMMON
453584fffc8SSebastian Siewior	help
454cf514b2aSRobert Elliott	  CAST6 (CAST-256) encryption algorithm (RFC2612)
455584fffc8SSebastian Siewior
456584fffc8SSebastian Siewiorconfig CRYPTO_DES
457cf514b2aSRobert Elliott	tristate "DES and Triple DES EDE"
458584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
45904007b0eSArd Biesheuvel	select CRYPTO_LIB_DES
460584fffc8SSebastian Siewior	help
461cf514b2aSRobert Elliott	  DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and
462cf514b2aSRobert Elliott	  Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3)
463cf514b2aSRobert Elliott	  cipher algorithms
464584fffc8SSebastian Siewior
465584fffc8SSebastian Siewiorconfig CRYPTO_FCRYPT
466cf514b2aSRobert Elliott	tristate "FCrypt"
467584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
468b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
469584fffc8SSebastian Siewior	help
470cf514b2aSRobert Elliott	  FCrypt algorithm used by RxRPC
471cf514b2aSRobert Elliott
472cf514b2aSRobert Elliott	  See https://ota.polyonymo.us/fcrypt-paper.txt
473584fffc8SSebastian Siewior
474584fffc8SSebastian Siewiorconfig CRYPTO_KHAZAD
475cf514b2aSRobert Elliott	tristate "Khazad"
4761674aea5SArd Biesheuvel	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
477584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
478584fffc8SSebastian Siewior	help
479cf514b2aSRobert Elliott	  Khazad cipher algorithm
480584fffc8SSebastian Siewior
481584fffc8SSebastian Siewior	  Khazad was a finalist in the initial NESSIE competition.  It is
482584fffc8SSebastian Siewior	  an algorithm optimized for 64-bit processors with good performance
483584fffc8SSebastian Siewior	  on 32-bit processors.  Khazad uses an 128 bit key size.
484584fffc8SSebastian Siewior
485cf514b2aSRobert Elliott	  See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html
486cf514b2aSRobert Elliott	  for further information.
487e2ee95b8SHye-Shik Chang
488584fffc8SSebastian Siewiorconfig CRYPTO_SEED
489cf514b2aSRobert Elliott	tristate "SEED"
4901674aea5SArd Biesheuvel	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
491584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
492584fffc8SSebastian Siewior	help
493cf514b2aSRobert Elliott	  SEED cipher algorithm (RFC4269, ISO/IEC 18033-3)
494584fffc8SSebastian Siewior
495584fffc8SSebastian Siewior	  SEED is a 128-bit symmetric key block cipher that has been
496584fffc8SSebastian Siewior	  developed by KISA (Korea Information Security Agency) as a
497584fffc8SSebastian Siewior	  national standard encryption algorithm of the Republic of Korea.
498584fffc8SSebastian Siewior	  It is a 16 round block cipher with the key size of 128 bit.
499584fffc8SSebastian Siewior
500cf514b2aSRobert Elliott	  See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
501cf514b2aSRobert Elliott	  for further information.
502584fffc8SSebastian Siewior
503584fffc8SSebastian Siewiorconfig CRYPTO_SERPENT
504cf514b2aSRobert Elliott	tristate "Serpent"
505584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
506584fffc8SSebastian Siewior	help
507cf514b2aSRobert Elliott	  Serpent cipher algorithm, by Anderson, Biham & Knudsen
508584fffc8SSebastian Siewior
509584fffc8SSebastian Siewior	  Keys are allowed to be from 0 to 256 bits in length, in steps
510784506a1SArd Biesheuvel	  of 8 bits.
511584fffc8SSebastian Siewior
512cf514b2aSRobert Elliott	  See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information.
513584fffc8SSebastian Siewior
514747c8ce4SGilad Ben-Yossefconfig CRYPTO_SM4
515d2825fa9SJason A. Donenfeld	tristate
516d2825fa9SJason A. Donenfeld
517d2825fa9SJason A. Donenfeldconfig CRYPTO_SM4_GENERIC
518cf514b2aSRobert Elliott	tristate "SM4 (ShangMi 4)"
519747c8ce4SGilad Ben-Yossef	select CRYPTO_ALGAPI
520d2825fa9SJason A. Donenfeld	select CRYPTO_SM4
521747c8ce4SGilad Ben-Yossef	help
522cf514b2aSRobert Elliott	  SM4 cipher algorithms (OSCCA GB/T 32907-2016,
523cf514b2aSRobert Elliott	  ISO/IEC 18033-3:2010/Amd 1:2021)
524747c8ce4SGilad Ben-Yossef
525747c8ce4SGilad Ben-Yossef	  SM4 (GBT.32907-2016) is a cryptographic standard issued by the
526747c8ce4SGilad Ben-Yossef	  Organization of State Commercial Administration of China (OSCCA)
527747c8ce4SGilad Ben-Yossef	  as an authorized cryptographic algorithms for the use within China.
528747c8ce4SGilad Ben-Yossef
529747c8ce4SGilad Ben-Yossef	  SMS4 was originally created for use in protecting wireless
530747c8ce4SGilad Ben-Yossef	  networks, and is mandated in the Chinese National Standard for
531747c8ce4SGilad Ben-Yossef	  Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
532747c8ce4SGilad Ben-Yossef	  (GB.15629.11-2003).
533747c8ce4SGilad Ben-Yossef
534747c8ce4SGilad Ben-Yossef	  The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
535747c8ce4SGilad Ben-Yossef	  standardized through TC 260 of the Standardization Administration
536747c8ce4SGilad Ben-Yossef	  of the People's Republic of China (SAC).
537747c8ce4SGilad Ben-Yossef
538747c8ce4SGilad Ben-Yossef	  The input, output, and key of SMS4 are each 128 bits.
539747c8ce4SGilad Ben-Yossef
540cf514b2aSRobert Elliott	  See https://eprint.iacr.org/2008/329.pdf for further information.
541747c8ce4SGilad Ben-Yossef
542747c8ce4SGilad Ben-Yossef	  If unsure, say N.
543747c8ce4SGilad Ben-Yossef
544584fffc8SSebastian Siewiorconfig CRYPTO_TEA
545cf514b2aSRobert Elliott	tristate "TEA, XTEA and XETA"
5461674aea5SArd Biesheuvel	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
547584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
548584fffc8SSebastian Siewior	help
549cf514b2aSRobert Elliott	  TEA (Tiny Encryption Algorithm) cipher algorithms
550584fffc8SSebastian Siewior
551584fffc8SSebastian Siewior	  Tiny Encryption Algorithm is a simple cipher that uses
552584fffc8SSebastian Siewior	  many rounds for security.  It is very fast and uses
553584fffc8SSebastian Siewior	  little memory.
554584fffc8SSebastian Siewior
555584fffc8SSebastian Siewior	  Xtendend Tiny Encryption Algorithm is a modification to
556584fffc8SSebastian Siewior	  the TEA algorithm to address a potential key weakness
557584fffc8SSebastian Siewior	  in the TEA algorithm.
558584fffc8SSebastian Siewior
559584fffc8SSebastian Siewior	  Xtendend Encryption Tiny Algorithm is a mis-implementation
560584fffc8SSebastian Siewior	  of the XTEA algorithm for compatibility purposes.
561584fffc8SSebastian Siewior
562584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH
563cf514b2aSRobert Elliott	tristate "Twofish"
564584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
565584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
566584fffc8SSebastian Siewior	help
567cf514b2aSRobert Elliott	  Twofish cipher algorithm
568584fffc8SSebastian Siewior
569584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
570584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
571584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
572584fffc8SSebastian Siewior	  bits.
573584fffc8SSebastian Siewior
574cf514b2aSRobert Elliott	  See https://www.schneier.com/twofish.html for further information.
575584fffc8SSebastian Siewior
576584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_COMMON
577584fffc8SSebastian Siewior	tristate
578584fffc8SSebastian Siewior	help
579584fffc8SSebastian Siewior	  Common parts of the Twofish cipher algorithm shared by the
580584fffc8SSebastian Siewior	  generic c and the assembler implementations.
581584fffc8SSebastian Siewior
582f1f142adSRobert Elliottendmenu
583f1f142adSRobert Elliott
584f1f142adSRobert Elliottmenu "Length-preserving ciphers and modes"
585f1f142adSRobert Elliott
586f1f142adSRobert Elliottconfig CRYPTO_ADIANTUM
587cf514b2aSRobert Elliott	tristate "Adiantum"
588f1f142adSRobert Elliott	select CRYPTO_CHACHA20
589f1f142adSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
590f1f142adSRobert Elliott	select CRYPTO_NHPOLY1305
591f1f142adSRobert Elliott	select CRYPTO_MANAGER
592f1f142adSRobert Elliott	help
593cf514b2aSRobert Elliott	  Adiantum tweakable, length-preserving encryption mode
594cf514b2aSRobert Elliott
595cf514b2aSRobert Elliott	  Designed for fast and secure disk encryption, especially on
596f1f142adSRobert Elliott	  CPUs without dedicated crypto instructions.  It encrypts
597f1f142adSRobert Elliott	  each sector using the XChaCha12 stream cipher, two passes of
598f1f142adSRobert Elliott	  an ε-almost-∆-universal hash function, and an invocation of
599f1f142adSRobert Elliott	  the AES-256 block cipher on a single 16-byte block.  On CPUs
600f1f142adSRobert Elliott	  without AES instructions, Adiantum is much faster than
601f1f142adSRobert Elliott	  AES-XTS.
602f1f142adSRobert Elliott
603f1f142adSRobert Elliott	  Adiantum's security is provably reducible to that of its
604f1f142adSRobert Elliott	  underlying stream and block ciphers, subject to a security
605f1f142adSRobert Elliott	  bound.  Unlike XTS, Adiantum is a true wide-block encryption
606f1f142adSRobert Elliott	  mode, so it actually provides an even stronger notion of
607f1f142adSRobert Elliott	  security than XTS, subject to the security bound.
608f1f142adSRobert Elliott
609f1f142adSRobert Elliott	  If unsure, say N.
610f1f142adSRobert Elliott
611f1f142adSRobert Elliottconfig CRYPTO_ARC4
612cf514b2aSRobert Elliott	tristate "ARC4 (Alleged Rivest Cipher 4)"
613f1f142adSRobert Elliott	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
614f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
615f1f142adSRobert Elliott	select CRYPTO_LIB_ARC4
616f1f142adSRobert Elliott	help
617cf514b2aSRobert Elliott	  ARC4 cipher algorithm
618f1f142adSRobert Elliott
619f1f142adSRobert Elliott	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
620f1f142adSRobert Elliott	  bits in length.  This algorithm is required for driver-based
621f1f142adSRobert Elliott	  WEP, but it should not be for other purposes because of the
622f1f142adSRobert Elliott	  weakness of the algorithm.
623f1f142adSRobert Elliott
624f1f142adSRobert Elliottconfig CRYPTO_CHACHA20
625cf514b2aSRobert Elliott	tristate "ChaCha"
626f1f142adSRobert Elliott	select CRYPTO_LIB_CHACHA_GENERIC
627f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
628f1f142adSRobert Elliott	help
629cf514b2aSRobert Elliott	  The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms
630f1f142adSRobert Elliott
631f1f142adSRobert Elliott	  ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
632f1f142adSRobert Elliott	  Bernstein and further specified in RFC7539 for use in IETF protocols.
633cf514b2aSRobert Elliott	  This is the portable C implementation of ChaCha20.  See
634cf514b2aSRobert Elliott	  https://cr.yp.to/chacha/chacha-20080128.pdf for further information.
635f1f142adSRobert Elliott
636f1f142adSRobert Elliott	  XChaCha20 is the application of the XSalsa20 construction to ChaCha20
637f1f142adSRobert Elliott	  rather than to Salsa20.  XChaCha20 extends ChaCha20's nonce length
638f1f142adSRobert Elliott	  from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
639cf514b2aSRobert Elliott	  while provably retaining ChaCha20's security.  See
640cf514b2aSRobert Elliott	  https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information.
641f1f142adSRobert Elliott
642f1f142adSRobert Elliott	  XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
643f1f142adSRobert Elliott	  reduced security margin but increased performance.  It can be needed
644f1f142adSRobert Elliott	  in some performance-sensitive scenarios.
645f1f142adSRobert Elliott
646f1f142adSRobert Elliottconfig CRYPTO_CBC
647cf514b2aSRobert Elliott	tristate "CBC (Cipher Block Chaining)"
648f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
649f1f142adSRobert Elliott	select CRYPTO_MANAGER
650f1f142adSRobert Elliott	help
651cf514b2aSRobert Elliott	  CBC (Cipher Block Chaining) mode (NIST SP800-38A)
652cf514b2aSRobert Elliott
653cf514b2aSRobert Elliott	  This block cipher mode is required for IPSec ESP (XFRM_ESP).
654f1f142adSRobert Elliott
655f1f142adSRobert Elliottconfig CRYPTO_CFB
656cf514b2aSRobert Elliott	tristate "CFB (Cipher Feedback)"
657f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
658f1f142adSRobert Elliott	select CRYPTO_MANAGER
659f1f142adSRobert Elliott	help
660cf514b2aSRobert Elliott	  CFB (Cipher Feedback) mode (NIST SP800-38A)
661cf514b2aSRobert Elliott
662cf514b2aSRobert Elliott	  This block cipher mode is required for TPM2 Cryptography.
663f1f142adSRobert Elliott
664f1f142adSRobert Elliottconfig CRYPTO_CTR
665cf514b2aSRobert Elliott	tristate "CTR (Counter)"
666f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
667f1f142adSRobert Elliott	select CRYPTO_MANAGER
668f1f142adSRobert Elliott	help
669cf514b2aSRobert Elliott	  CTR (Counter) mode (NIST SP800-38A)
670f1f142adSRobert Elliott
671f1f142adSRobert Elliottconfig CRYPTO_CTS
672cf514b2aSRobert Elliott	tristate "CTS (Cipher Text Stealing)"
673f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
674f1f142adSRobert Elliott	select CRYPTO_MANAGER
675f1f142adSRobert Elliott	help
676cf514b2aSRobert Elliott	  CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST
677cf514b2aSRobert Elliott	  Addendum to SP800-38A (October 2010))
678cf514b2aSRobert Elliott
679f1f142adSRobert Elliott	  This mode is required for Kerberos gss mechanism support
680f1f142adSRobert Elliott	  for AES encryption.
681f1f142adSRobert Elliott
682f1f142adSRobert Elliottconfig CRYPTO_ECB
683cf514b2aSRobert Elliott	tristate "ECB (Electronic Codebook)"
684f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
685f1f142adSRobert Elliott	select CRYPTO_MANAGER
686f1f142adSRobert Elliott	help
687cf514b2aSRobert Elliott	  ECB (Electronic Codebook) mode (NIST SP800-38A)
688f1f142adSRobert Elliott
689f1f142adSRobert Elliottconfig CRYPTO_HCTR2
690cf514b2aSRobert Elliott	tristate "HCTR2"
691f1f142adSRobert Elliott	select CRYPTO_XCTR
692f1f142adSRobert Elliott	select CRYPTO_POLYVAL
693f1f142adSRobert Elliott	select CRYPTO_MANAGER
694f1f142adSRobert Elliott	help
695cf514b2aSRobert Elliott	  HCTR2 length-preserving encryption mode
696cf514b2aSRobert Elliott
697cf514b2aSRobert Elliott	  A mode for storage encryption that is efficient on processors with
698cf514b2aSRobert Elliott	  instructions to accelerate AES and carryless multiplication, e.g.
699cf514b2aSRobert Elliott	  x86 processors with AES-NI and CLMUL, and ARM processors with the
700cf514b2aSRobert Elliott	  ARMv8 crypto extensions.
701cf514b2aSRobert Elliott
702cf514b2aSRobert Elliott	  See https://eprint.iacr.org/2021/1441
703f1f142adSRobert Elliott
704f1f142adSRobert Elliottconfig CRYPTO_KEYWRAP
705cf514b2aSRobert Elliott	tristate "KW (AES Key Wrap)"
706f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
707f1f142adSRobert Elliott	select CRYPTO_MANAGER
708f1f142adSRobert Elliott	help
709cf514b2aSRobert Elliott	  KW (AES Key Wrap) authenticated encryption mode (NIST SP800-38F
710cf514b2aSRobert Elliott	  and RFC3394) without padding.
711f1f142adSRobert Elliott
712f1f142adSRobert Elliottconfig CRYPTO_LRW
713cf514b2aSRobert Elliott	tristate "LRW (Liskov Rivest Wagner)"
71461c581a4SArd Biesheuvel	select CRYPTO_LIB_GF128MUL
715f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
716f1f142adSRobert Elliott	select CRYPTO_MANAGER
717f1f142adSRobert Elliott	select CRYPTO_ECB
718f1f142adSRobert Elliott	help
719cf514b2aSRobert Elliott	  LRW (Liskov Rivest Wagner) mode
720cf514b2aSRobert Elliott
721cf514b2aSRobert Elliott	  A tweakable, non malleable, non movable
722f1f142adSRobert Elliott	  narrow block cipher mode for dm-crypt.  Use it with cipher
723f1f142adSRobert Elliott	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
724f1f142adSRobert Elliott	  The first 128, 192 or 256 bits in the key are used for AES and the
725f1f142adSRobert Elliott	  rest is used to tie each cipher block to its logical position.
726f1f142adSRobert Elliott
727cf514b2aSRobert Elliott	  See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf
728cf514b2aSRobert Elliott
729f1f142adSRobert Elliottconfig CRYPTO_OFB
730cf514b2aSRobert Elliott	tristate "OFB (Output Feedback)"
731f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
732f1f142adSRobert Elliott	select CRYPTO_MANAGER
733f1f142adSRobert Elliott	help
734cf514b2aSRobert Elliott	  OFB (Output Feedback) mode (NIST SP800-38A)
735cf514b2aSRobert Elliott
736cf514b2aSRobert Elliott	  This mode makes a block cipher into a synchronous
737f1f142adSRobert Elliott	  stream cipher. It generates keystream blocks, which are then XORed
738f1f142adSRobert Elliott	  with the plaintext blocks to get the ciphertext. Flipping a bit in the
739f1f142adSRobert Elliott	  ciphertext produces a flipped bit in the plaintext at the same
740f1f142adSRobert Elliott	  location. This property allows many error correcting codes to function
741f1f142adSRobert Elliott	  normally even when applied before encryption.
742f1f142adSRobert Elliott
743f1f142adSRobert Elliottconfig CRYPTO_PCBC
744cf514b2aSRobert Elliott	tristate "PCBC (Propagating Cipher Block Chaining)"
745f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
746f1f142adSRobert Elliott	select CRYPTO_MANAGER
747f1f142adSRobert Elliott	help
748cf514b2aSRobert Elliott	  PCBC (Propagating Cipher Block Chaining) mode
749cf514b2aSRobert Elliott
750cf514b2aSRobert Elliott	  This block cipher mode is required for RxRPC.
751f1f142adSRobert Elliott
752f1f142adSRobert Elliottconfig CRYPTO_XCTR
753f1f142adSRobert Elliott	tristate
754f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
755f1f142adSRobert Elliott	select CRYPTO_MANAGER
756f1f142adSRobert Elliott	help
757cf514b2aSRobert Elliott	  XCTR (XOR Counter) mode for HCTR2
758cf514b2aSRobert Elliott
759cf514b2aSRobert Elliott	  This blockcipher mode is a variant of CTR mode using XORs and little-endian
760cf514b2aSRobert Elliott	  addition rather than big-endian arithmetic.
761cf514b2aSRobert Elliott
762f1f142adSRobert Elliott	  XCTR mode is used to implement HCTR2.
763f1f142adSRobert Elliott
764f1f142adSRobert Elliottconfig CRYPTO_XTS
765cf514b2aSRobert Elliott	tristate "XTS (XOR Encrypt XOR with ciphertext stealing)"
766f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
767f1f142adSRobert Elliott	select CRYPTO_MANAGER
768f1f142adSRobert Elliott	select CRYPTO_ECB
769f1f142adSRobert Elliott	help
770cf514b2aSRobert Elliott	  XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
771cf514b2aSRobert Elliott	  and IEEE 1619)
772cf514b2aSRobert Elliott
773cf514b2aSRobert Elliott	  Use with aes-xts-plain, key size 256, 384 or 512 bits. This
774cf514b2aSRobert Elliott	  implementation currently can't handle a sectorsize which is not a
775cf514b2aSRobert Elliott	  multiple of 16 bytes.
776f1f142adSRobert Elliott
777f1f142adSRobert Elliottconfig CRYPTO_NHPOLY1305
778f1f142adSRobert Elliott	tristate
779f1f142adSRobert Elliott	select CRYPTO_HASH
780f1f142adSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
781f1f142adSRobert Elliott
782f1f142adSRobert Elliottendmenu
783f1f142adSRobert Elliott
784f1f142adSRobert Elliottmenu "AEAD (authenticated encryption with associated data) ciphers"
785f1f142adSRobert Elliott
786f1f142adSRobert Elliottconfig CRYPTO_AEGIS128
787e3d2eaddSRobert Elliott	tristate "AEGIS-128"
788f1f142adSRobert Elliott	select CRYPTO_AEAD
789f1f142adSRobert Elliott	select CRYPTO_AES  # for AES S-box tables
790f1f142adSRobert Elliott	help
791e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
792f1f142adSRobert Elliott
793f1f142adSRobert Elliottconfig CRYPTO_AEGIS128_SIMD
794e3d2eaddSRobert Elliott	bool "AEGIS-128 (arm NEON, arm64 NEON)"
795f1f142adSRobert Elliott	depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
796f1f142adSRobert Elliott	default y
797e3d2eaddSRobert Elliott	help
798e3d2eaddSRobert Elliott	  AEGIS-128 AEAD algorithm
799e3d2eaddSRobert Elliott
800e3d2eaddSRobert Elliott	  Architecture: arm or arm64 using:
801e3d2eaddSRobert Elliott	  - NEON (Advanced SIMD) extension
802f1f142adSRobert Elliott
803f1f142adSRobert Elliottconfig CRYPTO_CHACHA20POLY1305
804e3d2eaddSRobert Elliott	tristate "ChaCha20-Poly1305"
805f1f142adSRobert Elliott	select CRYPTO_CHACHA20
806f1f142adSRobert Elliott	select CRYPTO_POLY1305
807f1f142adSRobert Elliott	select CRYPTO_AEAD
808f1f142adSRobert Elliott	select CRYPTO_MANAGER
809f1f142adSRobert Elliott	help
810e3d2eaddSRobert Elliott	  ChaCha20 stream cipher and Poly1305 authenticator combined
811e3d2eaddSRobert Elliott	  mode (RFC8439)
812f1f142adSRobert Elliott
813f1f142adSRobert Elliottconfig CRYPTO_CCM
814cf514b2aSRobert Elliott	tristate "CCM (Counter with Cipher Block Chaining-MAC)"
815f1f142adSRobert Elliott	select CRYPTO_CTR
816f1f142adSRobert Elliott	select CRYPTO_HASH
817f1f142adSRobert Elliott	select CRYPTO_AEAD
818f1f142adSRobert Elliott	select CRYPTO_MANAGER
819f1f142adSRobert Elliott	help
820e3d2eaddSRobert Elliott	  CCM (Counter with Cipher Block Chaining-Message Authentication Code)
821e3d2eaddSRobert Elliott	  authenticated encryption mode (NIST SP800-38C)
822f1f142adSRobert Elliott
823f1f142adSRobert Elliottconfig CRYPTO_GCM
824cf514b2aSRobert Elliott	tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)"
825f1f142adSRobert Elliott	select CRYPTO_CTR
826f1f142adSRobert Elliott	select CRYPTO_AEAD
827f1f142adSRobert Elliott	select CRYPTO_GHASH
828f1f142adSRobert Elliott	select CRYPTO_NULL
829f1f142adSRobert Elliott	select CRYPTO_MANAGER
830f1f142adSRobert Elliott	help
831e3d2eaddSRobert Elliott	  GCM (Galois/Counter Mode) authenticated encryption mode and GMAC
832e3d2eaddSRobert Elliott	  (GCM Message Authentication Code) (NIST SP800-38D)
833e3d2eaddSRobert Elliott
834e3d2eaddSRobert Elliott	  This is required for IPSec ESP (XFRM_ESP).
835f1f142adSRobert Elliott
836f1f142adSRobert Elliottconfig CRYPTO_SEQIV
837f1f142adSRobert Elliott	tristate "Sequence Number IV Generator"
838f1f142adSRobert Elliott	select CRYPTO_AEAD
839f1f142adSRobert Elliott	select CRYPTO_SKCIPHER
840f1f142adSRobert Elliott	select CRYPTO_NULL
841f1f142adSRobert Elliott	select CRYPTO_RNG_DEFAULT
842f1f142adSRobert Elliott	select CRYPTO_MANAGER
843f1f142adSRobert Elliott	help
844e3d2eaddSRobert Elliott	  Sequence Number IV generator
845e3d2eaddSRobert Elliott
846f1f142adSRobert Elliott	  This IV generator generates an IV based on a sequence number by
847e3d2eaddSRobert Elliott	  xoring it with a salt.  This algorithm is mainly useful for CTR.
848e3d2eaddSRobert Elliott
849e3d2eaddSRobert Elliott	  This is required for IPsec ESP (XFRM_ESP).
850f1f142adSRobert Elliott
851f1f142adSRobert Elliottconfig CRYPTO_ECHAINIV
852f1f142adSRobert Elliott	tristate "Encrypted Chain IV Generator"
853f1f142adSRobert Elliott	select CRYPTO_AEAD
854f1f142adSRobert Elliott	select CRYPTO_NULL
855f1f142adSRobert Elliott	select CRYPTO_RNG_DEFAULT
856f1f142adSRobert Elliott	select CRYPTO_MANAGER
857f1f142adSRobert Elliott	help
858e3d2eaddSRobert Elliott	  Encrypted Chain IV generator
859e3d2eaddSRobert Elliott
860f1f142adSRobert Elliott	  This IV generator generates an IV based on the encryption of
861f1f142adSRobert Elliott	  a sequence number xored with a salt.  This is the default
862f1f142adSRobert Elliott	  algorithm for CBC.
863f1f142adSRobert Elliott
864f1f142adSRobert Elliottconfig CRYPTO_ESSIV
865e3d2eaddSRobert Elliott	tristate "Encrypted Salt-Sector IV Generator"
866f1f142adSRobert Elliott	select CRYPTO_AUTHENC
867f1f142adSRobert Elliott	help
868e3d2eaddSRobert Elliott	  Encrypted Salt-Sector IV generator
869e3d2eaddSRobert Elliott
870e3d2eaddSRobert Elliott	  This IV generator is used in some cases by fscrypt and/or
871f1f142adSRobert Elliott	  dm-crypt. It uses the hash of the block encryption key as the
872f1f142adSRobert Elliott	  symmetric key for a block encryption pass applied to the input
873f1f142adSRobert Elliott	  IV, making low entropy IV sources more suitable for block
874f1f142adSRobert Elliott	  encryption.
875f1f142adSRobert Elliott
876f1f142adSRobert Elliott	  This driver implements a crypto API template that can be
877f1f142adSRobert Elliott	  instantiated either as an skcipher or as an AEAD (depending on the
878f1f142adSRobert Elliott	  type of the first template argument), and which defers encryption
879f1f142adSRobert Elliott	  and decryption requests to the encapsulated cipher after applying
880f1f142adSRobert Elliott	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
881f1f142adSRobert Elliott	  that the keys are presented in the same format used by the authenc
882f1f142adSRobert Elliott	  template, and that the IV appears at the end of the authenticated
883f1f142adSRobert Elliott	  associated data (AAD) region (which is how dm-crypt uses it.)
884f1f142adSRobert Elliott
885f1f142adSRobert Elliott	  Note that the use of ESSIV is not recommended for new deployments,
886f1f142adSRobert Elliott	  and so this only needs to be enabled when interoperability with
887f1f142adSRobert Elliott	  existing encrypted volumes of filesystems is required, or when
888f1f142adSRobert Elliott	  building for a particular system that requires it (e.g., when
889f1f142adSRobert Elliott	  the SoC in question has accelerated CBC but not XTS, making CBC
890f1f142adSRobert Elliott	  combined with ESSIV the only feasible mode for h/w accelerated
891f1f142adSRobert Elliott	  block encryption)
892f1f142adSRobert Elliott
893f1f142adSRobert Elliottendmenu
894f1f142adSRobert Elliott
895f1f142adSRobert Elliottmenu "Hashes, digests, and MACs"
896f1f142adSRobert Elliott
897f1f142adSRobert Elliottconfig CRYPTO_BLAKE2B
8983f342a23SRobert Elliott	tristate "BLAKE2b"
899f1f142adSRobert Elliott	select CRYPTO_HASH
900f1f142adSRobert Elliott	help
9013f342a23SRobert Elliott	  BLAKE2b cryptographic hash function (RFC 7693)
9023f342a23SRobert Elliott
9033f342a23SRobert Elliott	  BLAKE2b is optimized for 64-bit platforms and can produce digests
9043f342a23SRobert Elliott	  of any size between 1 and 64 bytes. The keyed hash is also implemented.
905f1f142adSRobert Elliott
906f1f142adSRobert Elliott	  This module provides the following algorithms:
907f1f142adSRobert Elliott	  - blake2b-160
908f1f142adSRobert Elliott	  - blake2b-256
909f1f142adSRobert Elliott	  - blake2b-384
910f1f142adSRobert Elliott	  - blake2b-512
911f1f142adSRobert Elliott
9123f342a23SRobert Elliott	  Used by the btrfs filesystem.
9133f342a23SRobert Elliott
9143f342a23SRobert Elliott	  See https://blake2.net for further information.
9153f342a23SRobert Elliott
916f1f142adSRobert Elliottconfig CRYPTO_CMAC
9173f342a23SRobert Elliott	tristate "CMAC (Cipher-based MAC)"
918f1f142adSRobert Elliott	select CRYPTO_HASH
919f1f142adSRobert Elliott	select CRYPTO_MANAGER
920f1f142adSRobert Elliott	help
9213f342a23SRobert Elliott	  CMAC (Cipher-based Message Authentication Code) authentication
9223f342a23SRobert Elliott	  mode (NIST SP800-38B and IETF RFC4493)
923f1f142adSRobert Elliott
924f1f142adSRobert Elliottconfig CRYPTO_GHASH
9253f342a23SRobert Elliott	tristate "GHASH"
926f1f142adSRobert Elliott	select CRYPTO_HASH
92761c581a4SArd Biesheuvel	select CRYPTO_LIB_GF128MUL
928f1f142adSRobert Elliott	help
9293f342a23SRobert Elliott	  GCM GHASH function (NIST SP800-38D)
930f1f142adSRobert Elliott
931f1f142adSRobert Elliottconfig CRYPTO_HMAC
9323f342a23SRobert Elliott	tristate "HMAC (Keyed-Hash MAC)"
933f1f142adSRobert Elliott	select CRYPTO_HASH
934f1f142adSRobert Elliott	select CRYPTO_MANAGER
935f1f142adSRobert Elliott	help
9363f342a23SRobert Elliott	  HMAC (Keyed-Hash Message Authentication Code) (FIPS 198 and
9373f342a23SRobert Elliott	  RFC2104)
9383f342a23SRobert Elliott
9393f342a23SRobert Elliott	  This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
940f1f142adSRobert Elliott
941f1f142adSRobert Elliottconfig CRYPTO_MD4
9423f342a23SRobert Elliott	tristate "MD4"
943f1f142adSRobert Elliott	select CRYPTO_HASH
944f1f142adSRobert Elliott	help
9453f342a23SRobert Elliott	  MD4 message digest algorithm (RFC1320)
946f1f142adSRobert Elliott
947f1f142adSRobert Elliottconfig CRYPTO_MD5
9483f342a23SRobert Elliott	tristate "MD5"
949f1f142adSRobert Elliott	select CRYPTO_HASH
950f1f142adSRobert Elliott	help
9513f342a23SRobert Elliott	  MD5 message digest algorithm (RFC1321)
952f1f142adSRobert Elliott
953f1f142adSRobert Elliottconfig CRYPTO_MICHAEL_MIC
9543f342a23SRobert Elliott	tristate "Michael MIC"
955f1f142adSRobert Elliott	select CRYPTO_HASH
956f1f142adSRobert Elliott	help
9573f342a23SRobert Elliott	  Michael MIC (Message Integrity Code) (IEEE 802.11i)
9583f342a23SRobert Elliott
9593f342a23SRobert Elliott	  Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol),
9603f342a23SRobert Elliott	  known as WPA (Wif-Fi Protected Access).
9613f342a23SRobert Elliott
9623f342a23SRobert Elliott	  This algorithm is required for TKIP, but it should not be used for
9633f342a23SRobert Elliott	  other purposes because of the weakness of the algorithm.
964f1f142adSRobert Elliott
965f1f142adSRobert Elliottconfig CRYPTO_POLYVAL
966f1f142adSRobert Elliott	tristate
967f1f142adSRobert Elliott	select CRYPTO_HASH
96861c581a4SArd Biesheuvel	select CRYPTO_LIB_GF128MUL
969f1f142adSRobert Elliott	help
9703f342a23SRobert Elliott	  POLYVAL hash function for HCTR2
9713f342a23SRobert Elliott
9723f342a23SRobert Elliott	  This is used in HCTR2.  It is not a general-purpose
973f1f142adSRobert Elliott	  cryptographic hash function.
974f1f142adSRobert Elliott
975f1f142adSRobert Elliottconfig CRYPTO_POLY1305
9763f342a23SRobert Elliott	tristate "Poly1305"
977f1f142adSRobert Elliott	select CRYPTO_HASH
978f1f142adSRobert Elliott	select CRYPTO_LIB_POLY1305_GENERIC
979f1f142adSRobert Elliott	help
9803f342a23SRobert Elliott	  Poly1305 authenticator algorithm (RFC7539)
981f1f142adSRobert Elliott
982f1f142adSRobert Elliott	  Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
983f1f142adSRobert Elliott	  It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
984f1f142adSRobert Elliott	  in IETF protocols. This is the portable C implementation of Poly1305.
985f1f142adSRobert Elliott
986f1f142adSRobert Elliottconfig CRYPTO_RMD160
9873f342a23SRobert Elliott	tristate "RIPEMD-160"
988f1f142adSRobert Elliott	select CRYPTO_HASH
989f1f142adSRobert Elliott	help
9903f342a23SRobert Elliott	  RIPEMD-160 hash function (ISO/IEC 10118-3)
991f1f142adSRobert Elliott
992f1f142adSRobert Elliott	  RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
993f1f142adSRobert Elliott	  to be used as a secure replacement for the 128-bit hash functions
994f1f142adSRobert Elliott	  MD4, MD5 and its predecessor RIPEMD
995f1f142adSRobert Elliott	  (not to be confused with RIPEMD-128).
996f1f142adSRobert Elliott
9973f342a23SRobert Elliott	  Its speed is comparable to SHA-1 and there are no known attacks
998f1f142adSRobert Elliott	  against RIPEMD-160.
999f1f142adSRobert Elliott
1000f1f142adSRobert Elliott	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
10013f342a23SRobert Elliott	  See https://homes.esat.kuleuven.be/~bosselae/ripemd160.html
10023f342a23SRobert Elliott	  for further information.
1003f1f142adSRobert Elliott
1004f1f142adSRobert Elliottconfig CRYPTO_SHA1
10053f342a23SRobert Elliott	tristate "SHA-1"
1006f1f142adSRobert Elliott	select CRYPTO_HASH
1007f1f142adSRobert Elliott	select CRYPTO_LIB_SHA1
1008f1f142adSRobert Elliott	help
10093f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180, ISO/IEC 10118-3)
1010f1f142adSRobert Elliott
1011f1f142adSRobert Elliottconfig CRYPTO_SHA256
10123f342a23SRobert Elliott	tristate "SHA-224 and SHA-256"
1013f1f142adSRobert Elliott	select CRYPTO_HASH
1014f1f142adSRobert Elliott	select CRYPTO_LIB_SHA256
1015f1f142adSRobert Elliott	help
10163f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
1017f1f142adSRobert Elliott
10183f342a23SRobert Elliott	  This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
10193f342a23SRobert Elliott	  Used by the btrfs filesystem, Ceph, NFS, and SMB.
1020f1f142adSRobert Elliott
1021f1f142adSRobert Elliottconfig CRYPTO_SHA512
10223f342a23SRobert Elliott	tristate "SHA-384 and SHA-512"
1023f1f142adSRobert Elliott	select CRYPTO_HASH
1024f1f142adSRobert Elliott	help
10253f342a23SRobert Elliott	  SHA-384 and SHA-512 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
1026f1f142adSRobert Elliott
1027f1f142adSRobert Elliottconfig CRYPTO_SHA3
10283f342a23SRobert Elliott	tristate "SHA-3"
1029f1f142adSRobert Elliott	select CRYPTO_HASH
1030f1f142adSRobert Elliott	help
10313f342a23SRobert Elliott	  SHA-3 secure hash algorithms (FIPS 202, ISO/IEC 10118-3)
1032f1f142adSRobert Elliott
1033f1f142adSRobert Elliottconfig CRYPTO_SM3
1034f1f142adSRobert Elliott	tristate
1035f1f142adSRobert Elliott
1036f1f142adSRobert Elliottconfig CRYPTO_SM3_GENERIC
10373f342a23SRobert Elliott	tristate "SM3 (ShangMi 3)"
1038f1f142adSRobert Elliott	select CRYPTO_HASH
1039f1f142adSRobert Elliott	select CRYPTO_SM3
1040f1f142adSRobert Elliott	help
10413f342a23SRobert Elliott	  SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012, ISO/IEC 10118-3)
10423f342a23SRobert Elliott
10433f342a23SRobert Elliott	  This is part of the Chinese Commercial Cryptography suite.
1044f1f142adSRobert Elliott
1045f1f142adSRobert Elliott	  References:
1046f1f142adSRobert Elliott	  http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
1047f1f142adSRobert Elliott	  https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
1048f1f142adSRobert Elliott
1049f1f142adSRobert Elliottconfig CRYPTO_STREEBOG
10503f342a23SRobert Elliott	tristate "Streebog"
1051f1f142adSRobert Elliott	select CRYPTO_HASH
1052f1f142adSRobert Elliott	help
10533f342a23SRobert Elliott	  Streebog Hash Function (GOST R 34.11-2012, RFC 6986, ISO/IEC 10118-3)
10543f342a23SRobert Elliott
10553f342a23SRobert Elliott	  This is one of the Russian cryptographic standard algorithms (called
10563f342a23SRobert Elliott	  GOST algorithms). This setting enables two hash algorithms with
10573f342a23SRobert Elliott	  256 and 512 bits output.
1058f1f142adSRobert Elliott
1059f1f142adSRobert Elliott	  References:
1060f1f142adSRobert Elliott	  https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
1061f1f142adSRobert Elliott	  https://tools.ietf.org/html/rfc6986
1062f1f142adSRobert Elliott
1063f1f142adSRobert Elliottconfig CRYPTO_VMAC
10643f342a23SRobert Elliott	tristate "VMAC"
1065f1f142adSRobert Elliott	select CRYPTO_HASH
1066f1f142adSRobert Elliott	select CRYPTO_MANAGER
1067f1f142adSRobert Elliott	help
1068f1f142adSRobert Elliott	  VMAC is a message authentication algorithm designed for
1069f1f142adSRobert Elliott	  very high speed on 64-bit architectures.
1070f1f142adSRobert Elliott
10713f342a23SRobert Elliott	  See https://fastcrypto.org/vmac for further information.
1072f1f142adSRobert Elliott
1073f1f142adSRobert Elliottconfig CRYPTO_WP512
10743f342a23SRobert Elliott	tristate "Whirlpool"
1075f1f142adSRobert Elliott	select CRYPTO_HASH
1076f1f142adSRobert Elliott	help
10773f342a23SRobert Elliott	  Whirlpool hash function (ISO/IEC 10118-3)
10783f342a23SRobert Elliott
10793f342a23SRobert Elliott	  512, 384 and 256-bit hashes.
1080f1f142adSRobert Elliott
1081f1f142adSRobert Elliott	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1082f1f142adSRobert Elliott
10833f342a23SRobert Elliott	  See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html
10843f342a23SRobert Elliott	  for further information.
1085f1f142adSRobert Elliott
1086f1f142adSRobert Elliottconfig CRYPTO_XCBC
10873f342a23SRobert Elliott	tristate "XCBC-MAC (Extended Cipher Block Chaining MAC)"
1088f1f142adSRobert Elliott	select CRYPTO_HASH
1089f1f142adSRobert Elliott	select CRYPTO_MANAGER
1090f1f142adSRobert Elliott	help
10913f342a23SRobert Elliott	  XCBC-MAC (Extended Cipher Block Chaining Message Authentication
10923f342a23SRobert Elliott	  Code) (RFC3566)
1093f1f142adSRobert Elliott
1094f1f142adSRobert Elliottconfig CRYPTO_XXHASH
10953f342a23SRobert Elliott	tristate "xxHash"
1096f1f142adSRobert Elliott	select CRYPTO_HASH
1097f1f142adSRobert Elliott	select XXHASH
1098f1f142adSRobert Elliott	help
10993f342a23SRobert Elliott	  xxHash non-cryptographic hash algorithm
11003f342a23SRobert Elliott
11013f342a23SRobert Elliott	  Extremely fast, working at speeds close to RAM limits.
11023f342a23SRobert Elliott
11033f342a23SRobert Elliott	  Used by the btrfs filesystem.
1104f1f142adSRobert Elliott
1105f1f142adSRobert Elliottendmenu
1106f1f142adSRobert Elliott
1107f1f142adSRobert Elliottmenu "CRCs (cyclic redundancy checks)"
1108f1f142adSRobert Elliott
1109f1f142adSRobert Elliottconfig CRYPTO_CRC32C
1110ec84348dSRobert Elliott	tristate "CRC32c"
1111f1f142adSRobert Elliott	select CRYPTO_HASH
1112f1f142adSRobert Elliott	select CRC32
1113f1f142adSRobert Elliott	help
1114ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
1115ec84348dSRobert Elliott
1116ec84348dSRobert Elliott	  A 32-bit CRC (cyclic redundancy check) with a polynomial defined
1117ec84348dSRobert Elliott	  by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic
1118ec84348dSRobert Elliott	  Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions
1119ec84348dSRobert Elliott	  on Communications, Vol. 41, No. 6, June 1993, selected for use with
1120ec84348dSRobert Elliott	  iSCSI.
1121ec84348dSRobert Elliott
1122ec84348dSRobert Elliott	  Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI.
1123f1f142adSRobert Elliott
1124f1f142adSRobert Elliottconfig CRYPTO_CRC32
1125ec84348dSRobert Elliott	tristate "CRC32"
1126f1f142adSRobert Elliott	select CRYPTO_HASH
1127f1f142adSRobert Elliott	select CRC32
1128f1f142adSRobert Elliott	help
1129ec84348dSRobert Elliott	  CRC32 CRC algorithm (IEEE 802.3)
1130ec84348dSRobert Elliott
1131ec84348dSRobert Elliott	  Used by RoCEv2 and f2fs.
1132f1f142adSRobert Elliott
1133f1f142adSRobert Elliottconfig CRYPTO_CRCT10DIF
1134ec84348dSRobert Elliott	tristate "CRCT10DIF"
1135f1f142adSRobert Elliott	select CRYPTO_HASH
1136f1f142adSRobert Elliott	help
1137ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
1138ec84348dSRobert Elliott
1139ec84348dSRobert Elliott	  CRC algorithm used by the SCSI Block Commands standard.
1140f1f142adSRobert Elliott
1141f1f142adSRobert Elliottconfig CRYPTO_CRC64_ROCKSOFT
1142ec84348dSRobert Elliott	tristate "CRC64 based on Rocksoft Model algorithm"
1143f1f142adSRobert Elliott	depends on CRC64
1144f1f142adSRobert Elliott	select CRYPTO_HASH
1145ec84348dSRobert Elliott	help
1146ec84348dSRobert Elliott	  CRC64 CRC algorithm based on the Rocksoft Model CRC Algorithm
1147ec84348dSRobert Elliott
1148ec84348dSRobert Elliott	  Used by the NVMe implementation of T10 DIF (BLK_DEV_INTEGRITY)
1149ec84348dSRobert Elliott
1150ec84348dSRobert Elliott	  See https://zlib.net/crc_v3.txt
1151f1f142adSRobert Elliott
1152f1f142adSRobert Elliottendmenu
1153f1f142adSRobert Elliott
1154f1f142adSRobert Elliottmenu "Compression"
1155584fffc8SSebastian Siewior
11561da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
1157a9a98d49SRobert Elliott	tristate "Deflate"
1158cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1159f6ded09dSGiovanni Cabiddu	select CRYPTO_ACOMP2
11601da177e4SLinus Torvalds	select ZLIB_INFLATE
11611da177e4SLinus Torvalds	select ZLIB_DEFLATE
11621da177e4SLinus Torvalds	help
1163a9a98d49SRobert Elliott	  Deflate compression algorithm (RFC1951)
11641da177e4SLinus Torvalds
1165a9a98d49SRobert Elliott	  Used by IPSec with the IPCOMP protocol (RFC3173, RFC2394)
11661da177e4SLinus Torvalds
11670b77abb3SZoltan Sogorconfig CRYPTO_LZO
1168a9a98d49SRobert Elliott	tristate "LZO"
11690b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
1170ac9d2c4bSGiovanni Cabiddu	select CRYPTO_ACOMP2
11710b77abb3SZoltan Sogor	select LZO_COMPRESS
11720b77abb3SZoltan Sogor	select LZO_DECOMPRESS
11730b77abb3SZoltan Sogor	help
1174a9a98d49SRobert Elliott	  LZO compression algorithm
1175a9a98d49SRobert Elliott
1176a9a98d49SRobert Elliott	  See https://www.oberhumer.com/opensource/lzo/ for further information.
11770b77abb3SZoltan Sogor
117835a1fc18SSeth Jenningsconfig CRYPTO_842
1179a9a98d49SRobert Elliott	tristate "842"
11802062c5b6SDan Streetman	select CRYPTO_ALGAPI
11816a8de3aeSGiovanni Cabiddu	select CRYPTO_ACOMP2
11822062c5b6SDan Streetman	select 842_COMPRESS
11832062c5b6SDan Streetman	select 842_DECOMPRESS
118435a1fc18SSeth Jennings	help
1185a9a98d49SRobert Elliott	  842 compression algorithm by IBM
1186a9a98d49SRobert Elliott
1187a9a98d49SRobert Elliott	  See https://github.com/plauth/lib842 for further information.
118835a1fc18SSeth Jennings
11890ea8530dSChanho Minconfig CRYPTO_LZ4
1190a9a98d49SRobert Elliott	tristate "LZ4"
11910ea8530dSChanho Min	select CRYPTO_ALGAPI
11928cd9330eSGiovanni Cabiddu	select CRYPTO_ACOMP2
11930ea8530dSChanho Min	select LZ4_COMPRESS
11940ea8530dSChanho Min	select LZ4_DECOMPRESS
11950ea8530dSChanho Min	help
1196a9a98d49SRobert Elliott	  LZ4 compression algorithm
1197a9a98d49SRobert Elliott
1198a9a98d49SRobert Elliott	  See https://github.com/lz4/lz4 for further information.
11990ea8530dSChanho Min
12000ea8530dSChanho Minconfig CRYPTO_LZ4HC
1201a9a98d49SRobert Elliott	tristate "LZ4HC"
12020ea8530dSChanho Min	select CRYPTO_ALGAPI
120391d53d96SGiovanni Cabiddu	select CRYPTO_ACOMP2
12040ea8530dSChanho Min	select LZ4HC_COMPRESS
12050ea8530dSChanho Min	select LZ4_DECOMPRESS
12060ea8530dSChanho Min	help
1207a9a98d49SRobert Elliott	  LZ4 high compression mode algorithm
1208a9a98d49SRobert Elliott
1209a9a98d49SRobert Elliott	  See https://github.com/lz4/lz4 for further information.
12100ea8530dSChanho Min
1211d28fc3dbSNick Terrellconfig CRYPTO_ZSTD
1212a9a98d49SRobert Elliott	tristate "Zstd"
1213d28fc3dbSNick Terrell	select CRYPTO_ALGAPI
1214d28fc3dbSNick Terrell	select CRYPTO_ACOMP2
1215d28fc3dbSNick Terrell	select ZSTD_COMPRESS
1216d28fc3dbSNick Terrell	select ZSTD_DECOMPRESS
1217d28fc3dbSNick Terrell	help
1218a9a98d49SRobert Elliott	  zstd compression algorithm
1219a9a98d49SRobert Elliott
1220a9a98d49SRobert Elliott	  See https://github.com/facebook/zstd for further information.
1221d28fc3dbSNick Terrell
1222f1f142adSRobert Elliottendmenu
1223f1f142adSRobert Elliott
1224f1f142adSRobert Elliottmenu "Random number generation"
122517f0f4a4SNeil Horman
122617f0f4a4SNeil Hormanconfig CRYPTO_ANSI_CPRNG
1227a9a98d49SRobert Elliott	tristate "ANSI PRNG (Pseudo Random Number Generator)"
122817f0f4a4SNeil Horman	select CRYPTO_AES
122917f0f4a4SNeil Horman	select CRYPTO_RNG
123017f0f4a4SNeil Horman	help
1231a9a98d49SRobert Elliott	  Pseudo RNG (random number generator) (ANSI X9.31 Appendix A.2.4)
1232a9a98d49SRobert Elliott
1233a9a98d49SRobert Elliott	  This uses the AES cipher algorithm.
1234a9a98d49SRobert Elliott
1235a9a98d49SRobert Elliott	  Note that this option must be enabled if CRYPTO_FIPS is selected
123617f0f4a4SNeil Horman
1237f2c89a10SHerbert Xumenuconfig CRYPTO_DRBG_MENU
1238a9a98d49SRobert Elliott	tristate "NIST SP800-90A DRBG (Deterministic Random Bit Generator)"
1239419090c6SStephan Mueller	help
1240a9a98d49SRobert Elliott	  DRBG (Deterministic Random Bit Generator) (NIST SP800-90A)
1241a9a98d49SRobert Elliott
1242a9a98d49SRobert Elliott	  In the following submenu, one or more of the DRBG types must be selected.
1243419090c6SStephan Mueller
1244f2c89a10SHerbert Xuif CRYPTO_DRBG_MENU
1245419090c6SStephan Mueller
1246419090c6SStephan Muellerconfig CRYPTO_DRBG_HMAC
1247401e4238SHerbert Xu	bool
1248419090c6SStephan Mueller	default y
1249419090c6SStephan Mueller	select CRYPTO_HMAC
12505261cdf4SStephan Mueller	select CRYPTO_SHA512
1251419090c6SStephan Mueller
1252419090c6SStephan Muellerconfig CRYPTO_DRBG_HASH
1253a9a98d49SRobert Elliott	bool "Hash_DRBG"
1254826775bbSHerbert Xu	select CRYPTO_SHA256
1255419090c6SStephan Mueller	help
1256a9a98d49SRobert Elliott	  Hash_DRBG variant as defined in NIST SP800-90A.
1257a9a98d49SRobert Elliott
1258a9a98d49SRobert Elliott	  This uses the SHA-1, SHA-256, SHA-384, or SHA-512 hash algorithms.
1259419090c6SStephan Mueller
1260419090c6SStephan Muellerconfig CRYPTO_DRBG_CTR
1261a9a98d49SRobert Elliott	bool "CTR_DRBG"
1262419090c6SStephan Mueller	select CRYPTO_AES
1263d6fc1a45SCorentin Labbe	select CRYPTO_CTR
1264419090c6SStephan Mueller	help
1265a9a98d49SRobert Elliott	  CTR_DRBG variant as defined in NIST SP800-90A.
1266a9a98d49SRobert Elliott
1267a9a98d49SRobert Elliott	  This uses the AES cipher algorithm with the counter block mode.
1268419090c6SStephan Mueller
1269f2c89a10SHerbert Xuconfig CRYPTO_DRBG
1270f2c89a10SHerbert Xu	tristate
1271401e4238SHerbert Xu	default CRYPTO_DRBG_MENU
1272f2c89a10SHerbert Xu	select CRYPTO_RNG
1273bb5530e4SStephan Mueller	select CRYPTO_JITTERENTROPY
1274f2c89a10SHerbert Xu
1275f2c89a10SHerbert Xuendif	# if CRYPTO_DRBG_MENU
1276419090c6SStephan Mueller
1277bb5530e4SStephan Muellerconfig CRYPTO_JITTERENTROPY
1278a9a98d49SRobert Elliott	tristate "CPU Jitter Non-Deterministic RNG (Random Number Generator)"
12792f313e02SArnd Bergmann	select CRYPTO_RNG
1280bb5530e4SStephan Mueller	help
1281a9a98d49SRobert Elliott	  CPU Jitter RNG (Random Number Generator) from the Jitterentropy library
1282a9a98d49SRobert Elliott
1283a9a98d49SRobert Elliott	  A non-physical non-deterministic ("true") RNG (e.g., an entropy source
1284a9a98d49SRobert Elliott	  compliant with NIST SP800-90B) intended to provide a seed to a
1285a9a98d49SRobert Elliott	  deterministic RNG (e.g.  per NIST SP800-90C).
1286a9a98d49SRobert Elliott	  This RNG does not perform any cryptographic whitening of the generated
1287a9a98d49SRobert Elliott
1288a9a98d49SRobert Elliott	  See https://www.chronox.de/jent.html
1289bb5530e4SStephan Mueller
1290026a733eSStephan Müllerconfig CRYPTO_KDF800108_CTR
1291026a733eSStephan Müller	tristate
1292a88592ccSHerbert Xu	select CRYPTO_HMAC
1293304b4aceSStephan Müller	select CRYPTO_SHA256
1294026a733eSStephan Müller
1295f1f142adSRobert Elliottendmenu
12969bc51715SRobert Elliottmenu "Userspace interface"
1297f1f142adSRobert Elliott
129803c8efc1SHerbert Xuconfig CRYPTO_USER_API
129903c8efc1SHerbert Xu	tristate
130003c8efc1SHerbert Xu
1301fe869cdbSHerbert Xuconfig CRYPTO_USER_API_HASH
13029bc51715SRobert Elliott	tristate "Hash algorithms"
13037451708fSHerbert Xu	depends on NET
1304fe869cdbSHerbert Xu	select CRYPTO_HASH
1305fe869cdbSHerbert Xu	select CRYPTO_USER_API
1306fe869cdbSHerbert Xu	help
13079bc51715SRobert Elliott	  Enable the userspace interface for hash algorithms.
13089bc51715SRobert Elliott
13099bc51715SRobert Elliott	  See Documentation/crypto/userspace-if.rst and
13109bc51715SRobert Elliott	  https://www.chronox.de/libkcapi/html/index.html
1311fe869cdbSHerbert Xu
13128ff59090SHerbert Xuconfig CRYPTO_USER_API_SKCIPHER
13139bc51715SRobert Elliott	tristate "Symmetric key cipher algorithms"
13147451708fSHerbert Xu	depends on NET
1315b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
13168ff59090SHerbert Xu	select CRYPTO_USER_API
13178ff59090SHerbert Xu	help
13189bc51715SRobert Elliott	  Enable the userspace interface for symmetric key cipher algorithms.
13199bc51715SRobert Elliott
13209bc51715SRobert Elliott	  See Documentation/crypto/userspace-if.rst and
13219bc51715SRobert Elliott	  https://www.chronox.de/libkcapi/html/index.html
13228ff59090SHerbert Xu
13232f375538SStephan Muellerconfig CRYPTO_USER_API_RNG
13249bc51715SRobert Elliott	tristate "RNG (random number generator) algorithms"
13252f375538SStephan Mueller	depends on NET
13262f375538SStephan Mueller	select CRYPTO_RNG
13272f375538SStephan Mueller	select CRYPTO_USER_API
13282f375538SStephan Mueller	help
13299bc51715SRobert Elliott	  Enable the userspace interface for RNG (random number generator)
13309bc51715SRobert Elliott	  algorithms.
13319bc51715SRobert Elliott
13329bc51715SRobert Elliott	  See Documentation/crypto/userspace-if.rst and
13339bc51715SRobert Elliott	  https://www.chronox.de/libkcapi/html/index.html
13342f375538SStephan Mueller
133577ebdabeSElena Petrovaconfig CRYPTO_USER_API_RNG_CAVP
133677ebdabeSElena Petrova	bool "Enable CAVP testing of DRBG"
133777ebdabeSElena Petrova	depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG
133877ebdabeSElena Petrova	help
13399bc51715SRobert Elliott	  Enable extra APIs in the userspace interface for NIST CAVP
13409bc51715SRobert Elliott	  (Cryptographic Algorithm Validation Program) testing:
13419bc51715SRobert Elliott	  - resetting DRBG entropy
13429bc51715SRobert Elliott	  - providing Additional Data
13439bc51715SRobert Elliott
134477ebdabeSElena Petrova	  This should only be enabled for CAVP testing. You should say
134577ebdabeSElena Petrova	  no unless you know what this is.
134677ebdabeSElena Petrova
1347b64a2d95SHerbert Xuconfig CRYPTO_USER_API_AEAD
13489bc51715SRobert Elliott	tristate "AEAD cipher algorithms"
1349b64a2d95SHerbert Xu	depends on NET
1350b64a2d95SHerbert Xu	select CRYPTO_AEAD
1351b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
135272548b09SStephan Mueller	select CRYPTO_NULL
1353b64a2d95SHerbert Xu	select CRYPTO_USER_API
1354b64a2d95SHerbert Xu	help
13559bc51715SRobert Elliott	  Enable the userspace interface for AEAD cipher algorithms.
13569bc51715SRobert Elliott
13579bc51715SRobert Elliott	  See Documentation/crypto/userspace-if.rst and
13589bc51715SRobert Elliott	  https://www.chronox.de/libkcapi/html/index.html
1359b64a2d95SHerbert Xu
13609ace6771SArd Biesheuvelconfig CRYPTO_USER_API_ENABLE_OBSOLETE
13619bc51715SRobert Elliott	bool "Obsolete cryptographic algorithms"
13629ace6771SArd Biesheuvel	depends on CRYPTO_USER_API
13639ace6771SArd Biesheuvel	default y
13649ace6771SArd Biesheuvel	help
13659ace6771SArd Biesheuvel	  Allow obsolete cryptographic algorithms to be selected that have
13669ace6771SArd Biesheuvel	  already been phased out from internal use by the kernel, and are
13679ace6771SArd Biesheuvel	  only useful for userspace clients that still rely on them.
13689ace6771SArd Biesheuvel
1369cac5818cSCorentin Labbeconfig CRYPTO_STATS
13709bc51715SRobert Elliott	bool "Crypto usage statistics"
1371a6a31385SCorentin Labbe	depends on CRYPTO_USER
1372cac5818cSCorentin Labbe	help
13739bc51715SRobert Elliott	  Enable the gathering of crypto stats.
13749bc51715SRobert Elliott
13759bc51715SRobert Elliott	  This collects data sizes, numbers of requests, and numbers
13769bc51715SRobert Elliott	  of errors processed by:
13779bc51715SRobert Elliott	  - AEAD ciphers (encrypt, decrypt)
13789bc51715SRobert Elliott	  - asymmetric key ciphers (encrypt, decrypt, verify, sign)
13799bc51715SRobert Elliott	  - symmetric key ciphers (encrypt, decrypt)
13809bc51715SRobert Elliott	  - compression algorithms (compress, decompress)
13819bc51715SRobert Elliott	  - hash algorithms (hash)
13829bc51715SRobert Elliott	  - key-agreement protocol primitives (setsecret, generate
13839bc51715SRobert Elliott	    public key, compute shared secret)
13849bc51715SRobert Elliott	  - RNG (generate, seed)
1385cac5818cSCorentin Labbe
1386f1f142adSRobert Elliottendmenu
1387f1f142adSRobert Elliott
1388ee08997fSDmitry Kasatkinconfig CRYPTO_HASH_INFO
1389ee08997fSDmitry Kasatkin	bool
1390ee08997fSDmitry Kasatkin
139127bc50fcSLinus Torvaldsif !KMSAN # avoid false positives from assembly
13924a329fecSRobert Elliottif ARM
13934a329fecSRobert Elliottsource "arch/arm/crypto/Kconfig"
13944a329fecSRobert Elliottendif
13954a329fecSRobert Elliottif ARM64
13964a329fecSRobert Elliottsource "arch/arm64/crypto/Kconfig"
13974a329fecSRobert Elliottendif
1398*2f164822SMin Zhouif LOONGARCH
1399*2f164822SMin Zhousource "arch/loongarch/crypto/Kconfig"
1400*2f164822SMin Zhouendif
1401e45f710bSRobert Elliottif MIPS
1402e45f710bSRobert Elliottsource "arch/mips/crypto/Kconfig"
1403e45f710bSRobert Elliottendif
14046a490a4eSRobert Elliottif PPC
14056a490a4eSRobert Elliottsource "arch/powerpc/crypto/Kconfig"
14066a490a4eSRobert Elliottendif
1407c9d24c97SRobert Elliottif S390
1408c9d24c97SRobert Elliottsource "arch/s390/crypto/Kconfig"
1409c9d24c97SRobert Elliottendif
14100e9f9ea6SRobert Elliottif SPARC
14110e9f9ea6SRobert Elliottsource "arch/sparc/crypto/Kconfig"
14120e9f9ea6SRobert Elliottendif
141328a936efSRobert Elliottif X86
141428a936efSRobert Elliottsource "arch/x86/crypto/Kconfig"
141528a936efSRobert Elliottendif
141627bc50fcSLinus Torvaldsendif
1417e45f710bSRobert Elliott
14181da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
14198636a1f9SMasahiro Yamadasource "crypto/asymmetric_keys/Kconfig"
14208636a1f9SMasahiro Yamadasource "certs/Kconfig"
14211da177e4SLinus Torvalds
1422cce9e06dSHerbert Xuendif	# if CRYPTO
1423