[PATCH 0/2] crypto: caam - add tagged keys functionality and tk transformations for skcipher

From: Iuliana Prodan
Date: Sun Jul 12 2020 - 18:05:58 EST


Tagged keys are keys that contain metadata indicating what
they are and how to handle them using the new added tag_object API.
A tag object represents the metadata (or simply a header/configuration)
and the actual data (e.g. black key) obtained from hardware.
Patch #2 adds support, for tagged keys, to skcipher algorithms by
adding new transformations, with tk prefix to distinguish
between plaintext and tagged keys.

The tk_ transformations can be used directly by their name:
struct sockaddr_alg sa = {
.salg_family = AF_ALG,
.salg_type = "skcipher", /* this selects the symmetric cipher /
.salg_name = "tk(cbc(aes))" / this is the cipher name */
};
or for dm-crypt, e.g. using dmsetup:
dmsetup -v create encrypted --table "0 $(blockdev --getsz /dev/mmcblk2p10)
crypt capi:tk(cbc(aes))-plain :32:logon:seckey 0 /dev/mmcblk2p10 0 1
sector_size:512".

tk_ transformations will know how to handle tagged keys, by loading the
proper settings for KEY command.

Iuliana Prodan (2):
crypto: caam - add tag object functionality
crypto: caam - support tagged keys for skcipher algorithms

drivers/crypto/caam/Kconfig | 9 +++
drivers/crypto/caam/Makefile | 1 +
drivers/crypto/caam/caamalg.c | 107 ++++++++++++++++++++++++++++--
drivers/crypto/caam/caamalg_desc.c | 28 ++++++--
drivers/crypto/caam/desc.h | 4 +-
drivers/crypto/caam/desc_constr.h | 4 ++
drivers/crypto/caam/tag_object.c | 129 +++++++++++++++++++++++++++++++++++++
drivers/crypto/caam/tag_object.h | 99 ++++++++++++++++++++++++++++
8 files changed, 372 insertions(+), 9 deletions(-)
create mode 100644 drivers/crypto/caam/tag_object.c
create mode 100644 drivers/crypto/caam/tag_object.h

--
2.1.0