projects/linux·blob master · refs

834 lines · 25.4 KiB

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