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" 18abfed87eSJason A. Donenfeld select CRYPTO_LIB_UTILS 191da177e4SLinus Torvalds help 201da177e4SLinus Torvalds This option provides the core Cryptographic API. 211da177e4SLinus Torvalds 22cce9e06dSHerbert Xuif CRYPTO 23cce9e06dSHerbert Xu 24584fffc8SSebastian Siewiormenu "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_SELFTESTS 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 75149a3971SHerbert Xuconfig CRYPTO_SIG 766a0fcbb4SHerbert Xu tristate 77b95bba5dSEric Biggers select CRYPTO_SIG2 785cde0af2SHerbert Xu select CRYPTO_ALGAPI 79b95bba5dSEric Biggers 805cde0af2SHerbert Xuconfig CRYPTO_SIG2 816a0fcbb4SHerbert Xu tristate 82b95bba5dSEric Biggers select CRYPTO_ALGAPI2 836a0fcbb4SHerbert Xu 846a0fcbb4SHerbert Xuconfig CRYPTO_SKCIPHER 856a0fcbb4SHerbert Xu tristate 865cde0af2SHerbert Xu select CRYPTO_SKCIPHER2 87055bcee3SHerbert Xu select CRYPTO_ALGAPI 88055bcee3SHerbert Xu select CRYPTO_ECB 896a0fcbb4SHerbert Xu 90055bcee3SHerbert Xuconfig CRYPTO_SKCIPHER2 91055bcee3SHerbert Xu tristate 926a0fcbb4SHerbert Xu select CRYPTO_ALGAPI2 936a0fcbb4SHerbert Xu 946a0fcbb4SHerbert Xuconfig CRYPTO_HASH 956a0fcbb4SHerbert Xu tristate 9617f0f4a4SNeil Horman select CRYPTO_HASH2 9717f0f4a4SNeil Horman select CRYPTO_ALGAPI 986a0fcbb4SHerbert Xu 9917f0f4a4SNeil Hormanconfig CRYPTO_HASH2 10017f0f4a4SNeil Horman tristate 1016a0fcbb4SHerbert Xu select CRYPTO_ALGAPI2 1026a0fcbb4SHerbert Xu 1036a0fcbb4SHerbert Xuconfig CRYPTO_RNG 1046a0fcbb4SHerbert Xu tristate 105401e4238SHerbert Xu select CRYPTO_RNG2 106401e4238SHerbert Xu select CRYPTO_ALGAPI 107401e4238SHerbert Xu 108401e4238SHerbert Xuconfig CRYPTO_RNG2 1093c339ab8STadeusz Struk tristate 1103c339ab8STadeusz Struk select CRYPTO_ALGAPI2 1113c339ab8STadeusz Struk 1123c339ab8STadeusz Strukconfig CRYPTO_RNG_DEFAULT 1133c339ab8STadeusz Struk tristate 1143c339ab8STadeusz Struk select CRYPTO_DRBG_MENU 1153c339ab8STadeusz Struk 1163c339ab8STadeusz Strukconfig CRYPTO_AKCIPHER2 1173c339ab8STadeusz Struk tristate 1184e5f2c40SSalvatore Benedetto select CRYPTO_ALGAPI2 1194e5f2c40SSalvatore Benedetto 1204e5f2c40SSalvatore Benedettoconfig CRYPTO_AKCIPHER 1214e5f2c40SSalvatore Benedetto tristate 1224e5f2c40SSalvatore Benedetto select CRYPTO_AKCIPHER2 1234e5f2c40SSalvatore Benedetto select CRYPTO_ALGAPI 1244e5f2c40SSalvatore Benedetto 1254e5f2c40SSalvatore Benedettoconfig CRYPTO_KPP2 1264e5f2c40SSalvatore Benedetto tristate 1272ebda74fSGiovanni Cabiddu select CRYPTO_ALGAPI2 1282ebda74fSGiovanni Cabiddu 1292ebda74fSGiovanni Cabidduconfig CRYPTO_KPP 1308cd579d2SBart Van Assche tristate 1312ebda74fSGiovanni Cabiddu select CRYPTO_ALGAPI 1322ebda74fSGiovanni Cabiddu select CRYPTO_KPP2 1332ebda74fSGiovanni Cabiddu 1342ebda74fSGiovanni Cabidduconfig CRYPTO_ACOMP2 1352ebda74fSGiovanni Cabiddu tristate 1362ebda74fSGiovanni Cabiddu select CRYPTO_ALGAPI2 1372b8c19dbSHerbert Xu select SGL_ALLOC 1382b8c19dbSHerbert Xu 1396a0fcbb4SHerbert Xuconfig CRYPTO_ACOMP 1402b8c19dbSHerbert Xu tristate 1412b8c19dbSHerbert Xu select CRYPTO_ALGAPI 1422b8c19dbSHerbert Xu select CRYPTO_ACOMP2 1432b8c19dbSHerbert Xu 1446a0fcbb4SHerbert Xuconfig CRYPTO_HKDF 1456a0fcbb4SHerbert Xu tristate 1466a0fcbb4SHerbert Xu select CRYPTO_SHA256 if CRYPTO_SELFTESTS 1476a0fcbb4SHerbert Xu select CRYPTO_SHA512 if CRYPTO_SELFTESTS 148b95bba5dSEric Biggers select CRYPTO_HASH2 149946cc463STadeusz Struk 1504e5f2c40SSalvatore Benedettoconfig CRYPTO_MANAGER 1512ebda74fSGiovanni Cabiddu tristate 1526a0fcbb4SHerbert Xu default CRYPTO_ALGAPI if CRYPTO_SELFTESTS 153a38f7907SSteffen Klassert select CRYPTO_MANAGER2 154a38f7907SSteffen Klassert help 1555db017aaSHerbert Xu This provides the support for instantiating templates such as 156a38f7907SSteffen Klassert cbc(aes), and the support for the crypto self-tests. 157a38f7907SSteffen Klassert 158d19978f5SValdis.Kletnieks@vt.educonfig CRYPTO_MANAGER2 159a38f7907SSteffen Klassert def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) 160a38f7907SSteffen Klassert select CRYPTO_ACOMP2 161326a6346SHerbert Xu select CRYPTO_AEAD2 162326a6346SHerbert Xu select CRYPTO_AKCIPHER2 16300ca28a5SHerbert Xu select CRYPTO_SIG2 1640b767f96SAlexander Shishkin select CRYPTO_HASH2 165326a6346SHerbert Xu select CRYPTO_KPP2 166326a6346SHerbert Xu select CRYPTO_RNG2 1670b767f96SAlexander Shishkin select CRYPTO_SKCIPHER2 1685b2706a4SEric Biggers 1695b2706a4SEric Biggersconfig CRYPTO_USER 1706569e309SJason A. Donenfeld tristate "Userspace cryptographic algorithm configuration" 1715b2706a4SEric Biggers depends on NET 1725b2706a4SEric Biggers select CRYPTO_MANAGER 1735b2706a4SEric Biggers help 1745b2706a4SEric Biggers Userspace configuration for cryptographic instantiations such as 1755b2706a4SEric Biggers cbc(aes). 1765b2706a4SEric Biggers 1775b2706a4SEric Biggersconfig CRYPTO_SELFTESTS 178584fffc8SSebastian Siewior bool "Enable cryptographic self-tests" 179e590e132SEric Biggers depends on EXPERT 180584fffc8SSebastian Siewior help 181584fffc8SSebastian Siewior Enable the cryptographic self-tests. 182584fffc8SSebastian Siewior 183149a3971SHerbert Xu The cryptographic self-tests run at boot time, or at algorithm 184584fffc8SSebastian Siewior registration time if algorithms are dynamically loaded later. 185584fffc8SSebastian Siewior 186584fffc8SSebastian Siewior There are two main use cases for these tests: 187149a3971SHerbert Xu 188dd43c4e9SHerbert Xu - Development and pre-release testing. In this case, also enable 189149a3971SHerbert Xu CRYPTO_SELFTESTS_FULL to get the full set of tests. All crypto code 190b95bba5dSEric Biggers in the kernel is expected to pass the full set of tests. 191149a3971SHerbert Xu 192149a3971SHerbert Xu - Production kernels, to help prevent buggy drivers from being used 1935068c7a8SSteffen Klassert and/or meet FIPS 140-3 pre-operational testing requirements. In 1943b4afaf2SKees Cook this case, enable CRYPTO_SELFTESTS but not CRYPTO_SELFTESTS_FULL. 1953b4afaf2SKees Cook 1965068c7a8SSteffen Klassertconfig CRYPTO_SELFTESTS_FULL 1975068c7a8SSteffen Klassert bool "Enable the full set of cryptographic self-tests" 1985068c7a8SSteffen Klassert depends on CRYPTO_SELFTESTS 1995068c7a8SSteffen Klassert help 2005068c7a8SSteffen Klassert Enable the full set of cryptographic self-tests for each algorithm. 2015068c7a8SSteffen Klassert 2025068c7a8SSteffen Klassert The full set of tests should be enabled for development and 203584fffc8SSebastian Siewior pre-release testing, but not in production kernels. 204584fffc8SSebastian Siewior 205b95bba5dSEric Biggers All crypto code in the kernel is expected to pass the full tests. 206b8a28251SLoc Ho 207584fffc8SSebastian Siewiorconfig CRYPTO_NULL 208584fffc8SSebastian Siewior tristate "Null algorithms" 209584fffc8SSebastian Siewior select CRYPTO_ALGAPI 210584fffc8SSebastian Siewior select CRYPTO_SKCIPHER 211584fffc8SSebastian Siewior select CRYPTO_HASH 212584fffc8SSebastian Siewior help 213584fffc8SSebastian Siewior These are 'Null' algorithms, used by IPsec, which do nothing. 214584fffc8SSebastian Siewior 215584fffc8SSebastian Siewiorconfig CRYPTO_PCRYPT 216b95bba5dSEric Biggers tristate "Parallel crypto engine" 217584fffc8SSebastian Siewior depends on SMP 218584fffc8SSebastian Siewior select PADATA 219e94c6a7aSHerbert Xu select CRYPTO_MANAGER 220584fffc8SSebastian Siewior select CRYPTO_AEAD 221584fffc8SSebastian Siewior help 222584fffc8SSebastian Siewior This converts an arbitrary crypto algorithm into a parallel 223584fffc8SSebastian Siewior algorithm that executes in kernel threads. 224584fffc8SSebastian Siewior 225584fffc8SSebastian Siewiorconfig CRYPTO_CRYPTD 22600ea27f1SArd Biesheuvel tristate "Software async crypto daemon" 227da7f033dSHerbert Xu select CRYPTO_SKCIPHER 228584fffc8SSebastian Siewior select CRYPTO_HASH 229584fffc8SSebastian Siewior select CRYPTO_MANAGER 230584fffc8SSebastian Siewior help 231266d0516SHerbert Xu This is a generic software asynchronous crypto daemon that 232266d0516SHerbert Xu converts an arbitrary synchronous software crypto algorithm 233266d0516SHerbert Xu into an asynchronous algorithm that executes in a kernel thread. 234266d0516SHerbert Xu 235735d37b5SBaolin Wangconfig CRYPTO_AUTHENC 236735d37b5SBaolin Wang tristate "Authenc support" 237735d37b5SBaolin Wang select CRYPTO_AEAD 2383d6228a5SVitaly Chikunov select CRYPTO_SKCIPHER 2393d6228a5SVitaly Chikunov select CRYPTO_MANAGER 2403d6228a5SVitaly Chikunov select CRYPTO_HASH 2413d6228a5SVitaly Chikunov help 2423d6228a5SVitaly Chikunov Authenc: Combined mode wrapper for IPsec. 2433d6228a5SVitaly Chikunov 2443d6228a5SVitaly Chikunov This is required for IPSec ESP (XFRM_ESP). 2453d6228a5SVitaly Chikunov 2463d6228a5SVitaly Chikunovconfig CRYPTO_KRB5ENC 2473d6228a5SVitaly Chikunov tristate "Kerberos 5 combined hash+cipher support" 2483d6228a5SVitaly Chikunov select CRYPTO_AEAD 2493d6228a5SVitaly Chikunov select CRYPTO_SKCIPHER 2503d6228a5SVitaly Chikunov select CRYPTO_MANAGER 2513d6228a5SVitaly Chikunov select CRYPTO_HASH 2523d6228a5SVitaly Chikunov help 2533d6228a5SVitaly Chikunov Combined hash and cipher support for Kerberos 5 RFC3961 simplified 2543d6228a5SVitaly Chikunov profile. This is required for Kerberos 5-style encryption, used by 2553d6228a5SVitaly Chikunov sunrpc/NFS and rxrpc/AFS. 2567dce5981SNicolai Stange 2577dce5981SNicolai Stangeconfig CRYPTO_BENCHMARK 2587dce5981SNicolai Stange tristate "Crypto benchmarking module" 2591e207964SNicolai Stange depends on m || EXPERT 2607dce5981SNicolai Stange select CRYPTO_MANAGER 2617dce5981SNicolai Stange help 2627dce5981SNicolai Stange Quick & dirty crypto benchmarking module. 2634a2289daSVitaly Chikunov 2644a2289daSVitaly Chikunov This is mainly intended for use by people developing cryptographic 26538aa192aSArnd Bergmann algorithms in the kernel. It should not be enabled in production 2664a2289daSVitaly Chikunov kernels. 2673d6228a5SVitaly Chikunov 2683d6228a5SVitaly Chikunovconfig CRYPTO_SIMD 2694a2289daSVitaly Chikunov tristate 2703d6228a5SVitaly Chikunov select CRYPTO_CRYPTD 2713d6228a5SVitaly Chikunov 2723d6228a5SVitaly Chikunovconfig CRYPTO_ENGINE 2733d6228a5SVitaly Chikunov tristate 2744e660291SStefan Berger 2754e660291SStefan Bergerendmenu 2764e660291SStefan Berger 2774e660291SStefan Bergermenu "Public-key cryptography" 2784e660291SStefan Berger 2794e660291SStefan Bergerconfig CRYPTO_RSA 2804e660291SStefan Berger tristate "RSA (Rivest-Shamir-Adleman)" 2814e660291SStefan Berger select CRYPTO_AKCIPHER 2824e660291SStefan Berger select CRYPTO_MANAGER 2834e660291SStefan Berger select CRYPTO_SIG 2840d7a7864SVitaly Chikunov select MPILIB 2850d7a7864SVitaly Chikunov select ASN1 2860d7a7864SVitaly Chikunov help 2870d7a7864SVitaly Chikunov RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017) 2880d7a7864SVitaly Chikunov 2891036633eSVitaly Chikunovconfig CRYPTO_DH 2901036633eSVitaly Chikunov tristate "DH (Diffie-Hellman)" 2910d7a7864SVitaly Chikunov select CRYPTO_KPP 2920d7a7864SVitaly Chikunov select MPILIB 2930d7a7864SVitaly Chikunov help 2940d7a7864SVitaly Chikunov DH (Diffie-Hellman) key exchange algorithm 2950d7a7864SVitaly Chikunov 2960d7a7864SVitaly Chikunovconfig CRYPTO_DH_RFC7919_GROUPS 297ea7ecb66STianjia Zhang bool "RFC 7919 FFDHE groups" 298ea7ecb66STianjia Zhang depends on CRYPTO_DH 299d2825fa9SJason A. Donenfeld select CRYPTO_RNG_DEFAULT 300ea7ecb66STianjia Zhang help 301ea7ecb66STianjia Zhang FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups 302ea7ecb66STianjia Zhang defined in RFC7919. 303ea7ecb66STianjia Zhang 304ea7ecb66STianjia Zhang Support these finite-field groups in DH key exchanges: 305ea7ecb66STianjia Zhang - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192 306ea7ecb66STianjia Zhang 307ea7ecb66STianjia Zhang If unsure, say N. 308ea7ecb66STianjia Zhang 309ea7ecb66STianjia Zhangconfig CRYPTO_ECC 310ea7ecb66STianjia Zhang tristate 311ea7ecb66STianjia Zhang select CRYPTO_RNG_DEFAULT 312ea7ecb66STianjia Zhang 313ea7ecb66STianjia Zhangconfig CRYPTO_ECDH 314ee772cb6SArd Biesheuvel tristate "ECDH (Elliptic Curve Diffie-Hellman)" 315ee772cb6SArd Biesheuvel select CRYPTO_ECC 316ee772cb6SArd Biesheuvel select CRYPTO_KPP 317ee772cb6SArd Biesheuvel help 318ee772cb6SArd Biesheuvel ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm 319bb611bdfSJason A. Donenfeld using curves P-192, P-256, and P-384 (FIPS 186) 320bb611bdfSJason A. Donenfeld 321bb611bdfSJason A. Donenfeldconfig CRYPTO_ECDSA 322bb611bdfSJason A. Donenfeld tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)" 323bb611bdfSJason A. Donenfeld select CRYPTO_ECC 324bb611bdfSJason A. Donenfeld select CRYPTO_SIG 325584fffc8SSebastian Siewior select ASN1 326584fffc8SSebastian Siewior help 327584fffc8SSebastian Siewior ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186, 328584fffc8SSebastian Siewior ISO/IEC 14888-3) 329584fffc8SSebastian Siewior using curves P-192, P-256, P-384 and P-521 330f15f05b0SArd Biesheuvel 331584fffc8SSebastian Siewior Only signature verification is implemented. 332c8a3315aSEric Biggers 333584fffc8SSebastian Siewiorconfig CRYPTO_ECRDSA 334584fffc8SSebastian Siewior tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)" 335584fffc8SSebastian Siewior select CRYPTO_ECC 336584fffc8SSebastian Siewior select CRYPTO_SIG 337584fffc8SSebastian Siewior select CRYPTO_STREEBOG 338584fffc8SSebastian Siewior select OID_REGISTRY 339584fffc8SSebastian Siewior select ASN1 3409382d97aSHuang Ying help 3419489667dSJussi Kivilinna Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, 342c8a3315aSEric Biggers RFC 7091, ISO/IEC 14888-3) 343584fffc8SSebastian Siewior 344584fffc8SSebastian Siewior One of the Russian cryptographic standard algorithms (called GOST 345584fffc8SSebastian Siewior algorithms). Only signature verification is implemented. 346584fffc8SSebastian Siewior 34771ebc4d1SMartin Williendmenu 34871ebc4d1SMartin Willi 34971ebc4d1SMartin Willimenu "Block ciphers" 35071ebc4d1SMartin Willi 35171ebc4d1SMartin Williconfig CRYPTO_AES 352c8a3315aSEric Biggers tristate "AES (Advanced Encryption Standard)" 35371ebc4d1SMartin Willi select CRYPTO_ALGAPI 35471ebc4d1SMartin Willi select CRYPTO_LIB_AES 35571ebc4d1SMartin Willi help 35671ebc4d1SMartin Willi AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 35771ebc4d1SMartin Willi 35871ebc4d1SMartin Willi Rijndael appears to be consistently a very good performer in 35971ebc4d1SMartin Willi both hardware and software across a wide range of computing 360f606a88eSOndrej Mosnacek environments regardless of its use in feedback or non-feedback 361f606a88eSOndrej Mosnacek modes. Its key setup time is excellent, and its key agility is 362f606a88eSOndrej Mosnacek good. Rijndael's very low memory requirements make it very well 363f606a88eSOndrej Mosnacek suited for restricted-space environments, in which it also 364f606a88eSOndrej Mosnacek demonstrates excellent performance. Rijndael's operations are 365f606a88eSOndrej Mosnacek among the easiest to defend against power and timing attacks. 366f606a88eSOndrej Mosnacek 367a4397635SArd Biesheuvel The AES specifies three key sizes: 128, 192 and 256 bits 368a4397635SArd Biesheuvel 369a4397635SArd Biesheuvelconfig CRYPTO_AES_TI 370a4397635SArd Biesheuvel tristate "AES (Advanced Encryption Standard) (fixed time)" 371a4397635SArd Biesheuvel select CRYPTO_ALGAPI 3721d373d4eSOndrej Mosnacek select CRYPTO_LIB_AES 3731d373d4eSOndrej Mosnacek help 3741d373d4eSOndrej Mosnacek AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 3751d373d4eSOndrej Mosnacek 376de272ca7SEric Biggers This is a generic implementation of AES that attempts to eliminate 3771d373d4eSOndrej Mosnacek data dependent latencies as much as possible without affecting 3784e5180ebSOndrej Mosnacek performance too much. It is intended for use by the generic CCM 3791d373d4eSOndrej Mosnacek and GCM drivers, and other CTR or CMAC/XCBC based modes that rely 380584fffc8SSebastian Siewior solely on encryption (although decryption is supported as well, but 381584fffc8SSebastian Siewior with a more dramatic performance hit) 382584fffc8SSebastian Siewior 383b95bba5dSEric Biggers Instead of using 16 lookup tables of 1 KB each, (8 for encryption and 384856e3f40SHerbert Xu 8 for decryption), this implementation only uses just two S-boxes of 385401e4238SHerbert Xu 256 bytes each, and attempts to eliminate data dependent latencies by 386c8a3315aSEric Biggers prefetching the entire table into the cache at the start of each 387584fffc8SSebastian Siewior block. Interrupts are also disabled to avoid races where cachelines 388584fffc8SSebastian Siewior are evicted when the CPU is interrupted to do something else. 389584fffc8SSebastian Siewior 390584fffc8SSebastian Siewiorconfig CRYPTO_ANUBIS 391a10f554fSHerbert Xu tristate "Anubis" 392a10f554fSHerbert Xu depends on CRYPTO_USER_API_ENABLE_OBSOLETE 393a10f554fSHerbert Xu select CRYPTO_ALGAPI 394a10f554fSHerbert Xu help 395401e4238SHerbert Xu Anubis cipher algorithm 396c8a3315aSEric Biggers 397a10f554fSHerbert Xu Anubis is a variable key length cipher which can use keys from 398a10f554fSHerbert Xu 128 bits to 320 bits in length. It was evaluated as a entrant 399a10f554fSHerbert Xu in the NESSIE competition. 400a10f554fSHerbert Xu 401a10f554fSHerbert Xu See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html 402584fffc8SSebastian Siewior for further information. 403584fffc8SSebastian Siewior 404584fffc8SSebastian Siewiorconfig CRYPTO_ARIA 405584fffc8SSebastian Siewior tristate "ARIA" 406b95bba5dSEric Biggers select CRYPTO_ALGAPI 407584fffc8SSebastian Siewior help 408584fffc8SSebastian Siewior ARIA cipher algorithm (RFC5794) 409584fffc8SSebastian Siewior 410584fffc8SSebastian Siewior ARIA is a standard encryption algorithm of the Republic of Korea. 411584fffc8SSebastian Siewior The ARIA specifies three key sizes and rounds. 412a7d85e06SJames Bottomley 128-bit: 12 rounds. 413a7d85e06SJames Bottomley 192-bit: 14 rounds. 414b95bba5dSEric Biggers 256-bit: 16 rounds. 415a7d85e06SJames Bottomley 416a7d85e06SJames Bottomley See: 417a7d85e06SJames Bottomley https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do 418a7d85e06SJames Bottomley 419a7d85e06SJames Bottomleyconfig CRYPTO_BLOWFISH 420584fffc8SSebastian Siewior tristate "Blowfish" 421584fffc8SSebastian Siewior select CRYPTO_ALGAPI 422b95bba5dSEric Biggers select CRYPTO_BLOWFISH_COMMON 423584fffc8SSebastian Siewior help 424584fffc8SSebastian Siewior Blowfish cipher algorithm, by Bruce Schneier 425584fffc8SSebastian Siewior 426584fffc8SSebastian Siewior This is a variable key length cipher which can use keys from 32 427584fffc8SSebastian Siewior bits to 448 bits in length. It's fast, simple and specifically 428584fffc8SSebastian Siewior designed for use on "large microprocessors". 429584fffc8SSebastian Siewior 430b95bba5dSEric Biggers See https://www.schneier.com/blowfish.html for further information. 431c8a3315aSEric Biggers 432584fffc8SSebastian Siewiorconfig CRYPTO_BLOWFISH_COMMON 433584fffc8SSebastian Siewior tristate 434584fffc8SSebastian Siewior help 435ecd6d5c9SGilad Ben-Yossef Common parts of the Blowfish cipher algorithm shared by the 436ecd6d5c9SGilad Ben-Yossef generic c and the assembler implementations. 437ecd6d5c9SGilad Ben-Yossef 438584fffc8SSebastian Siewiorconfig CRYPTO_CAMELLIA 439584fffc8SSebastian Siewior tristate "Camellia" 440584fffc8SSebastian Siewior select CRYPTO_ALGAPI 441ecd6d5c9SGilad Ben-Yossef help 442ecd6d5c9SGilad Ben-Yossef Camellia cipher algorithms (ISO/IEC 18033-3) 443584fffc8SSebastian Siewior 444584fffc8SSebastian Siewior Camellia is a symmetric key block cipher developed jointly 445b95bba5dSEric Biggers at NTT and Mitsubishi Electric Corporation. 446584fffc8SSebastian Siewior 447584fffc8SSebastian Siewior The Camellia specifies three key sizes: 128, 192 and 256 bits. 448584fffc8SSebastian Siewior 449584fffc8SSebastian Siewior See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information. 450584fffc8SSebastian Siewior 451584fffc8SSebastian Siewiorconfig CRYPTO_CAST_COMMON 452584fffc8SSebastian Siewior tristate 4532470a2b2SJussi Kivilinna help 454b95bba5dSEric Biggers Common parts of the CAST cipher algorithms shared by the 455584fffc8SSebastian Siewior generic c and the assembler implementations. 456584fffc8SSebastian Siewior 457f60bbbbeSHerbert Xuconfig CRYPTO_CAST5 458584fffc8SSebastian Siewior tristate "CAST5 (CAST-128)" 459584fffc8SSebastian Siewior select CRYPTO_ALGAPI 460584fffc8SSebastian Siewior select CRYPTO_CAST_COMMON 461584fffc8SSebastian Siewior help 462584fffc8SSebastian Siewior CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3) 463584fffc8SSebastian Siewior 464584fffc8SSebastian Siewiorconfig CRYPTO_CAST6 465e497c518SGilad Ben-Yossef tristate "CAST6 (CAST-256)" 466e497c518SGilad Ben-Yossef select CRYPTO_ALGAPI 467b95bba5dSEric Biggers select CRYPTO_CAST_COMMON 468e497c518SGilad Ben-Yossef help 469e497c518SGilad Ben-Yossef CAST6 (CAST-256) encryption algorithm (RFC2612) 470e497c518SGilad Ben-Yossef 471e497c518SGilad Ben-Yossefconfig CRYPTO_DES 472e497c518SGilad Ben-Yossef tristate "DES and Triple DES EDE" 473e497c518SGilad Ben-Yossef select CRYPTO_ALGAPI 474e497c518SGilad Ben-Yossef select CRYPTO_LIB_DES 475e497c518SGilad Ben-Yossef help 476e497c518SGilad Ben-Yossef DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and 477584fffc8SSebastian Siewior Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3) 478584fffc8SSebastian Siewior cipher algorithms 479b95bba5dSEric Biggers 480584fffc8SSebastian Siewiorconfig CRYPTO_FCRYPT 481584fffc8SSebastian Siewior tristate "FCrypt" 482584fffc8SSebastian Siewior select CRYPTO_ALGAPI 483584fffc8SSebastian Siewior select CRYPTO_SKCIPHER 484584fffc8SSebastian Siewior help 48517fee07aSNathan Huckleberry FCrypt algorithm used by RxRPC 48617fee07aSNathan Huckleberry 48717fee07aSNathan Huckleberry See https://ota.polyonymo.us/fcrypt-paper.txt 48817fee07aSNathan Huckleberry 48917fee07aSNathan Huckleberryconfig CRYPTO_KHAZAD 49017fee07aSNathan Huckleberry tristate "Khazad" 49117fee07aSNathan Huckleberry depends on CRYPTO_USER_API_ENABLE_OBSOLETE 49217fee07aSNathan Huckleberry select CRYPTO_ALGAPI 49317fee07aSNathan Huckleberry help 494584fffc8SSebastian Siewior Khazad cipher algorithm 4955bcf8e6dSJussi Kivilinna 496b95bba5dSEric Biggers Khazad was a finalist in the initial NESSIE competition. It is 497584fffc8SSebastian Siewior an algorithm optimized for 64-bit processors with good performance 49812cb3a1cSMilan Broz on 32-bit processors. Khazad uses an 128 bit key size. 499584fffc8SSebastian Siewior 500584fffc8SSebastian Siewior See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html 501584fffc8SSebastian Siewior for further information. 502584fffc8SSebastian Siewior 503584fffc8SSebastian Siewiorconfig CRYPTO_SEED 5041c49678eSStephan Mueller tristate "SEED" 5051c49678eSStephan Mueller depends on CRYPTO_USER_API_ENABLE_OBSOLETE 506b95bba5dSEric Biggers select CRYPTO_ALGAPI 507c8a3315aSEric Biggers help 5081c49678eSStephan Mueller SEED cipher algorithm (RFC4269, ISO/IEC 18033-3) 5091c49678eSStephan Mueller 5101c49678eSStephan Mueller SEED is a 128-bit symmetric key block cipher that has been 5111c49678eSStephan Mueller developed by KISA (Korea Information Security Agency) as a 51226609a21SEric Biggers national standard encryption algorithm of the Republic of Korea. 51326609a21SEric Biggers It is a 16 round block cipher with the key size of 128 bit. 51426609a21SEric Biggers 51548ea8c6eSArd Biesheuvel See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do 51626609a21SEric Biggers for further information. 517012c8238SEric Biggers 518012c8238SEric Biggersconfig CRYPTO_SERPENT 519012c8238SEric Biggers tristate "Serpent" 520012c8238SEric Biggers select CRYPTO_ALGAPI 521012c8238SEric Biggers help 522012c8238SEric Biggers Serpent cipher algorithm, by Anderson, Biham & Knudsen 523012c8238SEric Biggers 524012c8238SEric Biggers Keys are allowed to be from 0 to 256 bits in length, in steps 5250f961f9fSEric Biggers of 8 bits. 5260f961f9fSEric Biggers 5270f961f9fSEric Biggers See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information. 5280f961f9fSEric Biggers 5290f961f9fSEric Biggersconfig CRYPTO_SM4 5300f961f9fSEric Biggers tristate 5310f961f9fSEric Biggers 5320f961f9fSEric Biggersconfig CRYPTO_SM4_GENERIC 533059c2a4dSEric Biggers tristate "SM4 (ShangMi 4)" 534059c2a4dSEric Biggers select CRYPTO_ALGAPI 535059c2a4dSEric Biggers select CRYPTO_SM4 53648ea8c6eSArd Biesheuvel help 537059c2a4dSEric Biggers SM4 cipher algorithms (OSCCA GB/T 32907-2016, 538c8a3315aSEric Biggers ISO/IEC 18033-3:2010/Amd 1:2021) 539059c2a4dSEric Biggers 540059c2a4dSEric Biggers SM4 (GBT.32907-2016) is a cryptographic standard issued by the 541059c2a4dSEric Biggers Organization of State Commercial Administration of China (OSCCA) 542059c2a4dSEric Biggers as an authorized cryptographic algorithms for the use within China. 543059c2a4dSEric Biggers 544059c2a4dSEric Biggers SMS4 was originally created for use in protecting wireless 545059c2a4dSEric Biggers networks, and is mandated in the Chinese National Standard for 546059c2a4dSEric Biggers Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure) 547059c2a4dSEric Biggers (GB.15629.11-2003). 548059c2a4dSEric Biggers 549059c2a4dSEric Biggers The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and 550059c2a4dSEric Biggers standardized through TC 260 of the Standardization Administration 551059c2a4dSEric Biggers of the People's Republic of China (SAC). 552059c2a4dSEric Biggers 553059c2a4dSEric Biggers The input, output, and key of SMS4 are each 128 bits. 554059c2a4dSEric Biggers 555059c2a4dSEric Biggers See https://eprint.iacr.org/2008/329.pdf for further information. 556059c2a4dSEric Biggers 5577ff554ceSNathan Huckleberry If unsure, say N. 5587ff554ceSNathan Huckleberry 5597ff554ceSNathan Huckleberryconfig CRYPTO_TEA 5607ff554ceSNathan Huckleberry tristate "TEA, XTEA and XETA" 5617ff554ceSNathan Huckleberry depends on CRYPTO_USER_API_ENABLE_OBSOLETE 5627ff554ceSNathan Huckleberry select CRYPTO_ALGAPI 5637ff554ceSNathan Huckleberry help 5647ff554ceSNathan Huckleberry TEA (Tiny Encryption Algorithm) cipher algorithms 5657ff554ceSNathan Huckleberry 5667ff554ceSNathan Huckleberry Tiny Encryption Algorithm is a simple cipher that uses 5677ff554ceSNathan Huckleberry many rounds for security. It is very fast and uses 568be1eb7f7SArd Biesheuvel little memory. 569be1eb7f7SArd Biesheuvel 570be1eb7f7SArd Biesheuvel Xtendend Tiny Encryption Algorithm is a modification to 571be1eb7f7SArd Biesheuvel the TEA algorithm to address a potential key weakness 572be1eb7f7SArd Biesheuvel in the TEA algorithm. 573be1eb7f7SArd Biesheuvel 574be1eb7f7SArd Biesheuvel Xtendend Encryption Tiny Algorithm is a mis-implementation 575be1eb7f7SArd Biesheuvel of the XTEA algorithm for compatibility purposes. 576be1eb7f7SArd Biesheuvel 577be1eb7f7SArd Biesheuvelconfig CRYPTO_TWOFISH 578be1eb7f7SArd Biesheuvel tristate "Twofish" 579be1eb7f7SArd Biesheuvel select CRYPTO_ALGAPI 580ab3d436bSGeert Uytterhoeven select CRYPTO_TWOFISH_COMMON 581be1eb7f7SArd Biesheuvel help 582be1eb7f7SArd Biesheuvel Twofish cipher algorithm 583ab3d436bSGeert Uytterhoeven 584be1eb7f7SArd Biesheuvel Twofish was submitted as an AES (Advanced Encryption Standard) 585be1eb7f7SArd Biesheuvel candidate cipher by researchers at CounterPane Systems. It is a 586be1eb7f7SArd Biesheuvel 16 round block cipher supporting key sizes of 128, 192, and 256 587be1eb7f7SArd Biesheuvel bits. 588be1eb7f7SArd Biesheuvel 589be1eb7f7SArd Biesheuvel See https://www.schneier.com/twofish.html for further information. 590be1eb7f7SArd Biesheuvel 591be1eb7f7SArd Biesheuvelconfig CRYPTO_TWOFISH_COMMON 592be1eb7f7SArd Biesheuvel tristate 593be1eb7f7SArd Biesheuvel help 594be1eb7f7SArd Biesheuvel Common parts of the Twofish cipher algorithm shared by the 595be1eb7f7SArd Biesheuvel generic c and the assembler implementations. 596584fffc8SSebastian Siewior 597584fffc8SSebastian Siewiorendmenu 59893b5e86aSJussi Kivilinna 59993b5e86aSJussi Kivilinnamenu "Length-preserving ciphers and modes" 60093b5e86aSJussi Kivilinna 60193b5e86aSJussi Kivilinnaconfig CRYPTO_ADIANTUM 60293b5e86aSJussi Kivilinna tristate "Adiantum" 60393b5e86aSJussi Kivilinna select CRYPTO_CHACHA20 60493b5e86aSJussi Kivilinna select CRYPTO_LIB_POLY1305 60593b5e86aSJussi Kivilinna select CRYPTO_LIB_POLY1305_GENERIC 60693b5e86aSJussi Kivilinna select CRYPTO_NHPOLY1305 60793b5e86aSJussi Kivilinna select CRYPTO_MANAGER 60893b5e86aSJussi Kivilinna help 6091da177e4SLinus Torvalds Adiantum tweakable, length-preserving encryption mode 6108425165dSHerbert Xu 6110796ae06SHerbert Xu Designed for fast and secure disk encryption, especially on 61243518407SHerbert Xu CPUs without dedicated crypto instructions. It encrypts 6131da177e4SLinus Torvalds each sector using the XChaCha12 stream cipher, two passes of 6141da177e4SLinus Torvalds an ε-almost-∆-universal hash function, and an invocation of 6151da177e4SLinus Torvalds the AES-256 block cipher on a single 16-byte block. On CPUs 6161da177e4SLinus Torvalds without AES instructions, Adiantum is much faster than 617333b0d7eSKazunori MIYAZAWA AES-XTS. 618333b0d7eSKazunori MIYAZAWA 619333b0d7eSKazunori MIYAZAWA Adiantum's security is provably reducible to that of its 620333b0d7eSKazunori MIYAZAWA underlying stream and block ciphers, subject to a security 621333b0d7eSKazunori MIYAZAWA bound. Unlike XTS, Adiantum is a true wide-block encryption 622333b0d7eSKazunori MIYAZAWA mode, so it actually provides an even stronger notion of 6239332a9e7SAlexander A. Klimov security than XTS, subject to the security bound. 624333b0d7eSKazunori MIYAZAWA 625333b0d7eSKazunori MIYAZAWA If unsure, say N. 626333b0d7eSKazunori MIYAZAWA 627f1939f7cSShane Wangconfig CRYPTO_ARC4 628f1939f7cSShane Wang tristate "ARC4 (Alleged Rivest Cipher 4)" 629f1939f7cSShane Wang depends on CRYPTO_USER_API_ENABLE_OBSOLETE 630f1939f7cSShane Wang select CRYPTO_SKCIPHER 631f1939f7cSShane Wang select CRYPTO_LIB_ARC4 632f1939f7cSShane Wang help 633f1939f7cSShane Wang ARC4 cipher algorithm 634f1939f7cSShane Wang 635f1939f7cSShane Wang ARC4 is a stream cipher using keys ranging from 8 bits to 2048 6369332a9e7SAlexander A. Klimov bits in length. This algorithm is required for driver-based 637f1939f7cSShane Wang WEP, but it should not be for other purposes because of the 638584fffc8SSebastian Siewior weakness of the algorithm. 639584fffc8SSebastian Siewior 640584fffc8SSebastian Siewiorconfig CRYPTO_CHACHA20 641584fffc8SSebastian Siewior tristate "ChaCha" 6425773a3e6SHerbert Xu select CRYPTO_LIB_CHACHA 6436a0962b2SDarrick J. Wong select CRYPTO_SKCIPHER 6441da177e4SLinus Torvalds help 645584fffc8SSebastian Siewior The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms 646584fffc8SSebastian Siewior 64769c35efcSHerbert Xu ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. 6481da177e4SLinus Torvalds Bernstein and further specified in RFC7539 for use in IETF protocols. 6498cb51ba8SAustin Zhang This is the portable C implementation of ChaCha20. See 6508cb51ba8SAustin Zhang https://cr.yp.to/chacha/chacha-20080128.pdf for further information. 6518cb51ba8SAustin Zhang 6528cb51ba8SAustin Zhang XChaCha20 is the application of the XSalsa20 construction to ChaCha20 6538cb51ba8SAustin Zhang rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length 6548cb51ba8SAustin Zhang from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits, 6558cb51ba8SAustin Zhang while provably retaining ChaCha20's security. See 6568cb51ba8SAustin Zhang https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information. 6578cb51ba8SAustin Zhang 6588cb51ba8SAustin Zhang XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly 6598cb51ba8SAustin Zhang reduced security margin but increased performance. It can be needed 6608cb51ba8SAustin Zhang in some performance-sensitive scenarios. 6617cf31864SJean Delvare 6626dd7a82cSAnton Blanchardconfig CRYPTO_CBC 663c12abf34SMichael Ellerman tristate "CBC (Cipher Block Chaining)" 6646dd7a82cSAnton Blanchard select CRYPTO_SKCIPHER 6656dd7a82cSAnton Blanchard select CRYPTO_MANAGER 6666dd7a82cSAnton Blanchard help 6676dd7a82cSAnton Blanchard CBC (Cipher Block Chaining) mode (NIST SP800-38A) 6686dd7a82cSAnton Blanchard 6696dd7a82cSAnton Blanchard This block cipher mode is required for IPSec ESP (XFRM_ESP). 6706dd7a82cSAnton Blanchard 6716dd7a82cSAnton Blanchardconfig CRYPTO_CTR 672442a7c40SDavid S. Miller tristate "CTR (Counter)" 673442a7c40SDavid S. Miller select CRYPTO_SKCIPHER 674442a7c40SDavid S. Miller select CRYPTO_MANAGER 675442a7c40SDavid S. Miller help 676442a7c40SDavid S. Miller CTR (Counter) mode (NIST SP800-38A) 677442a7c40SDavid S. Miller 678442a7c40SDavid S. Millerconfig CRYPTO_CTS 679442a7c40SDavid S. Miller tristate "CTS (Cipher Text Stealing)" 680442a7c40SDavid S. Miller select CRYPTO_SKCIPHER 68178c37d19SAlexander Boyko select CRYPTO_MANAGER 68278c37d19SAlexander Boyko help 68378c37d19SAlexander Boyko CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST 68478c37d19SAlexander Boyko Addendum to SP800-38A (October 2010)) 68578c37d19SAlexander Boyko 68678c37d19SAlexander Boyko This mode is required for Kerberos gss mechanism support 68778c37d19SAlexander Boyko for AES encryption. 68878c37d19SAlexander Boyko 68978c37d19SAlexander Boykoconfig CRYPTO_ECB 69078c37d19SAlexander Boyko tristate "ECB (Electronic Codebook)" 69178c37d19SAlexander Boyko select CRYPTO_SKCIPHER2 69278c37d19SAlexander Boyko select CRYPTO_MANAGER 69378c37d19SAlexander Boyko help 69478c37d19SAlexander Boyko ECB (Electronic Codebook) mode (NIST SP800-38A) 69578c37d19SAlexander Boyko 69678c37d19SAlexander Boykoconfig CRYPTO_HCTR2 69778c37d19SAlexander Boyko tristate "HCTR2" 698af8cb01fShaco select CRYPTO_XCTR 69978c37d19SAlexander Boyko select CRYPTO_POLYVAL 70078c37d19SAlexander Boyko select CRYPTO_MANAGER 70178c37d19SAlexander Boyko help 7024a5dc51eSMarcin Nowakowski HCTR2 length-preserving encryption mode 7034a5dc51eSMarcin Nowakowski 7044a5dc51eSMarcin Nowakowski A mode for storage encryption that is efficient on processors with 7054a5dc51eSMarcin Nowakowski instructions to accelerate AES and carryless multiplication, e.g. 7064a5dc51eSMarcin Nowakowski x86 processors with AES-NI and CLMUL, and ARM processors with the 7074a5dc51eSMarcin Nowakowski ARMv8 crypto extensions. 7084a5dc51eSMarcin Nowakowski 7094a5dc51eSMarcin Nowakowski See https://eprint.iacr.org/2021/1441 710b7133757SJason A. Donenfeld 711b7133757SJason A. Donenfeldconfig CRYPTO_LRW 712b7133757SJason A. Donenfeld tristate "LRW (Liskov Rivest Wagner)" 713b7133757SJason A. Donenfeld select CRYPTO_LIB_GF128MUL 714b7133757SJason A. Donenfeld select CRYPTO_SKCIPHER 715b7133757SJason A. Donenfeld select CRYPTO_MANAGER 716b7133757SJason A. Donenfeld select CRYPTO_ECB 717b7133757SJason A. Donenfeld help 718b7133757SJason A. Donenfeld LRW (Liskov Rivest Wagner) mode 719b7133757SJason A. Donenfeld 720b7133757SJason A. Donenfeld A tweakable, non malleable, non movable 721b7133757SJason A. Donenfeld narrow block cipher mode for dm-crypt. Use it with cipher 7224a5dc51eSMarcin Nowakowski specification string aes-lrw-benbi, the key must be 256, 320 or 384. 72367882e76SNikolay Borisov The first 128, 192 or 256 bits in the key are used for AES and the 72467882e76SNikolay Borisov rest is used to tie each cipher block to its logical position. 72567882e76SNikolay Borisov 72667882e76SNikolay Borisov See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf 72767882e76SNikolay Borisov 72867882e76SNikolay Borisovconfig CRYPTO_PCBC 72967882e76SNikolay Borisov tristate "PCBC (Propagating Cipher Block Chaining)" 73067882e76SNikolay Borisov select CRYPTO_SKCIPHER 73191d68933SDavid Sterba select CRYPTO_MANAGER 73291d68933SDavid Sterba help 73391d68933SDavid Sterba PCBC (Propagating Cipher Block Chaining) mode 73491d68933SDavid Sterba 73591d68933SDavid Sterba This block cipher mode is required for RxRPC. 73691d68933SDavid Sterba 73791d68933SDavid Sterbaconfig CRYPTO_XCTR 73891d68933SDavid Sterba tristate 73991d68933SDavid Sterba select CRYPTO_SKCIPHER 74091d68933SDavid Sterba select CRYPTO_MANAGER 74191d68933SDavid Sterba help 74291d68933SDavid Sterba XCTR (XOR Counter) mode for HCTR2 74391d68933SDavid Sterba 74491d68933SDavid Sterba This blockcipher mode is a variant of CTR mode using XORs and little-endian 74591d68933SDavid Sterba addition rather than big-endian arithmetic. 74691d68933SDavid Sterba 74791d68933SDavid Sterba XCTR mode is used to implement HCTR2. 748ed0356edSJason A. Donenfeld 7492d16803cSJason A. Donenfeldconfig CRYPTO_XTS 750ed0356edSJason A. Donenfeld tristate "XTS (XOR Encrypt XOR with ciphertext stealing)" 751ed0356edSJason A. Donenfeld select CRYPTO_SKCIPHER 752ed0356edSJason A. Donenfeld select CRYPTO_MANAGER 753ed0356edSJason A. Donenfeld select CRYPTO_ECB 75468411521SHerbert Xu help 75568411521SHerbert Xu XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E 75668411521SHerbert Xu and IEEE 1619) 75768411521SHerbert Xu 75868411521SHerbert Xu Use with aes-xts-plain, key size 256, 384 or 512 bits. This 75968411521SHerbert Xu implementation currently can't handle a sectorsize which is not a 76068411521SHerbert Xu multiple of 16 bytes. 76168411521SHerbert Xu 76268411521SHerbert Xuconfig CRYPTO_NHPOLY1305 76368411521SHerbert Xu tristate 76468411521SHerbert Xu select CRYPTO_HASH 76568411521SHerbert Xu select CRYPTO_LIB_POLY1305 76668411521SHerbert Xu select CRYPTO_LIB_POLY1305_GENERIC 76768411521SHerbert Xu 76868411521SHerbert Xuendmenu 76968411521SHerbert Xu 770af8cb01fShacomenu "AEAD (authenticated encryption with associated data) ciphers" 77168411521SHerbert Xu 77268411521SHerbert Xuconfig CRYPTO_AEGIS128 773b01df1c1SDaniel Axtens tristate "AEGIS-128" 774b01df1c1SDaniel Axtens select CRYPTO_AEAD 775b01df1c1SDaniel Axtens select CRYPTO_AES # for AES S-box tables 776b01df1c1SDaniel Axtens help 777b01df1c1SDaniel Axtens AEGIS-128 AEAD algorithm 778b01df1c1SDaniel Axtens 779b01df1c1SDaniel Axtensconfig CRYPTO_AEGIS128_SIMD 780b01df1c1SDaniel Axtens bool "AEGIS-128 (arm NEON, arm64 NEON)" 781b01df1c1SDaniel Axtens depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) 782f3813f4bSKeith Busch default y 783f3813f4bSKeith Busch help 784f3813f4bSKeith Busch AEGIS-128 AEAD algorithm 785f3813f4bSKeith Busch 786f3813f4bSKeith Busch Architecture: arm or arm64 using: 787146c8688SDaniel Axtens - NEON (Advanced SIMD) extension 788146c8688SDaniel Axtens 789146c8688SDaniel Axtensconfig CRYPTO_CHACHA20POLY1305 790146c8688SDaniel Axtens tristate "ChaCha20-Poly1305" 791146c8688SDaniel Axtens select CRYPTO_CHACHA20 792146c8688SDaniel Axtens select CRYPTO_AEAD 793146c8688SDaniel Axtens select CRYPTO_LIB_POLY1305 794146c8688SDaniel Axtens select CRYPTO_MANAGER 7952cdc6899SHuang Ying help 7968dfa20fcSEric Biggers ChaCha20 stream cipher and Poly1305 authenticator combined 7972cdc6899SHuang Ying mode (RFC8439) 798578c60fbSArnd Bergmann 7992cdc6899SHuang Yingconfig CRYPTO_CCM 8008dfa20fcSEric Biggers tristate "CCM (Counter with Cipher Block Chaining-MAC)" 8018dfa20fcSEric Biggers select CRYPTO_CTR 8022cdc6899SHuang Ying select CRYPTO_HASH 803f3c923a0SNathan Huckleberry select CRYPTO_AEAD 804f3c923a0SNathan Huckleberry select CRYPTO_MANAGER 805f3c923a0SNathan Huckleberry help 806f3c923a0SNathan Huckleberry CCM (Counter with Cipher Block Chaining-Message Authentication Code) 807f3c923a0SNathan Huckleberry authenticated encryption mode (NIST SP800-38C) 808f3c923a0SNathan Huckleberry 809f3c923a0SNathan Huckleberryconfig CRYPTO_GCM 810f3c923a0SNathan Huckleberry tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)" 81134f7f6c3SNathan Huckleberry select CRYPTO_CTR 81234f7f6c3SNathan Huckleberry select CRYPTO_AEAD 81334f7f6c3SNathan Huckleberry select CRYPTO_GHASH 81434f7f6c3SNathan Huckleberry select CRYPTO_MANAGER 81534f7f6c3SNathan Huckleberry help 81634f7f6c3SNathan Huckleberry GCM (Galois/Counter Mode) authenticated encryption mode and GMAC 81734f7f6c3SNathan Huckleberry (GCM Message Authentication Code) (NIST SP800-38D) 81834f7f6c3SNathan Huckleberry 81934f7f6c3SNathan Huckleberry This is required for IPSec ESP (XFRM_ESP). 820f979e014SMartin Willi 821f979e014SMartin Williconfig CRYPTO_GENIV 822578c60fbSArnd Bergmann tristate 82348ea8c6eSArd Biesheuvel select CRYPTO_AEAD 824f979e014SMartin Willi select CRYPTO_MANAGER 825f979e014SMartin Willi select CRYPTO_RNG_DEFAULT 826f979e014SMartin Willi 827f979e014SMartin Williconfig CRYPTO_SEQIV 828f979e014SMartin Willi tristate "Sequence Number IV Generator" 829f979e014SMartin Willi select CRYPTO_GENIV 830f979e014SMartin Willi help 831c70f4abeSMartin Willi Sequence Number IV generator 832b1ccc8f4SMartin Willi 833c70f4abeSMartin Willi This IV generator generates an IV based on a sequence number by 8341b2c6a51SArd Biesheuvel xoring it with a salt. This algorithm is mainly useful for CTR. 835f0e89bcfSArd Biesheuvel 836c70f4abeSMartin Willi This is required for IPsec ESP (XFRM_ESP). 837c70f4abeSMartin Willi 838c70f4abeSMartin Williconfig CRYPTO_ECHAINIV 839c70f4abeSMartin Willi tristate "Encrypted Chain IV Generator" 840c70f4abeSMartin Willi select CRYPTO_GENIV 841c70f4abeSMartin Willi help 842c70f4abeSMartin Willi Encrypted Chain IV generator 843c70f4abeSMartin Willi 844a11d055eSArd Biesheuvel This IV generator generates an IV based on the encryption of 845a11d055eSArd Biesheuvel a sequence number xored with a salt. This is the default 8466c810cf2SMaciej W. Rozycki algorithm for CBC. 847a11d055eSArd Biesheuvel 848a11d055eSArd Biesheuvelconfig CRYPTO_ESSIV 8491da177e4SLinus Torvalds tristate "Encrypted Salt-Sector IV Generator" 8501da177e4SLinus Torvalds select CRYPTO_AUTHENC 851808a1763SAdrian-Ken Rueegsegger help 8521da177e4SLinus Torvalds Encrypted Salt-Sector IV generator 8531da177e4SLinus Torvalds 8541da177e4SLinus Torvalds This IV generator is used in some cases by fscrypt and/or 8551da177e4SLinus Torvalds dm-crypt. It uses the hash of the block encryption key as the 8561da177e4SLinus Torvalds symmetric key for a block encryption pass applied to the input 85714b75ba7SAdrian-Ken Rueegsegger IV, making low entropy IV sources more suitable for block 8581da177e4SLinus Torvalds encryption. 8591da177e4SLinus Torvalds 8601da177e4SLinus Torvalds This driver implements a crypto API template that can be 861d69e75deSAaro Koskinen instantiated either as an skcipher or as an AEAD (depending on the 862d69e75deSAaro Koskinen type of the first template argument), and which defers encryption 863d69e75deSAaro Koskinen and decryption requests to the encapsulated cipher after applying 864d69e75deSAaro Koskinen ESSIV to the input IV. Note that in the AEAD case, it is assumed 865d69e75deSAaro Koskinen that the keys are presented in the same format used by the authenc 866d69e75deSAaro Koskinen template, and that the IV appears at the end of the authenticated 867d69e75deSAaro Koskinen associated data (AAD) region (which is how dm-crypt uses it.) 868d69e75deSAaro Koskinen 869d69e75deSAaro Koskinen Note that the use of ESSIV is not recommended for new deployments, 870e8e59953SMarkus Stockhausen and so this only needs to be enabled when interoperability with 871e8e59953SMarkus Stockhausen existing encrypted volumes of filesystems is required, or when 872e8e59953SMarkus Stockhausen building for a particular system that requires it (e.g., when 873e8e59953SMarkus Stockhausen the SoC in question has accelerated CBC but not XTS, making CBC 874e8e59953SMarkus Stockhausen combined with ESSIV the only feasible mode for h/w accelerated 875e8e59953SMarkus Stockhausen block encryption) 876e8e59953SMarkus Stockhausen 877e8e59953SMarkus Stockhausenendmenu 878fa4dfedcSDavid S. Miller 879fa4dfedcSDavid S. Millermenu "Hashes, digests, and MACs" 880fa4dfedcSDavid S. Miller 881fa4dfedcSDavid S. Millerconfig CRYPTO_BLAKE2B 882fa4dfedcSDavid S. Miller tristate "BLAKE2b" 883fa4dfedcSDavid S. Miller select CRYPTO_HASH 884fa4dfedcSDavid S. Miller help 885fa4dfedcSDavid S. Miller BLAKE2b cryptographic hash function (RFC 7693) 886fa4dfedcSDavid S. Miller 887584fffc8SSebastian Siewior BLAKE2b is optimized for 64-bit platforms and can produce digests 888584fffc8SSebastian Siewior of any size between 1 and 64 bytes. The keyed hash is also implemented. 88919e2bf14SAdrian-Ken Rueegsegger 890584fffc8SSebastian Siewior This module provides the following algorithms: 891584fffc8SSebastian Siewior - blake2b-160 892584fffc8SSebastian Siewior - blake2b-256 893584fffc8SSebastian Siewior - blake2b-384 894584fffc8SSebastian Siewior - blake2b-512 895584fffc8SSebastian Siewior 89682798f90SAdrian-Ken Rueegsegger Used by the btrfs filesystem. 89782798f90SAdrian-Ken Rueegsegger 898e5835fbaSHerbert Xu See https://blake2.net for further information. 89982798f90SAdrian-Ken Rueegsegger 90082798f90SAdrian-Ken Rueegseggerconfig CRYPTO_CMAC 90182798f90SAdrian-Ken Rueegsegger tristate "CMAC (Cipher-based MAC)" 90282798f90SAdrian-Ken Rueegsegger select CRYPTO_HASH 90382798f90SAdrian-Ken Rueegsegger select CRYPTO_MANAGER 904*4cbdecd0SRandy Dunlap help 905b6d44341SAdrian Bunk CMAC (Cipher-based Message Authentication Code) authentication 90682798f90SAdrian-Ken Rueegsegger mode (NIST SP800-38B and IETF RFC4493) 907b6d44341SAdrian Bunk 908b6d44341SAdrian Bunkconfig CRYPTO_GHASH 909534fe2c1SAdrian-Ken Rueegsegger tristate "GHASH" 910534fe2c1SAdrian-Ken Rueegsegger select CRYPTO_HASH 9119332a9e7SAlexander A. Klimov select CRYPTO_LIB_GF128MUL 912534fe2c1SAdrian-Ken Rueegsegger help 9131da177e4SLinus Torvalds GCM GHASH function (NIST SP800-38D) 9141da177e4SLinus Torvalds 91554ccb367SAdrian-Ken Rueegseggerconfig CRYPTO_HMAC 916ec8f7f48SEric Biggers tristate "HMAC (Keyed-Hash MAC)" 9171da177e4SLinus Torvalds select CRYPTO_HASH 9181da177e4SLinus Torvalds select CRYPTO_MANAGER 9191da177e4SLinus Torvalds help 92066be8951SMathias Krause HMAC (Keyed-Hash Message Authentication Code) (FIPS 198 and 921e38b6b7fStim RFC2104) 92266be8951SMathias Krause 92366be8951SMathias Krause This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP). 92466be8951SMathias Krause 92566be8951SMathias Krauseconfig CRYPTO_MD4 92666be8951SMathias Krause tristate "MD4" 92766be8951SMathias Krause select CRYPTO_HASH 928e38b6b7fStim help 929e38b6b7fStim MD4 message digest algorithm (RFC1320) 93066be8951SMathias Krause 9318275d1aaSTim Chenconfig CRYPTO_MD5 932e38b6b7fStim tristate "MD5" 9338275d1aaSTim Chen select CRYPTO_HASH 9348275d1aaSTim Chen select CRYPTO_LIB_MD5 9358275d1aaSTim Chen help 9368275d1aaSTim Chen MD5 message digest algorithm (RFC1321), including HMAC support. 9378275d1aaSTim Chen 9388275d1aaSTim Chenconfig CRYPTO_MICHAEL_MIC 9398275d1aaSTim Chen tristate "Michael MIC" 940e38b6b7fStim select CRYPTO_HASH 941e38b6b7fStim help 9428275d1aaSTim Chen Michael MIC (Message Integrity Code) (IEEE 802.11i) 94387de4579STim Chen 94487de4579STim Chen Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol), 94587de4579STim Chen known as WPA (Wif-Fi Protected Access). 94687de4579STim Chen 94787de4579STim Chen This algorithm is required for TKIP, but it should not be used for 94887de4579STim Chen other purposes because of the weakness of the algorithm. 94987de4579STim Chen 95087de4579STim Chenconfig CRYPTO_POLYVAL 95187de4579STim Chen tristate 95287de4579STim Chen select CRYPTO_HASH 95387de4579STim Chen select CRYPTO_LIB_GF128MUL 954b7133757SJason A. Donenfeld help 955b7133757SJason A. Donenfeld POLYVAL hash function for HCTR2 956b7133757SJason A. Donenfeld 957b7133757SJason A. Donenfeld This is used in HCTR2. It is not a general-purpose 958b7133757SJason A. Donenfeld cryptographic hash function. 959b7133757SJason A. Donenfeld 960b7133757SJason A. Donenfeldconfig CRYPTO_RMD160 961b7133757SJason A. Donenfeld tristate "RIPEMD-160" 962b7133757SJason A. Donenfeld select CRYPTO_HASH 963b7133757SJason A. Donenfeld help 964efdb6f6eSAaro Koskinen RIPEMD-160 hash function (ISO/IEC 10118-3) 965efdb6f6eSAaro Koskinen 966efdb6f6eSAaro Koskinen RIPEMD-160 is a 160-bit cryptographic hash function. It is intended 967efdb6f6eSAaro Koskinen to be used as a secure replacement for the 128-bit hash functions 968efdb6f6eSAaro Koskinen MD4, MD5 and its predecessor RIPEMD 969efdb6f6eSAaro Koskinen (not to be confused with RIPEMD-128). 970efdb6f6eSAaro Koskinen 971efdb6f6eSAaro Koskinen Its speed is comparable to SHA-1 and there are no known attacks 972efdb6f6eSAaro Koskinen against RIPEMD-160. 9734ff28d4cSDavid S. Miller 9744ff28d4cSDavid S. Miller Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 9754ff28d4cSDavid S. Miller See https://homes.esat.kuleuven.be/~bosselae/ripemd160.html 9764ff28d4cSDavid S. Miller for further information. 9774ff28d4cSDavid S. Miller 9784ff28d4cSDavid S. Millerconfig CRYPTO_SHA1 9794ff28d4cSDavid S. Miller tristate "SHA-1" 9804ff28d4cSDavid S. Miller select CRYPTO_HASH 9814ff28d4cSDavid S. Miller select CRYPTO_LIB_SHA1 982323a6bf1SMichael Ellerman help 983323a6bf1SMichael Ellerman SHA-1 secure hash algorithm (FIPS 180, ISO/IEC 10118-3), including 984323a6bf1SMichael Ellerman HMAC support. 985323a6bf1SMichael Ellerman 986323a6bf1SMichael Ellermanconfig CRYPTO_SHA256 987323a6bf1SMichael Ellerman tristate "SHA-224 and SHA-256" 988323a6bf1SMichael Ellerman select CRYPTO_HASH 989d9850fc5SMarkus Stockhausen select CRYPTO_LIB_SHA256 990d9850fc5SMarkus Stockhausen help 991d9850fc5SMarkus Stockhausen SHA-224 and SHA-256 secure hash algorithms (FIPS 180, ISO/IEC 992d9850fc5SMarkus Stockhausen 10118-3), including HMAC support. 993d9850fc5SMarkus Stockhausen 994d9850fc5SMarkus Stockhausen This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP). 995d9850fc5SMarkus Stockhausen Used by the btrfs filesystem, Ceph, NFS, and SMB. 996b7133757SJason A. Donenfeld 997b7133757SJason A. Donenfeldconfig CRYPTO_SHA512 998b7133757SJason A. Donenfeld tristate "SHA-384 and SHA-512" 999b7133757SJason A. Donenfeld select CRYPTO_HASH 1000b7133757SJason A. Donenfeld select CRYPTO_LIB_SHA512 1001b7133757SJason A. Donenfeld help 1002b7133757SJason A. Donenfeld SHA-384 and SHA-512 secure hash algorithms (FIPS 180, ISO/IEC 1003b7133757SJason A. Donenfeld 10118-3), including HMAC support. 1004b7133757SJason A. Donenfeld 1005b7133757SJason A. Donenfeldconfig CRYPTO_SHA3 10061da177e4SLinus Torvalds tristate "SHA-3" 1007cd12fb90SJonathan Lynch select CRYPTO_HASH 100850e109b5SAdrian-Ken Rueegsegger help 100908c327f6SHans de Goede SHA-3 secure hash algorithms (FIPS 202, ISO/IEC 10118-3) 10101da177e4SLinus Torvalds 10111da177e4SLinus Torvaldsconfig CRYPTO_SM3_GENERIC 10121da177e4SLinus Torvalds tristate "SM3 (ShangMi 3)" 10131da177e4SLinus Torvalds select CRYPTO_HASH 10141da177e4SLinus Torvalds select CRYPTO_LIB_SM3 10151da177e4SLinus Torvalds help 1016cd12fb90SJonathan Lynch SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012, ISO/IEC 10118-3) 1017cd12fb90SJonathan Lynch 1018cd12fb90SJonathan Lynch This is part of the Chinese Commercial Cryptography suite. 10192ecc1e95SMarkus Stockhausen 10202ecc1e95SMarkus Stockhausen References: 10212ecc1e95SMarkus Stockhausen http://www.oscca.gov.cn/UpFile/20101222141857786.pdf 10222ecc1e95SMarkus Stockhausen https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash 10232ecc1e95SMarkus Stockhausen 10242ecc1e95SMarkus Stockhausenconfig CRYPTO_STREEBOG 10252ecc1e95SMarkus Stockhausen tristate "Streebog" 10262ecc1e95SMarkus Stockhausen select CRYPTO_HASH 10272ecc1e95SMarkus Stockhausen help 1028efdb6f6eSAaro Koskinen Streebog Hash Function (GOST R 34.11-2012, RFC 6986, ISO/IEC 10118-3) 1029efdb6f6eSAaro Koskinen 1030efdb6f6eSAaro Koskinen This is one of the Russian cryptographic standard algorithms (called 1031efdb6f6eSAaro Koskinen GOST algorithms). This setting enables two hash algorithms with 1032efdb6f6eSAaro Koskinen 256 and 512 bits output. 1033efdb6f6eSAaro Koskinen 1034efdb6f6eSAaro Koskinen References: 1035efdb6f6eSAaro Koskinen https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf 1036efdb6f6eSAaro Koskinen https://tools.ietf.org/html/rfc6986 103786c93b24SDavid S. Miller 103886c93b24SDavid S. Millerconfig CRYPTO_WP512 103986c93b24SDavid S. Miller tristate "Whirlpool" 104086c93b24SDavid S. Miller select CRYPTO_HASH 104186c93b24SDavid S. Miller help 104286c93b24SDavid S. Miller Whirlpool hash function (ISO/IEC 10118-3) 104386c93b24SDavid S. Miller 104486c93b24SDavid S. Miller 512, 384 and 256-bit hashes. 104586c93b24SDavid S. Miller 1046b7133757SJason A. Donenfeld Whirlpool-512 is part of the NESSIE cryptographic primitives. 1047b7133757SJason A. Donenfeld 1048b7133757SJason A. Donenfeld See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html 1049b7133757SJason A. Donenfeld for further information. 1050b7133757SJason A. Donenfeld 1051b7133757SJason A. Donenfeldconfig CRYPTO_XCBC 1052b7133757SJason A. Donenfeld tristate "XCBC-MAC (Extended Cipher Block Chaining MAC)" 1053b7133757SJason A. Donenfeld select CRYPTO_HASH 1054b7133757SJason A. Donenfeld select CRYPTO_MANAGER 1055b7133757SJason A. Donenfeld help 10561da177e4SLinus Torvalds XCBC-MAC (Extended Cipher Block Chaining Message Authentication 10571da177e4SLinus Torvalds Code) (RFC3566) 1058bd9d20dbSAdrian-Ken Rueegsegger 10591da177e4SLinus Torvaldsconfig CRYPTO_XXHASH 10601da177e4SLinus Torvalds tristate "xxHash" 10611da177e4SLinus Torvalds select CRYPTO_HASH 10621da177e4SLinus Torvalds select XXHASH 10631da177e4SLinus Torvalds help 10641da177e4SLinus Torvalds xxHash non-cryptographic hash algorithm 10651da177e4SLinus Torvalds 10661da177e4SLinus Torvalds Extremely fast, working at speeds close to RAM limits. 10671da177e4SLinus Torvalds 1068efdb6f6eSAaro Koskinen Used by the btrfs filesystem. 1069efdb6f6eSAaro Koskinen 1070efdb6f6eSAaro Koskinenendmenu 1071efdb6f6eSAaro Koskinen 1072efdb6f6eSAaro Koskinenmenu "CRCs (cyclic redundancy checks)" 1073efdb6f6eSAaro Koskinen 1074efdb6f6eSAaro Koskinenconfig CRYPTO_CRC32C 1075efdb6f6eSAaro Koskinen tristate "CRC32c" 1076efdb6f6eSAaro Koskinen select CRYPTO_HASH 1077775e0c69SDavid S. Miller select CRC32 1078775e0c69SDavid S. Miller help 1079775e0c69SDavid S. Miller CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720) 1080775e0c69SDavid S. Miller 1081775e0c69SDavid S. Miller A 32-bit CRC (cyclic redundancy check) with a polynomial defined 1082775e0c69SDavid S. Miller by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic 1083775e0c69SDavid S. Miller Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions 1084775e0c69SDavid S. Miller on Communications, Vol. 41, No. 6, June 1993, selected for use with 1085775e0c69SDavid S. Miller iSCSI. 108653964b9eSJeff Garzik 108753964b9eSJeff Garzik Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI. 108853964b9eSJeff Garzik 108953964b9eSJeff Garzikconfig CRYPTO_CRC32 109053964b9eSJeff Garzik tristate "CRC32" 109153964b9eSJeff Garzik select CRYPTO_HASH 109253964b9eSJeff Garzik select CRC32 109353964b9eSJeff Garzik help 109453964b9eSJeff Garzik CRC32 CRC algorithm (IEEE 802.3) 109553964b9eSJeff Garzik 1096b7133757SJason A. Donenfeld Used by RoCEv2 and f2fs. 1097b7133757SJason A. Donenfeld 1098b7133757SJason A. Donenfeldendmenu 1099b7133757SJason A. Donenfeld 1100b7133757SJason A. Donenfeldmenu "Compression" 1101b7133757SJason A. Donenfeld 1102b7133757SJason A. Donenfeldconfig CRYPTO_DEFLATE 1103b7133757SJason A. Donenfeld tristate "Deflate" 1104b7133757SJason A. Donenfeld select CRYPTO_ALGAPI 1105b7133757SJason A. Donenfeld select CRYPTO_ACOMP2 1106b7133757SJason A. Donenfeld select ZLIB_INFLATE 1107b7133757SJason A. Donenfeld select ZLIB_DEFLATE 1108b7133757SJason A. Donenfeld help 1109b7133757SJason A. Donenfeld Deflate compression algorithm (RFC1951) 1110b7133757SJason A. Donenfeld 1111b7133757SJason A. Donenfeld Used by IPSec with the IPCOMP protocol (RFC3173, RFC2394) 1112b7133757SJason A. Donenfeld 1113b7133757SJason A. Donenfeldconfig CRYPTO_LZO 1114b7133757SJason A. Donenfeld tristate "LZO" 1115b7133757SJason A. Donenfeld select CRYPTO_ALGAPI 11164f0fc160SGilad Ben-Yossef select CRYPTO_ACOMP2 1117d2825fa9SJason A. Donenfeld select LZO_COMPRESS 1118d2825fa9SJason A. Donenfeld select LZO_DECOMPRESS 1119d2825fa9SJason A. Donenfeld help 11204f0fc160SGilad Ben-Yossef LZO compression algorithm 11214f0fc160SGilad Ben-Yossef 1122d2825fa9SJason A. Donenfeld See https://www.oberhumer.com/opensource/lzo/ for further information. 11234f0fc160SGilad Ben-Yossef 11244f0fc160SGilad Ben-Yossefconfig CRYPTO_842 11254f0fc160SGilad Ben-Yossef tristate "842" 11264f0fc160SGilad Ben-Yossef select CRYPTO_ALGAPI 11274f0fc160SGilad Ben-Yossef select CRYPTO_ACOMP2 11284f0fc160SGilad Ben-Yossef select 842_COMPRESS 11294f0fc160SGilad Ben-Yossef select 842_DECOMPRESS 11304f0fc160SGilad Ben-Yossef help 1131930ab34dSTianjia Zhang 842 compression algorithm by IBM 1132930ab34dSTianjia Zhang 1133930ab34dSTianjia Zhang See https://github.com/plauth/lib842 for further information. 1134930ab34dSTianjia Zhang 1135d2825fa9SJason A. Donenfeldconfig CRYPTO_LZ4 1136930ab34dSTianjia Zhang tristate "LZ4" 1137930ab34dSTianjia Zhang select CRYPTO_ALGAPI 1138930ab34dSTianjia Zhang select CRYPTO_ACOMP2 1139930ab34dSTianjia Zhang select LZ4_COMPRESS 1140930ab34dSTianjia Zhang select LZ4_DECOMPRESS 1141930ab34dSTianjia Zhang help 1142930ab34dSTianjia Zhang LZ4 compression algorithm 1143930ab34dSTianjia Zhang 1144fe18957eSVitaly Chikunov See https://github.com/lz4/lz4 for further information. 1145fe18957eSVitaly Chikunov 1146fe18957eSVitaly Chikunovconfig CRYPTO_LZ4HC 1147fe18957eSVitaly Chikunov tristate "LZ4HC" 1148fe18957eSVitaly Chikunov select CRYPTO_ALGAPI 1149fe18957eSVitaly Chikunov select CRYPTO_ACOMP2 1150fe18957eSVitaly Chikunov select LZ4HC_COMPRESS 1151fe18957eSVitaly Chikunov select LZ4_DECOMPRESS 1152fe18957eSVitaly Chikunov help 1153fe18957eSVitaly Chikunov LZ4 high compression mode algorithm 1154fe18957eSVitaly Chikunov 1155fe18957eSVitaly Chikunov See https://github.com/lz4/lz4 for further information. 1156584fffc8SSebastian Siewior 1157584fffc8SSebastian Siewiorconfig CRYPTO_ZSTD 11584946510bSAdrian-Ken Rueegsegger tristate "Zstd" 11591da177e4SLinus Torvalds select CRYPTO_ALGAPI 1160584fffc8SSebastian Siewior select CRYPTO_ACOMP2 11611da177e4SLinus Torvalds select ZSTD_COMPRESS 1162584fffc8SSebastian Siewior select ZSTD_DECOMPRESS 1163584fffc8SSebastian Siewior help 11641da177e4SLinus Torvalds zstd compression algorithm 11651da177e4SLinus Torvalds 11666d8de74cSJustin P. Mattock See https://github.com/facebook/zstd for further information. 11671da177e4SLinus Torvalds 11680e1227d3SHuang Yingendmenu 11698dfa20fcSEric Biggers 11708af00860SRichard Weinbergermenu "Random number generation" 11710e1227d3SHuang Ying 11720e1227d3SHuang Yingconfig CRYPTO_ANSI_CPRNG 11738dfa20fcSEric Biggers tristate "ANSI PRNG (Pseudo Random Number Generator)" 11748dfa20fcSEric Biggers select CRYPTO_AES 11750e1227d3SHuang Ying select CRYPTO_RNG 1176b7133757SJason A. Donenfeld help 1177b7133757SJason A. Donenfeld Pseudo RNG (random number generator) (ANSI X9.31 Appendix A.2.4) 1178b7133757SJason A. Donenfeld 1179b7133757SJason A. Donenfeld This uses the AES cipher algorithm. 1180b7133757SJason A. Donenfeld 1181b7133757SJason A. Donenfeld Note that this option must be enabled if CRYPTO_FIPS is selected 1182b7133757SJason A. Donenfeld 1183b7133757SJason A. Donenfeldmenuconfig CRYPTO_DRBG_MENU 1184b7133757SJason A. Donenfeld tristate "NIST SP800-90A DRBG (Deterministic Random Bit Generator)" 1185b7133757SJason A. Donenfeld help 1186584fffc8SSebastian Siewior DRBG (Deterministic Random Bit Generator) (NIST SP800-90A) 11871da177e4SLinus Torvalds 11881da177e4SLinus Torvalds In the following submenu, one or more of the DRBG types must be selected. 11891da177e4SLinus Torvalds 1190cce9e06dSHerbert Xuif CRYPTO_DRBG_MENU 11915bb12d78SArd Biesheuvel 11921da177e4SLinus Torvaldsconfig CRYPTO_DRBG_HMAC 11931da177e4SLinus Torvalds bool 11941da177e4SLinus Torvalds default y 11951da177e4SLinus Torvalds select CRYPTO_HMAC 11961da177e4SLinus Torvalds select CRYPTO_SHA512 11971da177e4SLinus Torvalds 11981da177e4SLinus Torvaldsconfig CRYPTO_DRBG_HASH 11991da177e4SLinus Torvalds bool "Hash_DRBG" 12001da177e4SLinus Torvalds select CRYPTO_SHA256 12011da177e4SLinus Torvalds help 12021da177e4SLinus Torvalds Hash_DRBG variant as defined in NIST SP800-90A. 12031da177e4SLinus Torvalds 12041da177e4SLinus Torvalds This uses the SHA-1, SHA-256, SHA-384, or SHA-512 hash algorithms. 12051da177e4SLinus Torvalds 12061da177e4SLinus Torvaldsconfig CRYPTO_DRBG_CTR 12071da177e4SLinus Torvalds bool "CTR_DRBG" 12081da177e4SLinus Torvalds select CRYPTO_AES 1209b5e0b032SArd Biesheuvel select CRYPTO_CTR 1210b5e0b032SArd Biesheuvel help 1211b5e0b032SArd Biesheuvel CTR_DRBG variant as defined in NIST SP800-90A. 1212e59c1c98SArd Biesheuvel 1213b5e0b032SArd Biesheuvel This uses the AES cipher algorithm with the counter block mode. 1214b5e0b032SArd Biesheuvel 1215b5e0b032SArd Biesheuvelconfig CRYPTO_DRBG 1216b5e0b032SArd Biesheuvel tristate 1217b5e0b032SArd Biesheuvel default CRYPTO_DRBG_MENU 1218b5e0b032SArd Biesheuvel select CRYPTO_RNG 1219b5e0b032SArd Biesheuvel select CRYPTO_JITTERENTROPY 1220b5e0b032SArd Biesheuvel 1221b5e0b032SArd Biesheuvelendif # if CRYPTO_DRBG_MENU 1222b5e0b032SArd Biesheuvel 1223b5e0b032SArd Biesheuvelconfig CRYPTO_JITTERENTROPY 1224b5e0b032SArd Biesheuvel tristate "CPU Jitter Non-Deterministic RNG (Random Number Generator)" 12250a6a40c2SEric Biggers select CRYPTO_RNG 12260a6a40c2SEric Biggers select CRYPTO_SHA3 1227b5e0b032SArd Biesheuvel help 122854b6a1bdSHuang Ying CPU Jitter RNG (Random Number Generator) from the Jitterentropy library 122954b6a1bdSHuang Ying 12308af00860SRichard Weinberger A non-physical non-deterministic ("true") RNG (e.g., an entropy source 123185671860SHerbert Xu compliant with NIST SP800-90B) intended to provide a seed to a 12322c53fd11SArd Biesheuvel deterministic RNG (e.g., per NIST SP800-90C). 123354b6a1bdSHuang Ying This RNG does not perform any cryptographic whitening of the generated 1234b95bba5dSEric Biggers random numbers. 123585671860SHerbert Xu 123654b6a1bdSHuang Ying See https://www.chronox.de/jent/ 123754b6a1bdSHuang Ying 123854b6a1bdSHuang Yingif CRYPTO_JITTERENTROPY 123954b6a1bdSHuang Yingif CRYPTO_FIPS && EXPERT 124054b6a1bdSHuang Ying 124154b6a1bdSHuang Yingchoice 124254b6a1bdSHuang Ying prompt "CPU Jitter RNG Memory Size" 124354b6a1bdSHuang Ying default CRYPTO_JITTERENTROPY_MEMSIZE_2 124454b6a1bdSHuang Ying help 124554b6a1bdSHuang Ying The Jitter RNG measures the execution time of memory accesses. 124654b6a1bdSHuang Ying Multiple consecutive memory accesses are performed. If the memory 124754b6a1bdSHuang Ying size fits into a cache (e.g. L1), only the memory access timing 124854b6a1bdSHuang Ying to that cache is measured. The closer the cache is to the CPU 124954b6a1bdSHuang Ying the less variations are measured and thus the less entropy is 125054b6a1bdSHuang Ying obtained. Thus, if the memory size fits into the L1 cache, the 125154b6a1bdSHuang Ying obtained entropy is less than if the memory size fits within 125254b6a1bdSHuang Ying L1 + L2, which in turn is less if the memory fits into 125354b6a1bdSHuang Ying L1 + L2 + L3. Thus, by selecting a different memory size, 125454b6a1bdSHuang Ying the entropy rate produced by the Jitter RNG can be modified. 12550d258efbSMathias Krause 12560d258efbSMathias Krause config CRYPTO_JITTERENTROPY_MEMSIZE_2 1257944585a6SArd Biesheuvel bool "2048 Bytes (default)" 1258fd94fcf0SNathan Huckleberry 12592cf4ac8bSHuang Ying config CRYPTO_JITTERENTROPY_MEMSIZE_128 12609bf4852dSDavid S. Miller bool "128 kBytes" 12619bf4852dSDavid S. Miller 12629bf4852dSDavid S. Miller config CRYPTO_JITTERENTROPY_MEMSIZE_1024 1263b95bba5dSEric Biggers bool "1024 kBytes" 12649bf4852dSDavid S. Miller 12659bf4852dSDavid S. Miller config CRYPTO_JITTERENTROPY_MEMSIZE_8192 12669bf4852dSDavid S. Miller bool "8192 kBytes" 12679bf4852dSDavid S. Millerendchoice 12689bf4852dSDavid S. Miller 12699bf4852dSDavid S. Millerconfig CRYPTO_JITTERENTROPY_MEMORY_BLOCKS 12709bf4852dSDavid S. Miller int 12719bf4852dSDavid S. Miller default 64 if CRYPTO_JITTERENTROPY_MEMSIZE_2 12729bf4852dSDavid S. Miller default 512 if CRYPTO_JITTERENTROPY_MEMSIZE_128 12739bf4852dSDavid S. Miller default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024 12749bf4852dSDavid S. Miller default 4096 if CRYPTO_JITTERENTROPY_MEMSIZE_8192 12759bf4852dSDavid S. Miller 12769bf4852dSDavid S. Millerconfig CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE 12779bf4852dSDavid S. Miller int 12789bf4852dSDavid S. Miller default 32 if CRYPTO_JITTERENTROPY_MEMSIZE_2 12799bf4852dSDavid S. Miller default 256 if CRYPTO_JITTERENTROPY_MEMSIZE_128 12809bf4852dSDavid S. Miller default 1024 if CRYPTO_JITTERENTROPY_MEMSIZE_1024 12819bf4852dSDavid S. Miller default 2048 if CRYPTO_JITTERENTROPY_MEMSIZE_8192 12829bf4852dSDavid S. Miller 12839bf4852dSDavid S. Millerconfig CRYPTO_JITTERENTROPY_OSR 12849bf4852dSDavid S. Miller int "CPU Jitter RNG Oversampling Rate" 12859bf4852dSDavid S. Miller range 1 15 12869bf4852dSDavid S. Miller default 3 1287504c6143SMarkus Stockhausen help 1288504c6143SMarkus Stockhausen The Jitter RNG allows the specification of an oversampling rate (OSR). 1289504c6143SMarkus Stockhausen The Jitter RNG operation requires a fixed amount of timing 1290b95bba5dSEric Biggers measurements to produce one output block of random numbers. The 1291504c6143SMarkus Stockhausen OSR value is multiplied with the amount of timing measurements to 1292504c6143SMarkus Stockhausen generate one output block. Thus, the timing measurement is oversampled 1293504c6143SMarkus Stockhausen by the OSR factor. The oversampling allows the Jitter RNG to operate 1294504c6143SMarkus Stockhausen on hardware whose timers deliver limited amount of entropy (e.g. 1295504c6143SMarkus Stockhausen the timer is coarse) by setting the OSR to a higher value. The 1296504c6143SMarkus Stockhausen trade-off, however, is that the Jitter RNG now requires more time 1297504c6143SMarkus Stockhausen to generate random numbers. 1298504c6143SMarkus Stockhausen 1299504c6143SMarkus Stockhausenconfig CRYPTO_JITTERENTROPY_TESTINTERFACE 1300504c6143SMarkus Stockhausen bool "CPU Jitter RNG Test Interface" 1301b7133757SJason A. Donenfeld help 1302b7133757SJason A. Donenfeld The test interface allows a privileged process to capture 1303b7133757SJason A. Donenfeld the raw unconditioned high resolution time stamp noise that 1304b7133757SJason A. Donenfeld is collected by the Jitter RNG for statistical analysis. As 1305b7133757SJason A. Donenfeld this data is used at the same time to generate random bits, 1306b7133757SJason A. Donenfeld the Jitter RNG operates in an insecure mode as long as the 1307b7133757SJason A. Donenfeld recording is enabled. This interface therefore is only 1308b7133757SJason A. Donenfeld intended for testing purposes and is not suitable for 1309b7133757SJason A. Donenfeld production systems. 1310b7133757SJason A. Donenfeld 1311b7133757SJason A. Donenfeld The raw noise data can be obtained using the jent_raw_hires 1312b7133757SJason A. Donenfeld debugfs file. Using the option 1313b7133757SJason A. Donenfeld jitterentropy_testing.boot_raw_hires_test=1 the raw noise of 1314b7133757SJason A. Donenfeld the first 1000 entropy events since boot can be sampled. 1315b7133757SJason A. Donenfeld 1316b7133757SJason A. Donenfeld If unsure, select N. 1317b7133757SJason A. Donenfeld 13181da177e4SLinus Torvaldsendif # if CRYPTO_FIPS && EXPERT 13191da177e4SLinus Torvalds 13201674aea5SArd Biesheuvelif !(CRYPTO_FIPS && EXPERT) 1321cce9e06dSHerbert Xu 13221da177e4SLinus Torvaldsconfig CRYPTO_JITTERENTROPY_MEMORY_BLOCKS 13231da177e4SLinus Torvalds int 13241da177e4SLinus Torvalds default 64 13251da177e4SLinus Torvalds 13261da177e4SLinus Torvaldsconfig CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE 13271da177e4SLinus Torvalds int 13281da177e4SLinus Torvalds default 32 13291da177e4SLinus Torvalds 13306d8de74cSJustin P. Mattockconfig CRYPTO_JITTERENTROPY_OSR 13316d8de74cSJustin P. Mattock int 13321da177e4SLinus Torvalds default 1 1333584fffc8SSebastian Siewior 1334584fffc8SSebastian Siewiorconfig CRYPTO_JITTERENTROPY_TESTINTERFACE 13359ace6771SArd Biesheuvel bool 1336b95bba5dSEric Biggers 1337dc51f257SArd Biesheuvelendif # if !(CRYPTO_FIPS && EXPERT) 1338e2ee95b8SHye-Shik Changendif # if CRYPTO_JITTERENTROPY 1339584fffc8SSebastian Siewior 1340e2ee95b8SHye-Shik Changconfig CRYPTO_KDF800108_CTR 1341584fffc8SSebastian Siewior tristate 1342584fffc8SSebastian Siewior select CRYPTO_HMAC 1343584fffc8SSebastian Siewior select CRYPTO_SHA256 1344584fffc8SSebastian Siewior 1345584fffc8SSebastian Siewiorendmenu 1346584fffc8SSebastian Siewiormenu "Userspace interface" 1347584fffc8SSebastian Siewior 1348584fffc8SSebastian Siewiorconfig CRYPTO_USER_API 134952ba867cSJussi Kivilinna tristate 1350584fffc8SSebastian Siewior 1351584fffc8SSebastian Siewiorconfig CRYPTO_USER_API_HASH 1352584fffc8SSebastian Siewior tristate "Hash algorithms" 1353584fffc8SSebastian Siewior depends on NET 1354584fffc8SSebastian Siewior select CRYPTO_HASH 1355584fffc8SSebastian Siewior select CRYPTO_USER_API 1356e2ee95b8SHye-Shik Chang help 1357e2ee95b8SHye-Shik Chang Enable the userspace interface for hash algorithms. 13589332a9e7SAlexander A. Klimov 1359584fffc8SSebastian Siewior See Documentation/crypto/userspace-if.rst and 136052ba867cSJussi Kivilinna https://www.chronox.de/libkcapi/html/index.html 136152ba867cSJussi Kivilinna 136252ba867cSJussi Kivilinnaconfig CRYPTO_USER_API_SKCIPHER 136352ba867cSJussi Kivilinna tristate "Symmetric key cipher algorithms" 136452ba867cSJussi Kivilinna depends on NET 136552ba867cSJussi Kivilinna select CRYPTO_SKCIPHER 136652ba867cSJussi Kivilinna select CRYPTO_USER_API 13679332a9e7SAlexander A. Klimov help 136852ba867cSJussi Kivilinna Enable the userspace interface for symmetric key cipher algorithms. 136964b94ceaSJussi Kivilinna 137064b94ceaSJussi Kivilinna See Documentation/crypto/userspace-if.rst and 1371f21a7c19SAl Viro https://www.chronox.de/libkcapi/html/index.html 1372b95bba5dSEric Biggers 137364b94ceaSJussi Kivilinnaconfig CRYPTO_USER_API_RNG 1374c0a64926SArd Biesheuvel tristate "RNG (random number generator) algorithms" 137564b94ceaSJussi Kivilinna depends on NET 137664b94ceaSJussi Kivilinna select CRYPTO_RNG 137764b94ceaSJussi Kivilinna select CRYPTO_USER_API 137864b94ceaSJussi Kivilinna help 137964b94ceaSJussi Kivilinna Enable the userspace interface for RNG (random number generator) 138064b94ceaSJussi Kivilinna algorithms. 138164b94ceaSJussi Kivilinna 138264b94ceaSJussi Kivilinna See Documentation/crypto/userspace-if.rst and 13839332a9e7SAlexander A. Klimov https://www.chronox.de/libkcapi/html/index.html 138464b94ceaSJussi Kivilinna 1385584fffc8SSebastian Siewiorconfig CRYPTO_USER_API_RNG_CAVP 1386584fffc8SSebastian Siewior bool "Enable CAVP testing of DRBG" 1387584fffc8SSebastian Siewior depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG 1388584fffc8SSebastian Siewior help 1389584fffc8SSebastian Siewior Enable extra APIs in the userspace interface for NIST CAVP 1390584fffc8SSebastian Siewior (Cryptographic Algorithm Validation Program) testing: 1391584fffc8SSebastian Siewior - resetting DRBG entropy 1392584fffc8SSebastian Siewior - providing Additional Data 1393584fffc8SSebastian Siewior 1394584fffc8SSebastian Siewior This should only be enabled for CAVP testing. You should say 1395584fffc8SSebastian Siewior no unless you know what this is. 1396584fffc8SSebastian Siewior 1397584fffc8SSebastian Siewiorconfig CRYPTO_USER_API_AEAD 1398584fffc8SSebastian Siewior tristate "AEAD cipher algorithms" 13990b95ec56SJussi Kivilinna depends on NET 14000b95ec56SJussi Kivilinna select CRYPTO_AEAD 1401f21a7c19SAl Viro select CRYPTO_SKCIPHER 1402b95bba5dSEric Biggers select CRYPTO_USER_API 1403a1f91ecfSArd Biesheuvel help 14040b95ec56SJussi Kivilinna Enable the userspace interface for AEAD cipher algorithms. 14050b95ec56SJussi Kivilinna 14060b95ec56SJussi Kivilinna See Documentation/crypto/userspace-if.rst and 14070b95ec56SJussi Kivilinna https://www.chronox.de/libkcapi/html/index.html 14080b95ec56SJussi Kivilinna 14090b95ec56SJussi Kivilinnaconfig CRYPTO_USER_API_ENABLE_OBSOLETE 14100b95ec56SJussi Kivilinna bool "Obsolete cryptographic algorithms" 14110b95ec56SJussi Kivilinna depends on CRYPTO_USER_API 14120b95ec56SJussi Kivilinna default y 14130b95ec56SJussi Kivilinna help 14140b95ec56SJussi Kivilinna Allow obsolete cryptographic algorithms to be selected that have 1415d9b1d2e7SJussi Kivilinna already been phased out from internal use by the kernel, and are 1416d9b1d2e7SJussi Kivilinna only useful for userspace clients that still rely on them. 1417d9b1d2e7SJussi Kivilinna 1418b95bba5dSEric Biggersendmenu 1419d9b1d2e7SJussi Kivilinna 142044893bc2SEric Biggersif !KMSAN # avoid false positives from assembly 142155a7e88fSArd Biesheuvelif ARM 1422d9b1d2e7SJussi Kivilinnasource "arch/arm/crypto/Kconfig" 1423d9b1d2e7SJussi Kivilinnaendif 1424d9b1d2e7SJussi Kivilinnaif ARM64 1425d9b1d2e7SJussi Kivilinnasource "arch/arm64/crypto/Kconfig" 1426d9b1d2e7SJussi Kivilinnaendif 1427d9b1d2e7SJussi Kivilinnaif LOONGARCH 1428d9b1d2e7SJussi Kivilinnasource "arch/loongarch/crypto/Kconfig" 1429d9b1d2e7SJussi Kivilinnaendif 1430d9b1d2e7SJussi Kivilinnaif MIPS 1431d9b1d2e7SJussi Kivilinnasource "arch/mips/crypto/Kconfig" 1432d9b1d2e7SJussi Kivilinnaendif 1433f3f935a7SJussi Kivilinnaif PPC 1434f3f935a7SJussi Kivilinnasource "arch/powerpc/crypto/Kconfig" 1435f3f935a7SJussi Kivilinnaendif 1436f3f935a7SJussi Kivilinnaif RISCV 1437f3f935a7SJussi Kivilinnasource "arch/riscv/crypto/Kconfig" 1438f3f935a7SJussi Kivilinnaendif 1439f3f935a7SJussi Kivilinnaif S390 1440f3f935a7SJussi Kivilinnasource "arch/s390/crypto/Kconfig" 1441f3f935a7SJussi Kivilinnaendif 1442f3f935a7SJussi Kivilinnaif SPARC 1443f3f935a7SJussi Kivilinnasource "arch/sparc/crypto/Kconfig" 1444f3f935a7SJussi Kivilinnaendif 1445f3f935a7SJussi Kivilinnaif X86 1446f3f935a7SJussi Kivilinnasource "arch/x86/crypto/Kconfig" 1447f3f935a7SJussi Kivilinnaendif 144881658ad0SDavid S. Millerendif 144981658ad0SDavid S. Miller 145081658ad0SDavid S. Millersource "drivers/crypto/Kconfig" 145181658ad0SDavid S. Millersource "crypto/asymmetric_keys/Kconfig" 1452b95bba5dSEric Biggerssource "certs/Kconfig" 145381658ad0SDavid S. Millersource "crypto/krb5/Kconfig" 145481658ad0SDavid S. Miller 145581658ad0SDavid S. Millerendif # if CRYPTO 145681658ad0SDavid S. Miller