1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Generic algorithms support 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyunconfig XOR_BLOCKS 6*4882a593Smuzhiyun tristate 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun# 9*4882a593Smuzhiyun# async_tx api: hardware offloaded memory transfer/transform support 10*4882a593Smuzhiyun# 11*4882a593Smuzhiyunsource "crypto/async_tx/Kconfig" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun# 14*4882a593Smuzhiyun# Cryptographic API Configuration 15*4882a593Smuzhiyun# 16*4882a593Smuzhiyunmenuconfig CRYPTO 17*4882a593Smuzhiyun tristate "Cryptographic API" 18*4882a593Smuzhiyun select LIB_MEMNEQ 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun This option provides the core Cryptographic API. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunif CRYPTO 23*4882a593Smuzhiyun 24*4882a593Smuzhiyuncomment "Crypto core or helper" 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunconfig CRYPTO_FIPS 27*4882a593Smuzhiyun bool "FIPS 200 compliance" 28*4882a593Smuzhiyun depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS 29*4882a593Smuzhiyun depends on (MODULE_SIG || !MODULES) 30*4882a593Smuzhiyun help 31*4882a593Smuzhiyun This option enables the fips boot option which is 32*4882a593Smuzhiyun required if you want the system to operate in a FIPS 200 33*4882a593Smuzhiyun certification. You should say no unless you know what 34*4882a593Smuzhiyun this is. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun# CRYPTO_FIPS140 just enables the support in the kernel for loading fips140.ko. 37*4882a593Smuzhiyun# The module still needs to be built and loaded if you need FIPS 140 compliance. 38*4882a593Smuzhiyunconfig CRYPTO_FIPS140 39*4882a593Smuzhiyun def_bool y 40*4882a593Smuzhiyun depends on MODULES && ARM64 && ARM64_MODULE_PLTS 41*4882a593Smuzhiyun 42*4882a593Smuzhiyunconfig CRYPTO_FIPS140_MOD 43*4882a593Smuzhiyun bool "Enable FIPS 140 cryptographic module" 44*4882a593Smuzhiyun depends on LTO_CLANG && CRYPTO_FIPS140 45*4882a593Smuzhiyun help 46*4882a593Smuzhiyun This option enables building a loadable module fips140.ko, which 47*4882a593Smuzhiyun contains various crypto algorithms that are also built into vmlinux. 48*4882a593Smuzhiyun At load time, this module overrides the built-in implementations of 49*4882a593Smuzhiyun these algorithms with its implementations. It also runs self-tests on 50*4882a593Smuzhiyun these algorithms and verifies the integrity of its code and data. If 51*4882a593Smuzhiyun either of these steps fails, the kernel will panic. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun This module is intended to be loaded at early boot time in order to 54*4882a593Smuzhiyun meet FIPS 140 and NIAP FPT_TST_EXT.1 requirements. It shouldn't be 55*4882a593Smuzhiyun used if you don't need to meet these requirements. 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunconfig CRYPTO_FIPS140_MOD_EVAL_TESTING 58*4882a593Smuzhiyun bool "Enable evaluation testing features in FIPS 140 module" 59*4882a593Smuzhiyun depends on CRYPTO_FIPS140_MOD 60*4882a593Smuzhiyun help 61*4882a593Smuzhiyun This option adds some features to the FIPS 140 module which are needed 62*4882a593Smuzhiyun for lab evaluation testing of the module, e.g. support for injecting 63*4882a593Smuzhiyun errors and support for a userspace interface to some of the module's 64*4882a593Smuzhiyun services. This option should not be enabled in production builds. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunconfig CRYPTO_ALGAPI 67*4882a593Smuzhiyun tristate 68*4882a593Smuzhiyun select CRYPTO_ALGAPI2 69*4882a593Smuzhiyun help 70*4882a593Smuzhiyun This option provides the API for cryptographic algorithms. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig CRYPTO_ALGAPI2 73*4882a593Smuzhiyun tristate 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunconfig CRYPTO_AEAD 76*4882a593Smuzhiyun tristate 77*4882a593Smuzhiyun select CRYPTO_AEAD2 78*4882a593Smuzhiyun select CRYPTO_ALGAPI 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig CRYPTO_AEAD2 81*4882a593Smuzhiyun tristate 82*4882a593Smuzhiyun select CRYPTO_ALGAPI2 83*4882a593Smuzhiyun select CRYPTO_NULL2 84*4882a593Smuzhiyun select CRYPTO_RNG2 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunconfig CRYPTO_SKCIPHER 87*4882a593Smuzhiyun tristate 88*4882a593Smuzhiyun select CRYPTO_SKCIPHER2 89*4882a593Smuzhiyun select CRYPTO_ALGAPI 90*4882a593Smuzhiyun 91*4882a593Smuzhiyunconfig CRYPTO_SKCIPHER2 92*4882a593Smuzhiyun tristate 93*4882a593Smuzhiyun select CRYPTO_ALGAPI2 94*4882a593Smuzhiyun select CRYPTO_RNG2 95*4882a593Smuzhiyun 96*4882a593Smuzhiyunconfig CRYPTO_HASH 97*4882a593Smuzhiyun tristate 98*4882a593Smuzhiyun select CRYPTO_HASH2 99*4882a593Smuzhiyun select CRYPTO_ALGAPI 100*4882a593Smuzhiyun 101*4882a593Smuzhiyunconfig CRYPTO_HASH2 102*4882a593Smuzhiyun tristate 103*4882a593Smuzhiyun select CRYPTO_ALGAPI2 104*4882a593Smuzhiyun 105*4882a593Smuzhiyunconfig CRYPTO_RNG 106*4882a593Smuzhiyun tristate 107*4882a593Smuzhiyun select CRYPTO_RNG2 108*4882a593Smuzhiyun select CRYPTO_ALGAPI 109*4882a593Smuzhiyun 110*4882a593Smuzhiyunconfig CRYPTO_RNG2 111*4882a593Smuzhiyun tristate 112*4882a593Smuzhiyun select CRYPTO_ALGAPI2 113*4882a593Smuzhiyun 114*4882a593Smuzhiyunconfig CRYPTO_RNG_DEFAULT 115*4882a593Smuzhiyun tristate 116*4882a593Smuzhiyun select CRYPTO_DRBG_MENU 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunconfig CRYPTO_AKCIPHER2 119*4882a593Smuzhiyun tristate 120*4882a593Smuzhiyun select CRYPTO_ALGAPI2 121*4882a593Smuzhiyun 122*4882a593Smuzhiyunconfig CRYPTO_AKCIPHER 123*4882a593Smuzhiyun tristate 124*4882a593Smuzhiyun select CRYPTO_AKCIPHER2 125*4882a593Smuzhiyun select CRYPTO_ALGAPI 126*4882a593Smuzhiyun 127*4882a593Smuzhiyunconfig CRYPTO_KPP2 128*4882a593Smuzhiyun tristate 129*4882a593Smuzhiyun select CRYPTO_ALGAPI2 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunconfig CRYPTO_KPP 132*4882a593Smuzhiyun tristate 133*4882a593Smuzhiyun select CRYPTO_ALGAPI 134*4882a593Smuzhiyun select CRYPTO_KPP2 135*4882a593Smuzhiyun 136*4882a593Smuzhiyunconfig CRYPTO_ACOMP2 137*4882a593Smuzhiyun tristate 138*4882a593Smuzhiyun select CRYPTO_ALGAPI2 139*4882a593Smuzhiyun select SGL_ALLOC 140*4882a593Smuzhiyun 141*4882a593Smuzhiyunconfig CRYPTO_ACOMP 142*4882a593Smuzhiyun tristate 143*4882a593Smuzhiyun select CRYPTO_ALGAPI 144*4882a593Smuzhiyun select CRYPTO_ACOMP2 145*4882a593Smuzhiyun 146*4882a593Smuzhiyunconfig CRYPTO_MANAGER 147*4882a593Smuzhiyun tristate "Cryptographic algorithm manager" 148*4882a593Smuzhiyun select CRYPTO_MANAGER2 149*4882a593Smuzhiyun help 150*4882a593Smuzhiyun Create default cryptographic template instantiations such as 151*4882a593Smuzhiyun cbc(aes). 152*4882a593Smuzhiyun 153*4882a593Smuzhiyunconfig CRYPTO_MANAGER2 154*4882a593Smuzhiyun def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) 155*4882a593Smuzhiyun select CRYPTO_AEAD2 156*4882a593Smuzhiyun select CRYPTO_HASH2 157*4882a593Smuzhiyun select CRYPTO_SKCIPHER2 158*4882a593Smuzhiyun select CRYPTO_AKCIPHER2 159*4882a593Smuzhiyun select CRYPTO_KPP2 160*4882a593Smuzhiyun select CRYPTO_ACOMP2 161*4882a593Smuzhiyun 162*4882a593Smuzhiyunconfig CRYPTO_USER 163*4882a593Smuzhiyun tristate "Userspace cryptographic algorithm configuration" 164*4882a593Smuzhiyun depends on NET 165*4882a593Smuzhiyun select CRYPTO_MANAGER 166*4882a593Smuzhiyun help 167*4882a593Smuzhiyun Userspace configuration for cryptographic instantiations such as 168*4882a593Smuzhiyun cbc(aes). 169*4882a593Smuzhiyun 170*4882a593Smuzhiyunconfig CRYPTO_MANAGER_DISABLE_TESTS 171*4882a593Smuzhiyun bool "Disable run-time self tests" 172*4882a593Smuzhiyun default y 173*4882a593Smuzhiyun help 174*4882a593Smuzhiyun Disable run-time self tests that normally take place at 175*4882a593Smuzhiyun algorithm registration. 176*4882a593Smuzhiyun 177*4882a593Smuzhiyunconfig CRYPTO_MANAGER_EXTRA_TESTS 178*4882a593Smuzhiyun bool "Enable extra run-time crypto self tests" 179*4882a593Smuzhiyun depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER 180*4882a593Smuzhiyun help 181*4882a593Smuzhiyun Enable extra run-time self tests of registered crypto algorithms, 182*4882a593Smuzhiyun including randomized fuzz tests. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun This is intended for developer use only, as these tests take much 185*4882a593Smuzhiyun longer to run than the normal self tests. 186*4882a593Smuzhiyun 187*4882a593Smuzhiyunconfig CRYPTO_GF128MUL 188*4882a593Smuzhiyun tristate 189*4882a593Smuzhiyun 190*4882a593Smuzhiyunconfig CRYPTO_NULL 191*4882a593Smuzhiyun tristate "Null algorithms" 192*4882a593Smuzhiyun select CRYPTO_NULL2 193*4882a593Smuzhiyun help 194*4882a593Smuzhiyun These are 'Null' algorithms, used by IPsec, which do nothing. 195*4882a593Smuzhiyun 196*4882a593Smuzhiyunconfig CRYPTO_NULL2 197*4882a593Smuzhiyun tristate 198*4882a593Smuzhiyun select CRYPTO_ALGAPI2 199*4882a593Smuzhiyun select CRYPTO_SKCIPHER2 200*4882a593Smuzhiyun select CRYPTO_HASH2 201*4882a593Smuzhiyun 202*4882a593Smuzhiyunconfig CRYPTO_PCRYPT 203*4882a593Smuzhiyun tristate "Parallel crypto engine" 204*4882a593Smuzhiyun depends on SMP 205*4882a593Smuzhiyun select PADATA 206*4882a593Smuzhiyun select CRYPTO_MANAGER 207*4882a593Smuzhiyun select CRYPTO_AEAD 208*4882a593Smuzhiyun help 209*4882a593Smuzhiyun This converts an arbitrary crypto algorithm into a parallel 210*4882a593Smuzhiyun algorithm that executes in kernel threads. 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunconfig CRYPTO_CRYPTD 213*4882a593Smuzhiyun tristate "Software async crypto daemon" 214*4882a593Smuzhiyun select CRYPTO_SKCIPHER 215*4882a593Smuzhiyun select CRYPTO_HASH 216*4882a593Smuzhiyun select CRYPTO_MANAGER 217*4882a593Smuzhiyun help 218*4882a593Smuzhiyun This is a generic software asynchronous crypto daemon that 219*4882a593Smuzhiyun converts an arbitrary synchronous software crypto algorithm 220*4882a593Smuzhiyun into an asynchronous algorithm that executes in a kernel thread. 221*4882a593Smuzhiyun 222*4882a593Smuzhiyunconfig CRYPTO_AUTHENC 223*4882a593Smuzhiyun tristate "Authenc support" 224*4882a593Smuzhiyun select CRYPTO_AEAD 225*4882a593Smuzhiyun select CRYPTO_SKCIPHER 226*4882a593Smuzhiyun select CRYPTO_MANAGER 227*4882a593Smuzhiyun select CRYPTO_HASH 228*4882a593Smuzhiyun select CRYPTO_NULL 229*4882a593Smuzhiyun help 230*4882a593Smuzhiyun Authenc: Combined mode wrapper for IPsec. 231*4882a593Smuzhiyun This is required for IPSec. 232*4882a593Smuzhiyun 233*4882a593Smuzhiyunconfig CRYPTO_TEST 234*4882a593Smuzhiyun tristate "Testing module" 235*4882a593Smuzhiyun depends on m 236*4882a593Smuzhiyun select CRYPTO_MANAGER 237*4882a593Smuzhiyun help 238*4882a593Smuzhiyun Quick & dirty crypto test module. 239*4882a593Smuzhiyun 240*4882a593Smuzhiyunconfig CRYPTO_SIMD 241*4882a593Smuzhiyun tristate 242*4882a593Smuzhiyun select CRYPTO_CRYPTD 243*4882a593Smuzhiyun 244*4882a593Smuzhiyunconfig CRYPTO_GLUE_HELPER_X86 245*4882a593Smuzhiyun tristate 246*4882a593Smuzhiyun depends on X86 247*4882a593Smuzhiyun select CRYPTO_SKCIPHER 248*4882a593Smuzhiyun 249*4882a593Smuzhiyunconfig CRYPTO_ENGINE 250*4882a593Smuzhiyun tristate 251*4882a593Smuzhiyun 252*4882a593Smuzhiyuncomment "Public-key cryptography" 253*4882a593Smuzhiyun 254*4882a593Smuzhiyunconfig CRYPTO_RSA 255*4882a593Smuzhiyun tristate "RSA algorithm" 256*4882a593Smuzhiyun select CRYPTO_AKCIPHER 257*4882a593Smuzhiyun select CRYPTO_MANAGER 258*4882a593Smuzhiyun select MPILIB 259*4882a593Smuzhiyun select ASN1 260*4882a593Smuzhiyun help 261*4882a593Smuzhiyun Generic implementation of the RSA public key algorithm. 262*4882a593Smuzhiyun 263*4882a593Smuzhiyunconfig CRYPTO_DH 264*4882a593Smuzhiyun tristate "Diffie-Hellman algorithm" 265*4882a593Smuzhiyun select CRYPTO_KPP 266*4882a593Smuzhiyun select MPILIB 267*4882a593Smuzhiyun help 268*4882a593Smuzhiyun Generic implementation of the Diffie-Hellman algorithm. 269*4882a593Smuzhiyun 270*4882a593Smuzhiyunconfig CRYPTO_ECC 271*4882a593Smuzhiyun tristate 272*4882a593Smuzhiyun select CRYPTO_RNG_DEFAULT 273*4882a593Smuzhiyun 274*4882a593Smuzhiyunconfig CRYPTO_ECDH 275*4882a593Smuzhiyun tristate "ECDH algorithm" 276*4882a593Smuzhiyun select CRYPTO_ECC 277*4882a593Smuzhiyun select CRYPTO_KPP 278*4882a593Smuzhiyun help 279*4882a593Smuzhiyun Generic implementation of the ECDH algorithm 280*4882a593Smuzhiyun 281*4882a593Smuzhiyunconfig CRYPTO_ECRDSA 282*4882a593Smuzhiyun tristate "EC-RDSA (GOST 34.10) algorithm" 283*4882a593Smuzhiyun select CRYPTO_ECC 284*4882a593Smuzhiyun select CRYPTO_AKCIPHER 285*4882a593Smuzhiyun select CRYPTO_STREEBOG 286*4882a593Smuzhiyun select OID_REGISTRY 287*4882a593Smuzhiyun select ASN1 288*4882a593Smuzhiyun help 289*4882a593Smuzhiyun Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, 290*4882a593Smuzhiyun RFC 7091, ISO/IEC 14888-3:2018) is one of the Russian cryptographic 291*4882a593Smuzhiyun standard algorithms (called GOST algorithms). Only signature verification 292*4882a593Smuzhiyun is implemented. 293*4882a593Smuzhiyun 294*4882a593Smuzhiyunconfig CRYPTO_SM2 295*4882a593Smuzhiyun tristate "SM2 algorithm" 296*4882a593Smuzhiyun select CRYPTO_SM3 297*4882a593Smuzhiyun select CRYPTO_AKCIPHER 298*4882a593Smuzhiyun select CRYPTO_MANAGER 299*4882a593Smuzhiyun select MPILIB 300*4882a593Smuzhiyun select ASN1 301*4882a593Smuzhiyun help 302*4882a593Smuzhiyun Generic implementation of the SM2 public key algorithm. It was 303*4882a593Smuzhiyun published by State Encryption Management Bureau, China. 304*4882a593Smuzhiyun as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012. 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun References: 307*4882a593Smuzhiyun https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02 308*4882a593Smuzhiyun http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml 309*4882a593Smuzhiyun http://www.gmbz.org.cn/main/bzlb.html 310*4882a593Smuzhiyun 311*4882a593Smuzhiyunconfig CRYPTO_CURVE25519 312*4882a593Smuzhiyun tristate "Curve25519 algorithm" 313*4882a593Smuzhiyun select CRYPTO_KPP 314*4882a593Smuzhiyun select CRYPTO_LIB_CURVE25519_GENERIC 315*4882a593Smuzhiyun 316*4882a593Smuzhiyunconfig CRYPTO_CURVE25519_X86 317*4882a593Smuzhiyun tristate "x86_64 accelerated Curve25519 scalar multiplication library" 318*4882a593Smuzhiyun depends on X86 && 64BIT 319*4882a593Smuzhiyun select CRYPTO_LIB_CURVE25519_GENERIC 320*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_CURVE25519 321*4882a593Smuzhiyun 322*4882a593Smuzhiyuncomment "Authenticated Encryption with Associated Data" 323*4882a593Smuzhiyun 324*4882a593Smuzhiyunconfig CRYPTO_CCM 325*4882a593Smuzhiyun tristate "CCM support" 326*4882a593Smuzhiyun select CRYPTO_CTR 327*4882a593Smuzhiyun select CRYPTO_HASH 328*4882a593Smuzhiyun select CRYPTO_AEAD 329*4882a593Smuzhiyun select CRYPTO_MANAGER 330*4882a593Smuzhiyun help 331*4882a593Smuzhiyun Support for Counter with CBC MAC. Required for IPsec. 332*4882a593Smuzhiyun 333*4882a593Smuzhiyunconfig CRYPTO_GCM 334*4882a593Smuzhiyun tristate "GCM/GMAC support" 335*4882a593Smuzhiyun select CRYPTO_CTR 336*4882a593Smuzhiyun select CRYPTO_AEAD 337*4882a593Smuzhiyun select CRYPTO_GHASH 338*4882a593Smuzhiyun select CRYPTO_NULL 339*4882a593Smuzhiyun select CRYPTO_MANAGER 340*4882a593Smuzhiyun help 341*4882a593Smuzhiyun Support for Galois/Counter Mode (GCM) and Galois Message 342*4882a593Smuzhiyun Authentication Code (GMAC). Required for IPSec. 343*4882a593Smuzhiyun 344*4882a593Smuzhiyunconfig CRYPTO_CHACHA20POLY1305 345*4882a593Smuzhiyun tristate "ChaCha20-Poly1305 AEAD support" 346*4882a593Smuzhiyun select CRYPTO_CHACHA20 347*4882a593Smuzhiyun select CRYPTO_POLY1305 348*4882a593Smuzhiyun select CRYPTO_AEAD 349*4882a593Smuzhiyun select CRYPTO_MANAGER 350*4882a593Smuzhiyun help 351*4882a593Smuzhiyun ChaCha20-Poly1305 AEAD support, RFC7539. 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun Support for the AEAD wrapper using the ChaCha20 stream cipher combined 354*4882a593Smuzhiyun with the Poly1305 authenticator. It is defined in RFC7539 for use in 355*4882a593Smuzhiyun IETF protocols. 356*4882a593Smuzhiyun 357*4882a593Smuzhiyunconfig CRYPTO_AEGIS128 358*4882a593Smuzhiyun tristate "AEGIS-128 AEAD algorithm" 359*4882a593Smuzhiyun select CRYPTO_AEAD 360*4882a593Smuzhiyun select CRYPTO_AES # for AES S-box tables 361*4882a593Smuzhiyun help 362*4882a593Smuzhiyun Support for the AEGIS-128 dedicated AEAD algorithm. 363*4882a593Smuzhiyun 364*4882a593Smuzhiyunconfig CRYPTO_AEGIS128_SIMD 365*4882a593Smuzhiyun bool "Support SIMD acceleration for AEGIS-128" 366*4882a593Smuzhiyun depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON) 367*4882a593Smuzhiyun default y 368*4882a593Smuzhiyun 369*4882a593Smuzhiyunconfig CRYPTO_AEGIS128_AESNI_SSE2 370*4882a593Smuzhiyun tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)" 371*4882a593Smuzhiyun depends on X86 && 64BIT 372*4882a593Smuzhiyun select CRYPTO_AEAD 373*4882a593Smuzhiyun select CRYPTO_SIMD 374*4882a593Smuzhiyun help 375*4882a593Smuzhiyun AESNI+SSE2 implementation of the AEGIS-128 dedicated AEAD algorithm. 376*4882a593Smuzhiyun 377*4882a593Smuzhiyunconfig CRYPTO_SEQIV 378*4882a593Smuzhiyun tristate "Sequence Number IV Generator" 379*4882a593Smuzhiyun select CRYPTO_AEAD 380*4882a593Smuzhiyun select CRYPTO_SKCIPHER 381*4882a593Smuzhiyun select CRYPTO_NULL 382*4882a593Smuzhiyun select CRYPTO_RNG_DEFAULT 383*4882a593Smuzhiyun select CRYPTO_MANAGER 384*4882a593Smuzhiyun help 385*4882a593Smuzhiyun This IV generator generates an IV based on a sequence number by 386*4882a593Smuzhiyun xoring it with a salt. This algorithm is mainly useful for CTR 387*4882a593Smuzhiyun 388*4882a593Smuzhiyunconfig CRYPTO_ECHAINIV 389*4882a593Smuzhiyun tristate "Encrypted Chain IV Generator" 390*4882a593Smuzhiyun select CRYPTO_AEAD 391*4882a593Smuzhiyun select CRYPTO_NULL 392*4882a593Smuzhiyun select CRYPTO_RNG_DEFAULT 393*4882a593Smuzhiyun select CRYPTO_MANAGER 394*4882a593Smuzhiyun help 395*4882a593Smuzhiyun This IV generator generates an IV based on the encryption of 396*4882a593Smuzhiyun a sequence number xored with a salt. This is the default 397*4882a593Smuzhiyun algorithm for CBC. 398*4882a593Smuzhiyun 399*4882a593Smuzhiyuncomment "Block modes" 400*4882a593Smuzhiyun 401*4882a593Smuzhiyunconfig CRYPTO_CBC 402*4882a593Smuzhiyun tristate "CBC support" 403*4882a593Smuzhiyun select CRYPTO_SKCIPHER 404*4882a593Smuzhiyun select CRYPTO_MANAGER 405*4882a593Smuzhiyun help 406*4882a593Smuzhiyun CBC: Cipher Block Chaining mode 407*4882a593Smuzhiyun This block cipher algorithm is required for IPSec. 408*4882a593Smuzhiyun 409*4882a593Smuzhiyunconfig CRYPTO_CFB 410*4882a593Smuzhiyun tristate "CFB support" 411*4882a593Smuzhiyun select CRYPTO_SKCIPHER 412*4882a593Smuzhiyun select CRYPTO_MANAGER 413*4882a593Smuzhiyun help 414*4882a593Smuzhiyun CFB: Cipher FeedBack mode 415*4882a593Smuzhiyun This block cipher algorithm is required for TPM2 Cryptography. 416*4882a593Smuzhiyun 417*4882a593Smuzhiyunconfig CRYPTO_CTR 418*4882a593Smuzhiyun tristate "CTR support" 419*4882a593Smuzhiyun select CRYPTO_SKCIPHER 420*4882a593Smuzhiyun select CRYPTO_MANAGER 421*4882a593Smuzhiyun help 422*4882a593Smuzhiyun CTR: Counter mode 423*4882a593Smuzhiyun This block cipher algorithm is required for IPSec. 424*4882a593Smuzhiyun 425*4882a593Smuzhiyunconfig CRYPTO_CTS 426*4882a593Smuzhiyun tristate "CTS support" 427*4882a593Smuzhiyun select CRYPTO_SKCIPHER 428*4882a593Smuzhiyun select CRYPTO_MANAGER 429*4882a593Smuzhiyun help 430*4882a593Smuzhiyun CTS: Cipher Text Stealing 431*4882a593Smuzhiyun This is the Cipher Text Stealing mode as described by 432*4882a593Smuzhiyun Section 8 of rfc2040 and referenced by rfc3962 433*4882a593Smuzhiyun (rfc3962 includes errata information in its Appendix A) or 434*4882a593Smuzhiyun CBC-CS3 as defined by NIST in Sp800-38A addendum from Oct 2010. 435*4882a593Smuzhiyun This mode is required for Kerberos gss mechanism support 436*4882a593Smuzhiyun for AES encryption. 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun See: https://csrc.nist.gov/publications/detail/sp/800-38a/addendum/final 439*4882a593Smuzhiyun 440*4882a593Smuzhiyunconfig CRYPTO_ECB 441*4882a593Smuzhiyun tristate "ECB support" 442*4882a593Smuzhiyun select CRYPTO_SKCIPHER 443*4882a593Smuzhiyun select CRYPTO_MANAGER 444*4882a593Smuzhiyun help 445*4882a593Smuzhiyun ECB: Electronic CodeBook mode 446*4882a593Smuzhiyun This is the simplest block cipher algorithm. It simply encrypts 447*4882a593Smuzhiyun the input block by block. 448*4882a593Smuzhiyun 449*4882a593Smuzhiyunconfig CRYPTO_LRW 450*4882a593Smuzhiyun tristate "LRW support" 451*4882a593Smuzhiyun select CRYPTO_SKCIPHER 452*4882a593Smuzhiyun select CRYPTO_MANAGER 453*4882a593Smuzhiyun select CRYPTO_GF128MUL 454*4882a593Smuzhiyun help 455*4882a593Smuzhiyun LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 456*4882a593Smuzhiyun narrow block cipher mode for dm-crypt. Use it with cipher 457*4882a593Smuzhiyun specification string aes-lrw-benbi, the key must be 256, 320 or 384. 458*4882a593Smuzhiyun The first 128, 192 or 256 bits in the key are used for AES and the 459*4882a593Smuzhiyun rest is used to tie each cipher block to its logical position. 460*4882a593Smuzhiyun 461*4882a593Smuzhiyunconfig CRYPTO_OFB 462*4882a593Smuzhiyun tristate "OFB support" 463*4882a593Smuzhiyun select CRYPTO_SKCIPHER 464*4882a593Smuzhiyun select CRYPTO_MANAGER 465*4882a593Smuzhiyun help 466*4882a593Smuzhiyun OFB: the Output Feedback mode makes a block cipher into a synchronous 467*4882a593Smuzhiyun stream cipher. It generates keystream blocks, which are then XORed 468*4882a593Smuzhiyun with the plaintext blocks to get the ciphertext. Flipping a bit in the 469*4882a593Smuzhiyun ciphertext produces a flipped bit in the plaintext at the same 470*4882a593Smuzhiyun location. This property allows many error correcting codes to function 471*4882a593Smuzhiyun normally even when applied before encryption. 472*4882a593Smuzhiyun 473*4882a593Smuzhiyunconfig CRYPTO_PCBC 474*4882a593Smuzhiyun tristate "PCBC support" 475*4882a593Smuzhiyun select CRYPTO_SKCIPHER 476*4882a593Smuzhiyun select CRYPTO_MANAGER 477*4882a593Smuzhiyun help 478*4882a593Smuzhiyun PCBC: Propagating Cipher Block Chaining mode 479*4882a593Smuzhiyun This block cipher algorithm is required for RxRPC. 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunconfig CRYPTO_XTS 482*4882a593Smuzhiyun tristate "XTS support" 483*4882a593Smuzhiyun select CRYPTO_SKCIPHER 484*4882a593Smuzhiyun select CRYPTO_MANAGER 485*4882a593Smuzhiyun select CRYPTO_ECB 486*4882a593Smuzhiyun help 487*4882a593Smuzhiyun XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 488*4882a593Smuzhiyun key size 256, 384 or 512 bits. This implementation currently 489*4882a593Smuzhiyun can't handle a sectorsize which is not a multiple of 16 bytes. 490*4882a593Smuzhiyun 491*4882a593Smuzhiyunconfig CRYPTO_KEYWRAP 492*4882a593Smuzhiyun tristate "Key wrapping support" 493*4882a593Smuzhiyun select CRYPTO_SKCIPHER 494*4882a593Smuzhiyun select CRYPTO_MANAGER 495*4882a593Smuzhiyun help 496*4882a593Smuzhiyun Support for key wrapping (NIST SP800-38F / RFC3394) without 497*4882a593Smuzhiyun padding. 498*4882a593Smuzhiyun 499*4882a593Smuzhiyunconfig CRYPTO_NHPOLY1305 500*4882a593Smuzhiyun tristate 501*4882a593Smuzhiyun select CRYPTO_HASH 502*4882a593Smuzhiyun select CRYPTO_LIB_POLY1305_GENERIC 503*4882a593Smuzhiyun 504*4882a593Smuzhiyunconfig CRYPTO_NHPOLY1305_SSE2 505*4882a593Smuzhiyun tristate "NHPoly1305 hash function (x86_64 SSE2 implementation)" 506*4882a593Smuzhiyun depends on X86 && 64BIT 507*4882a593Smuzhiyun select CRYPTO_NHPOLY1305 508*4882a593Smuzhiyun help 509*4882a593Smuzhiyun SSE2 optimized implementation of the hash function used by the 510*4882a593Smuzhiyun Adiantum encryption mode. 511*4882a593Smuzhiyun 512*4882a593Smuzhiyunconfig CRYPTO_NHPOLY1305_AVX2 513*4882a593Smuzhiyun tristate "NHPoly1305 hash function (x86_64 AVX2 implementation)" 514*4882a593Smuzhiyun depends on X86 && 64BIT 515*4882a593Smuzhiyun select CRYPTO_NHPOLY1305 516*4882a593Smuzhiyun help 517*4882a593Smuzhiyun AVX2 optimized implementation of the hash function used by the 518*4882a593Smuzhiyun Adiantum encryption mode. 519*4882a593Smuzhiyun 520*4882a593Smuzhiyunconfig CRYPTO_ADIANTUM 521*4882a593Smuzhiyun tristate "Adiantum support" 522*4882a593Smuzhiyun select CRYPTO_CHACHA20 523*4882a593Smuzhiyun select CRYPTO_LIB_POLY1305_GENERIC 524*4882a593Smuzhiyun select CRYPTO_NHPOLY1305 525*4882a593Smuzhiyun select CRYPTO_MANAGER 526*4882a593Smuzhiyun help 527*4882a593Smuzhiyun Adiantum is a tweakable, length-preserving encryption mode 528*4882a593Smuzhiyun designed for fast and secure disk encryption, especially on 529*4882a593Smuzhiyun CPUs without dedicated crypto instructions. It encrypts 530*4882a593Smuzhiyun each sector using the XChaCha12 stream cipher, two passes of 531*4882a593Smuzhiyun an ε-almost-∆-universal hash function, and an invocation of 532*4882a593Smuzhiyun the AES-256 block cipher on a single 16-byte block. On CPUs 533*4882a593Smuzhiyun without AES instructions, Adiantum is much faster than 534*4882a593Smuzhiyun AES-XTS. 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun Adiantum's security is provably reducible to that of its 537*4882a593Smuzhiyun underlying stream and block ciphers, subject to a security 538*4882a593Smuzhiyun bound. Unlike XTS, Adiantum is a true wide-block encryption 539*4882a593Smuzhiyun mode, so it actually provides an even stronger notion of 540*4882a593Smuzhiyun security than XTS, subject to the security bound. 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun If unsure, say N. 543*4882a593Smuzhiyun 544*4882a593Smuzhiyunconfig CRYPTO_ESSIV 545*4882a593Smuzhiyun tristate "ESSIV support for block encryption" 546*4882a593Smuzhiyun select CRYPTO_AUTHENC 547*4882a593Smuzhiyun help 548*4882a593Smuzhiyun Encrypted salt-sector initialization vector (ESSIV) is an IV 549*4882a593Smuzhiyun generation method that is used in some cases by fscrypt and/or 550*4882a593Smuzhiyun dm-crypt. It uses the hash of the block encryption key as the 551*4882a593Smuzhiyun symmetric key for a block encryption pass applied to the input 552*4882a593Smuzhiyun IV, making low entropy IV sources more suitable for block 553*4882a593Smuzhiyun encryption. 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun This driver implements a crypto API template that can be 556*4882a593Smuzhiyun instantiated either as an skcipher or as an AEAD (depending on the 557*4882a593Smuzhiyun type of the first template argument), and which defers encryption 558*4882a593Smuzhiyun and decryption requests to the encapsulated cipher after applying 559*4882a593Smuzhiyun ESSIV to the input IV. Note that in the AEAD case, it is assumed 560*4882a593Smuzhiyun that the keys are presented in the same format used by the authenc 561*4882a593Smuzhiyun template, and that the IV appears at the end of the authenticated 562*4882a593Smuzhiyun associated data (AAD) region (which is how dm-crypt uses it.) 563*4882a593Smuzhiyun 564*4882a593Smuzhiyun Note that the use of ESSIV is not recommended for new deployments, 565*4882a593Smuzhiyun and so this only needs to be enabled when interoperability with 566*4882a593Smuzhiyun existing encrypted volumes of filesystems is required, or when 567*4882a593Smuzhiyun building for a particular system that requires it (e.g., when 568*4882a593Smuzhiyun the SoC in question has accelerated CBC but not XTS, making CBC 569*4882a593Smuzhiyun combined with ESSIV the only feasible mode for h/w accelerated 570*4882a593Smuzhiyun block encryption) 571*4882a593Smuzhiyun 572*4882a593Smuzhiyuncomment "Hash modes" 573*4882a593Smuzhiyun 574*4882a593Smuzhiyunconfig CRYPTO_CMAC 575*4882a593Smuzhiyun tristate "CMAC support" 576*4882a593Smuzhiyun select CRYPTO_HASH 577*4882a593Smuzhiyun select CRYPTO_MANAGER 578*4882a593Smuzhiyun help 579*4882a593Smuzhiyun Cipher-based Message Authentication Code (CMAC) specified by 580*4882a593Smuzhiyun The National Institute of Standards and Technology (NIST). 581*4882a593Smuzhiyun 582*4882a593Smuzhiyun https://tools.ietf.org/html/rfc4493 583*4882a593Smuzhiyun http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf 584*4882a593Smuzhiyun 585*4882a593Smuzhiyunconfig CRYPTO_HMAC 586*4882a593Smuzhiyun tristate "HMAC support" 587*4882a593Smuzhiyun select CRYPTO_HASH 588*4882a593Smuzhiyun select CRYPTO_MANAGER 589*4882a593Smuzhiyun help 590*4882a593Smuzhiyun HMAC: Keyed-Hashing for Message Authentication (RFC2104). 591*4882a593Smuzhiyun This is required for IPSec. 592*4882a593Smuzhiyun 593*4882a593Smuzhiyunconfig CRYPTO_XCBC 594*4882a593Smuzhiyun tristate "XCBC support" 595*4882a593Smuzhiyun select CRYPTO_HASH 596*4882a593Smuzhiyun select CRYPTO_MANAGER 597*4882a593Smuzhiyun help 598*4882a593Smuzhiyun XCBC: Keyed-Hashing with encryption algorithm 599*4882a593Smuzhiyun https://www.ietf.org/rfc/rfc3566.txt 600*4882a593Smuzhiyun http://csrc.nist.gov/encryption/modes/proposedmodes/ 601*4882a593Smuzhiyun xcbc-mac/xcbc-mac-spec.pdf 602*4882a593Smuzhiyun 603*4882a593Smuzhiyunconfig CRYPTO_VMAC 604*4882a593Smuzhiyun tristate "VMAC support" 605*4882a593Smuzhiyun select CRYPTO_HASH 606*4882a593Smuzhiyun select CRYPTO_MANAGER 607*4882a593Smuzhiyun help 608*4882a593Smuzhiyun VMAC is a message authentication algorithm designed for 609*4882a593Smuzhiyun very high speed on 64-bit architectures. 610*4882a593Smuzhiyun 611*4882a593Smuzhiyun See also: 612*4882a593Smuzhiyun <https://fastcrypto.org/vmac> 613*4882a593Smuzhiyun 614*4882a593Smuzhiyuncomment "Digest" 615*4882a593Smuzhiyun 616*4882a593Smuzhiyunconfig CRYPTO_CRC32C 617*4882a593Smuzhiyun tristate "CRC32c CRC algorithm" 618*4882a593Smuzhiyun select CRYPTO_HASH 619*4882a593Smuzhiyun select CRC32 620*4882a593Smuzhiyun help 621*4882a593Smuzhiyun Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 622*4882a593Smuzhiyun by iSCSI for header and data digests and by others. 623*4882a593Smuzhiyun See Castagnoli93. Module will be crc32c. 624*4882a593Smuzhiyun 625*4882a593Smuzhiyunconfig CRYPTO_CRC32C_INTEL 626*4882a593Smuzhiyun tristate "CRC32c INTEL hardware acceleration" 627*4882a593Smuzhiyun depends on X86 628*4882a593Smuzhiyun select CRYPTO_HASH 629*4882a593Smuzhiyun help 630*4882a593Smuzhiyun In Intel processor with SSE4.2 supported, the processor will 631*4882a593Smuzhiyun support CRC32C implementation using hardware accelerated CRC32 632*4882a593Smuzhiyun instruction. This option will create 'crc32c-intel' module, 633*4882a593Smuzhiyun which will enable any routine to use the CRC32 instruction to 634*4882a593Smuzhiyun gain performance compared with software implementation. 635*4882a593Smuzhiyun Module will be crc32c-intel. 636*4882a593Smuzhiyun 637*4882a593Smuzhiyunconfig CRYPTO_CRC32C_VPMSUM 638*4882a593Smuzhiyun tristate "CRC32c CRC algorithm (powerpc64)" 639*4882a593Smuzhiyun depends on PPC64 && ALTIVEC 640*4882a593Smuzhiyun select CRYPTO_HASH 641*4882a593Smuzhiyun select CRC32 642*4882a593Smuzhiyun help 643*4882a593Smuzhiyun CRC32c algorithm implemented using vector polynomial multiply-sum 644*4882a593Smuzhiyun (vpmsum) instructions, introduced in POWER8. Enable on POWER8 645*4882a593Smuzhiyun and newer processors for improved performance. 646*4882a593Smuzhiyun 647*4882a593Smuzhiyun 648*4882a593Smuzhiyunconfig CRYPTO_CRC32C_SPARC64 649*4882a593Smuzhiyun tristate "CRC32c CRC algorithm (SPARC64)" 650*4882a593Smuzhiyun depends on SPARC64 651*4882a593Smuzhiyun select CRYPTO_HASH 652*4882a593Smuzhiyun select CRC32 653*4882a593Smuzhiyun help 654*4882a593Smuzhiyun CRC32c CRC algorithm implemented using sparc64 crypto instructions, 655*4882a593Smuzhiyun when available. 656*4882a593Smuzhiyun 657*4882a593Smuzhiyunconfig CRYPTO_CRC32 658*4882a593Smuzhiyun tristate "CRC32 CRC algorithm" 659*4882a593Smuzhiyun select CRYPTO_HASH 660*4882a593Smuzhiyun select CRC32 661*4882a593Smuzhiyun help 662*4882a593Smuzhiyun CRC-32-IEEE 802.3 cyclic redundancy-check algorithm. 663*4882a593Smuzhiyun Shash crypto api wrappers to crc32_le function. 664*4882a593Smuzhiyun 665*4882a593Smuzhiyunconfig CRYPTO_CRC32_PCLMUL 666*4882a593Smuzhiyun tristate "CRC32 PCLMULQDQ hardware acceleration" 667*4882a593Smuzhiyun depends on X86 668*4882a593Smuzhiyun select CRYPTO_HASH 669*4882a593Smuzhiyun select CRC32 670*4882a593Smuzhiyun help 671*4882a593Smuzhiyun From Intel Westmere and AMD Bulldozer processor with SSE4.2 672*4882a593Smuzhiyun and PCLMULQDQ supported, the processor will support 673*4882a593Smuzhiyun CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ 674*4882a593Smuzhiyun instruction. This option will create 'crc32-pclmul' module, 675*4882a593Smuzhiyun which will enable any routine to use the CRC-32-IEEE 802.3 checksum 676*4882a593Smuzhiyun and gain better performance as compared with the table implementation. 677*4882a593Smuzhiyun 678*4882a593Smuzhiyunconfig CRYPTO_CRC32_MIPS 679*4882a593Smuzhiyun tristate "CRC32c and CRC32 CRC algorithm (MIPS)" 680*4882a593Smuzhiyun depends on MIPS_CRC_SUPPORT 681*4882a593Smuzhiyun select CRYPTO_HASH 682*4882a593Smuzhiyun help 683*4882a593Smuzhiyun CRC32c and CRC32 CRC algorithms implemented using mips crypto 684*4882a593Smuzhiyun instructions, when available. 685*4882a593Smuzhiyun 686*4882a593Smuzhiyun 687*4882a593Smuzhiyunconfig CRYPTO_XXHASH 688*4882a593Smuzhiyun tristate "xxHash hash algorithm" 689*4882a593Smuzhiyun select CRYPTO_HASH 690*4882a593Smuzhiyun select XXHASH 691*4882a593Smuzhiyun help 692*4882a593Smuzhiyun xxHash non-cryptographic hash algorithm. Extremely fast, working at 693*4882a593Smuzhiyun speeds close to RAM limits. 694*4882a593Smuzhiyun 695*4882a593Smuzhiyunconfig CRYPTO_BLAKE2B 696*4882a593Smuzhiyun tristate "BLAKE2b digest algorithm" 697*4882a593Smuzhiyun select CRYPTO_HASH 698*4882a593Smuzhiyun help 699*4882a593Smuzhiyun Implementation of cryptographic hash function BLAKE2b (or just BLAKE2), 700*4882a593Smuzhiyun optimized for 64bit platforms and can produce digests of any size 701*4882a593Smuzhiyun between 1 to 64. The keyed hash is also implemented. 702*4882a593Smuzhiyun 703*4882a593Smuzhiyun This module provides the following algorithms: 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun - blake2b-160 706*4882a593Smuzhiyun - blake2b-256 707*4882a593Smuzhiyun - blake2b-384 708*4882a593Smuzhiyun - blake2b-512 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun See https://blake2.net for further information. 711*4882a593Smuzhiyun 712*4882a593Smuzhiyunconfig CRYPTO_BLAKE2S 713*4882a593Smuzhiyun tristate "BLAKE2s digest algorithm" 714*4882a593Smuzhiyun select CRYPTO_LIB_BLAKE2S_GENERIC 715*4882a593Smuzhiyun select CRYPTO_HASH 716*4882a593Smuzhiyun help 717*4882a593Smuzhiyun Implementation of cryptographic hash function BLAKE2s 718*4882a593Smuzhiyun optimized for 8-32bit platforms and can produce digests of any size 719*4882a593Smuzhiyun between 1 to 32. The keyed hash is also implemented. 720*4882a593Smuzhiyun 721*4882a593Smuzhiyun This module provides the following algorithms: 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun - blake2s-128 724*4882a593Smuzhiyun - blake2s-160 725*4882a593Smuzhiyun - blake2s-224 726*4882a593Smuzhiyun - blake2s-256 727*4882a593Smuzhiyun 728*4882a593Smuzhiyun See https://blake2.net for further information. 729*4882a593Smuzhiyun 730*4882a593Smuzhiyunconfig CRYPTO_BLAKE2S_X86 731*4882a593Smuzhiyun tristate "BLAKE2s digest algorithm (x86 accelerated version)" 732*4882a593Smuzhiyun depends on X86 && 64BIT 733*4882a593Smuzhiyun select CRYPTO_LIB_BLAKE2S_GENERIC 734*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_BLAKE2S 735*4882a593Smuzhiyun 736*4882a593Smuzhiyunconfig CRYPTO_CRCT10DIF 737*4882a593Smuzhiyun tristate "CRCT10DIF algorithm" 738*4882a593Smuzhiyun select CRYPTO_HASH 739*4882a593Smuzhiyun help 740*4882a593Smuzhiyun CRC T10 Data Integrity Field computation is being cast as 741*4882a593Smuzhiyun a crypto transform. This allows for faster crc t10 diff 742*4882a593Smuzhiyun transforms to be used if they are available. 743*4882a593Smuzhiyun 744*4882a593Smuzhiyunconfig CRYPTO_CRCT10DIF_PCLMUL 745*4882a593Smuzhiyun tristate "CRCT10DIF PCLMULQDQ hardware acceleration" 746*4882a593Smuzhiyun depends on X86 && 64BIT && CRC_T10DIF 747*4882a593Smuzhiyun select CRYPTO_HASH 748*4882a593Smuzhiyun help 749*4882a593Smuzhiyun For x86_64 processors with SSE4.2 and PCLMULQDQ supported, 750*4882a593Smuzhiyun CRC T10 DIF PCLMULQDQ computation can be hardware 751*4882a593Smuzhiyun accelerated PCLMULQDQ instruction. This option will create 752*4882a593Smuzhiyun 'crct10dif-pclmul' module, which is faster when computing the 753*4882a593Smuzhiyun crct10dif checksum as compared with the generic table implementation. 754*4882a593Smuzhiyun 755*4882a593Smuzhiyunconfig CRYPTO_CRCT10DIF_VPMSUM 756*4882a593Smuzhiyun tristate "CRC32T10DIF powerpc64 hardware acceleration" 757*4882a593Smuzhiyun depends on PPC64 && ALTIVEC && CRC_T10DIF 758*4882a593Smuzhiyun select CRYPTO_HASH 759*4882a593Smuzhiyun help 760*4882a593Smuzhiyun CRC10T10DIF algorithm implemented using vector polynomial 761*4882a593Smuzhiyun multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on 762*4882a593Smuzhiyun POWER8 and newer processors for improved performance. 763*4882a593Smuzhiyun 764*4882a593Smuzhiyunconfig CRYPTO_VPMSUM_TESTER 765*4882a593Smuzhiyun tristate "Powerpc64 vpmsum hardware acceleration tester" 766*4882a593Smuzhiyun depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM 767*4882a593Smuzhiyun help 768*4882a593Smuzhiyun Stress test for CRC32c and CRC-T10DIF algorithms implemented with 769*4882a593Smuzhiyun POWER8 vpmsum instructions. 770*4882a593Smuzhiyun Unless you are testing these algorithms, you don't need this. 771*4882a593Smuzhiyun 772*4882a593Smuzhiyunconfig CRYPTO_GHASH 773*4882a593Smuzhiyun tristate "GHASH hash function" 774*4882a593Smuzhiyun select CRYPTO_GF128MUL 775*4882a593Smuzhiyun select CRYPTO_HASH 776*4882a593Smuzhiyun help 777*4882a593Smuzhiyun GHASH is the hash function used in GCM (Galois/Counter Mode). 778*4882a593Smuzhiyun It is not a general-purpose cryptographic hash function. 779*4882a593Smuzhiyun 780*4882a593Smuzhiyunconfig CRYPTO_POLY1305 781*4882a593Smuzhiyun tristate "Poly1305 authenticator algorithm" 782*4882a593Smuzhiyun select CRYPTO_HASH 783*4882a593Smuzhiyun select CRYPTO_LIB_POLY1305_GENERIC 784*4882a593Smuzhiyun help 785*4882a593Smuzhiyun Poly1305 authenticator algorithm, RFC7539. 786*4882a593Smuzhiyun 787*4882a593Smuzhiyun Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. 788*4882a593Smuzhiyun It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use 789*4882a593Smuzhiyun in IETF protocols. This is the portable C implementation of Poly1305. 790*4882a593Smuzhiyun 791*4882a593Smuzhiyunconfig CRYPTO_POLY1305_X86_64 792*4882a593Smuzhiyun tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)" 793*4882a593Smuzhiyun depends on X86 && 64BIT 794*4882a593Smuzhiyun select CRYPTO_LIB_POLY1305_GENERIC 795*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_POLY1305 796*4882a593Smuzhiyun help 797*4882a593Smuzhiyun Poly1305 authenticator algorithm, RFC7539. 798*4882a593Smuzhiyun 799*4882a593Smuzhiyun Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. 800*4882a593Smuzhiyun It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use 801*4882a593Smuzhiyun in IETF protocols. This is the x86_64 assembler implementation using SIMD 802*4882a593Smuzhiyun instructions. 803*4882a593Smuzhiyun 804*4882a593Smuzhiyunconfig CRYPTO_POLY1305_MIPS 805*4882a593Smuzhiyun tristate "Poly1305 authenticator algorithm (MIPS optimized)" 806*4882a593Smuzhiyun depends on MIPS 807*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_POLY1305 808*4882a593Smuzhiyun 809*4882a593Smuzhiyunconfig CRYPTO_MD4 810*4882a593Smuzhiyun tristate "MD4 digest algorithm" 811*4882a593Smuzhiyun select CRYPTO_HASH 812*4882a593Smuzhiyun help 813*4882a593Smuzhiyun MD4 message digest algorithm (RFC1320). 814*4882a593Smuzhiyun 815*4882a593Smuzhiyunconfig CRYPTO_MD5 816*4882a593Smuzhiyun tristate "MD5 digest algorithm" 817*4882a593Smuzhiyun select CRYPTO_HASH 818*4882a593Smuzhiyun help 819*4882a593Smuzhiyun MD5 message digest algorithm (RFC1321). 820*4882a593Smuzhiyun 821*4882a593Smuzhiyunconfig CRYPTO_MD5_OCTEON 822*4882a593Smuzhiyun tristate "MD5 digest algorithm (OCTEON)" 823*4882a593Smuzhiyun depends on CPU_CAVIUM_OCTEON 824*4882a593Smuzhiyun select CRYPTO_MD5 825*4882a593Smuzhiyun select CRYPTO_HASH 826*4882a593Smuzhiyun help 827*4882a593Smuzhiyun MD5 message digest algorithm (RFC1321) implemented 828*4882a593Smuzhiyun using OCTEON crypto instructions, when available. 829*4882a593Smuzhiyun 830*4882a593Smuzhiyunconfig CRYPTO_MD5_PPC 831*4882a593Smuzhiyun tristate "MD5 digest algorithm (PPC)" 832*4882a593Smuzhiyun depends on PPC 833*4882a593Smuzhiyun select CRYPTO_HASH 834*4882a593Smuzhiyun help 835*4882a593Smuzhiyun MD5 message digest algorithm (RFC1321) implemented 836*4882a593Smuzhiyun in PPC assembler. 837*4882a593Smuzhiyun 838*4882a593Smuzhiyunconfig CRYPTO_MD5_SPARC64 839*4882a593Smuzhiyun tristate "MD5 digest algorithm (SPARC64)" 840*4882a593Smuzhiyun depends on SPARC64 841*4882a593Smuzhiyun select CRYPTO_MD5 842*4882a593Smuzhiyun select CRYPTO_HASH 843*4882a593Smuzhiyun help 844*4882a593Smuzhiyun MD5 message digest algorithm (RFC1321) implemented 845*4882a593Smuzhiyun using sparc64 crypto instructions, when available. 846*4882a593Smuzhiyun 847*4882a593Smuzhiyunconfig CRYPTO_MICHAEL_MIC 848*4882a593Smuzhiyun tristate "Michael MIC keyed digest algorithm" 849*4882a593Smuzhiyun select CRYPTO_HASH 850*4882a593Smuzhiyun help 851*4882a593Smuzhiyun Michael MIC is used for message integrity protection in TKIP 852*4882a593Smuzhiyun (IEEE 802.11i). This algorithm is required for TKIP, but it 853*4882a593Smuzhiyun should not be used for other purposes because of the weakness 854*4882a593Smuzhiyun of the algorithm. 855*4882a593Smuzhiyun 856*4882a593Smuzhiyunconfig CRYPTO_RMD128 857*4882a593Smuzhiyun tristate "RIPEMD-128 digest algorithm" 858*4882a593Smuzhiyun select CRYPTO_HASH 859*4882a593Smuzhiyun help 860*4882a593Smuzhiyun RIPEMD-128 (ISO/IEC 10118-3:2004). 861*4882a593Smuzhiyun 862*4882a593Smuzhiyun RIPEMD-128 is a 128-bit cryptographic hash function. It should only 863*4882a593Smuzhiyun be used as a secure replacement for RIPEMD. For other use cases, 864*4882a593Smuzhiyun RIPEMD-160 should be used. 865*4882a593Smuzhiyun 866*4882a593Smuzhiyun Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 867*4882a593Smuzhiyun See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 868*4882a593Smuzhiyun 869*4882a593Smuzhiyunconfig CRYPTO_RMD160 870*4882a593Smuzhiyun tristate "RIPEMD-160 digest algorithm" 871*4882a593Smuzhiyun select CRYPTO_HASH 872*4882a593Smuzhiyun help 873*4882a593Smuzhiyun RIPEMD-160 (ISO/IEC 10118-3:2004). 874*4882a593Smuzhiyun 875*4882a593Smuzhiyun RIPEMD-160 is a 160-bit cryptographic hash function. It is intended 876*4882a593Smuzhiyun to be used as a secure replacement for the 128-bit hash functions 877*4882a593Smuzhiyun MD4, MD5 and it's predecessor RIPEMD 878*4882a593Smuzhiyun (not to be confused with RIPEMD-128). 879*4882a593Smuzhiyun 880*4882a593Smuzhiyun It's speed is comparable to SHA1 and there are no known attacks 881*4882a593Smuzhiyun against RIPEMD-160. 882*4882a593Smuzhiyun 883*4882a593Smuzhiyun Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 884*4882a593Smuzhiyun See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 885*4882a593Smuzhiyun 886*4882a593Smuzhiyunconfig CRYPTO_RMD256 887*4882a593Smuzhiyun tristate "RIPEMD-256 digest algorithm" 888*4882a593Smuzhiyun select CRYPTO_HASH 889*4882a593Smuzhiyun help 890*4882a593Smuzhiyun RIPEMD-256 is an optional extension of RIPEMD-128 with a 891*4882a593Smuzhiyun 256 bit hash. It is intended for applications that require 892*4882a593Smuzhiyun longer hash-results, without needing a larger security level 893*4882a593Smuzhiyun (than RIPEMD-128). 894*4882a593Smuzhiyun 895*4882a593Smuzhiyun Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 896*4882a593Smuzhiyun See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 897*4882a593Smuzhiyun 898*4882a593Smuzhiyunconfig CRYPTO_RMD320 899*4882a593Smuzhiyun tristate "RIPEMD-320 digest algorithm" 900*4882a593Smuzhiyun select CRYPTO_HASH 901*4882a593Smuzhiyun help 902*4882a593Smuzhiyun RIPEMD-320 is an optional extension of RIPEMD-160 with a 903*4882a593Smuzhiyun 320 bit hash. It is intended for applications that require 904*4882a593Smuzhiyun longer hash-results, without needing a larger security level 905*4882a593Smuzhiyun (than RIPEMD-160). 906*4882a593Smuzhiyun 907*4882a593Smuzhiyun Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel. 908*4882a593Smuzhiyun See <https://homes.esat.kuleuven.be/~bosselae/ripemd160.html> 909*4882a593Smuzhiyun 910*4882a593Smuzhiyunconfig CRYPTO_SHA1 911*4882a593Smuzhiyun tristate "SHA1 digest algorithm" 912*4882a593Smuzhiyun select CRYPTO_HASH 913*4882a593Smuzhiyun help 914*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 915*4882a593Smuzhiyun 916*4882a593Smuzhiyunconfig CRYPTO_SHA1_SSSE3 917*4882a593Smuzhiyun tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" 918*4882a593Smuzhiyun depends on X86 && 64BIT 919*4882a593Smuzhiyun select CRYPTO_SHA1 920*4882a593Smuzhiyun select CRYPTO_HASH 921*4882a593Smuzhiyun help 922*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 923*4882a593Smuzhiyun using Supplemental SSE3 (SSSE3) instructions or Advanced Vector 924*4882a593Smuzhiyun Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions), 925*4882a593Smuzhiyun when available. 926*4882a593Smuzhiyun 927*4882a593Smuzhiyunconfig CRYPTO_SHA256_SSSE3 928*4882a593Smuzhiyun tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)" 929*4882a593Smuzhiyun depends on X86 && 64BIT 930*4882a593Smuzhiyun select CRYPTO_SHA256 931*4882a593Smuzhiyun select CRYPTO_HASH 932*4882a593Smuzhiyun help 933*4882a593Smuzhiyun SHA-256 secure hash standard (DFIPS 180-2) implemented 934*4882a593Smuzhiyun using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector 935*4882a593Smuzhiyun Extensions version 1 (AVX1), or Advanced Vector Extensions 936*4882a593Smuzhiyun version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New 937*4882a593Smuzhiyun Instructions) when available. 938*4882a593Smuzhiyun 939*4882a593Smuzhiyunconfig CRYPTO_SHA512_SSSE3 940*4882a593Smuzhiyun tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)" 941*4882a593Smuzhiyun depends on X86 && 64BIT 942*4882a593Smuzhiyun select CRYPTO_SHA512 943*4882a593Smuzhiyun select CRYPTO_HASH 944*4882a593Smuzhiyun help 945*4882a593Smuzhiyun SHA-512 secure hash standard (DFIPS 180-2) implemented 946*4882a593Smuzhiyun using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector 947*4882a593Smuzhiyun Extensions version 1 (AVX1), or Advanced Vector Extensions 948*4882a593Smuzhiyun version 2 (AVX2) instructions, when available. 949*4882a593Smuzhiyun 950*4882a593Smuzhiyunconfig CRYPTO_SHA1_OCTEON 951*4882a593Smuzhiyun tristate "SHA1 digest algorithm (OCTEON)" 952*4882a593Smuzhiyun depends on CPU_CAVIUM_OCTEON 953*4882a593Smuzhiyun select CRYPTO_SHA1 954*4882a593Smuzhiyun select CRYPTO_HASH 955*4882a593Smuzhiyun help 956*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 957*4882a593Smuzhiyun using OCTEON crypto instructions, when available. 958*4882a593Smuzhiyun 959*4882a593Smuzhiyunconfig CRYPTO_SHA1_SPARC64 960*4882a593Smuzhiyun tristate "SHA1 digest algorithm (SPARC64)" 961*4882a593Smuzhiyun depends on SPARC64 962*4882a593Smuzhiyun select CRYPTO_SHA1 963*4882a593Smuzhiyun select CRYPTO_HASH 964*4882a593Smuzhiyun help 965*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 966*4882a593Smuzhiyun using sparc64 crypto instructions, when available. 967*4882a593Smuzhiyun 968*4882a593Smuzhiyunconfig CRYPTO_SHA1_PPC 969*4882a593Smuzhiyun tristate "SHA1 digest algorithm (powerpc)" 970*4882a593Smuzhiyun depends on PPC 971*4882a593Smuzhiyun help 972*4882a593Smuzhiyun This is the powerpc hardware accelerated implementation of the 973*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 974*4882a593Smuzhiyun 975*4882a593Smuzhiyunconfig CRYPTO_SHA1_PPC_SPE 976*4882a593Smuzhiyun tristate "SHA1 digest algorithm (PPC SPE)" 977*4882a593Smuzhiyun depends on PPC && SPE 978*4882a593Smuzhiyun help 979*4882a593Smuzhiyun SHA-1 secure hash standard (DFIPS 180-4) implemented 980*4882a593Smuzhiyun using powerpc SPE SIMD instruction set. 981*4882a593Smuzhiyun 982*4882a593Smuzhiyunconfig CRYPTO_SHA256 983*4882a593Smuzhiyun tristate "SHA224 and SHA256 digest algorithm" 984*4882a593Smuzhiyun select CRYPTO_HASH 985*4882a593Smuzhiyun select CRYPTO_LIB_SHA256 986*4882a593Smuzhiyun help 987*4882a593Smuzhiyun SHA256 secure hash standard (DFIPS 180-2). 988*4882a593Smuzhiyun 989*4882a593Smuzhiyun This version of SHA implements a 256 bit hash with 128 bits of 990*4882a593Smuzhiyun security against collision attacks. 991*4882a593Smuzhiyun 992*4882a593Smuzhiyun This code also includes SHA-224, a 224 bit hash with 112 bits 993*4882a593Smuzhiyun of security against collision attacks. 994*4882a593Smuzhiyun 995*4882a593Smuzhiyunconfig CRYPTO_SHA256_PPC_SPE 996*4882a593Smuzhiyun tristate "SHA224 and SHA256 digest algorithm (PPC SPE)" 997*4882a593Smuzhiyun depends on PPC && SPE 998*4882a593Smuzhiyun select CRYPTO_SHA256 999*4882a593Smuzhiyun select CRYPTO_HASH 1000*4882a593Smuzhiyun help 1001*4882a593Smuzhiyun SHA224 and SHA256 secure hash standard (DFIPS 180-2) 1002*4882a593Smuzhiyun implemented using powerpc SPE SIMD instruction set. 1003*4882a593Smuzhiyun 1004*4882a593Smuzhiyunconfig CRYPTO_SHA256_OCTEON 1005*4882a593Smuzhiyun tristate "SHA224 and SHA256 digest algorithm (OCTEON)" 1006*4882a593Smuzhiyun depends on CPU_CAVIUM_OCTEON 1007*4882a593Smuzhiyun select CRYPTO_SHA256 1008*4882a593Smuzhiyun select CRYPTO_HASH 1009*4882a593Smuzhiyun help 1010*4882a593Smuzhiyun SHA-256 secure hash standard (DFIPS 180-2) implemented 1011*4882a593Smuzhiyun using OCTEON crypto instructions, when available. 1012*4882a593Smuzhiyun 1013*4882a593Smuzhiyunconfig CRYPTO_SHA256_SPARC64 1014*4882a593Smuzhiyun tristate "SHA224 and SHA256 digest algorithm (SPARC64)" 1015*4882a593Smuzhiyun depends on SPARC64 1016*4882a593Smuzhiyun select CRYPTO_SHA256 1017*4882a593Smuzhiyun select CRYPTO_HASH 1018*4882a593Smuzhiyun help 1019*4882a593Smuzhiyun SHA-256 secure hash standard (DFIPS 180-2) implemented 1020*4882a593Smuzhiyun using sparc64 crypto instructions, when available. 1021*4882a593Smuzhiyun 1022*4882a593Smuzhiyunconfig CRYPTO_SHA512 1023*4882a593Smuzhiyun tristate "SHA384 and SHA512 digest algorithms" 1024*4882a593Smuzhiyun select CRYPTO_HASH 1025*4882a593Smuzhiyun help 1026*4882a593Smuzhiyun SHA512 secure hash standard (DFIPS 180-2). 1027*4882a593Smuzhiyun 1028*4882a593Smuzhiyun This version of SHA implements a 512 bit hash with 256 bits of 1029*4882a593Smuzhiyun security against collision attacks. 1030*4882a593Smuzhiyun 1031*4882a593Smuzhiyun This code also includes SHA-384, a 384 bit hash with 192 bits 1032*4882a593Smuzhiyun of security against collision attacks. 1033*4882a593Smuzhiyun 1034*4882a593Smuzhiyunconfig CRYPTO_SHA512_OCTEON 1035*4882a593Smuzhiyun tristate "SHA384 and SHA512 digest algorithms (OCTEON)" 1036*4882a593Smuzhiyun depends on CPU_CAVIUM_OCTEON 1037*4882a593Smuzhiyun select CRYPTO_SHA512 1038*4882a593Smuzhiyun select CRYPTO_HASH 1039*4882a593Smuzhiyun help 1040*4882a593Smuzhiyun SHA-512 secure hash standard (DFIPS 180-2) implemented 1041*4882a593Smuzhiyun using OCTEON crypto instructions, when available. 1042*4882a593Smuzhiyun 1043*4882a593Smuzhiyunconfig CRYPTO_SHA512_SPARC64 1044*4882a593Smuzhiyun tristate "SHA384 and SHA512 digest algorithm (SPARC64)" 1045*4882a593Smuzhiyun depends on SPARC64 1046*4882a593Smuzhiyun select CRYPTO_SHA512 1047*4882a593Smuzhiyun select CRYPTO_HASH 1048*4882a593Smuzhiyun help 1049*4882a593Smuzhiyun SHA-512 secure hash standard (DFIPS 180-2) implemented 1050*4882a593Smuzhiyun using sparc64 crypto instructions, when available. 1051*4882a593Smuzhiyun 1052*4882a593Smuzhiyunconfig CRYPTO_SHA3 1053*4882a593Smuzhiyun tristate "SHA3 digest algorithm" 1054*4882a593Smuzhiyun select CRYPTO_HASH 1055*4882a593Smuzhiyun help 1056*4882a593Smuzhiyun SHA-3 secure hash standard (DFIPS 202). It's based on 1057*4882a593Smuzhiyun cryptographic sponge function family called Keccak. 1058*4882a593Smuzhiyun 1059*4882a593Smuzhiyun References: 1060*4882a593Smuzhiyun http://keccak.noekeon.org/ 1061*4882a593Smuzhiyun 1062*4882a593Smuzhiyunconfig CRYPTO_SM3 1063*4882a593Smuzhiyun tristate "SM3 digest algorithm" 1064*4882a593Smuzhiyun select CRYPTO_HASH 1065*4882a593Smuzhiyun help 1066*4882a593Smuzhiyun SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3). 1067*4882a593Smuzhiyun It is part of the Chinese Commercial Cryptography suite. 1068*4882a593Smuzhiyun 1069*4882a593Smuzhiyun References: 1070*4882a593Smuzhiyun http://www.oscca.gov.cn/UpFile/20101222141857786.pdf 1071*4882a593Smuzhiyun https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash 1072*4882a593Smuzhiyun 1073*4882a593Smuzhiyunconfig CRYPTO_STREEBOG 1074*4882a593Smuzhiyun tristate "Streebog Hash Function" 1075*4882a593Smuzhiyun select CRYPTO_HASH 1076*4882a593Smuzhiyun help 1077*4882a593Smuzhiyun Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian 1078*4882a593Smuzhiyun cryptographic standard algorithms (called GOST algorithms). 1079*4882a593Smuzhiyun This setting enables two hash algorithms with 256 and 512 bits output. 1080*4882a593Smuzhiyun 1081*4882a593Smuzhiyun References: 1082*4882a593Smuzhiyun https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf 1083*4882a593Smuzhiyun https://tools.ietf.org/html/rfc6986 1084*4882a593Smuzhiyun 1085*4882a593Smuzhiyunconfig CRYPTO_TGR192 1086*4882a593Smuzhiyun tristate "Tiger digest algorithms" 1087*4882a593Smuzhiyun select CRYPTO_HASH 1088*4882a593Smuzhiyun help 1089*4882a593Smuzhiyun Tiger hash algorithm 192, 160 and 128-bit hashes 1090*4882a593Smuzhiyun 1091*4882a593Smuzhiyun Tiger is a hash function optimized for 64-bit processors while 1092*4882a593Smuzhiyun still having decent performance on 32-bit processors. 1093*4882a593Smuzhiyun Tiger was developed by Ross Anderson and Eli Biham. 1094*4882a593Smuzhiyun 1095*4882a593Smuzhiyun See also: 1096*4882a593Smuzhiyun <https://www.cs.technion.ac.il/~biham/Reports/Tiger/>. 1097*4882a593Smuzhiyun 1098*4882a593Smuzhiyunconfig CRYPTO_WP512 1099*4882a593Smuzhiyun tristate "Whirlpool digest algorithms" 1100*4882a593Smuzhiyun select CRYPTO_HASH 1101*4882a593Smuzhiyun help 1102*4882a593Smuzhiyun Whirlpool hash algorithm 512, 384 and 256-bit hashes 1103*4882a593Smuzhiyun 1104*4882a593Smuzhiyun Whirlpool-512 is part of the NESSIE cryptographic primitives. 1105*4882a593Smuzhiyun Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 1106*4882a593Smuzhiyun 1107*4882a593Smuzhiyun See also: 1108*4882a593Smuzhiyun <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html> 1109*4882a593Smuzhiyun 1110*4882a593Smuzhiyunconfig CRYPTO_GHASH_CLMUL_NI_INTEL 1111*4882a593Smuzhiyun tristate "GHASH hash function (CLMUL-NI accelerated)" 1112*4882a593Smuzhiyun depends on X86 && 64BIT 1113*4882a593Smuzhiyun select CRYPTO_CRYPTD 1114*4882a593Smuzhiyun help 1115*4882a593Smuzhiyun This is the x86_64 CLMUL-NI accelerated implementation of 1116*4882a593Smuzhiyun GHASH, the hash function used in GCM (Galois/Counter mode). 1117*4882a593Smuzhiyun 1118*4882a593Smuzhiyuncomment "Ciphers" 1119*4882a593Smuzhiyun 1120*4882a593Smuzhiyunconfig CRYPTO_AES 1121*4882a593Smuzhiyun tristate "AES cipher algorithms" 1122*4882a593Smuzhiyun select CRYPTO_ALGAPI 1123*4882a593Smuzhiyun select CRYPTO_LIB_AES 1124*4882a593Smuzhiyun help 1125*4882a593Smuzhiyun AES cipher algorithms (FIPS-197). AES uses the Rijndael 1126*4882a593Smuzhiyun algorithm. 1127*4882a593Smuzhiyun 1128*4882a593Smuzhiyun Rijndael appears to be consistently a very good performer in 1129*4882a593Smuzhiyun both hardware and software across a wide range of computing 1130*4882a593Smuzhiyun environments regardless of its use in feedback or non-feedback 1131*4882a593Smuzhiyun modes. Its key setup time is excellent, and its key agility is 1132*4882a593Smuzhiyun good. Rijndael's very low memory requirements make it very well 1133*4882a593Smuzhiyun suited for restricted-space environments, in which it also 1134*4882a593Smuzhiyun demonstrates excellent performance. Rijndael's operations are 1135*4882a593Smuzhiyun among the easiest to defend against power and timing attacks. 1136*4882a593Smuzhiyun 1137*4882a593Smuzhiyun The AES specifies three key sizes: 128, 192 and 256 bits 1138*4882a593Smuzhiyun 1139*4882a593Smuzhiyun See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 1140*4882a593Smuzhiyun 1141*4882a593Smuzhiyunconfig CRYPTO_AES_TI 1142*4882a593Smuzhiyun tristate "Fixed time AES cipher" 1143*4882a593Smuzhiyun select CRYPTO_ALGAPI 1144*4882a593Smuzhiyun select CRYPTO_LIB_AES 1145*4882a593Smuzhiyun help 1146*4882a593Smuzhiyun This is a generic implementation of AES that attempts to eliminate 1147*4882a593Smuzhiyun data dependent latencies as much as possible without affecting 1148*4882a593Smuzhiyun performance too much. It is intended for use by the generic CCM 1149*4882a593Smuzhiyun and GCM drivers, and other CTR or CMAC/XCBC based modes that rely 1150*4882a593Smuzhiyun solely on encryption (although decryption is supported as well, but 1151*4882a593Smuzhiyun with a more dramatic performance hit) 1152*4882a593Smuzhiyun 1153*4882a593Smuzhiyun Instead of using 16 lookup tables of 1 KB each, (8 for encryption and 1154*4882a593Smuzhiyun 8 for decryption), this implementation only uses just two S-boxes of 1155*4882a593Smuzhiyun 256 bytes each, and attempts to eliminate data dependent latencies by 1156*4882a593Smuzhiyun prefetching the entire table into the cache at the start of each 1157*4882a593Smuzhiyun block. Interrupts are also disabled to avoid races where cachelines 1158*4882a593Smuzhiyun are evicted when the CPU is interrupted to do something else. 1159*4882a593Smuzhiyun 1160*4882a593Smuzhiyunconfig CRYPTO_AES_NI_INTEL 1161*4882a593Smuzhiyun tristate "AES cipher algorithms (AES-NI)" 1162*4882a593Smuzhiyun depends on X86 1163*4882a593Smuzhiyun select CRYPTO_AEAD 1164*4882a593Smuzhiyun select CRYPTO_LIB_AES 1165*4882a593Smuzhiyun select CRYPTO_ALGAPI 1166*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1167*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 if 64BIT 1168*4882a593Smuzhiyun select CRYPTO_SIMD 1169*4882a593Smuzhiyun help 1170*4882a593Smuzhiyun Use Intel AES-NI instructions for AES algorithm. 1171*4882a593Smuzhiyun 1172*4882a593Smuzhiyun AES cipher algorithms (FIPS-197). AES uses the Rijndael 1173*4882a593Smuzhiyun algorithm. 1174*4882a593Smuzhiyun 1175*4882a593Smuzhiyun Rijndael appears to be consistently a very good performer in 1176*4882a593Smuzhiyun both hardware and software across a wide range of computing 1177*4882a593Smuzhiyun environments regardless of its use in feedback or non-feedback 1178*4882a593Smuzhiyun modes. Its key setup time is excellent, and its key agility is 1179*4882a593Smuzhiyun good. Rijndael's very low memory requirements make it very well 1180*4882a593Smuzhiyun suited for restricted-space environments, in which it also 1181*4882a593Smuzhiyun demonstrates excellent performance. Rijndael's operations are 1182*4882a593Smuzhiyun among the easiest to defend against power and timing attacks. 1183*4882a593Smuzhiyun 1184*4882a593Smuzhiyun The AES specifies three key sizes: 128, 192 and 256 bits 1185*4882a593Smuzhiyun 1186*4882a593Smuzhiyun See <http://csrc.nist.gov/encryption/aes/> for more information. 1187*4882a593Smuzhiyun 1188*4882a593Smuzhiyun In addition to AES cipher algorithm support, the acceleration 1189*4882a593Smuzhiyun for some popular block cipher mode is supported too, including 1190*4882a593Smuzhiyun ECB, CBC, LRW, XTS. The 64 bit version has additional 1191*4882a593Smuzhiyun acceleration for CTR. 1192*4882a593Smuzhiyun 1193*4882a593Smuzhiyunconfig CRYPTO_AES_SPARC64 1194*4882a593Smuzhiyun tristate "AES cipher algorithms (SPARC64)" 1195*4882a593Smuzhiyun depends on SPARC64 1196*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1197*4882a593Smuzhiyun help 1198*4882a593Smuzhiyun Use SPARC64 crypto opcodes for AES algorithm. 1199*4882a593Smuzhiyun 1200*4882a593Smuzhiyun AES cipher algorithms (FIPS-197). AES uses the Rijndael 1201*4882a593Smuzhiyun algorithm. 1202*4882a593Smuzhiyun 1203*4882a593Smuzhiyun Rijndael appears to be consistently a very good performer in 1204*4882a593Smuzhiyun both hardware and software across a wide range of computing 1205*4882a593Smuzhiyun environments regardless of its use in feedback or non-feedback 1206*4882a593Smuzhiyun modes. Its key setup time is excellent, and its key agility is 1207*4882a593Smuzhiyun good. Rijndael's very low memory requirements make it very well 1208*4882a593Smuzhiyun suited for restricted-space environments, in which it also 1209*4882a593Smuzhiyun demonstrates excellent performance. Rijndael's operations are 1210*4882a593Smuzhiyun among the easiest to defend against power and timing attacks. 1211*4882a593Smuzhiyun 1212*4882a593Smuzhiyun The AES specifies three key sizes: 128, 192 and 256 bits 1213*4882a593Smuzhiyun 1214*4882a593Smuzhiyun See <http://csrc.nist.gov/encryption/aes/> for more information. 1215*4882a593Smuzhiyun 1216*4882a593Smuzhiyun In addition to AES cipher algorithm support, the acceleration 1217*4882a593Smuzhiyun for some popular block cipher mode is supported too, including 1218*4882a593Smuzhiyun ECB and CBC. 1219*4882a593Smuzhiyun 1220*4882a593Smuzhiyunconfig CRYPTO_AES_PPC_SPE 1221*4882a593Smuzhiyun tristate "AES cipher algorithms (PPC SPE)" 1222*4882a593Smuzhiyun depends on PPC && SPE 1223*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1224*4882a593Smuzhiyun help 1225*4882a593Smuzhiyun AES cipher algorithms (FIPS-197). Additionally the acceleration 1226*4882a593Smuzhiyun for popular block cipher modes ECB, CBC, CTR and XTS is supported. 1227*4882a593Smuzhiyun This module should only be used for low power (router) devices 1228*4882a593Smuzhiyun without hardware AES acceleration (e.g. caam crypto). It reduces the 1229*4882a593Smuzhiyun size of the AES tables from 16KB to 8KB + 256 bytes and mitigates 1230*4882a593Smuzhiyun timining attacks. Nevertheless it might be not as secure as other 1231*4882a593Smuzhiyun architecture specific assembler implementations that work on 1KB 1232*4882a593Smuzhiyun tables or 256 bytes S-boxes. 1233*4882a593Smuzhiyun 1234*4882a593Smuzhiyunconfig CRYPTO_ANUBIS 1235*4882a593Smuzhiyun tristate "Anubis cipher algorithm" 1236*4882a593Smuzhiyun depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1237*4882a593Smuzhiyun select CRYPTO_ALGAPI 1238*4882a593Smuzhiyun help 1239*4882a593Smuzhiyun Anubis cipher algorithm. 1240*4882a593Smuzhiyun 1241*4882a593Smuzhiyun Anubis is a variable key length cipher which can use keys from 1242*4882a593Smuzhiyun 128 bits to 320 bits in length. It was evaluated as a entrant 1243*4882a593Smuzhiyun in the NESSIE competition. 1244*4882a593Smuzhiyun 1245*4882a593Smuzhiyun See also: 1246*4882a593Smuzhiyun <https://www.cosic.esat.kuleuven.be/nessie/reports/> 1247*4882a593Smuzhiyun <http://www.larc.usp.br/~pbarreto/AnubisPage.html> 1248*4882a593Smuzhiyun 1249*4882a593Smuzhiyunconfig CRYPTO_ARC4 1250*4882a593Smuzhiyun tristate "ARC4 cipher algorithm" 1251*4882a593Smuzhiyun depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1252*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1253*4882a593Smuzhiyun select CRYPTO_LIB_ARC4 1254*4882a593Smuzhiyun help 1255*4882a593Smuzhiyun ARC4 cipher algorithm. 1256*4882a593Smuzhiyun 1257*4882a593Smuzhiyun ARC4 is a stream cipher using keys ranging from 8 bits to 2048 1258*4882a593Smuzhiyun bits in length. This algorithm is required for driver-based 1259*4882a593Smuzhiyun WEP, but it should not be for other purposes because of the 1260*4882a593Smuzhiyun weakness of the algorithm. 1261*4882a593Smuzhiyun 1262*4882a593Smuzhiyunconfig CRYPTO_BLOWFISH 1263*4882a593Smuzhiyun tristate "Blowfish cipher algorithm" 1264*4882a593Smuzhiyun select CRYPTO_ALGAPI 1265*4882a593Smuzhiyun select CRYPTO_BLOWFISH_COMMON 1266*4882a593Smuzhiyun help 1267*4882a593Smuzhiyun Blowfish cipher algorithm, by Bruce Schneier. 1268*4882a593Smuzhiyun 1269*4882a593Smuzhiyun This is a variable key length cipher which can use keys from 32 1270*4882a593Smuzhiyun bits to 448 bits in length. It's fast, simple and specifically 1271*4882a593Smuzhiyun designed for use on "large microprocessors". 1272*4882a593Smuzhiyun 1273*4882a593Smuzhiyun See also: 1274*4882a593Smuzhiyun <https://www.schneier.com/blowfish.html> 1275*4882a593Smuzhiyun 1276*4882a593Smuzhiyunconfig CRYPTO_BLOWFISH_COMMON 1277*4882a593Smuzhiyun tristate 1278*4882a593Smuzhiyun help 1279*4882a593Smuzhiyun Common parts of the Blowfish cipher algorithm shared by the 1280*4882a593Smuzhiyun generic c and the assembler implementations. 1281*4882a593Smuzhiyun 1282*4882a593Smuzhiyun See also: 1283*4882a593Smuzhiyun <https://www.schneier.com/blowfish.html> 1284*4882a593Smuzhiyun 1285*4882a593Smuzhiyunconfig CRYPTO_BLOWFISH_X86_64 1286*4882a593Smuzhiyun tristate "Blowfish cipher algorithm (x86_64)" 1287*4882a593Smuzhiyun depends on X86 && 64BIT 1288*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1289*4882a593Smuzhiyun select CRYPTO_BLOWFISH_COMMON 1290*4882a593Smuzhiyun help 1291*4882a593Smuzhiyun Blowfish cipher algorithm (x86_64), by Bruce Schneier. 1292*4882a593Smuzhiyun 1293*4882a593Smuzhiyun This is a variable key length cipher which can use keys from 32 1294*4882a593Smuzhiyun bits to 448 bits in length. It's fast, simple and specifically 1295*4882a593Smuzhiyun designed for use on "large microprocessors". 1296*4882a593Smuzhiyun 1297*4882a593Smuzhiyun See also: 1298*4882a593Smuzhiyun <https://www.schneier.com/blowfish.html> 1299*4882a593Smuzhiyun 1300*4882a593Smuzhiyunconfig CRYPTO_CAMELLIA 1301*4882a593Smuzhiyun tristate "Camellia cipher algorithms" 1302*4882a593Smuzhiyun depends on CRYPTO 1303*4882a593Smuzhiyun select CRYPTO_ALGAPI 1304*4882a593Smuzhiyun help 1305*4882a593Smuzhiyun Camellia cipher algorithms module. 1306*4882a593Smuzhiyun 1307*4882a593Smuzhiyun Camellia is a symmetric key block cipher developed jointly 1308*4882a593Smuzhiyun at NTT and Mitsubishi Electric Corporation. 1309*4882a593Smuzhiyun 1310*4882a593Smuzhiyun The Camellia specifies three key sizes: 128, 192 and 256 bits. 1311*4882a593Smuzhiyun 1312*4882a593Smuzhiyun See also: 1313*4882a593Smuzhiyun <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1314*4882a593Smuzhiyun 1315*4882a593Smuzhiyunconfig CRYPTO_CAMELLIA_X86_64 1316*4882a593Smuzhiyun tristate "Camellia cipher algorithm (x86_64)" 1317*4882a593Smuzhiyun depends on X86 && 64BIT 1318*4882a593Smuzhiyun depends on CRYPTO 1319*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1320*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1321*4882a593Smuzhiyun help 1322*4882a593Smuzhiyun Camellia cipher algorithm module (x86_64). 1323*4882a593Smuzhiyun 1324*4882a593Smuzhiyun Camellia is a symmetric key block cipher developed jointly 1325*4882a593Smuzhiyun at NTT and Mitsubishi Electric Corporation. 1326*4882a593Smuzhiyun 1327*4882a593Smuzhiyun The Camellia specifies three key sizes: 128, 192 and 256 bits. 1328*4882a593Smuzhiyun 1329*4882a593Smuzhiyun See also: 1330*4882a593Smuzhiyun <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1331*4882a593Smuzhiyun 1332*4882a593Smuzhiyunconfig CRYPTO_CAMELLIA_AESNI_AVX_X86_64 1333*4882a593Smuzhiyun tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)" 1334*4882a593Smuzhiyun depends on X86 && 64BIT 1335*4882a593Smuzhiyun depends on CRYPTO 1336*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1337*4882a593Smuzhiyun select CRYPTO_CAMELLIA_X86_64 1338*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1339*4882a593Smuzhiyun select CRYPTO_SIMD 1340*4882a593Smuzhiyun select CRYPTO_XTS 1341*4882a593Smuzhiyun help 1342*4882a593Smuzhiyun Camellia cipher algorithm module (x86_64/AES-NI/AVX). 1343*4882a593Smuzhiyun 1344*4882a593Smuzhiyun Camellia is a symmetric key block cipher developed jointly 1345*4882a593Smuzhiyun at NTT and Mitsubishi Electric Corporation. 1346*4882a593Smuzhiyun 1347*4882a593Smuzhiyun The Camellia specifies three key sizes: 128, 192 and 256 bits. 1348*4882a593Smuzhiyun 1349*4882a593Smuzhiyun See also: 1350*4882a593Smuzhiyun <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1351*4882a593Smuzhiyun 1352*4882a593Smuzhiyunconfig CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 1353*4882a593Smuzhiyun tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)" 1354*4882a593Smuzhiyun depends on X86 && 64BIT 1355*4882a593Smuzhiyun depends on CRYPTO 1356*4882a593Smuzhiyun select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 1357*4882a593Smuzhiyun help 1358*4882a593Smuzhiyun Camellia cipher algorithm module (x86_64/AES-NI/AVX2). 1359*4882a593Smuzhiyun 1360*4882a593Smuzhiyun Camellia is a symmetric key block cipher developed jointly 1361*4882a593Smuzhiyun at NTT and Mitsubishi Electric Corporation. 1362*4882a593Smuzhiyun 1363*4882a593Smuzhiyun The Camellia specifies three key sizes: 128, 192 and 256 bits. 1364*4882a593Smuzhiyun 1365*4882a593Smuzhiyun See also: 1366*4882a593Smuzhiyun <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1367*4882a593Smuzhiyun 1368*4882a593Smuzhiyunconfig CRYPTO_CAMELLIA_SPARC64 1369*4882a593Smuzhiyun tristate "Camellia cipher algorithm (SPARC64)" 1370*4882a593Smuzhiyun depends on SPARC64 1371*4882a593Smuzhiyun depends on CRYPTO 1372*4882a593Smuzhiyun select CRYPTO_ALGAPI 1373*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1374*4882a593Smuzhiyun help 1375*4882a593Smuzhiyun Camellia cipher algorithm module (SPARC64). 1376*4882a593Smuzhiyun 1377*4882a593Smuzhiyun Camellia is a symmetric key block cipher developed jointly 1378*4882a593Smuzhiyun at NTT and Mitsubishi Electric Corporation. 1379*4882a593Smuzhiyun 1380*4882a593Smuzhiyun The Camellia specifies three key sizes: 128, 192 and 256 bits. 1381*4882a593Smuzhiyun 1382*4882a593Smuzhiyun See also: 1383*4882a593Smuzhiyun <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 1384*4882a593Smuzhiyun 1385*4882a593Smuzhiyunconfig CRYPTO_CAST_COMMON 1386*4882a593Smuzhiyun tristate 1387*4882a593Smuzhiyun help 1388*4882a593Smuzhiyun Common parts of the CAST cipher algorithms shared by the 1389*4882a593Smuzhiyun generic c and the assembler implementations. 1390*4882a593Smuzhiyun 1391*4882a593Smuzhiyunconfig CRYPTO_CAST5 1392*4882a593Smuzhiyun tristate "CAST5 (CAST-128) cipher algorithm" 1393*4882a593Smuzhiyun select CRYPTO_ALGAPI 1394*4882a593Smuzhiyun select CRYPTO_CAST_COMMON 1395*4882a593Smuzhiyun help 1396*4882a593Smuzhiyun The CAST5 encryption algorithm (synonymous with CAST-128) is 1397*4882a593Smuzhiyun described in RFC2144. 1398*4882a593Smuzhiyun 1399*4882a593Smuzhiyunconfig CRYPTO_CAST5_AVX_X86_64 1400*4882a593Smuzhiyun tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)" 1401*4882a593Smuzhiyun depends on X86 && 64BIT 1402*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1403*4882a593Smuzhiyun select CRYPTO_CAST5 1404*4882a593Smuzhiyun select CRYPTO_CAST_COMMON 1405*4882a593Smuzhiyun select CRYPTO_SIMD 1406*4882a593Smuzhiyun help 1407*4882a593Smuzhiyun The CAST5 encryption algorithm (synonymous with CAST-128) is 1408*4882a593Smuzhiyun described in RFC2144. 1409*4882a593Smuzhiyun 1410*4882a593Smuzhiyun This module provides the Cast5 cipher algorithm that processes 1411*4882a593Smuzhiyun sixteen blocks parallel using the AVX instruction set. 1412*4882a593Smuzhiyun 1413*4882a593Smuzhiyunconfig CRYPTO_CAST6 1414*4882a593Smuzhiyun tristate "CAST6 (CAST-256) cipher algorithm" 1415*4882a593Smuzhiyun select CRYPTO_ALGAPI 1416*4882a593Smuzhiyun select CRYPTO_CAST_COMMON 1417*4882a593Smuzhiyun help 1418*4882a593Smuzhiyun The CAST6 encryption algorithm (synonymous with CAST-256) is 1419*4882a593Smuzhiyun described in RFC2612. 1420*4882a593Smuzhiyun 1421*4882a593Smuzhiyunconfig CRYPTO_CAST6_AVX_X86_64 1422*4882a593Smuzhiyun tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)" 1423*4882a593Smuzhiyun depends on X86 && 64BIT 1424*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1425*4882a593Smuzhiyun select CRYPTO_CAST6 1426*4882a593Smuzhiyun select CRYPTO_CAST_COMMON 1427*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1428*4882a593Smuzhiyun select CRYPTO_SIMD 1429*4882a593Smuzhiyun select CRYPTO_XTS 1430*4882a593Smuzhiyun help 1431*4882a593Smuzhiyun The CAST6 encryption algorithm (synonymous with CAST-256) is 1432*4882a593Smuzhiyun described in RFC2612. 1433*4882a593Smuzhiyun 1434*4882a593Smuzhiyun This module provides the Cast6 cipher algorithm that processes 1435*4882a593Smuzhiyun eight blocks parallel using the AVX instruction set. 1436*4882a593Smuzhiyun 1437*4882a593Smuzhiyunconfig CRYPTO_DES 1438*4882a593Smuzhiyun tristate "DES and Triple DES EDE cipher algorithms" 1439*4882a593Smuzhiyun select CRYPTO_ALGAPI 1440*4882a593Smuzhiyun select CRYPTO_LIB_DES 1441*4882a593Smuzhiyun help 1442*4882a593Smuzhiyun DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 1443*4882a593Smuzhiyun 1444*4882a593Smuzhiyunconfig CRYPTO_DES_SPARC64 1445*4882a593Smuzhiyun tristate "DES and Triple DES EDE cipher algorithms (SPARC64)" 1446*4882a593Smuzhiyun depends on SPARC64 1447*4882a593Smuzhiyun select CRYPTO_ALGAPI 1448*4882a593Smuzhiyun select CRYPTO_LIB_DES 1449*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1450*4882a593Smuzhiyun help 1451*4882a593Smuzhiyun DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3), 1452*4882a593Smuzhiyun optimized using SPARC64 crypto opcodes. 1453*4882a593Smuzhiyun 1454*4882a593Smuzhiyunconfig CRYPTO_DES3_EDE_X86_64 1455*4882a593Smuzhiyun tristate "Triple DES EDE cipher algorithm (x86-64)" 1456*4882a593Smuzhiyun depends on X86 && 64BIT 1457*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1458*4882a593Smuzhiyun select CRYPTO_LIB_DES 1459*4882a593Smuzhiyun help 1460*4882a593Smuzhiyun Triple DES EDE (FIPS 46-3) algorithm. 1461*4882a593Smuzhiyun 1462*4882a593Smuzhiyun This module provides implementation of the Triple DES EDE cipher 1463*4882a593Smuzhiyun algorithm that is optimized for x86-64 processors. Two versions of 1464*4882a593Smuzhiyun algorithm are provided; regular processing one input block and 1465*4882a593Smuzhiyun one that processes three blocks parallel. 1466*4882a593Smuzhiyun 1467*4882a593Smuzhiyunconfig CRYPTO_FCRYPT 1468*4882a593Smuzhiyun tristate "FCrypt cipher algorithm" 1469*4882a593Smuzhiyun select CRYPTO_ALGAPI 1470*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1471*4882a593Smuzhiyun help 1472*4882a593Smuzhiyun FCrypt algorithm used by RxRPC. 1473*4882a593Smuzhiyun 1474*4882a593Smuzhiyunconfig CRYPTO_KHAZAD 1475*4882a593Smuzhiyun tristate "Khazad cipher algorithm" 1476*4882a593Smuzhiyun depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1477*4882a593Smuzhiyun select CRYPTO_ALGAPI 1478*4882a593Smuzhiyun help 1479*4882a593Smuzhiyun Khazad cipher algorithm. 1480*4882a593Smuzhiyun 1481*4882a593Smuzhiyun Khazad was a finalist in the initial NESSIE competition. It is 1482*4882a593Smuzhiyun an algorithm optimized for 64-bit processors with good performance 1483*4882a593Smuzhiyun on 32-bit processors. Khazad uses an 128 bit key size. 1484*4882a593Smuzhiyun 1485*4882a593Smuzhiyun See also: 1486*4882a593Smuzhiyun <http://www.larc.usp.br/~pbarreto/KhazadPage.html> 1487*4882a593Smuzhiyun 1488*4882a593Smuzhiyunconfig CRYPTO_SALSA20 1489*4882a593Smuzhiyun tristate "Salsa20 stream cipher algorithm" 1490*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1491*4882a593Smuzhiyun help 1492*4882a593Smuzhiyun Salsa20 stream cipher algorithm. 1493*4882a593Smuzhiyun 1494*4882a593Smuzhiyun Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT 1495*4882a593Smuzhiyun Stream Cipher Project. See <https://www.ecrypt.eu.org/stream/> 1496*4882a593Smuzhiyun 1497*4882a593Smuzhiyun The Salsa20 stream cipher algorithm is designed by Daniel J. 1498*4882a593Smuzhiyun Bernstein <djb@cr.yp.to>. See <https://cr.yp.to/snuffle.html> 1499*4882a593Smuzhiyun 1500*4882a593Smuzhiyunconfig CRYPTO_CHACHA20 1501*4882a593Smuzhiyun tristate "ChaCha stream cipher algorithms" 1502*4882a593Smuzhiyun select CRYPTO_LIB_CHACHA_GENERIC 1503*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1504*4882a593Smuzhiyun help 1505*4882a593Smuzhiyun The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms. 1506*4882a593Smuzhiyun 1507*4882a593Smuzhiyun ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. 1508*4882a593Smuzhiyun Bernstein and further specified in RFC7539 for use in IETF protocols. 1509*4882a593Smuzhiyun This is the portable C implementation of ChaCha20. See also: 1510*4882a593Smuzhiyun <https://cr.yp.to/chacha/chacha-20080128.pdf> 1511*4882a593Smuzhiyun 1512*4882a593Smuzhiyun XChaCha20 is the application of the XSalsa20 construction to ChaCha20 1513*4882a593Smuzhiyun rather than to Salsa20. XChaCha20 extends ChaCha20's nonce length 1514*4882a593Smuzhiyun from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits, 1515*4882a593Smuzhiyun while provably retaining ChaCha20's security. See also: 1516*4882a593Smuzhiyun <https://cr.yp.to/snuffle/xsalsa-20081128.pdf> 1517*4882a593Smuzhiyun 1518*4882a593Smuzhiyun XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly 1519*4882a593Smuzhiyun reduced security margin but increased performance. It can be needed 1520*4882a593Smuzhiyun in some performance-sensitive scenarios. 1521*4882a593Smuzhiyun 1522*4882a593Smuzhiyunconfig CRYPTO_CHACHA20_X86_64 1523*4882a593Smuzhiyun tristate "ChaCha stream cipher algorithms (x86_64/SSSE3/AVX2/AVX-512VL)" 1524*4882a593Smuzhiyun depends on X86 && 64BIT 1525*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1526*4882a593Smuzhiyun select CRYPTO_LIB_CHACHA_GENERIC 1527*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_CHACHA 1528*4882a593Smuzhiyun help 1529*4882a593Smuzhiyun SSSE3, AVX2, and AVX-512VL optimized implementations of the ChaCha20, 1530*4882a593Smuzhiyun XChaCha20, and XChaCha12 stream ciphers. 1531*4882a593Smuzhiyun 1532*4882a593Smuzhiyunconfig CRYPTO_CHACHA_MIPS 1533*4882a593Smuzhiyun tristate "ChaCha stream cipher algorithms (MIPS 32r2 optimized)" 1534*4882a593Smuzhiyun depends on CPU_MIPS32_R2 1535*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1536*4882a593Smuzhiyun select CRYPTO_ARCH_HAVE_LIB_CHACHA 1537*4882a593Smuzhiyun 1538*4882a593Smuzhiyunconfig CRYPTO_SEED 1539*4882a593Smuzhiyun tristate "SEED cipher algorithm" 1540*4882a593Smuzhiyun depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1541*4882a593Smuzhiyun select CRYPTO_ALGAPI 1542*4882a593Smuzhiyun help 1543*4882a593Smuzhiyun SEED cipher algorithm (RFC4269). 1544*4882a593Smuzhiyun 1545*4882a593Smuzhiyun SEED is a 128-bit symmetric key block cipher that has been 1546*4882a593Smuzhiyun developed by KISA (Korea Information Security Agency) as a 1547*4882a593Smuzhiyun national standard encryption algorithm of the Republic of Korea. 1548*4882a593Smuzhiyun It is a 16 round block cipher with the key size of 128 bit. 1549*4882a593Smuzhiyun 1550*4882a593Smuzhiyun See also: 1551*4882a593Smuzhiyun <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 1552*4882a593Smuzhiyun 1553*4882a593Smuzhiyunconfig CRYPTO_SERPENT 1554*4882a593Smuzhiyun tristate "Serpent cipher algorithm" 1555*4882a593Smuzhiyun select CRYPTO_ALGAPI 1556*4882a593Smuzhiyun help 1557*4882a593Smuzhiyun Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1558*4882a593Smuzhiyun 1559*4882a593Smuzhiyun Keys are allowed to be from 0 to 256 bits in length, in steps 1560*4882a593Smuzhiyun of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 1561*4882a593Smuzhiyun variant of Serpent for compatibility with old kerneli.org code. 1562*4882a593Smuzhiyun 1563*4882a593Smuzhiyun See also: 1564*4882a593Smuzhiyun <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1565*4882a593Smuzhiyun 1566*4882a593Smuzhiyunconfig CRYPTO_SERPENT_SSE2_X86_64 1567*4882a593Smuzhiyun tristate "Serpent cipher algorithm (x86_64/SSE2)" 1568*4882a593Smuzhiyun depends on X86 && 64BIT 1569*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1570*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1571*4882a593Smuzhiyun select CRYPTO_SERPENT 1572*4882a593Smuzhiyun select CRYPTO_SIMD 1573*4882a593Smuzhiyun help 1574*4882a593Smuzhiyun Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1575*4882a593Smuzhiyun 1576*4882a593Smuzhiyun Keys are allowed to be from 0 to 256 bits in length, in steps 1577*4882a593Smuzhiyun of 8 bits. 1578*4882a593Smuzhiyun 1579*4882a593Smuzhiyun This module provides Serpent cipher algorithm that processes eight 1580*4882a593Smuzhiyun blocks parallel using SSE2 instruction set. 1581*4882a593Smuzhiyun 1582*4882a593Smuzhiyun See also: 1583*4882a593Smuzhiyun <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1584*4882a593Smuzhiyun 1585*4882a593Smuzhiyunconfig CRYPTO_SERPENT_SSE2_586 1586*4882a593Smuzhiyun tristate "Serpent cipher algorithm (i586/SSE2)" 1587*4882a593Smuzhiyun depends on X86 && !64BIT 1588*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1589*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1590*4882a593Smuzhiyun select CRYPTO_SERPENT 1591*4882a593Smuzhiyun select CRYPTO_SIMD 1592*4882a593Smuzhiyun help 1593*4882a593Smuzhiyun Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1594*4882a593Smuzhiyun 1595*4882a593Smuzhiyun Keys are allowed to be from 0 to 256 bits in length, in steps 1596*4882a593Smuzhiyun of 8 bits. 1597*4882a593Smuzhiyun 1598*4882a593Smuzhiyun This module provides Serpent cipher algorithm that processes four 1599*4882a593Smuzhiyun blocks parallel using SSE2 instruction set. 1600*4882a593Smuzhiyun 1601*4882a593Smuzhiyun See also: 1602*4882a593Smuzhiyun <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1603*4882a593Smuzhiyun 1604*4882a593Smuzhiyunconfig CRYPTO_SERPENT_AVX_X86_64 1605*4882a593Smuzhiyun tristate "Serpent cipher algorithm (x86_64/AVX)" 1606*4882a593Smuzhiyun depends on X86 && 64BIT 1607*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1608*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1609*4882a593Smuzhiyun select CRYPTO_SERPENT 1610*4882a593Smuzhiyun select CRYPTO_SIMD 1611*4882a593Smuzhiyun select CRYPTO_XTS 1612*4882a593Smuzhiyun help 1613*4882a593Smuzhiyun Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1614*4882a593Smuzhiyun 1615*4882a593Smuzhiyun Keys are allowed to be from 0 to 256 bits in length, in steps 1616*4882a593Smuzhiyun of 8 bits. 1617*4882a593Smuzhiyun 1618*4882a593Smuzhiyun This module provides the Serpent cipher algorithm that processes 1619*4882a593Smuzhiyun eight blocks parallel using the AVX instruction set. 1620*4882a593Smuzhiyun 1621*4882a593Smuzhiyun See also: 1622*4882a593Smuzhiyun <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1623*4882a593Smuzhiyun 1624*4882a593Smuzhiyunconfig CRYPTO_SERPENT_AVX2_X86_64 1625*4882a593Smuzhiyun tristate "Serpent cipher algorithm (x86_64/AVX2)" 1626*4882a593Smuzhiyun depends on X86 && 64BIT 1627*4882a593Smuzhiyun select CRYPTO_SERPENT_AVX_X86_64 1628*4882a593Smuzhiyun help 1629*4882a593Smuzhiyun Serpent cipher algorithm, by Anderson, Biham & Knudsen. 1630*4882a593Smuzhiyun 1631*4882a593Smuzhiyun Keys are allowed to be from 0 to 256 bits in length, in steps 1632*4882a593Smuzhiyun of 8 bits. 1633*4882a593Smuzhiyun 1634*4882a593Smuzhiyun This module provides Serpent cipher algorithm that processes 16 1635*4882a593Smuzhiyun blocks parallel using AVX2 instruction set. 1636*4882a593Smuzhiyun 1637*4882a593Smuzhiyun See also: 1638*4882a593Smuzhiyun <https://www.cl.cam.ac.uk/~rja14/serpent.html> 1639*4882a593Smuzhiyun 1640*4882a593Smuzhiyunconfig CRYPTO_SM4 1641*4882a593Smuzhiyun tristate "SM4 cipher algorithm" 1642*4882a593Smuzhiyun select CRYPTO_ALGAPI 1643*4882a593Smuzhiyun help 1644*4882a593Smuzhiyun SM4 cipher algorithms (OSCCA GB/T 32907-2016). 1645*4882a593Smuzhiyun 1646*4882a593Smuzhiyun SM4 (GBT.32907-2016) is a cryptographic standard issued by the 1647*4882a593Smuzhiyun Organization of State Commercial Administration of China (OSCCA) 1648*4882a593Smuzhiyun as an authorized cryptographic algorithms for the use within China. 1649*4882a593Smuzhiyun 1650*4882a593Smuzhiyun SMS4 was originally created for use in protecting wireless 1651*4882a593Smuzhiyun networks, and is mandated in the Chinese National Standard for 1652*4882a593Smuzhiyun Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure) 1653*4882a593Smuzhiyun (GB.15629.11-2003). 1654*4882a593Smuzhiyun 1655*4882a593Smuzhiyun The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and 1656*4882a593Smuzhiyun standardized through TC 260 of the Standardization Administration 1657*4882a593Smuzhiyun of the People's Republic of China (SAC). 1658*4882a593Smuzhiyun 1659*4882a593Smuzhiyun The input, output, and key of SMS4 are each 128 bits. 1660*4882a593Smuzhiyun 1661*4882a593Smuzhiyun See also: <https://eprint.iacr.org/2008/329.pdf> 1662*4882a593Smuzhiyun 1663*4882a593Smuzhiyun If unsure, say N. 1664*4882a593Smuzhiyun 1665*4882a593Smuzhiyunconfig CRYPTO_TEA 1666*4882a593Smuzhiyun tristate "TEA, XTEA and XETA cipher algorithms" 1667*4882a593Smuzhiyun depends on CRYPTO_USER_API_ENABLE_OBSOLETE 1668*4882a593Smuzhiyun select CRYPTO_ALGAPI 1669*4882a593Smuzhiyun help 1670*4882a593Smuzhiyun TEA cipher algorithm. 1671*4882a593Smuzhiyun 1672*4882a593Smuzhiyun Tiny Encryption Algorithm is a simple cipher that uses 1673*4882a593Smuzhiyun many rounds for security. It is very fast and uses 1674*4882a593Smuzhiyun little memory. 1675*4882a593Smuzhiyun 1676*4882a593Smuzhiyun Xtendend Tiny Encryption Algorithm is a modification to 1677*4882a593Smuzhiyun the TEA algorithm to address a potential key weakness 1678*4882a593Smuzhiyun in the TEA algorithm. 1679*4882a593Smuzhiyun 1680*4882a593Smuzhiyun Xtendend Encryption Tiny Algorithm is a mis-implementation 1681*4882a593Smuzhiyun of the XTEA algorithm for compatibility purposes. 1682*4882a593Smuzhiyun 1683*4882a593Smuzhiyunconfig CRYPTO_TWOFISH 1684*4882a593Smuzhiyun tristate "Twofish cipher algorithm" 1685*4882a593Smuzhiyun select CRYPTO_ALGAPI 1686*4882a593Smuzhiyun select CRYPTO_TWOFISH_COMMON 1687*4882a593Smuzhiyun help 1688*4882a593Smuzhiyun Twofish cipher algorithm. 1689*4882a593Smuzhiyun 1690*4882a593Smuzhiyun Twofish was submitted as an AES (Advanced Encryption Standard) 1691*4882a593Smuzhiyun candidate cipher by researchers at CounterPane Systems. It is a 1692*4882a593Smuzhiyun 16 round block cipher supporting key sizes of 128, 192, and 256 1693*4882a593Smuzhiyun bits. 1694*4882a593Smuzhiyun 1695*4882a593Smuzhiyun See also: 1696*4882a593Smuzhiyun <https://www.schneier.com/twofish.html> 1697*4882a593Smuzhiyun 1698*4882a593Smuzhiyunconfig CRYPTO_TWOFISH_COMMON 1699*4882a593Smuzhiyun tristate 1700*4882a593Smuzhiyun help 1701*4882a593Smuzhiyun Common parts of the Twofish cipher algorithm shared by the 1702*4882a593Smuzhiyun generic c and the assembler implementations. 1703*4882a593Smuzhiyun 1704*4882a593Smuzhiyunconfig CRYPTO_TWOFISH_586 1705*4882a593Smuzhiyun tristate "Twofish cipher algorithms (i586)" 1706*4882a593Smuzhiyun depends on (X86 || UML_X86) && !64BIT 1707*4882a593Smuzhiyun select CRYPTO_ALGAPI 1708*4882a593Smuzhiyun select CRYPTO_TWOFISH_COMMON 1709*4882a593Smuzhiyun help 1710*4882a593Smuzhiyun Twofish cipher algorithm. 1711*4882a593Smuzhiyun 1712*4882a593Smuzhiyun Twofish was submitted as an AES (Advanced Encryption Standard) 1713*4882a593Smuzhiyun candidate cipher by researchers at CounterPane Systems. It is a 1714*4882a593Smuzhiyun 16 round block cipher supporting key sizes of 128, 192, and 256 1715*4882a593Smuzhiyun bits. 1716*4882a593Smuzhiyun 1717*4882a593Smuzhiyun See also: 1718*4882a593Smuzhiyun <https://www.schneier.com/twofish.html> 1719*4882a593Smuzhiyun 1720*4882a593Smuzhiyunconfig CRYPTO_TWOFISH_X86_64 1721*4882a593Smuzhiyun tristate "Twofish cipher algorithm (x86_64)" 1722*4882a593Smuzhiyun depends on (X86 || UML_X86) && 64BIT 1723*4882a593Smuzhiyun select CRYPTO_ALGAPI 1724*4882a593Smuzhiyun select CRYPTO_TWOFISH_COMMON 1725*4882a593Smuzhiyun help 1726*4882a593Smuzhiyun Twofish cipher algorithm (x86_64). 1727*4882a593Smuzhiyun 1728*4882a593Smuzhiyun Twofish was submitted as an AES (Advanced Encryption Standard) 1729*4882a593Smuzhiyun candidate cipher by researchers at CounterPane Systems. It is a 1730*4882a593Smuzhiyun 16 round block cipher supporting key sizes of 128, 192, and 256 1731*4882a593Smuzhiyun bits. 1732*4882a593Smuzhiyun 1733*4882a593Smuzhiyun See also: 1734*4882a593Smuzhiyun <https://www.schneier.com/twofish.html> 1735*4882a593Smuzhiyun 1736*4882a593Smuzhiyunconfig CRYPTO_TWOFISH_X86_64_3WAY 1737*4882a593Smuzhiyun tristate "Twofish cipher algorithm (x86_64, 3-way parallel)" 1738*4882a593Smuzhiyun depends on X86 && 64BIT 1739*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1740*4882a593Smuzhiyun select CRYPTO_TWOFISH_COMMON 1741*4882a593Smuzhiyun select CRYPTO_TWOFISH_X86_64 1742*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1743*4882a593Smuzhiyun help 1744*4882a593Smuzhiyun Twofish cipher algorithm (x86_64, 3-way parallel). 1745*4882a593Smuzhiyun 1746*4882a593Smuzhiyun Twofish was submitted as an AES (Advanced Encryption Standard) 1747*4882a593Smuzhiyun candidate cipher by researchers at CounterPane Systems. It is a 1748*4882a593Smuzhiyun 16 round block cipher supporting key sizes of 128, 192, and 256 1749*4882a593Smuzhiyun bits. 1750*4882a593Smuzhiyun 1751*4882a593Smuzhiyun This module provides Twofish cipher algorithm that processes three 1752*4882a593Smuzhiyun blocks parallel, utilizing resources of out-of-order CPUs better. 1753*4882a593Smuzhiyun 1754*4882a593Smuzhiyun See also: 1755*4882a593Smuzhiyun <https://www.schneier.com/twofish.html> 1756*4882a593Smuzhiyun 1757*4882a593Smuzhiyunconfig CRYPTO_TWOFISH_AVX_X86_64 1758*4882a593Smuzhiyun tristate "Twofish cipher algorithm (x86_64/AVX)" 1759*4882a593Smuzhiyun depends on X86 && 64BIT 1760*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1761*4882a593Smuzhiyun select CRYPTO_GLUE_HELPER_X86 1762*4882a593Smuzhiyun select CRYPTO_SIMD 1763*4882a593Smuzhiyun select CRYPTO_TWOFISH_COMMON 1764*4882a593Smuzhiyun select CRYPTO_TWOFISH_X86_64 1765*4882a593Smuzhiyun select CRYPTO_TWOFISH_X86_64_3WAY 1766*4882a593Smuzhiyun help 1767*4882a593Smuzhiyun Twofish cipher algorithm (x86_64/AVX). 1768*4882a593Smuzhiyun 1769*4882a593Smuzhiyun Twofish was submitted as an AES (Advanced Encryption Standard) 1770*4882a593Smuzhiyun candidate cipher by researchers at CounterPane Systems. It is a 1771*4882a593Smuzhiyun 16 round block cipher supporting key sizes of 128, 192, and 256 1772*4882a593Smuzhiyun bits. 1773*4882a593Smuzhiyun 1774*4882a593Smuzhiyun This module provides the Twofish cipher algorithm that processes 1775*4882a593Smuzhiyun eight blocks parallel using the AVX Instruction Set. 1776*4882a593Smuzhiyun 1777*4882a593Smuzhiyun See also: 1778*4882a593Smuzhiyun <https://www.schneier.com/twofish.html> 1779*4882a593Smuzhiyun 1780*4882a593Smuzhiyuncomment "Compression" 1781*4882a593Smuzhiyun 1782*4882a593Smuzhiyunconfig CRYPTO_DEFLATE 1783*4882a593Smuzhiyun tristate "Deflate compression algorithm" 1784*4882a593Smuzhiyun select CRYPTO_ALGAPI 1785*4882a593Smuzhiyun select CRYPTO_ACOMP2 1786*4882a593Smuzhiyun select ZLIB_INFLATE 1787*4882a593Smuzhiyun select ZLIB_DEFLATE 1788*4882a593Smuzhiyun help 1789*4882a593Smuzhiyun This is the Deflate algorithm (RFC1951), specified for use in 1790*4882a593Smuzhiyun IPSec with the IPCOMP protocol (RFC3173, RFC2394). 1791*4882a593Smuzhiyun 1792*4882a593Smuzhiyun You will most probably want this if using IPSec. 1793*4882a593Smuzhiyun 1794*4882a593Smuzhiyunconfig CRYPTO_LZO 1795*4882a593Smuzhiyun tristate "LZO compression algorithm" 1796*4882a593Smuzhiyun select CRYPTO_ALGAPI 1797*4882a593Smuzhiyun select CRYPTO_ACOMP2 1798*4882a593Smuzhiyun select LZO_COMPRESS 1799*4882a593Smuzhiyun select LZO_DECOMPRESS 1800*4882a593Smuzhiyun help 1801*4882a593Smuzhiyun This is the LZO algorithm. 1802*4882a593Smuzhiyun 1803*4882a593Smuzhiyunconfig CRYPTO_842 1804*4882a593Smuzhiyun tristate "842 compression algorithm" 1805*4882a593Smuzhiyun select CRYPTO_ALGAPI 1806*4882a593Smuzhiyun select CRYPTO_ACOMP2 1807*4882a593Smuzhiyun select 842_COMPRESS 1808*4882a593Smuzhiyun select 842_DECOMPRESS 1809*4882a593Smuzhiyun help 1810*4882a593Smuzhiyun This is the 842 algorithm. 1811*4882a593Smuzhiyun 1812*4882a593Smuzhiyunconfig CRYPTO_LZ4 1813*4882a593Smuzhiyun tristate "LZ4 compression algorithm" 1814*4882a593Smuzhiyun select CRYPTO_ALGAPI 1815*4882a593Smuzhiyun select CRYPTO_ACOMP2 1816*4882a593Smuzhiyun select LZ4_COMPRESS 1817*4882a593Smuzhiyun select LZ4_DECOMPRESS 1818*4882a593Smuzhiyun help 1819*4882a593Smuzhiyun This is the LZ4 algorithm. 1820*4882a593Smuzhiyun 1821*4882a593Smuzhiyunconfig CRYPTO_LZ4HC 1822*4882a593Smuzhiyun tristate "LZ4HC compression algorithm" 1823*4882a593Smuzhiyun select CRYPTO_ALGAPI 1824*4882a593Smuzhiyun select CRYPTO_ACOMP2 1825*4882a593Smuzhiyun select LZ4HC_COMPRESS 1826*4882a593Smuzhiyun select LZ4_DECOMPRESS 1827*4882a593Smuzhiyun help 1828*4882a593Smuzhiyun This is the LZ4 high compression mode algorithm. 1829*4882a593Smuzhiyun 1830*4882a593Smuzhiyunconfig CRYPTO_ZSTD 1831*4882a593Smuzhiyun tristate "Zstd compression algorithm" 1832*4882a593Smuzhiyun select CRYPTO_ALGAPI 1833*4882a593Smuzhiyun select CRYPTO_ACOMP2 1834*4882a593Smuzhiyun select ZSTD_COMPRESS 1835*4882a593Smuzhiyun select ZSTD_DECOMPRESS 1836*4882a593Smuzhiyun help 1837*4882a593Smuzhiyun This is the zstd algorithm. 1838*4882a593Smuzhiyun 1839*4882a593Smuzhiyuncomment "Random Number Generation" 1840*4882a593Smuzhiyun 1841*4882a593Smuzhiyunconfig CRYPTO_ANSI_CPRNG 1842*4882a593Smuzhiyun tristate "Pseudo Random Number Generation for Cryptographic modules" 1843*4882a593Smuzhiyun select CRYPTO_AES 1844*4882a593Smuzhiyun select CRYPTO_RNG 1845*4882a593Smuzhiyun help 1846*4882a593Smuzhiyun This option enables the generic pseudo random number generator 1847*4882a593Smuzhiyun for cryptographic modules. Uses the Algorithm specified in 1848*4882a593Smuzhiyun ANSI X9.31 A.2.4. Note that this option must be enabled if 1849*4882a593Smuzhiyun CRYPTO_FIPS is selected 1850*4882a593Smuzhiyun 1851*4882a593Smuzhiyunmenuconfig CRYPTO_DRBG_MENU 1852*4882a593Smuzhiyun tristate "NIST SP800-90A DRBG" 1853*4882a593Smuzhiyun help 1854*4882a593Smuzhiyun NIST SP800-90A compliant DRBG. In the following submenu, one or 1855*4882a593Smuzhiyun more of the DRBG types must be selected. 1856*4882a593Smuzhiyun 1857*4882a593Smuzhiyunif CRYPTO_DRBG_MENU 1858*4882a593Smuzhiyun 1859*4882a593Smuzhiyunconfig CRYPTO_DRBG_HMAC 1860*4882a593Smuzhiyun bool 1861*4882a593Smuzhiyun default y 1862*4882a593Smuzhiyun select CRYPTO_HMAC 1863*4882a593Smuzhiyun select CRYPTO_SHA256 1864*4882a593Smuzhiyun 1865*4882a593Smuzhiyunconfig CRYPTO_DRBG_HASH 1866*4882a593Smuzhiyun bool "Enable Hash DRBG" 1867*4882a593Smuzhiyun select CRYPTO_SHA256 1868*4882a593Smuzhiyun help 1869*4882a593Smuzhiyun Enable the Hash DRBG variant as defined in NIST SP800-90A. 1870*4882a593Smuzhiyun 1871*4882a593Smuzhiyunconfig CRYPTO_DRBG_CTR 1872*4882a593Smuzhiyun bool "Enable CTR DRBG" 1873*4882a593Smuzhiyun select CRYPTO_AES 1874*4882a593Smuzhiyun select CRYPTO_CTR 1875*4882a593Smuzhiyun help 1876*4882a593Smuzhiyun Enable the CTR DRBG variant as defined in NIST SP800-90A. 1877*4882a593Smuzhiyun 1878*4882a593Smuzhiyunconfig CRYPTO_DRBG 1879*4882a593Smuzhiyun tristate 1880*4882a593Smuzhiyun default CRYPTO_DRBG_MENU 1881*4882a593Smuzhiyun select CRYPTO_RNG 1882*4882a593Smuzhiyun select CRYPTO_JITTERENTROPY 1883*4882a593Smuzhiyun 1884*4882a593Smuzhiyunendif # if CRYPTO_DRBG_MENU 1885*4882a593Smuzhiyun 1886*4882a593Smuzhiyunconfig CRYPTO_JITTERENTROPY 1887*4882a593Smuzhiyun tristate "Jitterentropy Non-Deterministic Random Number Generator" 1888*4882a593Smuzhiyun select CRYPTO_RNG 1889*4882a593Smuzhiyun help 1890*4882a593Smuzhiyun The Jitterentropy RNG is a noise that is intended 1891*4882a593Smuzhiyun to provide seed to another RNG. The RNG does not 1892*4882a593Smuzhiyun perform any cryptographic whitening of the generated 1893*4882a593Smuzhiyun random numbers. This Jitterentropy RNG registers with 1894*4882a593Smuzhiyun the kernel crypto API and can be used by any caller. 1895*4882a593Smuzhiyun 1896*4882a593Smuzhiyunconfig CRYPTO_USER_API 1897*4882a593Smuzhiyun tristate 1898*4882a593Smuzhiyun 1899*4882a593Smuzhiyunconfig CRYPTO_USER_API_HASH 1900*4882a593Smuzhiyun tristate "User-space interface for hash algorithms" 1901*4882a593Smuzhiyun depends on NET 1902*4882a593Smuzhiyun select CRYPTO_HASH 1903*4882a593Smuzhiyun select CRYPTO_USER_API 1904*4882a593Smuzhiyun help 1905*4882a593Smuzhiyun This option enables the user-spaces interface for hash 1906*4882a593Smuzhiyun algorithms. 1907*4882a593Smuzhiyun 1908*4882a593Smuzhiyunconfig CRYPTO_USER_API_SKCIPHER 1909*4882a593Smuzhiyun tristate "User-space interface for symmetric key cipher algorithms" 1910*4882a593Smuzhiyun depends on NET 1911*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1912*4882a593Smuzhiyun select CRYPTO_USER_API 1913*4882a593Smuzhiyun help 1914*4882a593Smuzhiyun This option enables the user-spaces interface for symmetric 1915*4882a593Smuzhiyun key cipher algorithms. 1916*4882a593Smuzhiyun 1917*4882a593Smuzhiyunconfig CRYPTO_USER_API_RNG 1918*4882a593Smuzhiyun tristate "User-space interface for random number generator algorithms" 1919*4882a593Smuzhiyun depends on NET 1920*4882a593Smuzhiyun select CRYPTO_RNG 1921*4882a593Smuzhiyun select CRYPTO_USER_API 1922*4882a593Smuzhiyun help 1923*4882a593Smuzhiyun This option enables the user-spaces interface for random 1924*4882a593Smuzhiyun number generator algorithms. 1925*4882a593Smuzhiyun 1926*4882a593Smuzhiyunconfig CRYPTO_USER_API_RNG_CAVP 1927*4882a593Smuzhiyun bool "Enable CAVP testing of DRBG" 1928*4882a593Smuzhiyun depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG 1929*4882a593Smuzhiyun help 1930*4882a593Smuzhiyun This option enables extra API for CAVP testing via the user-space 1931*4882a593Smuzhiyun interface: resetting of DRBG entropy, and providing Additional Data. 1932*4882a593Smuzhiyun This should only be enabled for CAVP testing. You should say 1933*4882a593Smuzhiyun no unless you know what this is. 1934*4882a593Smuzhiyun 1935*4882a593Smuzhiyunconfig CRYPTO_USER_API_AEAD 1936*4882a593Smuzhiyun tristate "User-space interface for AEAD cipher algorithms" 1937*4882a593Smuzhiyun depends on NET 1938*4882a593Smuzhiyun select CRYPTO_AEAD 1939*4882a593Smuzhiyun select CRYPTO_SKCIPHER 1940*4882a593Smuzhiyun select CRYPTO_NULL 1941*4882a593Smuzhiyun select CRYPTO_USER_API 1942*4882a593Smuzhiyun help 1943*4882a593Smuzhiyun This option enables the user-spaces interface for AEAD 1944*4882a593Smuzhiyun cipher algorithms. 1945*4882a593Smuzhiyun 1946*4882a593Smuzhiyunconfig CRYPTO_USER_API_ENABLE_OBSOLETE 1947*4882a593Smuzhiyun bool "Enable obsolete cryptographic algorithms for userspace" 1948*4882a593Smuzhiyun depends on CRYPTO_USER_API 1949*4882a593Smuzhiyun default y 1950*4882a593Smuzhiyun help 1951*4882a593Smuzhiyun Allow obsolete cryptographic algorithms to be selected that have 1952*4882a593Smuzhiyun already been phased out from internal use by the kernel, and are 1953*4882a593Smuzhiyun only useful for userspace clients that still rely on them. 1954*4882a593Smuzhiyun 1955*4882a593Smuzhiyunconfig CRYPTO_STATS 1956*4882a593Smuzhiyun bool "Crypto usage statistics for User-space" 1957*4882a593Smuzhiyun depends on CRYPTO_USER 1958*4882a593Smuzhiyun help 1959*4882a593Smuzhiyun This option enables the gathering of crypto stats. 1960*4882a593Smuzhiyun This will collect: 1961*4882a593Smuzhiyun - encrypt/decrypt size and numbers of symmeric operations 1962*4882a593Smuzhiyun - compress/decompress size and numbers of compress operations 1963*4882a593Smuzhiyun - size and numbers of hash operations 1964*4882a593Smuzhiyun - encrypt/decrypt/sign/verify numbers for asymmetric operations 1965*4882a593Smuzhiyun - generate/seed numbers for rng operations 1966*4882a593Smuzhiyun 1967*4882a593Smuzhiyunconfig CRYPTO_HASH_INFO 1968*4882a593Smuzhiyun bool 1969*4882a593Smuzhiyun 1970*4882a593Smuzhiyunsource "drivers/crypto/Kconfig" 1971*4882a593Smuzhiyunsource "crypto/asymmetric_keys/Kconfig" 1972*4882a593Smuzhiyunsource "certs/Kconfig" 1973*4882a593Smuzhiyun 1974*4882a593Smuzhiyunendif # if CRYPTO 1975