From be794c1c9d45fe6d4b60c4e92366d9813a227efa Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Fri, 16 Dec 2022 22:52:13 +0000 Subject: [PATCH] ANDROID: update "dm: add support for passing through derive_sw_secret" Update this code to be compatible with the updated version of "block: add basic hardware-wrapped key support". Bug: 160883801 Change-Id: Ic6991ad163035870ace3cd468f53b21a824c5359 Signed-off-by: Eric Biggers --- drivers/md/dm-table.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 77c7bdc5409b..e91afd6932e5 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -1252,9 +1252,9 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile, } struct dm_derive_sw_secret_args { - const u8 *wrapped_key; - unsigned int wrapped_key_size; - u8 *secret; + const u8 *eph_key; + size_t eph_key_size; + u8 *sw_secret; int err; }; @@ -1263,15 +1263,14 @@ static int dm_derive_sw_secret_callback(struct dm_target *ti, sector_t len, void *data) { struct dm_derive_sw_secret_args *args = data; - struct request_queue *q = bdev_get_queue(dev->bdev); if (!args->err) return 0; - args->err = blk_crypto_derive_sw_secret(q->crypto_profile, - args->wrapped_key, - args->wrapped_key_size, - args->secret); + args->err = blk_crypto_derive_sw_secret(dev->bdev, + args->eph_key, + args->eph_key_size, + args->sw_secret); /* Try another device in case this fails. */ return 0; } @@ -1282,16 +1281,15 @@ static int dm_derive_sw_secret_callback(struct dm_target *ti, * first device that supports derive_sw_secret(). */ static int dm_derive_sw_secret(struct blk_crypto_profile *profile, - const u8 *wrapped_key, - unsigned int wrapped_key_size, - u8 secret[BLK_CRYPTO_SW_SECRET_SIZE]) + const u8 *eph_key, size_t eph_key_size, + u8 sw_secret[BLK_CRYPTO_SW_SECRET_SIZE]) { struct mapped_device *md = container_of(profile, struct dm_crypto_profile, profile)->md; struct dm_derive_sw_secret_args args = { - .wrapped_key = wrapped_key, - .wrapped_key_size = wrapped_key_size, - .secret = secret, + .eph_key = eph_key, + .eph_key_size = eph_key_size, + .sw_secret = sw_secret, .err = -EOPNOTSUPP, }; struct dm_table *t;