cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (24705B)


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