From b7a07efdcf386b44f5499b0195b3a42e15048784 Mon Sep 17 00:00:00 2001 From: Klaus Zipfel Date: Wed, 26 May 2021 09:41:08 +0200 Subject: [PATCH] Fixing incorrect offsets for data/IV with TCRYPT system-encryption with a detached header Related: #587 --- lib/tcrypt/tcrypt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tcrypt/tcrypt.c b/lib/tcrypt/tcrypt.c index 7d1a80ba..4be73f2f 100644 --- a/lib/tcrypt/tcrypt.c +++ b/lib/tcrypt/tcrypt.c @@ -1033,7 +1033,7 @@ uint64_t TCRYPT_get_data_offset(struct crypt_device *cd, /* No real header loaded, initialized by active device, use default mk_offset */ } else if (params->flags & CRYPT_TCRYPT_SYSTEM_HEADER) { /* Mapping through whole device, not partition! */ - if (crypt_dev_is_partition(device_path(crypt_metadata_device(cd)))) + if (crypt_dev_is_partition(device_path(crypt_data_device(cd)))) return 0; } else if (params->mode && !strncmp(params->mode, "xts", 3)) { if (hdr->d.version < 3) @@ -1071,7 +1071,7 @@ uint64_t TCRYPT_get_iv_offset(struct crypt_device *cd, iv_offset = hdr->d.mk_offset / SECTOR_SIZE; if (params->flags & CRYPT_TCRYPT_SYSTEM_HEADER) - iv_offset += crypt_dev_partition_offset(device_path(crypt_metadata_device(cd))); + iv_offset += crypt_dev_partition_offset(device_path(crypt_data_device(cd))); return iv_offset; }