crypto: keembay - Add support for Keem Bay OCS AES/SM4
Add support for the AES/SM4 crypto engine included in the Offload and
Crypto Subsystem (OCS) of the Intel Keem Bay SoC, thus enabling
hardware-acceleration for the following transformations:
- ecb(aes), cbc(aes), ctr(aes), cts(cbc(aes)), gcm(aes) and cbc(aes);
supported for 128-bit and 256-bit keys.
- ecb(sm4), cbc(sm4), ctr(sm4), cts(cbc(sm4)), gcm(sm4) and cbc(sm4);
supported for 128-bit keys.
The driver passes crypto manager self-tests, including the extra tests
(CRYPTO_MANAGER_EXTRA_TESTS=y).
Signed-off-by: Mike Healy <mikex.healy@intel.com>
Co-developed-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Signed-off-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Acked-by: Mark Gross <mgross@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-11-26 11:51:48 +00:00
|
|
|
config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
|
|
|
|
tristate "Support for Intel Keem Bay OCS AES/SM4 HW acceleration"
|
2020-12-17 16:35:10 +00:00
|
|
|
depends on HAS_IOMEM
|
2020-12-16 13:14:59 +00:00
|
|
|
depends on ARCH_KEEMBAY || COMPILE_TEST
|
crypto: keembay - Add support for Keem Bay OCS AES/SM4
Add support for the AES/SM4 crypto engine included in the Offload and
Crypto Subsystem (OCS) of the Intel Keem Bay SoC, thus enabling
hardware-acceleration for the following transformations:
- ecb(aes), cbc(aes), ctr(aes), cts(cbc(aes)), gcm(aes) and cbc(aes);
supported for 128-bit and 256-bit keys.
- ecb(sm4), cbc(sm4), ctr(sm4), cts(cbc(sm4)), gcm(sm4) and cbc(sm4);
supported for 128-bit keys.
The driver passes crypto manager self-tests, including the extra tests
(CRYPTO_MANAGER_EXTRA_TESTS=y).
Signed-off-by: Mike Healy <mikex.healy@intel.com>
Co-developed-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Signed-off-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Acked-by: Mark Gross <mgross@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-11-26 11:51:48 +00:00
|
|
|
select CRYPTO_SKCIPHER
|
|
|
|
select CRYPTO_AEAD
|
|
|
|
select CRYPTO_ENGINE
|
|
|
|
help
|
|
|
|
Support for Intel Keem Bay Offload and Crypto Subsystem (OCS) AES and
|
2020-12-16 13:14:59 +00:00
|
|
|
SM4 cipher hardware acceleration for use with Crypto API.
|
crypto: keembay - Add support for Keem Bay OCS AES/SM4
Add support for the AES/SM4 crypto engine included in the Offload and
Crypto Subsystem (OCS) of the Intel Keem Bay SoC, thus enabling
hardware-acceleration for the following transformations:
- ecb(aes), cbc(aes), ctr(aes), cts(cbc(aes)), gcm(aes) and cbc(aes);
supported for 128-bit and 256-bit keys.
- ecb(sm4), cbc(sm4), ctr(sm4), cts(cbc(sm4)), gcm(sm4) and cbc(sm4);
supported for 128-bit keys.
The driver passes crypto manager self-tests, including the extra tests
(CRYPTO_MANAGER_EXTRA_TESTS=y).
Signed-off-by: Mike Healy <mikex.healy@intel.com>
Co-developed-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Signed-off-by: Daniele Alessandrelli <daniele.alessandrelli@intel.com>
Acked-by: Mark Gross <mgross@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-11-26 11:51:48 +00:00
|
|
|
|
|
|
|
Provides HW acceleration for the following transformations:
|
|
|
|
cbc(aes), ctr(aes), ccm(aes), gcm(aes), cbc(sm4), ctr(sm4), ccm(sm4)
|
|
|
|
and gcm(sm4).
|
|
|
|
|
|
|
|
Optionally, support for the following transformations can also be
|
|
|
|
enabled: ecb(aes), cts(cbc(aes)), ecb(sm4) and cts(cbc(sm4)).
|
|
|
|
|
|
|
|
config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_ECB
|
|
|
|
bool "Support for Intel Keem Bay OCS AES/SM4 ECB HW acceleration"
|
|
|
|
depends on CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
|
|
|
|
help
|
|
|
|
Support for Intel Keem Bay Offload and Crypto Subsystem (OCS)
|
|
|
|
AES/SM4 ECB mode hardware acceleration for use with Crypto API.
|
|
|
|
|
|
|
|
Provides OCS version of ecb(aes) and ecb(sm4)
|
|
|
|
|
|
|
|
Intel does not recommend use of ECB mode with AES/SM4.
|
|
|
|
|
|
|
|
config CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_CTS
|
|
|
|
bool "Support for Intel Keem Bay OCS AES/SM4 CTS HW acceleration"
|
|
|
|
depends on CRYPTO_DEV_KEEMBAY_OCS_AES_SM4
|
|
|
|
help
|
|
|
|
Support for Intel Keem Bay Offload and Crypto Subsystem (OCS)
|
|
|
|
AES/SM4 CBC with CTS mode hardware acceleration for use with
|
|
|
|
Crypto API.
|
|
|
|
|
|
|
|
Provides OCS version of cts(cbc(aes)) and cts(cbc(sm4)).
|
|
|
|
|
|
|
|
Intel does not recommend use of CTS mode with AES/SM4.
|
2020-12-16 11:46:36 +00:00
|
|
|
|
|
|
|
config CRYPTO_DEV_KEEMBAY_OCS_HCU
|
|
|
|
tristate "Support for Intel Keem Bay OCS HCU HW acceleration"
|
|
|
|
select CRYPTO_HASH
|
|
|
|
select CRYPTO_ENGINE
|
2021-01-06 15:27:33 +00:00
|
|
|
depends on HAS_IOMEM
|
|
|
|
depends on ARCH_KEEMBAY || COMPILE_TEST
|
2020-12-16 11:46:36 +00:00
|
|
|
depends on OF || COMPILE_TEST
|
|
|
|
help
|
|
|
|
Support for Intel Keem Bay Offload and Crypto Subsystem (OCS) Hash
|
|
|
|
Control Unit (HCU) hardware acceleration for use with Crypto API.
|
|
|
|
|
|
|
|
Provides OCS HCU hardware acceleration of sha256, sha384, sha512, and
|
2020-12-16 11:46:37 +00:00
|
|
|
sm3, as well as the HMAC variant of these algorithms.
|
2020-12-16 11:46:36 +00:00
|
|
|
|
|
|
|
Say Y or M if you're building for the Intel Keem Bay SoC. If compiled
|
|
|
|
as a module, the module will be called keembay-ocs-hcu.
|
|
|
|
|
|
|
|
If unsure, say N.
|
2020-12-16 11:46:38 +00:00
|
|
|
|
|
|
|
config CRYPTO_DEV_KEEMBAY_OCS_HCU_HMAC_SHA224
|
|
|
|
bool "Enable sha224 and hmac(sha224) support in Intel Keem Bay OCS HCU"
|
|
|
|
depends on CRYPTO_DEV_KEEMBAY_OCS_HCU
|
|
|
|
help
|
|
|
|
Enables support for sha224 and hmac(sha224) algorithms in the Intel
|
|
|
|
Keem Bay OCS HCU driver. Intel recommends not to use these
|
|
|
|
algorithms.
|
|
|
|
|
|
|
|
Provides OCS HCU hardware acceleration of sha224 and hmac(224).
|
|
|
|
|
|
|
|
If unsure, say N.
|