aboutsummaryrefslogtreecommitdiff
path: root/resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch
diff options
context:
space:
mode:
Diffstat (limited to 'resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch')
-rw-r--r--resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch122
1 files changed, 0 insertions, 122 deletions
diff --git a/resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch b/resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch
deleted file mode 100644
index 2684f062..00000000
--- a/resources/grub/patch/grub.johnlane.ie/0005-Cryptomount-support-for-hyphens-in-UUID.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 047a5b323de2a0c45a6fe2b6854106830da5f3ae Mon Sep 17 00:00:00 2001
-From: John Lane <john@lane.uk.net>
-Date: Fri, 26 Jun 2015 22:48:03 +0100
-Subject: [PATCH 06/10] Cryptomount support for hyphens in UUID
-
----
- grub-core/disk/cryptodisk.c | 20 +++++++++++++++++---
- grub-core/disk/luks.c | 26 ++++++++------------------
- include/grub/cryptodisk.h | 2 ++
- 3 files changed, 27 insertions(+), 21 deletions(-)
-
-diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c
-index 57fb904..5430b2e 100644
---- a/grub-core/disk/cryptodisk.c
-+++ b/grub-core/disk/cryptodisk.c
-@@ -114,6 +114,20 @@ gf_mul_be (grub_uint8_t *o, const grub_uint8_t *a, const grub_uint8_t *b)
- }
- }
-
-+int
-+grub_cryptodisk_uuidcmp(char *uuid_a, char *uuid_b)
-+{
-+ while ((*uuid_a != '\0') && (*uuid_b != '\0'))
-+ {
-+ while (*uuid_a == '-') uuid_a++;
-+ while (*uuid_b == '-') uuid_b++;
-+ if (grub_toupper(*uuid_a) != grub_toupper(*uuid_b)) break;
-+ uuid_a++;
-+ uuid_b++;
-+ }
-+ return (*uuid_a == '\0') && (*uuid_b == '\0');
-+}
-+
- static gcry_err_code_t
- grub_crypto_pcbc_decrypt (grub_crypto_cipher_handle_t cipher,
- void *out, void *in, grub_size_t size,
-@@ -508,8 +522,8 @@ grub_cryptodisk_open (const char *name, grub_disk_t disk)
- if (grub_memcmp (name, "cryptouuid/", sizeof ("cryptouuid/") - 1) == 0)
- {
- for (dev = cryptodisk_list; dev != NULL; dev = dev->next)
-- if (grub_strcasecmp (name + sizeof ("cryptouuid/") - 1, dev->uuid) == 0)
-- break;
-+ if (grub_cryptodisk_uuidcmp(name + sizeof ("cryptouuid/") - 1, dev->uuid))
-+ break;
- }
- else
- {
-@@ -741,7 +755,7 @@ grub_cryptodisk_get_by_uuid (const char *uuid)
- {
- grub_cryptodisk_t dev;
- for (dev = cryptodisk_list; dev != NULL; dev = dev->next)
-- if (grub_strcasecmp (dev->uuid, uuid) == 0)
-+ if (grub_cryptodisk_uuidcmp(dev->uuid, uuid))
- return dev;
- return NULL;
- }
-diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c
-index 4ebe21b..80a7606 100644
---- a/grub-core/disk/luks.c
-+++ b/grub-core/disk/luks.c
-@@ -68,9 +68,7 @@ configure_ciphers (grub_disk_t disk, const char *check_uuid,
- int check_boot, grub_file_t hdr)
- {
- grub_cryptodisk_t newdev;
-- const char *iptr;
- struct grub_luks_phdr header;
-- char *optr;
- char uuid[sizeof (header.uuid) + 1];
- char ciphername[sizeof (header.cipherName) + 1];
- char ciphermode[sizeof (header.cipherMode) + 1];
-@@ -104,22 +102,6 @@ configure_ciphers (grub_disk_t disk, const char *check_uuid,
- || grub_be_to_cpu16 (header.version) != 1)
- return NULL;
-
-- optr = uuid;
-- for (iptr = header.uuid; iptr < &header.uuid[ARRAY_SIZE (header.uuid)];
-- iptr++)
-- {
-- if (*iptr != '-')
-- *optr++ = *iptr;
-- }
-- *optr = 0;
--
-- if (check_uuid && grub_strcasecmp (check_uuid, uuid) != 0)
-- {
-- grub_dprintf ("luks", "%s != %s\n", uuid, check_uuid);
-- return NULL;
-- }
--
--
- /* Make sure that strings are null terminated. */
- grub_memcpy (ciphername, header.cipherName, sizeof (header.cipherName));
- ciphername[sizeof (header.cipherName)] = 0;
-@@ -127,6 +109,14 @@ configure_ciphers (grub_disk_t disk, const char *check_uuid,
- ciphermode[sizeof (header.cipherMode)] = 0;
- grub_memcpy (hashspec, header.hashSpec, sizeof (header.hashSpec));
- hashspec[sizeof (header.hashSpec)] = 0;
-+ grub_memcpy (uuid, header.uuid, sizeof (header.uuid));
-+ uuid[sizeof (header.uuid)] = 0;
-+
-+ if ( check_uuid && ! grub_cryptodisk_uuidcmp(check_uuid, uuid))
-+ {
-+ grub_dprintf ("luks", "%s != %s\n", uuid, check_uuid);
-+ return NULL;
-+ }
-
- newdev = grub_cryptodisk_create (disk, uuid, ciphername, ciphermode, hashspec);
-
-diff --git a/include/grub/cryptodisk.h b/include/grub/cryptodisk.h
-index bb25ab7..01c0269 100644
---- a/include/grub/cryptodisk.h
-+++ b/include/grub/cryptodisk.h
-@@ -168,4 +168,6 @@ grub_cryptodisk_t grub_cryptodisk_get_by_source_disk (grub_disk_t disk);
- grub_cryptodisk_t grub_cryptodisk_create (grub_disk_t disk, char *uuid,
- char *ciphername, char *ciphermode, char *digest);
-
-+int
-+grub_cryptodisk_uuidcmp(char *uuid_a, char *uuid_b);
- #endif
---
-1.9.1
-