From: Patrick Steinhardt <ps@pks.im>
To: Glenn Washburn <development@efficientek.com>
Cc: grub-devel@gnu.org, Daniel Kiper <dkiper@net-space.pl>
Subject: Re: [PATCH v7 12/17] luks2: Better error handling when setting up the cryptodisk
Date: Sun, 6 Dec 2020 20:35:13 +0100 [thread overview]
Message-ID: <X80ycf3C08/Hr0pM@ncase> (raw)
In-Reply-To: <c9db343e83a8b8d3f0f86959881246be1687b931.1607098915.git.development@efficientek.com>
[-- Attachment #1: Type: text/plain, Size: 10182 bytes --]
On Fri, Dec 04, 2020 at 10:43:41AM -0600, Glenn Washburn wrote:
> First, check to make sure that source disk has a known size. If not, print
> debug message and return error. There are 4 cases where
> GRUB_DISK_SIZE_UNKNOWN is set (biosdisk, obdisk, ofdisk, and uboot), and in
> all those cases processing continues. So this is probably a bit
> conservative. However, 3 of the cases seem pathological, and the other,
> biosdisk, happens when booting from a cd. Since I doubt booting from a LUKS2
> volume on a cd is a big use case, we'll error until someone complains.
>
> Do some sanity checking on data coming from the luks header. If segment.size
> is "dynamic",
Nit: there's something missing here.
> Check for errors from grub_strtoull when converting segment size from
> string. If a GRUB_ERR_BAD_NUMBER error was returned, then the string was
> not a valid parsable number, so skip the key. If GRUB_ERR_OUT_OF_RANGE was
> returned, then there was an overflow in converting to a 64-bit unsigned
> integer. So this could be a very large disk (perhaps large raid array).
> In this case, we want to continue to try to use this key so long as the
> source disk's size is greater than this segment size. Otherwise, this is
> an invalid segment, and continue on to the next key.
>
> Signed-off-by: Glenn Washburn <development@efficientek.com>
> ---
> grub-core/disk/luks2.c | 98 +++++++++++++++++++++++++++++++++++++-----
> include/grub/disk.h | 17 ++++++++
> 2 files changed, 105 insertions(+), 10 deletions(-)
>
> diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c
> index de2e70796..1bb3a333d 100644
> --- a/grub-core/disk/luks2.c
> +++ b/grub-core/disk/luks2.c
> @@ -290,7 +290,7 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_luks2_digest_t *d, grub_luks2_s
> break;
> }
> if (i == size)
> - return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for keyslot \"%"PRIuGRUB_UINT64_T"\"", k->slot_key);
> + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No digest for keyslot \"%"PRIuGRUB_UINT64_T"\"", k->json_slot_key);
>
> /* Get segment that matches the digest. */
> if (grub_json_getvalue (&segments, root, "segments") ||
> @@ -308,7 +308,7 @@ luks2_get_keyslot (grub_luks2_keyslot_t *k, grub_luks2_digest_t *d, grub_luks2_s
> break;
> }
> if (i == size)
> - return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for digest \"%"PRIuGRUB_UINT64_T"\"", d->slot_key);
> + return grub_error (GRUB_ERR_FILE_NOT_FOUND, "No segment for digest \"%"PRIuGRUB_UINT64_T"\"", d->json_slot_key);
>
> return GRUB_ERR_NONE;
> }
> @@ -600,37 +600,115 @@ luks2_recover_key (grub_disk_t source,
> goto err;
> }
>
> + if (source->total_sectors == GRUB_DISK_SIZE_UNKNOWN)
> + {
> + /* FIXME: Allow use of source disk, and maybe cause errors in read. */
> + grub_dprintf ("luks2", "Source disk %s has an unknown size, "
> + "conservatively returning error\n", source->name);
> + ret = grub_error (GRUB_ERR_BUG, "Unknown size of luks2 source device");
> + goto err;
> + }
> +
> /* Try all keyslot */
> for (i = 0; i < size; i++)
> {
> + typeof(source->total_sectors) max_crypt_sectors = 0;
Please bear with me if this has been discussed in a previous round, but
why exactly do we cast `max_crypt_sectors` to the type of
`source->total_sectors`? And isn't the variable always set anyway in
case the keyslot has a non-zero priority?
Patrick
> +
> + grub_errno = GRUB_ERR_NONE;
> ret = luks2_get_keyslot (&keyslot, &digest, &segment, json, i);
> if (ret)
> goto err;
> + if (grub_errno != GRUB_ERR_NONE)
> + grub_dprintf ("luks2", "Ignoring unhandled error %d from luks2_get_keyslot\n", grub_errno);
>
> if (keyslot.priority == 0)
> {
> - grub_dprintf ("luks2", "Ignoring keyslot \"%"PRIuGRUB_UINT64_T"\" due to priority\n", keyslot.slot_key);
> + grub_dprintf ("luks2", "Ignoring keyslot \"%"PRIuGRUB_UINT64_T"\" due to priority\n", keyslot.json_slot_key);
> continue;
> }
>
> - grub_dprintf ("luks2", "Trying keyslot \"%"PRIuGRUB_UINT64_T"\"\n", keyslot.slot_key);
> + grub_dprintf ("luks2", "Trying keyslot \"%"PRIuGRUB_UINT64_T"\"\n", keyslot.json_slot_key);
>
> /* Set up disk according to keyslot's segment. */
> crypt->offset_sectors = grub_divmod64 (segment.offset, segment.sector_size, NULL);
> crypt->log_sector_size = sizeof (unsigned int) * 8
> - __builtin_clz ((unsigned int) segment.sector_size) - 1;
> + /* Set to the source disk size, which is the maximum we allow. */
> + max_crypt_sectors = grub_disk_convert_sector(source,
> + source->total_sectors,
> + crypt->log_sector_size);
> +
> + if (max_crypt_sectors < crypt->offset_sectors)
> + {
> + grub_dprintf ("luks2", "Segment \"%"PRIuGRUB_UINT64_T"\" has offset"
> + " %"PRIuGRUB_UINT64_T" which is greater than"
> + " source disk size %"PRIuGRUB_UINT64_T","
> + " skipping\n",
> + segment.json_slot_key, crypt->offset_sectors,
> + max_crypt_sectors);
> + continue;
> + }
> +
> if (grub_strcmp (segment.size, "dynamic") == 0)
> - crypt->total_sectors = (grub_disk_get_size (source) >> (crypt->log_sector_size - source->log_sector_size))
> - - crypt->offset_sectors;
> + crypt->total_sectors = max_crypt_sectors - crypt->offset_sectors;
> else
> - crypt->total_sectors = grub_strtoull (segment.size, NULL, 10) >> crypt->log_sector_size;
> + {
> + grub_errno = GRUB_ERR_NONE;
> + /* Convert segment.size to sectors, rounding up to nearest sector */
> + crypt->total_sectors = grub_strtoull (segment.size, NULL, 10);
> + crypt->total_sectors = ALIGN_UP (crypt->total_sectors,
> + 1 << crypt->log_sector_size);
> + crypt->total_sectors >>= crypt->log_sector_size;
> +
> + if (grub_errno == GRUB_ERR_NONE)
> + ;
> + else if (grub_errno == GRUB_ERR_BAD_NUMBER)
> + {
> + grub_dprintf ("luks2", "Segment \"%"PRIuGRUB_UINT64_T"\" size"
> + " \"%s\" is not a parsable number\n",
> + segment.json_slot_key, segment.size);
> + continue;
> + }
> + else if (grub_errno == GRUB_ERR_OUT_OF_RANGE)
> + {
> + /*
> + * There was an overflow in parsing segment.size, so disk must
> + * be very large or the string is incorrect.
> + */
> + grub_dprintf ("luks2", "Segment \"%"PRIuGRUB_UINT64_T"\" size"
> + " %s overflowed 64-bit unsigned integer,"
> + " the end of the crypto device will be"
> + " inaccessible\n",
> + segment.json_slot_key, segment.size);
> + if (crypt->total_sectors > max_crypt_sectors)
> + crypt->total_sectors = max_crypt_sectors;
> + }
> + }
> +
> + if (crypt->total_sectors == 0)
> + {
> + grub_dprintf ("luks2", "Segment \"%"PRIuGRUB_UINT64_T"\" has zero"
> + " sectors, skipping\n",
> + segment.json_slot_key);
> + continue;
> + }
> + else if (max_crypt_sectors < (crypt->offset_sectors + crypt->total_sectors))
> + {
> + grub_dprintf ("luks2", "Segment \"%"PRIuGRUB_UINT64_T"\" has last"
> + " data position greater than source disk size,"
> + " the end of the crypto device will be"
> + " inaccessible\n",
> + segment.json_slot_key);
> + /* Allow decryption up to the end of the source disk. */
> + crypt->total_sectors = max_crypt_sectors - crypt->offset_sectors;
> + }
>
> ret = luks2_decrypt_key (candidate_key, source, crypt, &keyslot,
> (const grub_uint8_t *) passphrase, grub_strlen (passphrase));
> if (ret)
> {
> grub_dprintf ("luks2", "Decryption with keyslot \"%"PRIuGRUB_UINT64_T"\" failed: %s\n",
> - keyslot.slot_key, grub_errmsg);
> + keyslot.json_slot_key, grub_errmsg);
> continue;
> }
>
> @@ -638,7 +716,7 @@ luks2_recover_key (grub_disk_t source,
> if (ret)
> {
> grub_dprintf ("luks2", "Could not open keyslot \"%"PRIuGRUB_UINT64_T"\": %s\n",
> - keyslot.slot_key, grub_errmsg);
> + keyslot.json_slot_key, grub_errmsg);
> continue;
> }
>
> @@ -646,7 +724,7 @@ luks2_recover_key (grub_disk_t source,
> * TRANSLATORS: It's a cryptographic key slot: one element of an array
> * where each element is either empty or holds a key.
> */
> - grub_printf_ (N_("Slot \"%"PRIuGRUB_UINT64_T"\" opened\n"), keyslot.slot_key);
> + grub_printf_ (N_("Slot \"%"PRIuGRUB_UINT64_T"\" opened\n"), keyslot.json_slot_key);
>
> candidate_key_len = keyslot.key_size;
> break;
> diff --git a/include/grub/disk.h b/include/grub/disk.h
> index 0fb727d3d..f9227f285 100644
> --- a/include/grub/disk.h
> +++ b/include/grub/disk.h
> @@ -27,6 +27,8 @@
> #include <grub/device.h>
> /* For NULL. */
> #include <grub/mm.h>
> +/* For ALIGN_UP. */
> +#include <grub/misc.h>
>
> /* These are used to set a device id. When you add a new disk device,
> you must define a new id for it here. */
> @@ -174,6 +176,21 @@ typedef struct grub_disk_memberlist *grub_disk_memberlist_t;
> /* Return value of grub_disk_native_sectors() in case disk size is unknown. */
> #define GRUB_DISK_SIZE_UNKNOWN 0xffffffffffffffffULL
>
> +/* Convert sector number from disk sized sectors to a log-size sized sector. */
> +static inline grub_disk_addr_t
> +grub_disk_convert_sector (grub_disk_t disk,
> + grub_disk_addr_t sector,
> + grub_size_t log_sector_size)
> +{
> + if (disk->log_sector_size < log_sector_size)
> + {
> + sector = ALIGN_UP (sector, 1 << (log_sector_size / disk->log_sector_size));
> + return sector >> (log_sector_size - disk->log_sector_size);
> + }
> + else
> + return sector << (disk->log_sector_size - log_sector_size);
> +}
> +
> /* Convert to GRUB native disk sized sector from disk sized sector. */
> static inline grub_disk_addr_t
> grub_disk_from_native_sector (grub_disk_t disk, grub_disk_addr_t sector)
> --
> 2.27.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-12-06 19:35 UTC|newest]
Thread overview: 289+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-03 21:45 [PATCH 00/10] Cryptodisk fixes for v2.06 redux Glenn Washburn
2020-10-03 21:45 ` [PATCH 01/10] luks2: Fix use of incorrect index and some grub_error() messages Glenn Washburn
2020-10-03 21:45 ` [PATCH 02/10] luks2: Improve readability in luks2_get_keyslot Glenn Washburn
2020-10-03 21:45 ` [PATCH 03/10] luks2: Use more intuitive keyslot key instead of index when naming keyslot Glenn Washburn
2020-10-03 21:45 ` [PATCH 04/10] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors Glenn Washburn
2020-10-03 21:45 ` [PATCH 05/10] cryptodisk: Fix cipher IV mode 'plain64' always being set as 'plain' Glenn Washburn
2020-10-03 21:45 ` [PATCH 06/10] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-10-03 21:46 ` [PATCH 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-10-03 21:46 ` [PATCH 08/10] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors Glenn Washburn
2020-10-03 21:46 ` [PATCH 09/10] cryptodisk: Rename offset in grub_cryptodisk_t to offset_sectors Glenn Washburn
2020-10-03 21:46 ` [PATCH 10/10] luks2: Rename source disk variabled named 'disk' to 'source' as in luks.c Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 00/10] Cryptodisk fixes for v2.06 redux Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 01/10] luks2: Fix use of incorrect index and some grub_error() messages Glenn Washburn
2020-10-09 9:38 ` Patrick Steinhardt
2020-10-03 22:55 ` [PATCH v2 02/10] luks2: Improve readability in luks2_get_keyslot Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 03/10] luks2: Use more intuitive keyslot key instead of index when naming keyslot Glenn Washburn
2020-10-09 9:44 ` Patrick Steinhardt
2020-10-18 19:05 ` Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 04/10] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors Glenn Washburn
2020-10-09 9:45 ` Patrick Steinhardt
2020-10-03 22:55 ` [PATCH v2 05/10] cryptodisk: Fix cipher IV mode 'plain64' always being set as 'plain' Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 06/10] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-10-09 9:50 ` Patrick Steinhardt
2020-10-18 18:38 ` Glenn Washburn
2020-10-03 22:55 ` [PATCH v2 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-10-18 18:23 ` Glenn Washburn
2020-10-19 11:27 ` Daniel Kiper
2020-10-03 22:55 ` [PATCH v2 08/10] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors Glenn Washburn
2020-10-09 9:55 ` Patrick Steinhardt
2020-10-03 22:55 ` [PATCH v2 09/10] cryptodisk: Rename offset in grub_cryptodisk_t to offset_sectors Glenn Washburn
2020-10-09 9:56 ` Patrick Steinhardt
2020-10-03 22:55 ` [PATCH v2 10/10] luks2: Rename source disk variabled named 'disk' to 'source' as in luks.c Glenn Washburn
2020-10-09 10:00 ` Patrick Steinhardt
2020-10-19 16:27 ` Glenn Washburn
2020-10-23 17:46 ` Patrick Steinhardt
2020-10-09 10:01 ` [PATCH v2 00/10] Cryptodisk fixes for v2.06 redux Patrick Steinhardt
2020-10-19 23:09 ` [PATCH v3 " Glenn Washburn
2020-10-19 23:09 ` [PATCH v3 01/10] luks2: Fix use of incorrect index and some grub_error() messages Glenn Washburn
2020-10-23 12:08 ` Daniel Kiper
2020-10-23 17:52 ` Patrick Steinhardt
2020-10-19 23:09 ` [PATCH v3 02/10] luks2: Improve readability in luks2_get_keyslot Glenn Washburn
2020-10-23 12:14 ` Daniel Kiper
2020-10-29 21:52 ` Glenn Washburn
2020-10-30 13:15 ` Daniel Kiper
2020-10-19 23:09 ` [PATCH v3 03/10] luks2: Use more intuitive keyslot key instead of index when naming keyslot Glenn Washburn
2020-10-23 17:55 ` Patrick Steinhardt
2020-10-19 23:09 ` [PATCH v3 04/10] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors Glenn Washburn
2020-10-23 18:03 ` Patrick Steinhardt
2020-10-19 23:09 ` [PATCH v3 05/10] cryptodisk: Fix cipher IV mode 'plain64' always being set as 'plain' Glenn Washburn
2020-10-23 12:21 ` Daniel Kiper
2020-10-19 23:09 ` [PATCH v3 06/10] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-10-23 18:09 ` Patrick Steinhardt
2020-10-26 15:43 ` Daniel Kiper
2020-10-30 20:47 ` Daniel Kiper
2020-11-06 19:08 ` Glenn Washburn
2020-11-19 14:25 ` Daniel Kiper
2020-11-20 5:18 ` Glenn Washburn
2020-11-20 14:17 ` Daniel Kiper
2020-11-20 23:28 ` Glenn Washburn
2020-10-19 23:09 ` [PATCH v3 07/10] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-10-23 18:01 ` Patrick Steinhardt
2020-10-26 18:25 ` Glenn Washburn
2020-10-28 18:16 ` Patrick Steinhardt
2020-10-27 18:03 ` Daniel Kiper
2020-10-29 21:51 ` Glenn Washburn
2020-10-30 13:11 ` Daniel Kiper
2020-10-19 23:09 ` [PATCH v3 08/10] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors Glenn Washburn
2020-10-23 17:58 ` Patrick Steinhardt
2020-10-27 18:06 ` Daniel Kiper
2020-10-19 23:09 ` [PATCH v3 09/10] cryptodisk: Rename offset in grub_cryptodisk_t to offset_sectors Glenn Washburn
2020-10-23 17:58 ` Patrick Steinhardt
2020-10-27 18:07 ` Daniel Kiper
2020-10-19 23:09 ` [PATCH v3 10/10] luks2: Rename source disk variabled named 'disk' to 'source' as in luks.c Glenn Washburn
2020-10-23 18:01 ` Patrick Steinhardt
2020-10-27 18:09 ` Daniel Kiper
2020-10-27 19:25 ` [PATCH v3 00/10] Cryptodisk fixes for v2.06 redux Daniel Kiper
2020-11-02 15:56 ` Daniel Kiper
2020-11-03 18:50 ` Glenn Washburn
2020-11-04 12:44 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 00/15] " Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 01/15] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors Glenn Washburn
2020-11-15 9:37 ` Patrick Steinhardt
2020-11-16 16:22 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 02/15] cryptodisk: Rename offset in grub_cryptodisk_t to offset_sectors Glenn Washburn
2020-11-15 9:38 ` Patrick Steinhardt
2020-11-16 16:25 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 03/15] luks2: Rename source disk variabled named 'disk' to 'source' as in luks.c Glenn Washburn
2020-11-15 9:39 ` Patrick Steinhardt
2020-11-16 16:27 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 04/15] types: Define GRUB_CHAR_BIT based on compiler macro instead of using literal Glenn Washburn
2020-11-15 9:42 ` Patrick Steinhardt
2020-11-16 16:31 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 05/15] luks2: Use correct index variable when looping in luks2_get_keyslot Glenn Washburn
2020-11-15 9:43 ` Patrick Steinhardt
2020-11-16 16:35 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 06/15] luks2: Rename variable i to keyslot_idx " Glenn Washburn
2020-11-15 9:43 ` Patrick Steinhardt
2020-11-16 16:37 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 07/15] luks2: Rename index variable j to i Glenn Washburn
2020-11-15 9:44 ` Patrick Steinhardt
2020-11-16 16:38 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 08/15] luks2: Split idx into three variables: keyslot_key, digest_key, segment_key Glenn Washburn
2020-11-15 9:48 ` Patrick Steinhardt
2020-11-17 13:47 ` Daniel Kiper
2020-11-20 8:39 ` Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 09/15] luks2: Improve error messages in luks2_get_keyslot Glenn Washburn
2020-11-15 9:52 ` Patrick Steinhardt
2020-11-17 13:51 ` Daniel Kiper
2020-11-07 4:44 ` [PATCH v4 10/15] luks2: Use more intuitive keyslot key instead of index when naming keyslot Glenn Washburn
2020-11-15 9:55 ` Patrick Steinhardt
2020-11-20 8:40 ` Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 11/15] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-11-15 9:59 ` Patrick Steinhardt
2020-11-20 8:41 ` Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 12/15] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors Glenn Washburn
2020-11-15 10:00 ` Patrick Steinhardt
2020-11-17 14:06 ` Daniel Kiper
2020-11-20 8:41 ` Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 13/15] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-11-15 10:07 ` Patrick Steinhardt
2020-11-20 8:42 ` Glenn Washburn
2020-11-22 12:30 ` Patrick Steinhardt
2020-11-07 4:44 ` [PATCH v4 14/15] luks2: Better error handling when setting up the cryptodisk Glenn Washburn
2020-11-15 10:13 ` Patrick Steinhardt
2020-11-20 8:44 ` Glenn Washburn
2020-11-17 14:26 ` Daniel Kiper
2020-11-20 8:44 ` Glenn Washburn
2020-11-20 20:24 ` Daniel Kiper
2020-11-20 23:58 ` Glenn Washburn
2020-11-07 4:44 ` [PATCH v4 15/15] luks2: Error check segment.sector_size Glenn Washburn
2020-11-15 10:42 ` Patrick Steinhardt
2020-11-17 14:28 ` Daniel Kiper
2020-11-17 14:34 ` [PATCH v4 00/15] Cryptodisk fixes for v2.06 redux Daniel Kiper
2020-11-23 5:23 ` [PATCH v5 00/11] " Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 01/11] luks2: Add slot_key member to struct grub_luks2_keyslot/segment/digest Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 02/11] luks: Use more intuitive slot key instead of index in user messages Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 03/11] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 04/11] luks2: grub_cryptodisk_t->total_sectors is the max number of device native sectors Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 05/11] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 06/11] luks2: Better error handling when setting up the cryptodisk Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 07/11] luks2: Error check segment.sector_size Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 08/11] whitespace: convert 8 spaces to tabs Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 09/11] mips: Enable __clzdi2() Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 10/11] misc: Add grub_log2ull macro for calculating log base 2 of 64-bit integers Glenn Washburn
2020-11-23 5:23 ` [PATCH v5 11/11] luks2: Use grub_log2ull to calculate log_sector_size and improve readability Glenn Washburn
2020-11-27 9:03 ` [PATCH v6 00/12] Cryptodisk fixes for v2.06 redux Glenn Washburn
2020-11-27 9:03 ` [PATCH v6 01/12] luks2: Add slot_key member to struct grub_luks2_keyslot/segment/digest Glenn Washburn
2020-12-02 17:01 ` Daniel Kiper
2020-12-03 7:23 ` Glenn Washburn
2020-12-03 12:35 ` Daniel Kiper
2020-12-03 16:46 ` Glenn Washburn
2020-12-04 13:23 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 02/12] luks2: Use more intuitive slot key instead of index in user messages Glenn Washburn
2020-12-02 17:23 ` Daniel Kiper
2020-12-03 7:24 ` Glenn Washburn
2020-12-03 12:39 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 03/12] luks2: Remove unused argument in grub_error Glenn Washburn
2020-12-02 17:24 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 04/12] cryptodisk: Replace some literals with constants in grub_cryptodisk_endecrypt Glenn Washburn
2020-12-02 17:37 ` Daniel Kiper
2020-12-03 8:29 ` Glenn Washburn
2020-12-03 12:44 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 05/12] luks2: grub_cryptodisk_t->total_sectors is the max number of device native sectors Glenn Washburn
2020-12-02 17:56 ` Daniel Kiper
2020-12-03 8:54 ` Glenn Washburn
2020-12-03 12:45 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 06/12] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-12-03 13:04 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 07/12] luks2: Better error handling when setting up the cryptodisk Glenn Washburn
2020-12-03 13:31 ` Daniel Kiper
2020-12-03 16:24 ` Glenn Washburn
2020-12-04 13:19 ` Daniel Kiper
2020-12-04 14:51 ` Glenn Washburn
2020-11-27 9:03 ` [PATCH v6 08/12] luks2: Error check segment.sector_size Glenn Washburn
2020-12-03 13:52 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 09/12] whitespace: convert 8 spaces to tabs Glenn Washburn
2020-12-03 13:53 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 10/12] mips: Enable __clzdi2() Glenn Washburn
2020-12-03 14:00 ` Daniel Kiper
2020-12-03 15:58 ` Glenn Washburn
2020-12-04 13:07 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 11/12] misc: Add grub_log2ull macro for calculating log base 2 of 64-bit integers Glenn Washburn
2020-12-03 14:02 ` Daniel Kiper
2020-11-27 9:03 ` [PATCH v6 12/12] luks2: Use grub_log2ull to calculate log_sector_size and improve readability Glenn Washburn
2020-12-03 14:13 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 00/17] Cryptodisk fixes for v2.06 redux Glenn Washburn
2020-12-04 16:43 ` [PATCH v7 01/17] disk: Rename grub_disk_get_size to grub_disk_native_sectors Glenn Washburn
2020-12-06 13:24 ` Patrick Steinhardt
2020-12-07 19:38 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 02/17] misc: Add parentheses around ALIGN_UP and ALIGN_DOWN arguments Glenn Washburn
2020-12-06 13:24 ` Patrick Steinhardt
2020-12-07 19:50 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 03/17] luks2: Remove unused argument in grub_error Glenn Washburn
2020-12-06 13:25 ` Patrick Steinhardt
2020-12-07 19:52 ` Daniel Kiper
2020-12-08 17:45 ` Glenn Washburn
2020-12-08 18:32 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 04/17] luks2: Make sure all fields of output argument in luks2_parse_digest() are written to Glenn Washburn
2020-12-06 13:26 ` Patrick Steinhardt
2020-12-07 19:58 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 05/17] luks2: Add json_slot_key member to struct grub_luks2_keyslot/segment/digest Glenn Washburn
2020-12-06 13:29 ` Patrick Steinhardt
2020-12-07 20:02 ` Daniel Kiper
2020-12-08 4:06 ` Glenn Washburn
2020-12-08 6:38 ` Patrick Steinhardt
2020-12-08 17:55 ` Glenn Washburn
2020-12-04 16:43 ` [PATCH v7 06/17] luks2: Use more intuitive slot key instead of index in user messages Glenn Washburn
2020-12-06 13:31 ` Patrick Steinhardt
2020-12-07 20:15 ` Daniel Kiper
2020-12-08 17:56 ` Glenn Washburn
2020-12-04 16:43 ` [PATCH v7 07/17] luks2: Add string "index" to user strings using a json index Glenn Washburn
2020-12-06 13:31 ` Patrick Steinhardt
2020-12-07 20:17 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 08/17] cryptodisk: Add macro GRUB_TYPE_BITS() to replace some literals Glenn Washburn
2020-12-06 13:32 ` Patrick Steinhardt
2020-12-07 20:18 ` Daniel Kiper
2020-12-04 16:43 ` [PATCH v7 09/17] cryptodisk: Add macros GRUB_TYPE_U_MAX/MIN(type) to replace literals Glenn Washburn
2020-12-06 13:33 ` Patrick Steinhardt
2020-12-07 20:22 ` Daniel Kiper
2020-12-08 4:06 ` Glenn Washburn
2020-12-04 16:43 ` [PATCH v7 10/17] luks2: grub_cryptodisk_t->total_sectors is the max number of device native sectors Glenn Washburn
2020-12-06 13:34 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 11/17] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-12-06 19:21 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 12/17] luks2: Better error handling when setting up the cryptodisk Glenn Washburn
2020-12-06 19:35 ` Patrick Steinhardt [this message]
2020-12-08 4:04 ` Glenn Washburn
2020-12-08 6:41 ` Patrick Steinhardt
2020-12-08 4:28 ` Glenn Washburn
2020-12-04 16:43 ` [PATCH v7 13/17] luks2: Error check segment.sector_size Glenn Washburn
2020-12-06 19:35 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 14/17] whitespace: convert 8 spaces to tabs Glenn Washburn
2020-12-06 13:35 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 15/17] mips: Enable __clzdi2() Glenn Washburn
2020-12-06 19:36 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 16/17] misc: Add grub_log2ull macro for calculating log base 2 of 64-bit integers Glenn Washburn
2020-12-06 13:36 ` Patrick Steinhardt
2020-12-04 16:43 ` [PATCH v7 17/17] luks2: Use grub_log2ull to calculate log_sector_size and improve readability Glenn Washburn
2020-12-06 19:44 ` Patrick Steinhardt
2020-12-06 13:38 ` [PATCH v7 00/17] Cryptodisk fixes for v2.06 redux Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 00/18] " Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 01/18] disk: Rename grub_disk_get_size to grub_disk_native_sectors Glenn Washburn
2020-12-09 17:39 ` Daniel Kiper
2020-12-08 22:45 ` [PATCH v8 02/18] misc: Add parentheses around ALIGN_UP and ALIGN_DOWN arguments Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 03/18] whitespace: convert 8 spaces to tabs Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 04/18] luks2: Remove unused argument in grub_error Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 05/18] luks2: Make sure all fields of output argument in luks2_parse_digest() are written to Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 06/18] luks2: Add idx member to struct grub_luks2_keyslot/segment/digest Glenn Washburn
2020-12-09 18:02 ` Daniel Kiper
2020-12-12 8:07 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 07/18] luks2: Use more intuitive object name instead of json index in user messages Glenn Washburn
2020-12-09 18:05 ` Daniel Kiper
2020-12-12 8:09 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 08/18] luks2: Rename json index variables to names that they are obviously json indexes Glenn Washburn
2020-12-09 18:07 ` Daniel Kiper
2020-12-12 8:10 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 09/18] luks2: Add string "index" to user strings using a json index Glenn Washburn
2020-12-09 18:09 ` Daniel Kiper
2020-12-12 8:11 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 10/18] cryptodisk: Add macro GRUB_TYPE_BITS() to replace some literals Glenn Washburn
2020-12-09 18:12 ` Daniel Kiper
2020-12-12 8:12 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 11/18] cryptodisk: Add macros GRUB_TYPE_U_MAX/MIN(type) to replace literals Glenn Washburn
2020-12-10 14:51 ` Daniel Kiper
2020-12-12 8:13 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 12/18] luks2: grub_cryptodisk_t->total_sectors is the max number of device native sectors Glenn Washburn
2020-12-12 8:14 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 13/18] cryptodisk: Properly handle non-512 byte sized sectors Glenn Washburn
2020-12-12 8:15 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 14/18] luks2: Better error handling when setting up the cryptodisk Glenn Washburn
2020-12-10 16:07 ` Daniel Kiper
2020-12-12 1:10 ` Glenn Washburn
2020-12-12 15:19 ` Daniel Kiper
2020-12-15 22:23 ` Glenn Washburn
2020-12-08 22:45 ` [PATCH v8 15/18] luks2: Error check segment.sector_size Glenn Washburn
2020-12-10 16:08 ` Daniel Kiper
2020-12-12 8:16 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 16/18] mips: Enable __clzdi2() Glenn Washburn
2020-12-10 16:09 ` Daniel Kiper
2020-12-12 8:16 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 17/18] misc: Add grub_log2ull macro for calculating log base 2 of 64-bit integers Glenn Washburn
2020-12-12 8:17 ` Patrick Steinhardt
2020-12-08 22:45 ` [PATCH v8 18/18] luks2: Use grub_log2ull to calculate log_sector_size and improve readability Glenn Washburn
2020-12-12 8:18 ` Patrick Steinhardt
2020-12-10 16:20 ` [PATCH v8 00/18] Cryptodisk fixes for v2.06 redux Daniel Kiper
2020-12-12 8:20 ` Patrick Steinhardt
2020-12-12 14:40 ` Daniel Kiper
2020-12-12 17:36 ` Patrick Steinhardt
2020-12-14 12:13 ` Daniel Kiper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=X80ycf3C08/Hr0pM@ncase \
--to=ps@pks.im \
--cc=development@efficientek.com \
--cc=dkiper@net-space.pl \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox