xref: /openbmc/linux/drivers/crypto/Kconfig (revision 049359d6)
1b511431dSJan Engelhardt
2b511431dSJan Engelhardtmenuconfig CRYPTO_HW
3b511431dSJan Engelhardt	bool "Hardware crypto devices"
4b511431dSJan Engelhardt	default y
506bfb7ebSJan Engelhardt	---help---
606bfb7ebSJan Engelhardt	  Say Y here to get to see options for hardware crypto devices and
706bfb7ebSJan Engelhardt	  processors. This option alone does not add any kernel code.
806bfb7ebSJan Engelhardt
906bfb7ebSJan Engelhardt	  If you say N, all options in this submenu will be skipped and disabled.
10b511431dSJan Engelhardt
11b511431dSJan Engelhardtif CRYPTO_HW
121da177e4SLinus Torvalds
131da177e4SLinus Torvaldsconfig CRYPTO_DEV_PADLOCK
14d158325eSHerbert Xu	tristate "Support for VIA PadLock ACE"
15b00296fbSAl Viro	depends on X86_32 && !UML
16cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
171da177e4SLinus Torvalds	help
181da177e4SLinus Torvalds	  Some VIA processors come with an integrated crypto engine
191da177e4SLinus Torvalds	  (so called VIA PadLock ACE, Advanced Cryptography Engine)
201191f0a4SMichal Ludvig	  that provides instructions for very fast cryptographic
211191f0a4SMichal Ludvig	  operations with supported algorithms.
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds	  The instructions are used only when the CPU supports them.
245644bda5SMichal Ludvig	  Otherwise software encryption is used.
255644bda5SMichal Ludvig
261da177e4SLinus Torvaldsconfig CRYPTO_DEV_PADLOCK_AES
271191f0a4SMichal Ludvig	tristate "PadLock driver for AES algorithm"
281da177e4SLinus Torvalds	depends on CRYPTO_DEV_PADLOCK
2928ce728aSHerbert Xu	select CRYPTO_BLKCIPHER
307dc748e4SSebastian Siewior	select CRYPTO_AES
311da177e4SLinus Torvalds	help
321da177e4SLinus Torvalds	  Use VIA PadLock for AES algorithm.
331da177e4SLinus Torvalds
341191f0a4SMichal Ludvig	  Available in VIA C3 and newer CPUs.
351191f0a4SMichal Ludvig
361191f0a4SMichal Ludvig	  If unsure say M. The compiled module will be
371191f0a4SMichal Ludvig	  called padlock-aes.ko
381191f0a4SMichal Ludvig
396c833275SMichal Ludvigconfig CRYPTO_DEV_PADLOCK_SHA
406c833275SMichal Ludvig	tristate "PadLock driver for SHA1 and SHA256 algorithms"
416c833275SMichal Ludvig	depends on CRYPTO_DEV_PADLOCK
426c833275SMichal Ludvig	select CRYPTO_SHA1
436c833275SMichal Ludvig	select CRYPTO_SHA256
446c833275SMichal Ludvig	help
456c833275SMichal Ludvig	  Use VIA PadLock for SHA1/SHA256 algorithms.
466c833275SMichal Ludvig
476c833275SMichal Ludvig	  Available in VIA C7 and newer processors.
486c833275SMichal Ludvig
496c833275SMichal Ludvig	  If unsure say M. The compiled module will be
506c833275SMichal Ludvig	  called padlock-sha.ko
516c833275SMichal Ludvig
529fe757b0SJordan Crouseconfig CRYPTO_DEV_GEODE
539fe757b0SJordan Crouse	tristate "Support for the Geode LX AES engine"
54f6259deaSSimon Arlott	depends on X86_32 && PCI
559fe757b0SJordan Crouse	select CRYPTO_ALGAPI
569fe757b0SJordan Crouse	select CRYPTO_BLKCIPHER
579fe757b0SJordan Crouse	help
589fe757b0SJordan Crouse	  Say 'Y' here to use the AMD Geode LX processor on-board AES
593dde6ad8SDavid Sterba	  engine for the CryptoAPI AES algorithm.
609fe757b0SJordan Crouse
619fe757b0SJordan Crouse	  To compile this driver as a module, choose M here: the module
629fe757b0SJordan Crouse	  will be called geode-aes.
639fe757b0SJordan Crouse
6461d48c2cSMartin Schwidefskyconfig ZCRYPT
6561d48c2cSMartin Schwidefsky	tristate "Support for PCI-attached cryptographic adapters"
6661d48c2cSMartin Schwidefsky	depends on S390
6761d48c2cSMartin Schwidefsky	select ZCRYPT_MONOLITHIC if ZCRYPT="y"
682f7c8bd6SRalph Wuerthner	select HW_RANDOM
6961d48c2cSMartin Schwidefsky	help
7061d48c2cSMartin Schwidefsky	  Select this option if you want to use a PCI-attached cryptographic
7161d48c2cSMartin Schwidefsky	  adapter like:
7261d48c2cSMartin Schwidefsky	  + PCI Cryptographic Accelerator (PCICA)
7361d48c2cSMartin Schwidefsky	  + PCI Cryptographic Coprocessor (PCICC)
7461d48c2cSMartin Schwidefsky	  + PCI-X Cryptographic Coprocessor (PCIXCC)
7561d48c2cSMartin Schwidefsky	  + Crypto Express2 Coprocessor (CEX2C)
7661d48c2cSMartin Schwidefsky	  + Crypto Express2 Accelerator (CEX2A)
7761d48c2cSMartin Schwidefsky
7861d48c2cSMartin Schwidefskyconfig ZCRYPT_MONOLITHIC
7961d48c2cSMartin Schwidefsky	bool "Monolithic zcrypt module"
8061d48c2cSMartin Schwidefsky	depends on ZCRYPT="m"
8161d48c2cSMartin Schwidefsky	help
8261d48c2cSMartin Schwidefsky	  Select this option if you want to have a single module z90crypt.ko
8361d48c2cSMartin Schwidefsky	  that contains all parts of the crypto device driver (ap bus,
8461d48c2cSMartin Schwidefsky	  request router and all the card drivers).
8561d48c2cSMartin Schwidefsky
863f5615e0SJan Glauberconfig CRYPTO_SHA1_S390
873f5615e0SJan Glauber	tristate "SHA1 digest algorithm"
883f5615e0SJan Glauber	depends on S390
89563f346dSHerbert Xu	select CRYPTO_HASH
903f5615e0SJan Glauber	help
913f5615e0SJan Glauber	  This is the s390 hardware accelerated implementation of the
923f5615e0SJan Glauber	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
933f5615e0SJan Glauber
943f5615e0SJan Glauberconfig CRYPTO_SHA256_S390
953f5615e0SJan Glauber	tristate "SHA256 digest algorithm"
963f5615e0SJan Glauber	depends on S390
97563f346dSHerbert Xu	select CRYPTO_HASH
983f5615e0SJan Glauber	help
993f5615e0SJan Glauber	  This is the s390 hardware accelerated implementation of the
1003f5615e0SJan Glauber	  SHA256 secure hash standard (DFIPS 180-2).
1013f5615e0SJan Glauber
1023f5615e0SJan Glauber	  This version of SHA implements a 256 bit hash with 128 bits of
1033f5615e0SJan Glauber	  security against collision attacks.
1043f5615e0SJan Glauber
105291dc7c0SJan Glauberconfig CRYPTO_SHA512_S390
1064e2c6d7fSJan Glauber	tristate "SHA384 and SHA512 digest algorithm"
107291dc7c0SJan Glauber	depends on S390
108563f346dSHerbert Xu	select CRYPTO_HASH
109291dc7c0SJan Glauber	help
110291dc7c0SJan Glauber	  This is the s390 hardware accelerated implementation of the
111291dc7c0SJan Glauber	  SHA512 secure hash standard.
112291dc7c0SJan Glauber
113291dc7c0SJan Glauber	  This version of SHA implements a 512 bit hash with 256 bits of
1144e2c6d7fSJan Glauber	  security against collision attacks. The code also includes SHA-384,
1154e2c6d7fSJan Glauber	  a 384 bit hash with 192 bits of security against collision attacks.
1164e2c6d7fSJan Glauber
117291dc7c0SJan Glauber
1183f5615e0SJan Glauberconfig CRYPTO_DES_S390
1193f5615e0SJan Glauber	tristate "DES and Triple DES cipher algorithms"
1203f5615e0SJan Glauber	depends on S390
1213f5615e0SJan Glauber	select CRYPTO_ALGAPI
1223f5615e0SJan Glauber	select CRYPTO_BLKCIPHER
1233f5615e0SJan Glauber	help
1243f5615e0SJan Glauber	  This us the s390 hardware accelerated implementation of the
1253f5615e0SJan Glauber	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1263f5615e0SJan Glauber
1273f5615e0SJan Glauberconfig CRYPTO_AES_S390
1283f5615e0SJan Glauber	tristate "AES cipher algorithms"
1293f5615e0SJan Glauber	depends on S390
1303f5615e0SJan Glauber	select CRYPTO_ALGAPI
1313f5615e0SJan Glauber	select CRYPTO_BLKCIPHER
1323f5615e0SJan Glauber	help
1333f5615e0SJan Glauber	  This is the s390 hardware accelerated implementation of the
1343f5615e0SJan Glauber	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
1353f5615e0SJan Glauber	  algorithm.
1363f5615e0SJan Glauber
1373f5615e0SJan Glauber	  Rijndael appears to be consistently a very good performer in
1383f5615e0SJan Glauber	  both hardware and software across a wide range of computing
1393f5615e0SJan Glauber	  environments regardless of its use in feedback or non-feedback
1403f5615e0SJan Glauber	  modes. Its key setup time is excellent, and its key agility is
1413f5615e0SJan Glauber	  good. Rijndael's very low memory requirements make it very well
1423f5615e0SJan Glauber	  suited for restricted-space environments, in which it also
1433f5615e0SJan Glauber	  demonstrates excellent performance. Rijndael's operations are
1443f5615e0SJan Glauber	  among the easiest to defend against power and timing attacks.
1453f5615e0SJan Glauber
1463f5615e0SJan Glauber	  On s390 the System z9-109 currently only supports the key size
1473f5615e0SJan Glauber	  of 128 bit.
1483f5615e0SJan Glauber
1493f5615e0SJan Glauberconfig S390_PRNG
1503f5615e0SJan Glauber	tristate "Pseudo random number generator device driver"
1513f5615e0SJan Glauber	depends on S390
1523f5615e0SJan Glauber	default "m"
1533f5615e0SJan Glauber	help
1543f5615e0SJan Glauber	  Select this option if you want to use the s390 pseudo random number
1553f5615e0SJan Glauber	  generator. The PRNG is part of the cryptographic processor functions
1563f5615e0SJan Glauber	  and uses triple-DES to generate secure random numbers like the
1573f5615e0SJan Glauber	  ANSI X9.17 standard. The PRNG is usable via the char device
1583f5615e0SJan Glauber	  /dev/prandom.
1593f5615e0SJan Glauber
160f7d0561eSEvgeniy Polyakovconfig CRYPTO_DEV_HIFN_795X
161f7d0561eSEvgeniy Polyakov	tristate "Driver HIFN 795x crypto accelerator chips"
162c3041f9cSEvgeniy Polyakov	select CRYPTO_DES
163f7d0561eSEvgeniy Polyakov	select CRYPTO_ALGAPI
164653ebd9cSHerbert Xu	select CRYPTO_BLKCIPHER
165946fef4eSHerbert Xu	select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
1662707b937SJan Glauber	depends on PCI
167f7d0561eSEvgeniy Polyakov	help
168f7d0561eSEvgeniy Polyakov	  This option allows you to have support for HIFN 795x crypto adapters.
169f7d0561eSEvgeniy Polyakov
170946fef4eSHerbert Xuconfig CRYPTO_DEV_HIFN_795X_RNG
171946fef4eSHerbert Xu	bool "HIFN 795x random number generator"
172946fef4eSHerbert Xu	depends on CRYPTO_DEV_HIFN_795X
173946fef4eSHerbert Xu	help
174946fef4eSHerbert Xu	  Select this option if you want to enable the random number generator
175946fef4eSHerbert Xu	  on the HIFN 795x crypto adapters.
176f7d0561eSEvgeniy Polyakov
1779c4a7965SKim Phillipsconfig CRYPTO_DEV_TALITOS
1789c4a7965SKim Phillips	tristate "Talitos Freescale Security Engine (SEC)"
1799c4a7965SKim Phillips	select CRYPTO_ALGAPI
1809c4a7965SKim Phillips	select CRYPTO_AUTHENC
1819c4a7965SKim Phillips	select HW_RANDOM
1829c4a7965SKim Phillips	depends on FSL_SOC
1839c4a7965SKim Phillips	help
1849c4a7965SKim Phillips	  Say 'Y' here to use the Freescale Security Engine (SEC)
1859c4a7965SKim Phillips	  to offload cryptographic algorithm computation.
1869c4a7965SKim Phillips
1879c4a7965SKim Phillips	  The Freescale SEC is present on PowerQUICC 'E' processors, such
1889c4a7965SKim Phillips	  as the MPC8349E and MPC8548E.
1899c4a7965SKim Phillips
1909c4a7965SKim Phillips	  To compile this driver as a module, choose M here: the module
1919c4a7965SKim Phillips	  will be called talitos.
1929c4a7965SKim Phillips
19381bef015SChristian Hohnstaedtconfig CRYPTO_DEV_IXP4XX
19481bef015SChristian Hohnstaedt	tristate "Driver for IXP4xx crypto hardware acceleration"
19581bef015SChristian Hohnstaedt	depends on ARCH_IXP4XX
19681bef015SChristian Hohnstaedt	select CRYPTO_DES
19781bef015SChristian Hohnstaedt	select CRYPTO_ALGAPI
198090657e4SImre Kaloz	select CRYPTO_AUTHENC
19981bef015SChristian Hohnstaedt	select CRYPTO_BLKCIPHER
20081bef015SChristian Hohnstaedt	help
20181bef015SChristian Hohnstaedt	  Driver for the IXP4xx NPE crypto engine.
20281bef015SChristian Hohnstaedt
203049359d6SJames Hsiaoconfig CRYPTO_DEV_PPC4XX
204049359d6SJames Hsiao	tristate "Driver AMCC PPC4xx crypto accelerator"
205049359d6SJames Hsiao	depends on PPC && 4xx
206049359d6SJames Hsiao	select CRYPTO_HASH
207049359d6SJames Hsiao	select CRYPTO_ALGAPI
208049359d6SJames Hsiao	select CRYPTO_BLKCIPHER
209049359d6SJames Hsiao	help
210049359d6SJames Hsiao	  This option allows you to have support for AMCC crypto acceleration.
211049359d6SJames Hsiao
212b511431dSJan Engelhardtendif # CRYPTO_HW
213