[PATCH v2 0/3] New s390 specific protected key hmac

Harald Freudenberger
2024-11-05T13:58:41Z

Add support for protected key hmac ("phmac") for s390 arch.

With the latest machine generation there is now support for
protected key (that is a key wrapped by a master key stored
in firmware) hmac for sha2 (sha224, sha256, sha384 and sha512)
for the s390 specific CPACF instruction kmac.

This patch adds support via 4 new shashes registered as
phmac(sha224), phmac(sha256), phmac(sha384) and phmac(sha512).

Please note that as of now, there is no selftest enabled for
these shashes, but the implementation has been tested with
testcases via AF_ALG interface. However, there may come an
improvement soon to use the available clear key hmac selftests.

Changelog:
v1: Initial version
v2: Increase HASH_MAX_DESCSIZE generic (not just for arch s390).
Fix one finding to use kmemdup instead of kmalloc/memcpy
from test robot. Remove unneeded cpacf subfunctions checks.
Simplify clone_tfm() function.
Rebased to s390/features.

Holger Dengler (3):
crypto: api - Adjust HASH_MAX_DESCSIZE for s390-phmac context
s390/crypto: Add protected key hmac subfunctions for KMAC
s390/crypto: New s390 specific shash phmac

arch/s390/configs/debug_defconfig | 1 +
arch/s390/configs/defconfig | 1 +
arch/s390/crypto/Makefile | 1 +
arch/s390/crypto/phmac_s390.c | 468 ++++++++++++++++++++++++++++++
arch/s390/include/asm/cpacf.h | 4 +
drivers/crypto/Kconfig | 12 +
include/crypto/hash.h | 5 +-
7 files changed, 489 insertions(+), 3 deletions(-)
create mode 100644 arch/s390/crypto/phmac_s390.c

base-commit: 8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b
--
2.43.0