linux/drivers/crypto
Harald Freudenberger 73dfc79c6b s390/pkey: Add new pkey handler module pkey-uv
This new pkey handler module supports the conversion of
Ultravisor retrievable secrets to protected keys.
The new module pkey-uv.ko is able to retrieve and verify
protected keys backed up by the Ultravisor layer which is
only available within protected execution environment.

The module is only automatically loaded if there is the
UV CPU feature flagged as available. Additionally on module
init there is a check for protected execution environment
and for UV supporting retrievable secrets. Also if the kernel
is not running as a protected execution guest, the module
unloads itself with errno ENODEV.

The pkey UV module currently supports these Ultravisor
secrets and is able to retrieve a protected key for these
UV secret types:
  - UV_SECRET_AES_128
  - UV_SECRET_AES_192
  - UV_SECRET_AES_256
  - UV_SECRET_AES_XTS_128
  - UV_SECRET_AES_XTS_256
  - UV_SECRET_HMAC_SHA_256
  - UV_SECRET_HMAC_SHA_512
  - UV_SECRET_ECDSA_P256
  - UV_SECRET_ECDSA_P384
  - UV_SECRET_ECDSA_P521
  - UV_SECRET_ECDSA_ED25519
  - UV_SECRET_ECDSA_ED448

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2024-10-29 11:17:18 +01:00
..
allwinner move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
amcc crypto: crypto4xx - Remove unused declaration crypto4xx_free_ctx() 2024-08-30 18:22:31 +08:00
amlogic crypto: amlogic - Remove unused declaration meson_enqueue() 2024-08-30 18:22:31 +08:00
aspeed crypto: aspeed - Remove cfb and ofb 2023-12-08 11:59:45 +08:00
axis crypto: axis - Remove unused struct 'dbgfs_u32' 2024-05-31 17:34:56 +08:00
bcm crypto: bcm - Fix pointer arithmetic 2024-04-02 10:49:39 +08:00
caam move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
cavium crypto: nitrox - Remove cfb 2023-12-08 11:59:46 +08:00
ccp crypto: ccp - do not request interrupt on cmd completion when irqs disabled 2024-09-06 14:50:46 +08:00
ccree crypto: ccree - Remove unused struct 'tdes_keys' 2024-05-31 17:34:56 +08:00
chelsio crypto: chelsio - stop using crypto_ahash::init 2023-10-27 18:04:29 +08:00
gemini crypto: sl3516 - Remove unused declaration sl3516_ce_enqueue() 2024-08-30 18:22:31 +08:00
hisilicon crypto: hisilicon/sec - Remove trailing space after \n newline 2024-09-06 14:50:46 +08:00
inside-secure move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
intel crypto: qat - Remove trailing space after \n newline 2024-09-06 14:50:46 +08:00
marvell crypto: octeontx* - Select CRYPTO_AUTHENC 2024-09-06 14:50:46 +08:00
nx crypto: nx - Use static_assert() to check struct sizes 2024-08-17 13:55:50 +08:00
qce crypto: qce - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
rockchip move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
starfive crypto: starfive - Fix nent assignment in rsa dec 2024-07-06 10:20:00 +10:00
stm32 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tegra crypto: tegra - Remove an incorrect iommu_fwspec_free() call in tegra_se_remove() 2024-05-31 17:34:56 +08:00
virtio virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00
xilinx crypto: xilinx - add missing MODULE_DESCRIPTION() macro 2024-06-07 19:47:59 +08:00
atmel-aes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-aes.c crypto: atmel - use devm_clk_get_prepared() helpers 2024-08-30 18:23:43 +08:00
atmel-authenc.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
atmel-ecc.c crypto: drivers - Explicitly include correct DT includes 2023-08-23 11:04:23 +08:00
atmel-i2c.c crypto: atmel-sha204a - add reading from otp zone 2024-05-10 17:15:25 +08:00
atmel-i2c.h crypto: atmel-sha204a - add reading from otp zone 2024-05-10 17:15:25 +08:00
atmel-sha-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-sha.c crypto: atmel - use devm_clk_get_prepared() helpers 2024-08-30 18:23:43 +08:00
atmel-sha204a.c crypto: atmel-sha204a - add missing MODULE_DESCRIPTION() macro 2024-06-07 19:47:58 +08:00
atmel-tdes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-tdes.c crypto: atmel - Remove cfb and ofb 2023-12-08 11:59:45 +08:00
exynos-rng.c crypto: exynos-rng - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
geode-aes.c crypto: geode - use DEFINE_SPINLOCK() for spinlock 2021-04-16 21:16:31 +10:00
geode-aes.h crypto: geode-aes - convert to skcipher API and make thread-safe 2019-10-23 19:46:56 +11:00
hifn_795x.c crypto: hifn_795x - Remove unused hifn_*_command structs 2024-05-31 17:34:56 +08:00
img-hash.c crypto: img-hash - use devm_clk_get_enabled() helpers 2024-08-30 18:23:43 +08:00
Kconfig s390/pkey: Add new pkey handler module pkey-uv 2024-10-29 11:17:18 +01:00
Makefile Revert "crypto: spacc - Add SPAcc Skcipher support" 2024-09-04 07:09:51 +08:00
mxs-dcp.c crypto: mxs-dcp - Ensure payload is zero when using key slot 2024-07-13 11:50:28 +12:00
n2_asm.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
n2_core.c crypto: n2 - Set err to EINVAL if snprintf fails for hmac 2024-09-13 18:26:53 +08:00
n2_core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
omap-aes-gcm.c crypto: omap - Use new crypto_engine_op interface 2023-08-18 17:01:11 +08:00
omap-aes.c crypto: omap-aes - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
omap-aes.h crypto: omap - Use new crypto_engine_op interface 2023-08-18 17:01:11 +08:00
omap-crypto.c crypto: omap - Avoid redundant copy when using truncated sg list 2021-08-21 15:44:53 +08:00
omap-crypto.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
omap-des.c crypto: omap-des - Convert to platform remove callback returning void 2023-10-27 18:04:26 +08:00
omap-sham.c crypto: omap-sham - stop setting alignmask for ahashes 2023-10-27 18:04:29 +08:00
padlock-aes.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
padlock-sha.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
qcom-rng.c crypto: qcom-rng - rename *_of_data to *_match_data 2024-09-13 18:26:52 +08:00
s5p-sss.c crypto: s5p-sss - remove unnecessary alignmask for ahashes 2023-10-27 18:04:28 +08:00
sa2ul.c crypto: sa2ul - add missing MODULE_DESCRIPTION() macro 2024-06-07 19:47:58 +08:00
sa2ul.h crypto: sa2ul - change unsafe data size limit to 255 bytes 2023-05-19 16:45:43 +08:00
sahara.c crypto: sahara - use 'time_left' variable with wait_for_completion_timeout() 2024-05-10 17:15:25 +08:00
talitos.c crypto: talitos - stop using crypto_ahash::init 2023-10-27 18:04:29 +08:00
talitos.h crypto: talitos - Replace zero-length arrays with DECLARE_FLEX_ARRAY() helper 2022-10-21 19:05:24 +08:00