grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 0/2] Add LUKS2 support to luks_script


From: Glenn Washburn
Subject: [PATCH v3 0/2] Add LUKS2 support to luks_script
Date: Fri, 14 Jul 2023 15:49:16 -0500

v3:
 * Fix inconsistencies noted in v2
 * Add a separate patch for optimization and changes in v2
 * Use 6 digits for sector size, instead of previous 5, for really really
   future proofing
v2:
 * Use PRIxGRUB_OFFSET instead of PRIuGRUB_UINT64_T
 * use %u for unsigned log sector size

Glenn

Glenn Washburn (2):
  cryptodisk: Optimize luks_script_get
  cryptodisk: Add support for LUKS2 in (proc)/luks_script

 grub-core/disk/cryptodisk.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

Range-diff against v2:
-:  ------------ > 1:  7a32d780a2f7 cryptodisk: Optimize luks_script_get
1:  dbf695eef1ab ! 2:  fe0164ae1db0 luks2: Add support for LUKS2 in 
(proc)/luks_script
    @@ Metadata
     Author: Glenn Washburn <development@efficientek.com>
     
      ## Commit message ##
    -    luks2: Add support for LUKS2 in (proc)/luks_script
    +    cryptodisk: Add support for LUKS2 in (proc)/luks_script
     
    -    The sector size in bytes is added to each line and it is allowed to be 
5
    +    The sector size in bytes is added to each line and it is allowed to be 
6
         decimal digits long, which covers the most common cases of 512 and 4096
    -    byte sectors with space for an additional digit as future-proofing. The
    -    size allocation is updated to reflect this additional field, allow up 
to
    -    5 characters and 1 space added.
    +    byte sectors with space for two additional digits as future-proofing. 
The
    +    size allocation is updated to reflect this additional field. Also make
    +    clearer the size allocation calculation.
     
      ## grub-core/disk/cryptodisk.c ##
     @@ grub-core/disk/cryptodisk.c: luks_script_get (grub_size_t *sz)
    @@ grub-core/disk/cryptodisk.c: luks_script_get (grub_size_t *sz)
     +  /*
     +   * Add space in the line for (in order) spaces, cipher mode, cipher IV
     +   * mode, sector offset, sector size and the trailing newline. This is
    -+   * an upper bound on the size of this data. There are 16 extra bytes
    ++   * an upper bound on the size of this data. There are 15 extra bytes
     +   * in an earlier version of this code that are unaccounted for. It is
     +   * left in the calculations in case it is needed. At worst, its short-
     +   * lived wasted space.
     +   */
    -+  size += 5 + 5 + 8 + 20 + 5 + 1 + 16;
    ++  size += 5 + 5 + 8 + 20 + 6 + 1 + 15;
        if (i->essiv_hash)
          size += grub_strlen (i->essiv_hash->name);
        size += i->keysize * 2;
    @@ grub-core/disk/cryptodisk.c: luks_script_get (grub_size_t *sz)
     +  ptr = grub_stpcpy (ptr, "_mount ");
        ptr = grub_stpcpy (ptr, i->uuid);
        *ptr++ = ' ';
    --  grub_snprintf (ptr, 21, "%" PRIuGRUB_UINT64_T " ", i->offset_sectors);
    --  while (*ptr)
    --    ptr++;
    -+  ptr += grub_snprintf (ptr, 21, "%" PRIxGRUB_OFFSET " ",
    -+                        i->offset_sectors);
    -+  ptr += grub_snprintf (ptr, 7, "%u ", 1 << i->log_sector_size);
    +   ptr += grub_snprintf (ptr, 21, "%" PRIxGRUB_OFFSET, i->offset_sectors);
    +   *ptr++ = ' ';
    ++  ptr += grub_snprintf (ptr, 7, "%u", 1 << i->log_sector_size);
    ++  *ptr++ = ' ';
        for (iptr = i->cipher->cipher->name; *iptr; iptr++)
          *ptr++ = grub_tolower (*iptr);
        switch (i->mode)
-- 
2.34.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]