From ea35573c82883b96e85576ee56be5b8e5267efb0 Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Wed, 30 Mar 2022 13:40:53 +0200 Subject: [PATCH] Ask user for confirmation before resuming reencryption. The prompt is not showed in batch mode or when user explicitly asks for reencryption resume via --resume-only. --- src/utils_reencrypt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/utils_reencrypt.c b/src/utils_reencrypt.c index 54f74003..4566ff07 100644 --- a/src/utils_reencrypt.c +++ b/src/utils_reencrypt.c @@ -141,6 +141,7 @@ static int reencrypt_get_active_name(struct crypt_device *cd, const char *data_d static int reencrypt_luks2_load(struct crypt_device *cd, const char *data_device) { + char *msg; crypt_reencrypt_info ri; int r; size_t passwordLen; @@ -182,6 +183,18 @@ static int reencrypt_luks2_load(struct crypt_device *cd, const char *data_device return -EINVAL; } + if (!ARG_SET(OPT_BATCH_MODE_ID) && !ARG_SET(OPT_RESUME_ONLY_ID)) { + r = asprintf(&msg, _("Device %s is already in LUKS2 reencryption. " + "Do you wish to resume previously initialised operation?"), + crypt_get_metadata_device_name(cd) ?: data_device); + if (r < 0) + return -ENOMEM; + r = yesDialog(msg, _("Operation aborted.\n")) ? 0 : -EINVAL; + free(msg); + if (r < 0) + return r; + } + r = tools_get_key(NULL, &password, &passwordLen, ARG_UINT64(OPT_KEYFILE_OFFSET_ID), ARG_UINT32(OPT_KEYFILE_SIZE_ID), ARG_STR(OPT_KEY_FILE_ID), ARG_UINT32(OPT_TIMEOUT_ID), verify_passphrase(0), 0, cd);