From 7db83f8fb31d932a75ee37a5ccbe69005f1f5961 Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Tue, 29 Oct 2024 16:45:08 +0100 Subject: [PATCH] Simplify fvault activation by volume key. --- lib/fvault2/fvault2.c | 18 +++--------------- lib/fvault2/fvault2.h | 3 +-- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/lib/fvault2/fvault2.c b/lib/fvault2/fvault2.c index d3e2050c..cdd3d1b4 100644 --- a/lib/fvault2/fvault2.c +++ b/lib/fvault2/fvault2.c @@ -1022,25 +1022,13 @@ int FVAULT2_activate_by_passphrase( int FVAULT2_activate_by_volume_key( struct crypt_device *cd, const char *name, - const char *key, - size_t key_size, + struct volume_key *vk, const struct fvault2_params *params, uint32_t flags) { - int r = 0; - struct volume_key *vol_key = NULL; + assert(vk && vk->keylength == FVAULT2_XTS_KEY_SIZE); - if (key_size != FVAULT2_XTS_KEY_SIZE) - return -EINVAL; - - vol_key = crypt_alloc_volume_key(FVAULT2_XTS_KEY_SIZE, key); - if (vol_key == NULL) - return -ENOMEM; - - r = _activate(cd, name, vol_key, params, flags); - - crypt_free_volume_key(vol_key); - return r; + return _activate(cd, name, vk, params, flags); } size_t FVAULT2_volume_key_size(void) diff --git a/lib/fvault2/fvault2.h b/lib/fvault2/fvault2.h index b664028a..d8025987 100644 --- a/lib/fvault2/fvault2.h +++ b/lib/fvault2/fvault2.h @@ -59,8 +59,7 @@ int FVAULT2_activate_by_passphrase( int FVAULT2_activate_by_volume_key( struct crypt_device *cd, const char *name, - const char *key, - size_t key_size, + struct volume_key *vk, const struct fvault2_params *params, uint32_t flags);