mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
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 <ebiggers@google.com>
This commit is contained in:
committed by
Treehugger Robot
parent
139dbaa221
commit
be794c1c9d
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user