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