Re: [PATCH] cryptodisk: Incorrect calculation of sector in grub_cryptodisk_read/write.

2020-08-26 Thread Glenn Washburn
On Wed, 26 Aug 2020 18:44:35 -0500 Glenn Washburn wrote: > Here dev is a grub_cryptodisk_t and dev->offset is offset in sectors > of size native to the cryptodisk device. The function grub_disk_read > expects that the given start sector is in the native grub sector > size, so dev->offset must be

[PATCH] cryptodisk: Incorrect calculation of sector in grub_cryptodisk_read/write.

2020-08-26 Thread Glenn Washburn
Here dev is a grub_cryptodisk_t and dev->offset is offset in sectors of size native to the cryptodisk device. The function grub_disk_read expects that the given start sector is in the native grub sector size, so dev->offset must be converted as well. Create function grub_disk_from_native_sector to

Re: [PATCH v2 0/9] Cryptodisk fixes for v2.06

2020-08-26 Thread Glenn Washburn
On Wed, 26 Aug 2020 10:13:18 +0200 Patrick Steinhardt wrote: > I didn't yet get your test series to work, Glenn. I'll try again on > another day as I'm not on top of things today. Meanwhile, could you > please give it a go with this updated patch series? I've tested with this patch series and al

Re: Usb device detection in grub

2020-08-26 Thread Arindam Khan
Hi, Noted. But whenever I am running "insmod ohci" or other host controller (ehci or uhci) in grub command line and then "usb", I get always "(hd0, mdos1) not found error" even for serial modem device. Please help. with regards, Arindam On Wed, Aug 26, 2020 at 1:27 AM Vladimir 'phcoder' Serbi

[PATCH v2 9/9] cryptodisk: Properly handle non-512 byte sized sectors

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn By default, dm-crypt internally uses an IV that corresponds to 512-byte sectors, even when a larger sector size is specified. What this means is that when using a larger sector size, the IV is incremented every sector. However, the amount the IV is incremented is the number o

[PATCH v2 8/9] cryptodisk: Fix cipher IV mode 'plain64' always being set as 'plain'

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn Signed-off-by: Glenn Washburn Reviewed-by: Patrick Steinhardt --- grub-core/disk/cryptodisk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 1eea4161f..0b63b7d96 100644 --- a/grub-core

[PATCH v2 7/9] cryptodisk: Fix incorrect calculation of start sector

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn Here dev is a grub_cryptodisk_t and dev->offset is offset in sectors of size native to the cryptodisk device. The sector is correctly transformed into native grub sector size, but then added to dev->offset which is not transformed. It would be nice if the type system would he

[PATCH v2 4/9] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn The total_length field is named confusingly because length usually refers to bytes, whereas in this case its really the total number of sectors on the device. Also counter-intuitively, grub_disk_get_size returns the total number of device native sectors sectors. We need to co

[PATCH v2 5/9] luks2: Improve error reporting when decrypting/verifying key

2020-08-26 Thread Patrick Steinhardt
While we already set up error messages in both `luks2_verify_key()` and `luks2_decrypt_key()`, we do not ever print them. This makes it really hard to discover why a given key actually failed to decrypt a disk. Improve this by including the error message in the user-visible output. Signed-off-by:

[PATCH v2 6/9] cryptodisk: Unregister cryptomount command when removing module

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn Signed-off-by: Glenn Washburn Reviewed-by: Patrick Steinhardt --- grub-core/disk/cryptodisk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 1897acc4b..b2c6e9a7d 100644 --- a/grub-core/disk/cryptodisk.c +

[PATCH v2 2/9] luks: Fix out-of-bounds copy of UUID

2020-08-26 Thread Patrick Steinhardt
When configuring a LUKS disk, we copy over the UUID from the LUKS header into the new `grub_cryptodisk_t` structure via `grub_memcpy ()`. As size we mistakenly use the size of the `grub_cryptodisk_t` UUID field, which is guaranteed to be strictly bigger than the LUKS UUID field we're copying. As a

[PATCH v2 3/9] luks2: Fix use of incorrect index and some error messages

2020-08-26 Thread Patrick Steinhardt
From: Glenn Washburn Signed-off-by: Glenn Washburn Reviewed-by: Patrick Steinhardt --- grub-core/disk/luks2.c | 35 ++- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c index e3ff7c83d..c4c6ac90c 100

[PATCH v2 1/9] json: Remove invalid typedef redefinition

2020-08-26 Thread Patrick Steinhardt
The C standard does not allow for typedef redefinitions, even if they map to the same underlying type. In order to avoid including the "jsmn.h" in "json.h" and thus exposing jsmn's internals, we have exactly such a forward-declaring typedef in "json.h". If enforcing the GNU99 C standard, clang may

[PATCH v2 0/9] Cryptodisk fixes for v2.06

2020-08-26 Thread Patrick Steinhardt
Hi, this is the second version of cryptodisk fixes which I deem to be important for the upcoming v2.06 release. Changes: - Patch 2: we're now zeroing out the UUID variable to avoid copying over uninitialized bytes. Thanks for spotting, Dennis! - Patch 3: I've replaced it w

Re: [PATCH 2/9] luks: Fix out-of-bounds copy of UUID

2020-08-26 Thread Patrick Steinhardt
On Sun, Aug 23, 2020 at 11:34:51PM +0200, Denis 'GNUtoo' Carikli wrote: > On Sun, 23 Aug 2020 12:59:57 +0200 > Patrick Steinhardt wrote: > > > When configuring a LUKS disk, we copy over the UUID from the LUKS > > header into the new `grub_cryptodisk_t` structure via `grub_memcpy > > ()`. As size