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