1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunmenuconfig CRYPTO_HW 4*4882a593Smuzhiyun bool "Hardware crypto devices" 5*4882a593Smuzhiyun default y 6*4882a593Smuzhiyun help 7*4882a593Smuzhiyun Say Y here to get to see options for hardware crypto devices and 8*4882a593Smuzhiyun processors. This option alone does not add any kernel code. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun If you say N, all options in this submenu will be skipped and disabled. 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunif CRYPTO_HW 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunsource "drivers/crypto/allwinner/Kconfig" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunconfig CRYPTO_DEV_PADLOCK 17*4882a593Smuzhiyun tristate "Support for VIA PadLock ACE" 18*4882a593Smuzhiyun depends on X86 && !UML 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun Some VIA processors come with an integrated crypto engine 21*4882a593Smuzhiyun (so called VIA PadLock ACE, Advanced Cryptography Engine) 22*4882a593Smuzhiyun that provides instructions for very fast cryptographic 23*4882a593Smuzhiyun operations with supported algorithms. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun The instructions are used only when the CPU supports them. 26*4882a593Smuzhiyun Otherwise software encryption is used. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunconfig CRYPTO_DEV_PADLOCK_AES 29*4882a593Smuzhiyun tristate "PadLock driver for AES algorithm" 30*4882a593Smuzhiyun depends on CRYPTO_DEV_PADLOCK 31*4882a593Smuzhiyun select CRYPTO_SKCIPHER 32*4882a593Smuzhiyun select CRYPTO_LIB_AES 33*4882a593Smuzhiyun help 34*4882a593Smuzhiyun Use VIA PadLock for AES algorithm. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun Available in VIA C3 and newer CPUs. 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun If unsure say M. The compiled module will be 39*4882a593Smuzhiyun called padlock-aes. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig CRYPTO_DEV_PADLOCK_SHA 42*4882a593Smuzhiyun tristate "PadLock driver for SHA1 and SHA256 algorithms" 43*4882a593Smuzhiyun depends on CRYPTO_DEV_PADLOCK 44*4882a593Smuzhiyun select CRYPTO_HASH 45*4882a593Smuzhiyun select CRYPTO_SHA1 46*4882a593Smuzhiyun select CRYPTO_SHA256 47*4882a593Smuzhiyun help 48*4882a593Smuzhiyun Use VIA PadLock for SHA1/SHA256 algorithms. 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun Available in VIA C7 and newer processors. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun If unsure say M. The compiled module will be 53*4882a593Smuzhiyun called padlock-sha. 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunconfig CRYPTO_DEV_GEODE 56*4882a593Smuzhiyun tristate "Support for the Geode LX AES engine" 57*4882a593Smuzhiyun depends on X86_32 && PCI 58*4882a593Smuzhiyun select CRYPTO_ALGAPI 59*4882a593Smuzhiyun select CRYPTO_SKCIPHER 60*4882a593Smuzhiyun help 61*4882a593Smuzhiyun Say 'Y' here to use the AMD Geode LX processor on-board AES 62*4882a593Smuzhiyun engine for the CryptoAPI AES algorithm. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 65*4882a593Smuzhiyun will be called geode-aes. 66*4882a593Smuzhiyun 67*4882a593Smuzhiyunconfig ZCRYPT 68*4882a593Smuzhiyun tristate "Support for s390 cryptographic adapters" 69*4882a593Smuzhiyun depends on S390 70*4882a593Smuzhiyun select HW_RANDOM 71*4882a593Smuzhiyun help 72*4882a593Smuzhiyun Select this option if you want to enable support for 73*4882a593Smuzhiyun s390 cryptographic adapters like: 74*4882a593Smuzhiyun + Crypto Express 2 up to 7 Coprocessor (CEXxC) 75*4882a593Smuzhiyun + Crypto Express 2 up to 7 Accelerator (CEXxA) 76*4882a593Smuzhiyun + Crypto Express 4 up to 7 EP11 Coprocessor (CEXxP) 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunconfig ZCRYPT_DEBUG 79*4882a593Smuzhiyun bool "Enable debug features for s390 cryptographic adapters" 80*4882a593Smuzhiyun default n 81*4882a593Smuzhiyun depends on DEBUG_KERNEL 82*4882a593Smuzhiyun depends on ZCRYPT 83*4882a593Smuzhiyun help 84*4882a593Smuzhiyun Say 'Y' here to enable some additional debug features on the 85*4882a593Smuzhiyun s390 cryptographic adapters driver. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun There will be some more sysfs attributes displayed for ap cards 88*4882a593Smuzhiyun and queues and some flags on crypto requests are interpreted as 89*4882a593Smuzhiyun debugging messages to force error injection. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun Do not enable on production level kernel build. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun If unsure, say N. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyunconfig ZCRYPT_MULTIDEVNODES 96*4882a593Smuzhiyun bool "Support for multiple zcrypt device nodes" 97*4882a593Smuzhiyun default y 98*4882a593Smuzhiyun depends on S390 99*4882a593Smuzhiyun depends on ZCRYPT 100*4882a593Smuzhiyun help 101*4882a593Smuzhiyun With this option enabled the zcrypt device driver can 102*4882a593Smuzhiyun provide multiple devices nodes in /dev. Each device 103*4882a593Smuzhiyun node can get customized to limit access and narrow 104*4882a593Smuzhiyun down the use of the available crypto hardware. 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunconfig PKEY 107*4882a593Smuzhiyun tristate "Kernel API for protected key handling" 108*4882a593Smuzhiyun depends on S390 109*4882a593Smuzhiyun depends on ZCRYPT 110*4882a593Smuzhiyun help 111*4882a593Smuzhiyun With this option enabled the pkey kernel module provides an API 112*4882a593Smuzhiyun for creation and handling of protected keys. Other parts of the 113*4882a593Smuzhiyun kernel or userspace applications may use these functions. 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun Select this option if you want to enable the kernel and userspace 116*4882a593Smuzhiyun API for proteced key handling. 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun Please note that creation of protected keys from secure keys 119*4882a593Smuzhiyun requires to have at least one CEX card in coprocessor mode 120*4882a593Smuzhiyun available at runtime. 121*4882a593Smuzhiyun 122*4882a593Smuzhiyunconfig CRYPTO_PAES_S390 123*4882a593Smuzhiyun tristate "PAES cipher algorithms" 124*4882a593Smuzhiyun depends on S390 125*4882a593Smuzhiyun depends on ZCRYPT 126*4882a593Smuzhiyun depends on PKEY 127*4882a593Smuzhiyun select CRYPTO_ALGAPI 128*4882a593Smuzhiyun select CRYPTO_SKCIPHER 129*4882a593Smuzhiyun help 130*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 131*4882a593Smuzhiyun AES cipher algorithms for use with protected key. 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun Select this option if you want to use the paes cipher 134*4882a593Smuzhiyun for example to use protected key encrypted devices. 135*4882a593Smuzhiyun 136*4882a593Smuzhiyunconfig CRYPTO_SHA1_S390 137*4882a593Smuzhiyun tristate "SHA1 digest algorithm" 138*4882a593Smuzhiyun depends on S390 139*4882a593Smuzhiyun select CRYPTO_HASH 140*4882a593Smuzhiyun help 141*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 142*4882a593Smuzhiyun SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun It is available as of z990. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyunconfig CRYPTO_SHA256_S390 147*4882a593Smuzhiyun tristate "SHA256 digest algorithm" 148*4882a593Smuzhiyun depends on S390 149*4882a593Smuzhiyun select CRYPTO_HASH 150*4882a593Smuzhiyun help 151*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 152*4882a593Smuzhiyun SHA256 secure hash standard (DFIPS 180-2). 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun It is available as of z9. 155*4882a593Smuzhiyun 156*4882a593Smuzhiyunconfig CRYPTO_SHA512_S390 157*4882a593Smuzhiyun tristate "SHA384 and SHA512 digest algorithm" 158*4882a593Smuzhiyun depends on S390 159*4882a593Smuzhiyun select CRYPTO_HASH 160*4882a593Smuzhiyun help 161*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 162*4882a593Smuzhiyun SHA512 secure hash standard. 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun It is available as of z10. 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunconfig CRYPTO_SHA3_256_S390 167*4882a593Smuzhiyun tristate "SHA3_224 and SHA3_256 digest algorithm" 168*4882a593Smuzhiyun depends on S390 169*4882a593Smuzhiyun select CRYPTO_HASH 170*4882a593Smuzhiyun help 171*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 172*4882a593Smuzhiyun SHA3_256 secure hash standard. 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun It is available as of z14. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyunconfig CRYPTO_SHA3_512_S390 177*4882a593Smuzhiyun tristate "SHA3_384 and SHA3_512 digest algorithm" 178*4882a593Smuzhiyun depends on S390 179*4882a593Smuzhiyun select CRYPTO_HASH 180*4882a593Smuzhiyun help 181*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 182*4882a593Smuzhiyun SHA3_512 secure hash standard. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun It is available as of z14. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyunconfig CRYPTO_DES_S390 187*4882a593Smuzhiyun tristate "DES and Triple DES cipher algorithms" 188*4882a593Smuzhiyun depends on S390 189*4882a593Smuzhiyun select CRYPTO_ALGAPI 190*4882a593Smuzhiyun select CRYPTO_SKCIPHER 191*4882a593Smuzhiyun select CRYPTO_LIB_DES 192*4882a593Smuzhiyun help 193*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 194*4882a593Smuzhiyun DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun As of z990 the ECB and CBC mode are hardware accelerated. 197*4882a593Smuzhiyun As of z196 the CTR mode is hardware accelerated. 198*4882a593Smuzhiyun 199*4882a593Smuzhiyunconfig CRYPTO_AES_S390 200*4882a593Smuzhiyun tristate "AES cipher algorithms" 201*4882a593Smuzhiyun depends on S390 202*4882a593Smuzhiyun select CRYPTO_ALGAPI 203*4882a593Smuzhiyun select CRYPTO_SKCIPHER 204*4882a593Smuzhiyun help 205*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of the 206*4882a593Smuzhiyun AES cipher algorithms (FIPS-197). 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun As of z9 the ECB and CBC modes are hardware accelerated 209*4882a593Smuzhiyun for 128 bit keys. 210*4882a593Smuzhiyun As of z10 the ECB and CBC modes are hardware accelerated 211*4882a593Smuzhiyun for all AES key sizes. 212*4882a593Smuzhiyun As of z196 the CTR mode is hardware accelerated for all AES 213*4882a593Smuzhiyun key sizes and XTS mode is hardware accelerated for 256 and 214*4882a593Smuzhiyun 512 bit keys. 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig S390_PRNG 217*4882a593Smuzhiyun tristate "Pseudo random number generator device driver" 218*4882a593Smuzhiyun depends on S390 219*4882a593Smuzhiyun default "m" 220*4882a593Smuzhiyun help 221*4882a593Smuzhiyun Select this option if you want to use the s390 pseudo random number 222*4882a593Smuzhiyun generator. The PRNG is part of the cryptographic processor functions 223*4882a593Smuzhiyun and uses triple-DES to generate secure random numbers like the 224*4882a593Smuzhiyun ANSI X9.17 standard. User-space programs access the 225*4882a593Smuzhiyun pseudo-random-number device through the char device /dev/prandom. 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun It is available as of z9. 228*4882a593Smuzhiyun 229*4882a593Smuzhiyunconfig CRYPTO_GHASH_S390 230*4882a593Smuzhiyun tristate "GHASH hash function" 231*4882a593Smuzhiyun depends on S390 232*4882a593Smuzhiyun select CRYPTO_HASH 233*4882a593Smuzhiyun help 234*4882a593Smuzhiyun This is the s390 hardware accelerated implementation of GHASH, 235*4882a593Smuzhiyun the hash function used in GCM (Galois/Counter mode). 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun It is available as of z196. 238*4882a593Smuzhiyun 239*4882a593Smuzhiyunconfig CRYPTO_CRC32_S390 240*4882a593Smuzhiyun tristate "CRC-32 algorithms" 241*4882a593Smuzhiyun depends on S390 242*4882a593Smuzhiyun select CRYPTO_HASH 243*4882a593Smuzhiyun select CRC32 244*4882a593Smuzhiyun help 245*4882a593Smuzhiyun Select this option if you want to use hardware accelerated 246*4882a593Smuzhiyun implementations of CRC algorithms. With this option, you 247*4882a593Smuzhiyun can optimize the computation of CRC-32 (IEEE 802.3 Ethernet) 248*4882a593Smuzhiyun and CRC-32C (Castagnoli). 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun It is available with IBM z13 or later. 251*4882a593Smuzhiyun 252*4882a593Smuzhiyunconfig CRYPTO_DEV_NIAGARA2 253*4882a593Smuzhiyun tristate "Niagara2 Stream Processing Unit driver" 254*4882a593Smuzhiyun select CRYPTO_LIB_DES 255*4882a593Smuzhiyun select CRYPTO_SKCIPHER 256*4882a593Smuzhiyun select CRYPTO_HASH 257*4882a593Smuzhiyun select CRYPTO_MD5 258*4882a593Smuzhiyun select CRYPTO_SHA1 259*4882a593Smuzhiyun select CRYPTO_SHA256 260*4882a593Smuzhiyun depends on SPARC64 261*4882a593Smuzhiyun help 262*4882a593Smuzhiyun Each core of a Niagara2 processor contains a Stream 263*4882a593Smuzhiyun Processing Unit, which itself contains several cryptographic 264*4882a593Smuzhiyun sub-units. One set provides the Modular Arithmetic Unit, 265*4882a593Smuzhiyun used for SSL offload. The other set provides the Cipher 266*4882a593Smuzhiyun Group, which can perform encryption, decryption, hashing, 267*4882a593Smuzhiyun checksumming, and raw copies. 268*4882a593Smuzhiyun 269*4882a593Smuzhiyunconfig CRYPTO_DEV_HIFN_795X 270*4882a593Smuzhiyun tristate "Driver HIFN 795x crypto accelerator chips" 271*4882a593Smuzhiyun select CRYPTO_LIB_DES 272*4882a593Smuzhiyun select CRYPTO_SKCIPHER 273*4882a593Smuzhiyun select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG 274*4882a593Smuzhiyun depends on PCI 275*4882a593Smuzhiyun depends on !ARCH_DMA_ADDR_T_64BIT 276*4882a593Smuzhiyun help 277*4882a593Smuzhiyun This option allows you to have support for HIFN 795x crypto adapters. 278*4882a593Smuzhiyun 279*4882a593Smuzhiyunconfig CRYPTO_DEV_HIFN_795X_RNG 280*4882a593Smuzhiyun bool "HIFN 795x random number generator" 281*4882a593Smuzhiyun depends on CRYPTO_DEV_HIFN_795X 282*4882a593Smuzhiyun help 283*4882a593Smuzhiyun Select this option if you want to enable the random number generator 284*4882a593Smuzhiyun on the HIFN 795x crypto adapters. 285*4882a593Smuzhiyun 286*4882a593Smuzhiyunsource "drivers/crypto/caam/Kconfig" 287*4882a593Smuzhiyun 288*4882a593Smuzhiyunconfig CRYPTO_DEV_TALITOS 289*4882a593Smuzhiyun tristate "Talitos Freescale Security Engine (SEC)" 290*4882a593Smuzhiyun select CRYPTO_AEAD 291*4882a593Smuzhiyun select CRYPTO_AUTHENC 292*4882a593Smuzhiyun select CRYPTO_SKCIPHER 293*4882a593Smuzhiyun select CRYPTO_HASH 294*4882a593Smuzhiyun select CRYPTO_LIB_DES 295*4882a593Smuzhiyun select HW_RANDOM 296*4882a593Smuzhiyun depends on FSL_SOC 297*4882a593Smuzhiyun help 298*4882a593Smuzhiyun Say 'Y' here to use the Freescale Security Engine (SEC) 299*4882a593Smuzhiyun to offload cryptographic algorithm computation. 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun The Freescale SEC is present on PowerQUICC 'E' processors, such 302*4882a593Smuzhiyun as the MPC8349E and MPC8548E. 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 305*4882a593Smuzhiyun will be called talitos. 306*4882a593Smuzhiyun 307*4882a593Smuzhiyunconfig CRYPTO_DEV_TALITOS1 308*4882a593Smuzhiyun bool "SEC1 (SEC 1.0 and SEC Lite 1.2)" 309*4882a593Smuzhiyun depends on CRYPTO_DEV_TALITOS 310*4882a593Smuzhiyun depends on PPC_8xx || PPC_82xx 311*4882a593Smuzhiyun default y 312*4882a593Smuzhiyun help 313*4882a593Smuzhiyun Say 'Y' here to use the Freescale Security Engine (SEC) version 1.0 314*4882a593Smuzhiyun found on MPC82xx or the Freescale Security Engine (SEC Lite) 315*4882a593Smuzhiyun version 1.2 found on MPC8xx 316*4882a593Smuzhiyun 317*4882a593Smuzhiyunconfig CRYPTO_DEV_TALITOS2 318*4882a593Smuzhiyun bool "SEC2+ (SEC version 2.0 or upper)" 319*4882a593Smuzhiyun depends on CRYPTO_DEV_TALITOS 320*4882a593Smuzhiyun default y if !PPC_8xx 321*4882a593Smuzhiyun help 322*4882a593Smuzhiyun Say 'Y' here to use the Freescale Security Engine (SEC) 323*4882a593Smuzhiyun version 2 and following as found on MPC83xx, MPC85xx, etc ... 324*4882a593Smuzhiyun 325*4882a593Smuzhiyunconfig CRYPTO_DEV_IXP4XX 326*4882a593Smuzhiyun tristate "Driver for IXP4xx crypto hardware acceleration" 327*4882a593Smuzhiyun depends on ARCH_IXP4XX && IXP4XX_QMGR && IXP4XX_NPE 328*4882a593Smuzhiyun select CRYPTO_LIB_DES 329*4882a593Smuzhiyun select CRYPTO_AEAD 330*4882a593Smuzhiyun select CRYPTO_AUTHENC 331*4882a593Smuzhiyun select CRYPTO_SKCIPHER 332*4882a593Smuzhiyun help 333*4882a593Smuzhiyun Driver for the IXP4xx NPE crypto engine. 334*4882a593Smuzhiyun 335*4882a593Smuzhiyunconfig CRYPTO_DEV_PPC4XX 336*4882a593Smuzhiyun tristate "Driver AMCC PPC4xx crypto accelerator" 337*4882a593Smuzhiyun depends on PPC && 4xx 338*4882a593Smuzhiyun select CRYPTO_HASH 339*4882a593Smuzhiyun select CRYPTO_AEAD 340*4882a593Smuzhiyun select CRYPTO_AES 341*4882a593Smuzhiyun select CRYPTO_LIB_AES 342*4882a593Smuzhiyun select CRYPTO_CCM 343*4882a593Smuzhiyun select CRYPTO_CTR 344*4882a593Smuzhiyun select CRYPTO_GCM 345*4882a593Smuzhiyun select CRYPTO_SKCIPHER 346*4882a593Smuzhiyun help 347*4882a593Smuzhiyun This option allows you to have support for AMCC crypto acceleration. 348*4882a593Smuzhiyun 349*4882a593Smuzhiyunconfig HW_RANDOM_PPC4XX 350*4882a593Smuzhiyun bool "PowerPC 4xx generic true random number generator support" 351*4882a593Smuzhiyun depends on CRYPTO_DEV_PPC4XX && HW_RANDOM 352*4882a593Smuzhiyun default y 353*4882a593Smuzhiyun help 354*4882a593Smuzhiyun This option provides the kernel-side support for the TRNG hardware 355*4882a593Smuzhiyun found in the security function of some PowerPC 4xx SoCs. 356*4882a593Smuzhiyun 357*4882a593Smuzhiyunconfig CRYPTO_DEV_OMAP 358*4882a593Smuzhiyun tristate "Support for OMAP crypto HW accelerators" 359*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 360*4882a593Smuzhiyun help 361*4882a593Smuzhiyun OMAP processors have various crypto HW accelerators. Select this if 362*4882a593Smuzhiyun you want to use the OMAP modules for any of the crypto algorithms. 363*4882a593Smuzhiyun 364*4882a593Smuzhiyunif CRYPTO_DEV_OMAP 365*4882a593Smuzhiyun 366*4882a593Smuzhiyunconfig CRYPTO_DEV_OMAP_SHAM 367*4882a593Smuzhiyun tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator" 368*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 369*4882a593Smuzhiyun select CRYPTO_ENGINE 370*4882a593Smuzhiyun select CRYPTO_SHA1 371*4882a593Smuzhiyun select CRYPTO_MD5 372*4882a593Smuzhiyun select CRYPTO_SHA256 373*4882a593Smuzhiyun select CRYPTO_SHA512 374*4882a593Smuzhiyun select CRYPTO_HMAC 375*4882a593Smuzhiyun help 376*4882a593Smuzhiyun OMAP processors have MD5/SHA1/SHA2 hw accelerator. Select this if you 377*4882a593Smuzhiyun want to use the OMAP module for MD5/SHA1/SHA2 algorithms. 378*4882a593Smuzhiyun 379*4882a593Smuzhiyunconfig CRYPTO_DEV_OMAP_AES 380*4882a593Smuzhiyun tristate "Support for OMAP AES hw engine" 381*4882a593Smuzhiyun depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS 382*4882a593Smuzhiyun select CRYPTO_AES 383*4882a593Smuzhiyun select CRYPTO_SKCIPHER 384*4882a593Smuzhiyun select CRYPTO_ENGINE 385*4882a593Smuzhiyun select CRYPTO_CBC 386*4882a593Smuzhiyun select CRYPTO_ECB 387*4882a593Smuzhiyun select CRYPTO_CTR 388*4882a593Smuzhiyun select CRYPTO_AEAD 389*4882a593Smuzhiyun help 390*4882a593Smuzhiyun OMAP processors have AES module accelerator. Select this if you 391*4882a593Smuzhiyun want to use the OMAP module for AES algorithms. 392*4882a593Smuzhiyun 393*4882a593Smuzhiyunconfig CRYPTO_DEV_OMAP_DES 394*4882a593Smuzhiyun tristate "Support for OMAP DES/3DES hw engine" 395*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 396*4882a593Smuzhiyun select CRYPTO_LIB_DES 397*4882a593Smuzhiyun select CRYPTO_SKCIPHER 398*4882a593Smuzhiyun select CRYPTO_ENGINE 399*4882a593Smuzhiyun help 400*4882a593Smuzhiyun OMAP processors have DES/3DES module accelerator. Select this if you 401*4882a593Smuzhiyun want to use the OMAP module for DES and 3DES algorithms. Currently 402*4882a593Smuzhiyun the ECB and CBC modes of operation are supported by the driver. Also 403*4882a593Smuzhiyun accesses made on unaligned boundaries are supported. 404*4882a593Smuzhiyun 405*4882a593Smuzhiyunendif # CRYPTO_DEV_OMAP 406*4882a593Smuzhiyun 407*4882a593Smuzhiyunconfig CRYPTO_DEV_PICOXCELL 408*4882a593Smuzhiyun tristate "Support for picoXcell IPSEC and Layer2 crypto engines" 409*4882a593Smuzhiyun depends on (ARCH_PICOXCELL || COMPILE_TEST) && HAVE_CLK 410*4882a593Smuzhiyun select CRYPTO_AEAD 411*4882a593Smuzhiyun select CRYPTO_AES 412*4882a593Smuzhiyun select CRYPTO_AUTHENC 413*4882a593Smuzhiyun select CRYPTO_SKCIPHER 414*4882a593Smuzhiyun select CRYPTO_LIB_DES 415*4882a593Smuzhiyun select CRYPTO_CBC 416*4882a593Smuzhiyun select CRYPTO_ECB 417*4882a593Smuzhiyun select CRYPTO_SEQIV 418*4882a593Smuzhiyun help 419*4882a593Smuzhiyun This option enables support for the hardware offload engines in the 420*4882a593Smuzhiyun Picochip picoXcell SoC devices. Select this for IPSEC ESP offload 421*4882a593Smuzhiyun and for 3gpp Layer 2 ciphering support. 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun Saying m here will build a module named picoxcell_crypto. 424*4882a593Smuzhiyun 425*4882a593Smuzhiyunconfig CRYPTO_DEV_SAHARA 426*4882a593Smuzhiyun tristate "Support for SAHARA crypto accelerator" 427*4882a593Smuzhiyun depends on ARCH_MXC && OF 428*4882a593Smuzhiyun select CRYPTO_SKCIPHER 429*4882a593Smuzhiyun select CRYPTO_AES 430*4882a593Smuzhiyun select CRYPTO_ECB 431*4882a593Smuzhiyun help 432*4882a593Smuzhiyun This option enables support for the SAHARA HW crypto accelerator 433*4882a593Smuzhiyun found in some Freescale i.MX chips. 434*4882a593Smuzhiyun 435*4882a593Smuzhiyunconfig CRYPTO_DEV_EXYNOS_RNG 436*4882a593Smuzhiyun tristate "Exynos HW pseudo random number generator support" 437*4882a593Smuzhiyun depends on ARCH_EXYNOS || COMPILE_TEST 438*4882a593Smuzhiyun depends on HAS_IOMEM 439*4882a593Smuzhiyun select CRYPTO_RNG 440*4882a593Smuzhiyun help 441*4882a593Smuzhiyun This driver provides kernel-side support through the 442*4882a593Smuzhiyun cryptographic API for the pseudo random number generator hardware 443*4882a593Smuzhiyun found on Exynos SoCs. 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun To compile this driver as a module, choose M here: the 446*4882a593Smuzhiyun module will be called exynos-rng. 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun If unsure, say Y. 449*4882a593Smuzhiyun 450*4882a593Smuzhiyunconfig CRYPTO_DEV_S5P 451*4882a593Smuzhiyun tristate "Support for Samsung S5PV210/Exynos crypto accelerator" 452*4882a593Smuzhiyun depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 453*4882a593Smuzhiyun depends on HAS_IOMEM 454*4882a593Smuzhiyun select CRYPTO_AES 455*4882a593Smuzhiyun select CRYPTO_SKCIPHER 456*4882a593Smuzhiyun help 457*4882a593Smuzhiyun This option allows you to have support for S5P crypto acceleration. 458*4882a593Smuzhiyun Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES 459*4882a593Smuzhiyun algorithms execution. 460*4882a593Smuzhiyun 461*4882a593Smuzhiyunconfig CRYPTO_DEV_EXYNOS_HASH 462*4882a593Smuzhiyun bool "Support for Samsung Exynos HASH accelerator" 463*4882a593Smuzhiyun depends on CRYPTO_DEV_S5P 464*4882a593Smuzhiyun depends on !CRYPTO_DEV_EXYNOS_RNG && CRYPTO_DEV_EXYNOS_RNG!=m 465*4882a593Smuzhiyun select CRYPTO_SHA1 466*4882a593Smuzhiyun select CRYPTO_MD5 467*4882a593Smuzhiyun select CRYPTO_SHA256 468*4882a593Smuzhiyun help 469*4882a593Smuzhiyun Select this to offload Exynos from HASH MD5/SHA1/SHA256. 470*4882a593Smuzhiyun This will select software SHA1, MD5 and SHA256 as they are 471*4882a593Smuzhiyun needed for small and zero-size messages. 472*4882a593Smuzhiyun HASH algorithms will be disabled if EXYNOS_RNG 473*4882a593Smuzhiyun is enabled due to hw conflict. 474*4882a593Smuzhiyun 475*4882a593Smuzhiyunconfig CRYPTO_DEV_NX 476*4882a593Smuzhiyun bool "Support for IBM PowerPC Nest (NX) cryptographic acceleration" 477*4882a593Smuzhiyun depends on PPC64 478*4882a593Smuzhiyun help 479*4882a593Smuzhiyun This enables support for the NX hardware cryptographic accelerator 480*4882a593Smuzhiyun coprocessor that is in IBM PowerPC P7+ or later processors. This 481*4882a593Smuzhiyun does not actually enable any drivers, it only allows you to select 482*4882a593Smuzhiyun which acceleration type (encryption and/or compression) to enable. 483*4882a593Smuzhiyun 484*4882a593Smuzhiyunif CRYPTO_DEV_NX 485*4882a593Smuzhiyun source "drivers/crypto/nx/Kconfig" 486*4882a593Smuzhiyunendif 487*4882a593Smuzhiyun 488*4882a593Smuzhiyunconfig CRYPTO_DEV_UX500 489*4882a593Smuzhiyun tristate "Driver for ST-Ericsson UX500 crypto hardware acceleration" 490*4882a593Smuzhiyun depends on ARCH_U8500 491*4882a593Smuzhiyun help 492*4882a593Smuzhiyun Driver for ST-Ericsson UX500 crypto engine. 493*4882a593Smuzhiyun 494*4882a593Smuzhiyunif CRYPTO_DEV_UX500 495*4882a593Smuzhiyun source "drivers/crypto/ux500/Kconfig" 496*4882a593Smuzhiyunendif # if CRYPTO_DEV_UX500 497*4882a593Smuzhiyun 498*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_AUTHENC 499*4882a593Smuzhiyun bool "Support for Atmel IPSEC/SSL hw accelerator" 500*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 501*4882a593Smuzhiyun depends on CRYPTO_DEV_ATMEL_AES 502*4882a593Smuzhiyun help 503*4882a593Smuzhiyun Some Atmel processors can combine the AES and SHA hw accelerators 504*4882a593Smuzhiyun to enhance support of IPSEC/SSL. 505*4882a593Smuzhiyun Select this if you want to use the Atmel modules for 506*4882a593Smuzhiyun authenc(hmac(shaX),Y(cbc)) algorithms. 507*4882a593Smuzhiyun 508*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_AES 509*4882a593Smuzhiyun tristate "Support for Atmel AES hw accelerator" 510*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 511*4882a593Smuzhiyun select CRYPTO_AES 512*4882a593Smuzhiyun select CRYPTO_AEAD 513*4882a593Smuzhiyun select CRYPTO_SKCIPHER 514*4882a593Smuzhiyun select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC 515*4882a593Smuzhiyun select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC 516*4882a593Smuzhiyun help 517*4882a593Smuzhiyun Some Atmel processors have AES hw accelerator. 518*4882a593Smuzhiyun Select this if you want to use the Atmel module for 519*4882a593Smuzhiyun AES algorithms. 520*4882a593Smuzhiyun 521*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 522*4882a593Smuzhiyun will be called atmel-aes. 523*4882a593Smuzhiyun 524*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_TDES 525*4882a593Smuzhiyun tristate "Support for Atmel DES/TDES hw accelerator" 526*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 527*4882a593Smuzhiyun select CRYPTO_LIB_DES 528*4882a593Smuzhiyun select CRYPTO_SKCIPHER 529*4882a593Smuzhiyun help 530*4882a593Smuzhiyun Some Atmel processors have DES/TDES hw accelerator. 531*4882a593Smuzhiyun Select this if you want to use the Atmel module for 532*4882a593Smuzhiyun DES/TDES algorithms. 533*4882a593Smuzhiyun 534*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 535*4882a593Smuzhiyun will be called atmel-tdes. 536*4882a593Smuzhiyun 537*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_SHA 538*4882a593Smuzhiyun tristate "Support for Atmel SHA hw accelerator" 539*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 540*4882a593Smuzhiyun select CRYPTO_HASH 541*4882a593Smuzhiyun help 542*4882a593Smuzhiyun Some Atmel processors have SHA1/SHA224/SHA256/SHA384/SHA512 543*4882a593Smuzhiyun hw accelerator. 544*4882a593Smuzhiyun Select this if you want to use the Atmel module for 545*4882a593Smuzhiyun SHA1/SHA224/SHA256/SHA384/SHA512 algorithms. 546*4882a593Smuzhiyun 547*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 548*4882a593Smuzhiyun will be called atmel-sha. 549*4882a593Smuzhiyun 550*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_I2C 551*4882a593Smuzhiyun tristate 552*4882a593Smuzhiyun select BITREVERSE 553*4882a593Smuzhiyun 554*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_ECC 555*4882a593Smuzhiyun tristate "Support for Microchip / Atmel ECC hw accelerator" 556*4882a593Smuzhiyun depends on I2C 557*4882a593Smuzhiyun select CRYPTO_DEV_ATMEL_I2C 558*4882a593Smuzhiyun select CRYPTO_ECDH 559*4882a593Smuzhiyun select CRC16 560*4882a593Smuzhiyun help 561*4882a593Smuzhiyun Microhip / Atmel ECC hw accelerator. 562*4882a593Smuzhiyun Select this if you want to use the Microchip / Atmel module for 563*4882a593Smuzhiyun ECDH algorithm. 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 566*4882a593Smuzhiyun will be called atmel-ecc. 567*4882a593Smuzhiyun 568*4882a593Smuzhiyunconfig CRYPTO_DEV_ATMEL_SHA204A 569*4882a593Smuzhiyun tristate "Support for Microchip / Atmel SHA accelerator and RNG" 570*4882a593Smuzhiyun depends on I2C 571*4882a593Smuzhiyun select CRYPTO_DEV_ATMEL_I2C 572*4882a593Smuzhiyun select HW_RANDOM 573*4882a593Smuzhiyun select CRC16 574*4882a593Smuzhiyun help 575*4882a593Smuzhiyun Microhip / Atmel SHA accelerator and RNG. 576*4882a593Smuzhiyun Select this if you want to use the Microchip / Atmel SHA204A 577*4882a593Smuzhiyun module as a random number generator. (Other functions of the 578*4882a593Smuzhiyun chip are currently not exposed by this driver) 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 581*4882a593Smuzhiyun will be called atmel-sha204a. 582*4882a593Smuzhiyun 583*4882a593Smuzhiyunconfig CRYPTO_DEV_CCP 584*4882a593Smuzhiyun bool "Support for AMD Secure Processor" 585*4882a593Smuzhiyun depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM 586*4882a593Smuzhiyun help 587*4882a593Smuzhiyun The AMD Secure Processor provides support for the Cryptographic Coprocessor 588*4882a593Smuzhiyun (CCP) and the Platform Security Processor (PSP) devices. 589*4882a593Smuzhiyun 590*4882a593Smuzhiyunif CRYPTO_DEV_CCP 591*4882a593Smuzhiyun source "drivers/crypto/ccp/Kconfig" 592*4882a593Smuzhiyunendif 593*4882a593Smuzhiyun 594*4882a593Smuzhiyunconfig CRYPTO_DEV_MXS_DCP 595*4882a593Smuzhiyun tristate "Support for Freescale MXS DCP" 596*4882a593Smuzhiyun depends on (ARCH_MXS || ARCH_MXC) 597*4882a593Smuzhiyun select STMP_DEVICE 598*4882a593Smuzhiyun select CRYPTO_CBC 599*4882a593Smuzhiyun select CRYPTO_ECB 600*4882a593Smuzhiyun select CRYPTO_AES 601*4882a593Smuzhiyun select CRYPTO_SKCIPHER 602*4882a593Smuzhiyun select CRYPTO_HASH 603*4882a593Smuzhiyun help 604*4882a593Smuzhiyun The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB 605*4882a593Smuzhiyun co-processor on the die. 606*4882a593Smuzhiyun 607*4882a593Smuzhiyun To compile this driver as a module, choose M here: the module 608*4882a593Smuzhiyun will be called mxs-dcp. 609*4882a593Smuzhiyun 610*4882a593Smuzhiyunsource "drivers/crypto/qat/Kconfig" 611*4882a593Smuzhiyunsource "drivers/crypto/cavium/cpt/Kconfig" 612*4882a593Smuzhiyunsource "drivers/crypto/cavium/nitrox/Kconfig" 613*4882a593Smuzhiyunsource "drivers/crypto/marvell/Kconfig" 614*4882a593Smuzhiyun 615*4882a593Smuzhiyunconfig CRYPTO_DEV_CAVIUM_ZIP 616*4882a593Smuzhiyun tristate "Cavium ZIP driver" 617*4882a593Smuzhiyun depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 618*4882a593Smuzhiyun help 619*4882a593Smuzhiyun Select this option if you want to enable compression/decompression 620*4882a593Smuzhiyun acceleration on Cavium's ARM based SoCs 621*4882a593Smuzhiyun 622*4882a593Smuzhiyunconfig CRYPTO_DEV_QCE 623*4882a593Smuzhiyun tristate "Qualcomm crypto engine accelerator" 624*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 625*4882a593Smuzhiyun depends on HAS_IOMEM 626*4882a593Smuzhiyun help 627*4882a593Smuzhiyun This driver supports Qualcomm crypto engine accelerator 628*4882a593Smuzhiyun hardware. To compile this driver as a module, choose M here. The 629*4882a593Smuzhiyun module will be called qcrypto. 630*4882a593Smuzhiyun 631*4882a593Smuzhiyunconfig CRYPTO_DEV_QCE_SKCIPHER 632*4882a593Smuzhiyun bool 633*4882a593Smuzhiyun depends on CRYPTO_DEV_QCE 634*4882a593Smuzhiyun select CRYPTO_AES 635*4882a593Smuzhiyun select CRYPTO_LIB_DES 636*4882a593Smuzhiyun select CRYPTO_ECB 637*4882a593Smuzhiyun select CRYPTO_CBC 638*4882a593Smuzhiyun select CRYPTO_XTS 639*4882a593Smuzhiyun select CRYPTO_CTR 640*4882a593Smuzhiyun select CRYPTO_SKCIPHER 641*4882a593Smuzhiyun 642*4882a593Smuzhiyunconfig CRYPTO_DEV_QCE_SHA 643*4882a593Smuzhiyun bool 644*4882a593Smuzhiyun depends on CRYPTO_DEV_QCE 645*4882a593Smuzhiyun select CRYPTO_SHA1 646*4882a593Smuzhiyun select CRYPTO_SHA256 647*4882a593Smuzhiyun 648*4882a593Smuzhiyunchoice 649*4882a593Smuzhiyun prompt "Algorithms enabled for QCE acceleration" 650*4882a593Smuzhiyun default CRYPTO_DEV_QCE_ENABLE_ALL 651*4882a593Smuzhiyun depends on CRYPTO_DEV_QCE 652*4882a593Smuzhiyun help 653*4882a593Smuzhiyun This option allows to choose whether to build support for all algorihtms 654*4882a593Smuzhiyun (default), hashes-only, or skciphers-only. 655*4882a593Smuzhiyun 656*4882a593Smuzhiyun The QCE engine does not appear to scale as well as the CPU to handle 657*4882a593Smuzhiyun multiple crypto requests. While the ipq40xx chips have 4-core CPUs, the 658*4882a593Smuzhiyun QCE handles only 2 requests in parallel. 659*4882a593Smuzhiyun 660*4882a593Smuzhiyun Ipsec throughput seems to improve when disabling either family of 661*4882a593Smuzhiyun algorithms, sharing the load with the CPU. Enabling skciphers-only 662*4882a593Smuzhiyun appears to work best. 663*4882a593Smuzhiyun 664*4882a593Smuzhiyun config CRYPTO_DEV_QCE_ENABLE_ALL 665*4882a593Smuzhiyun bool "All supported algorithms" 666*4882a593Smuzhiyun select CRYPTO_DEV_QCE_SKCIPHER 667*4882a593Smuzhiyun select CRYPTO_DEV_QCE_SHA 668*4882a593Smuzhiyun help 669*4882a593Smuzhiyun Enable all supported algorithms: 670*4882a593Smuzhiyun - AES (CBC, CTR, ECB, XTS) 671*4882a593Smuzhiyun - 3DES (CBC, ECB) 672*4882a593Smuzhiyun - DES (CBC, ECB) 673*4882a593Smuzhiyun - SHA1, HMAC-SHA1 674*4882a593Smuzhiyun - SHA256, HMAC-SHA256 675*4882a593Smuzhiyun 676*4882a593Smuzhiyun config CRYPTO_DEV_QCE_ENABLE_SKCIPHER 677*4882a593Smuzhiyun bool "Symmetric-key ciphers only" 678*4882a593Smuzhiyun select CRYPTO_DEV_QCE_SKCIPHER 679*4882a593Smuzhiyun help 680*4882a593Smuzhiyun Enable symmetric-key ciphers only: 681*4882a593Smuzhiyun - AES (CBC, CTR, ECB, XTS) 682*4882a593Smuzhiyun - 3DES (ECB, CBC) 683*4882a593Smuzhiyun - DES (ECB, CBC) 684*4882a593Smuzhiyun 685*4882a593Smuzhiyun config CRYPTO_DEV_QCE_ENABLE_SHA 686*4882a593Smuzhiyun bool "Hash/HMAC only" 687*4882a593Smuzhiyun select CRYPTO_DEV_QCE_SHA 688*4882a593Smuzhiyun help 689*4882a593Smuzhiyun Enable hashes/HMAC algorithms only: 690*4882a593Smuzhiyun - SHA1, HMAC-SHA1 691*4882a593Smuzhiyun - SHA256, HMAC-SHA256 692*4882a593Smuzhiyun 693*4882a593Smuzhiyunendchoice 694*4882a593Smuzhiyun 695*4882a593Smuzhiyunconfig CRYPTO_DEV_QCE_SW_MAX_LEN 696*4882a593Smuzhiyun int "Default maximum request size to use software for AES" 697*4882a593Smuzhiyun depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER 698*4882a593Smuzhiyun default 512 699*4882a593Smuzhiyun help 700*4882a593Smuzhiyun This sets the default maximum request size to perform AES requests 701*4882a593Smuzhiyun using software instead of the crypto engine. It can be changed by 702*4882a593Smuzhiyun setting the aes_sw_max_len parameter. 703*4882a593Smuzhiyun 704*4882a593Smuzhiyun Small blocks are processed faster in software than hardware. 705*4882a593Smuzhiyun Considering the 256-bit ciphers, software is 2-3 times faster than 706*4882a593Smuzhiyun qce at 256-bytes, 30% faster at 512, and about even at 768-bytes. 707*4882a593Smuzhiyun With 128-bit keys, the break-even point would be around 1024-bytes. 708*4882a593Smuzhiyun 709*4882a593Smuzhiyun The default is set a little lower, to 512 bytes, to balance the 710*4882a593Smuzhiyun cost in CPU usage. The minimum recommended setting is 16-bytes 711*4882a593Smuzhiyun (1 AES block), since AES-GCM will fail if you set it lower. 712*4882a593Smuzhiyun Setting this to zero will send all requests to the hardware. 713*4882a593Smuzhiyun 714*4882a593Smuzhiyun Note that 192-bit keys are not supported by the hardware and are 715*4882a593Smuzhiyun always processed by the software fallback, and all DES requests 716*4882a593Smuzhiyun are done by the hardware. 717*4882a593Smuzhiyun 718*4882a593Smuzhiyunconfig CRYPTO_DEV_QCOM_RNG 719*4882a593Smuzhiyun tristate "Qualcomm Random Number Generator Driver" 720*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 721*4882a593Smuzhiyun select CRYPTO_RNG 722*4882a593Smuzhiyun help 723*4882a593Smuzhiyun This driver provides support for the Random Number 724*4882a593Smuzhiyun Generator hardware found on Qualcomm SoCs. 725*4882a593Smuzhiyun 726*4882a593Smuzhiyun To compile this driver as a module, choose M here. The 727*4882a593Smuzhiyun module will be called qcom-rng. If unsure, say N. 728*4882a593Smuzhiyun 729*4882a593Smuzhiyunconfig CRYPTO_DEV_VMX 730*4882a593Smuzhiyun bool "Support for VMX cryptographic acceleration instructions" 731*4882a593Smuzhiyun depends on PPC64 && VSX 732*4882a593Smuzhiyun help 733*4882a593Smuzhiyun Support for VMX cryptographic acceleration instructions. 734*4882a593Smuzhiyun 735*4882a593Smuzhiyunsource "drivers/crypto/vmx/Kconfig" 736*4882a593Smuzhiyun 737*4882a593Smuzhiyunconfig CRYPTO_DEV_IMGTEC_HASH 738*4882a593Smuzhiyun tristate "Imagination Technologies hardware hash accelerator" 739*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 740*4882a593Smuzhiyun select CRYPTO_MD5 741*4882a593Smuzhiyun select CRYPTO_SHA1 742*4882a593Smuzhiyun select CRYPTO_SHA256 743*4882a593Smuzhiyun select CRYPTO_HASH 744*4882a593Smuzhiyun help 745*4882a593Smuzhiyun This driver interfaces with the Imagination Technologies 746*4882a593Smuzhiyun hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256 747*4882a593Smuzhiyun hashing algorithms. 748*4882a593Smuzhiyun 749*4882a593Smuzhiyunconfig CRYPTO_DEV_ROCKCHIP 750*4882a593Smuzhiyun tristate "Rockchip's Cryptographic Engine driver" 751*4882a593Smuzhiyun depends on OF && ARCH_ROCKCHIP 752*4882a593Smuzhiyun select CRYPTO_DES 753*4882a593Smuzhiyun select CRYPTO_AES 754*4882a593Smuzhiyun select CRYPTO_ECB 755*4882a593Smuzhiyun select CRYPTO_CBC 756*4882a593Smuzhiyun select CRYPTO_XTS 757*4882a593Smuzhiyun select CRYPTO_CFB 758*4882a593Smuzhiyun select CRYPTO_OFB 759*4882a593Smuzhiyun select CRYPTO_CTR 760*4882a593Smuzhiyun select CRYPTO_GCM 761*4882a593Smuzhiyun select CRYPTO_LIB_DES 762*4882a593Smuzhiyun select CRYPTO_MD5 763*4882a593Smuzhiyun select CRYPTO_SHA1 764*4882a593Smuzhiyun select CRYPTO_SM3 765*4882a593Smuzhiyun select CRYPTO_SM4 766*4882a593Smuzhiyun select CRYPTO_SHA256 767*4882a593Smuzhiyun select CRTPTO_SHA512 768*4882a593Smuzhiyun select CRYPTO_HASH 769*4882a593Smuzhiyun select CRYPTO_SKCIPHER 770*4882a593Smuzhiyun select CRYPTO_RSA 771*4882a593Smuzhiyun 772*4882a593Smuzhiyun help 773*4882a593Smuzhiyun This driver interfaces with the hardware crypto accelerator. 774*4882a593Smuzhiyun Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode. 775*4882a593Smuzhiyun 776*4882a593Smuzhiyunsource "drivers/crypto/rockchip/Kconfig" 777*4882a593Smuzhiyun 778*4882a593Smuzhiyunconfig CRYPTO_DEV_ZYNQMP_AES 779*4882a593Smuzhiyun tristate "Support for Xilinx ZynqMP AES hw accelerator" 780*4882a593Smuzhiyun depends on ZYNQMP_FIRMWARE || COMPILE_TEST 781*4882a593Smuzhiyun select CRYPTO_AES 782*4882a593Smuzhiyun select CRYPTO_ENGINE 783*4882a593Smuzhiyun select CRYPTO_AEAD 784*4882a593Smuzhiyun help 785*4882a593Smuzhiyun Xilinx ZynqMP has AES-GCM engine used for symmetric key 786*4882a593Smuzhiyun encryption and decryption. This driver interfaces with AES hw 787*4882a593Smuzhiyun accelerator. Select this if you want to use the ZynqMP module 788*4882a593Smuzhiyun for AES algorithms. 789*4882a593Smuzhiyun 790*4882a593Smuzhiyunconfig CRYPTO_DEV_MEDIATEK 791*4882a593Smuzhiyun tristate "MediaTek's EIP97 Cryptographic Engine driver" 792*4882a593Smuzhiyun depends on (ARM && ARCH_MEDIATEK) || COMPILE_TEST 793*4882a593Smuzhiyun select CRYPTO_LIB_AES 794*4882a593Smuzhiyun select CRYPTO_AEAD 795*4882a593Smuzhiyun select CRYPTO_SKCIPHER 796*4882a593Smuzhiyun select CRYPTO_SHA1 797*4882a593Smuzhiyun select CRYPTO_SHA256 798*4882a593Smuzhiyun select CRYPTO_SHA512 799*4882a593Smuzhiyun select CRYPTO_HMAC 800*4882a593Smuzhiyun help 801*4882a593Smuzhiyun This driver allows you to utilize the hardware crypto accelerator 802*4882a593Smuzhiyun EIP97 which can be found on the MT7623 MT2701, MT8521p, etc .... 803*4882a593Smuzhiyun Select this if you want to use it for AES/SHA1/SHA2 algorithms. 804*4882a593Smuzhiyun 805*4882a593Smuzhiyunsource "drivers/crypto/chelsio/Kconfig" 806*4882a593Smuzhiyun 807*4882a593Smuzhiyunsource "drivers/crypto/virtio/Kconfig" 808*4882a593Smuzhiyun 809*4882a593Smuzhiyunconfig CRYPTO_DEV_BCM_SPU 810*4882a593Smuzhiyun tristate "Broadcom symmetric crypto/hash acceleration support" 811*4882a593Smuzhiyun depends on ARCH_BCM_IPROC 812*4882a593Smuzhiyun depends on MAILBOX 813*4882a593Smuzhiyun default m 814*4882a593Smuzhiyun select CRYPTO_AUTHENC 815*4882a593Smuzhiyun select CRYPTO_LIB_DES 816*4882a593Smuzhiyun select CRYPTO_MD5 817*4882a593Smuzhiyun select CRYPTO_SHA1 818*4882a593Smuzhiyun select CRYPTO_SHA256 819*4882a593Smuzhiyun select CRYPTO_SHA512 820*4882a593Smuzhiyun help 821*4882a593Smuzhiyun This driver provides support for Broadcom crypto acceleration using the 822*4882a593Smuzhiyun Secure Processing Unit (SPU). The SPU driver registers skcipher, 823*4882a593Smuzhiyun ahash, and aead algorithms with the kernel cryptographic API. 824*4882a593Smuzhiyun 825*4882a593Smuzhiyunsource "drivers/crypto/stm32/Kconfig" 826*4882a593Smuzhiyun 827*4882a593Smuzhiyunconfig CRYPTO_DEV_SAFEXCEL 828*4882a593Smuzhiyun tristate "Inside Secure's SafeXcel cryptographic engine driver" 829*4882a593Smuzhiyun depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM 830*4882a593Smuzhiyun select CRYPTO_LIB_AES 831*4882a593Smuzhiyun select CRYPTO_AUTHENC 832*4882a593Smuzhiyun select CRYPTO_SKCIPHER 833*4882a593Smuzhiyun select CRYPTO_LIB_DES 834*4882a593Smuzhiyun select CRYPTO_HASH 835*4882a593Smuzhiyun select CRYPTO_HMAC 836*4882a593Smuzhiyun select CRYPTO_MD5 837*4882a593Smuzhiyun select CRYPTO_SHA1 838*4882a593Smuzhiyun select CRYPTO_SHA256 839*4882a593Smuzhiyun select CRYPTO_SHA512 840*4882a593Smuzhiyun select CRYPTO_CHACHA20POLY1305 841*4882a593Smuzhiyun select CRYPTO_SHA3 842*4882a593Smuzhiyun help 843*4882a593Smuzhiyun This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic 844*4882a593Smuzhiyun engines designed by Inside Secure. It currently accelerates DES, 3DES and 845*4882a593Smuzhiyun AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256, 846*4882a593Smuzhiyun SHA384 and SHA512 hash algorithms for both basic hash and HMAC. 847*4882a593Smuzhiyun Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations. 848*4882a593Smuzhiyun 849*4882a593Smuzhiyunconfig CRYPTO_DEV_ARTPEC6 850*4882a593Smuzhiyun tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration." 851*4882a593Smuzhiyun depends on ARM && (ARCH_ARTPEC || COMPILE_TEST) 852*4882a593Smuzhiyun depends on OF 853*4882a593Smuzhiyun select CRYPTO_AEAD 854*4882a593Smuzhiyun select CRYPTO_AES 855*4882a593Smuzhiyun select CRYPTO_ALGAPI 856*4882a593Smuzhiyun select CRYPTO_SKCIPHER 857*4882a593Smuzhiyun select CRYPTO_CTR 858*4882a593Smuzhiyun select CRYPTO_HASH 859*4882a593Smuzhiyun select CRYPTO_SHA1 860*4882a593Smuzhiyun select CRYPTO_SHA256 861*4882a593Smuzhiyun select CRYPTO_SHA512 862*4882a593Smuzhiyun help 863*4882a593Smuzhiyun Enables the driver for the on-chip crypto accelerator 864*4882a593Smuzhiyun of Axis ARTPEC SoCs. 865*4882a593Smuzhiyun 866*4882a593Smuzhiyun To compile this driver as a module, choose M here. 867*4882a593Smuzhiyun 868*4882a593Smuzhiyunconfig CRYPTO_DEV_CCREE 869*4882a593Smuzhiyun tristate "Support for ARM TrustZone CryptoCell family of security processors" 870*4882a593Smuzhiyun depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA 871*4882a593Smuzhiyun default n 872*4882a593Smuzhiyun select CRYPTO_HASH 873*4882a593Smuzhiyun select CRYPTO_SKCIPHER 874*4882a593Smuzhiyun select CRYPTO_LIB_DES 875*4882a593Smuzhiyun select CRYPTO_AEAD 876*4882a593Smuzhiyun select CRYPTO_AUTHENC 877*4882a593Smuzhiyun select CRYPTO_SHA1 878*4882a593Smuzhiyun select CRYPTO_MD5 879*4882a593Smuzhiyun select CRYPTO_SHA256 880*4882a593Smuzhiyun select CRYPTO_SHA512 881*4882a593Smuzhiyun select CRYPTO_HMAC 882*4882a593Smuzhiyun select CRYPTO_AES 883*4882a593Smuzhiyun select CRYPTO_CBC 884*4882a593Smuzhiyun select CRYPTO_ECB 885*4882a593Smuzhiyun select CRYPTO_CTR 886*4882a593Smuzhiyun select CRYPTO_XTS 887*4882a593Smuzhiyun select CRYPTO_SM4 888*4882a593Smuzhiyun select CRYPTO_SM3 889*4882a593Smuzhiyun help 890*4882a593Smuzhiyun Say 'Y' to enable a driver for the REE interface of the Arm 891*4882a593Smuzhiyun TrustZone CryptoCell family of processors. Currently the 892*4882a593Smuzhiyun CryptoCell 713, 703, 712, 710 and 630 are supported. 893*4882a593Smuzhiyun Choose this if you wish to use hardware acceleration of 894*4882a593Smuzhiyun cryptographic operations on the system REE. 895*4882a593Smuzhiyun If unsure say Y. 896*4882a593Smuzhiyun 897*4882a593Smuzhiyunsource "drivers/crypto/hisilicon/Kconfig" 898*4882a593Smuzhiyun 899*4882a593Smuzhiyunsource "drivers/crypto/amlogic/Kconfig" 900*4882a593Smuzhiyun 901*4882a593Smuzhiyunconfig CRYPTO_DEV_SA2UL 902*4882a593Smuzhiyun tristate "Support for TI security accelerator" 903*4882a593Smuzhiyun depends on ARCH_K3 || COMPILE_TEST 904*4882a593Smuzhiyun select ARM64_CRYPTO 905*4882a593Smuzhiyun select CRYPTO_AES 906*4882a593Smuzhiyun select CRYPTO_AES_ARM64 907*4882a593Smuzhiyun select CRYPTO_ALGAPI 908*4882a593Smuzhiyun select CRYPTO_AUTHENC 909*4882a593Smuzhiyun select CRYPTO_SHA1 910*4882a593Smuzhiyun select CRYPTO_SHA256 911*4882a593Smuzhiyun select CRYPTO_SHA512 912*4882a593Smuzhiyun select HW_RANDOM 913*4882a593Smuzhiyun select SG_SPLIT 914*4882a593Smuzhiyun help 915*4882a593Smuzhiyun K3 devices include a security accelerator engine that may be 916*4882a593Smuzhiyun used for crypto offload. Select this if you want to use hardware 917*4882a593Smuzhiyun acceleration for cryptographic algorithms on these devices. 918*4882a593Smuzhiyun 919*4882a593Smuzhiyunendif # CRYPTO_HW 920