mirror of
https://git.proxmox.com/git/grub2
synced 2025-07-25 12:58:08 +00:00
luks2: grub_cryptodisk_t->total_sectors is the max number of device native sectors
We need to convert the sectors from the size of the underlying device to the cryptodisk sector size; segment.size is in bytes which need to be converted to cryptodisk sectors as well. Also, removed an empty statement. Signed-off-by: Glenn Washburn <development@efficientek.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
b34cb38795
commit
7ed69b1d1c
@ -429,7 +429,7 @@ luks2_decrypt_key (grub_uint8_t *out_key,
|
||||
grub_uint8_t salt[GRUB_CRYPTODISK_MAX_KEYLEN];
|
||||
grub_uint8_t *split_key = NULL;
|
||||
grub_size_t saltlen = sizeof (salt);
|
||||
char cipher[32], *p;;
|
||||
char cipher[32], *p;
|
||||
const gcry_md_spec_t *hash;
|
||||
gcry_err_code_t gcry_ret;
|
||||
grub_err_t ret;
|
||||
@ -615,9 +615,10 @@ luks2_recover_key (grub_disk_t source,
|
||||
crypt->log_sector_size = sizeof (unsigned int) * 8
|
||||
- __builtin_clz ((unsigned int) segment.sector_size) - 1;
|
||||
if (grub_strcmp (segment.size, "dynamic") == 0)
|
||||
crypt->total_sectors = grub_disk_native_sectors (source) - crypt->offset_sectors;
|
||||
crypt->total_sectors = (grub_disk_native_sectors (source) >> (crypt->log_sector_size - source->log_sector_size))
|
||||
- crypt->offset_sectors;
|
||||
else
|
||||
crypt->total_sectors = grub_strtoull (segment.size, NULL, 10);
|
||||
crypt->total_sectors = grub_strtoull (segment.size, NULL, 10) >> crypt->log_sector_size;
|
||||
|
||||
ret = luks2_decrypt_key (candidate_key, source, crypt, &keyslot,
|
||||
(const grub_uint8_t *) passphrase, grub_strlen (passphrase));
|
||||
|
Loading…
Reference in New Issue
Block a user