mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-11 05:52:36 +02:00
81dc1a7f89
NOTE: gfxterm_menu module removed, because of this change by upstream: commit ca2a91f43bf6e1df23a07c295534f871ddf2d401 Author: Glenn Washburn <development@efficientek.com> Date: Mon May 5 16:11:36 2025 -0500 tests: Disable gfxterm_menu and cmdline_cat tests This brings in the following changes from upstream: * a68a7dece loader/i386/pc/linux: Fix resource leak * de80acf36 loader/efi/linux: Unload previous Linux kernel/initrd before updating kernel size * 249db11d8 loader/efi/linux: Correctly terminate load_options member * f3b339af1 loader/efi/linux: Use sizeof() instead of constant * c2b2e0dcf loader/efi/linux: Use proper type for len variable * de4e8e2aa loader/efi/linux: Do not pass excessive size for source string * 8c8f96664 loader/efi/linux: Remove useless assignment * 8ebf155af include/grub/charset.h: Update documentation * 2f2ed28d5 Revert "lzma: Make sure we don't dereference past array" * 2539ede82 tests/util/grub-shell: Correct netboot and file_filter test failure * 8c2d4e64f normal/charset: Fix underflow and overflow in loop init * ba8eadde6 dl: Provide a fake grub_dl_set_persistent() and grub_dl_is_persistent() for the emu target * 409e72ced util/grub-protect: Correct uninit "err" variable * 5eca564b1 gnulib: Bring back the fix for resolving unused variable issue * ac1512b87 gnulib: Add patch to allow GRUB w/GCC-15 compile * db506b3b8 gnulib/regexec: Fix resource leak * bba7dd736 gnulib/regcomp: Fix resource leak * 91cb7ff6b tests/tpm2_key_protector_test: Add tests for SHA-384 PCR bank * 451e227e5 tpm2_key_protector: Dump the PCR bank for key unsealing * 11caacdb2 util/grub-protect: Fix the hash algorithm of PCR digest * ce23919ca build: Add new header files to dist to allow building from tar * e3b15bafd build: Remove extra_deps.lst from EXTRA_DIST * 40e261b89 lib/LzmaEnc: Validate "len" before subtracting * 86e8f2c4b osdep/unix/hostdisk: Fix signed integer overflow * 438f05581 disk/luks2: Add attempting to decrypt message to align with luks and geli modules * 20e6d0c4a osdep/linux/getroot: Detect DDF container similar to IMSM * b71bc0f8b fs/fshelp: Avoid possible NULL pointer deference * 272ff81cb fs/ntfs: Correct possible infinite loops/hangs * 8c95307a0 fs/ntfs: Correct possible access violations * 06914b614 fs/ntfs: Correct attribute vs attribute list validation * 0e1762c8a fs/ntfs: Correct regression with run list calculation * be303f8c1 lib/envblk: Ignore empty new lines while parsing env files * 34bd00ee2 fs/zfs: Fix another memory leak in ZFS code * ca2a91f43 tests: Disable gfxterm_menu and cmdline_cat tests Signed-off-by: Leah Rowe <leah@libreboot.org>
84 lines
2.8 KiB
Diff
84 lines
2.8 KiB
Diff
From 6a757a3cdf22e840162bb222a87446a32d9b94a2 Mon Sep 17 00:00:00 2001
|
|
From: Ax333l <main@axelen.xyz>
|
|
Date: Thu, 17 Aug 2023 00:00:00 +0000
|
|
Subject: [PATCH 07/14] Compile with Argon2id support
|
|
|
|
Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
|
|
---
|
|
Makefile.util.def | 6 +++++-
|
|
grub-core/Makefile.core.def | 2 +-
|
|
grub-core/disk/luks2.c | 13 +++++++++++--
|
|
3 files changed, 17 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/Makefile.util.def b/Makefile.util.def
|
|
index 038253b37..2f19569c9 100644
|
|
--- a/Makefile.util.def
|
|
+++ b/Makefile.util.def
|
|
@@ -3,7 +3,7 @@ AutoGen definitions Makefile.tpl;
|
|
library = {
|
|
name = libgrubkern.a;
|
|
cflags = '$(CFLAGS_GNULIB)';
|
|
- cppflags = '$(CPPFLAGS_GNULIB) -I$(srcdir)/grub-core/lib/json';
|
|
+ cppflags = '$(CPPFLAGS_GNULIB) -I$(srcdir)/grub-core/lib/json -I$(srcdir)/grub-core/lib/argon2';
|
|
|
|
common = util/misc.c;
|
|
common = grub-core/kern/command.c;
|
|
@@ -36,6 +36,10 @@ library = {
|
|
common = grub-core/kern/misc.c;
|
|
common = grub-core/kern/partition.c;
|
|
common = grub-core/lib/crypto.c;
|
|
+ common = grub-core/lib/argon2/argon2.c;
|
|
+ common = grub-core/lib/argon2/core.c;
|
|
+ common = grub-core/lib/argon2/ref.c;
|
|
+ common = grub-core/lib/argon2/blake2/blake2b.c;
|
|
common = grub-core/lib/json/json.c;
|
|
common = grub-core/disk/luks.c;
|
|
common = grub-core/disk/luks2.c;
|
|
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
|
|
index 0ee65d54d..cd29a9df8 100644
|
|
--- a/grub-core/Makefile.core.def
|
|
+++ b/grub-core/Makefile.core.def
|
|
@@ -1242,7 +1242,7 @@ module = {
|
|
common = disk/luks2.c;
|
|
common = lib/gnulib/base64.c;
|
|
cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)';
|
|
- cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB) -I$(srcdir)/lib/json';
|
|
+ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB) -I$(srcdir)/lib/json -I$(srcdir)/lib/argon2';
|
|
};
|
|
|
|
module = {
|
|
diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c
|
|
index bbd8f5579..02cd615d9 100644
|
|
--- a/grub-core/disk/luks2.c
|
|
+++ b/grub-core/disk/luks2.c
|
|
@@ -28,6 +28,7 @@
|
|
#include <grub/i18n.h>
|
|
#include <grub/safemath.h>
|
|
|
|
+#include <argon2.h>
|
|
#include <base64.h>
|
|
#include <json.h>
|
|
|
|
@@ -463,8 +464,16 @@ luks2_decrypt_key (grub_uint8_t *out_key,
|
|
{
|
|
case LUKS2_KDF_TYPE_ARGON2I:
|
|
case LUKS2_KDF_TYPE_ARGON2ID:
|
|
- ret = grub_error (GRUB_ERR_BAD_ARGUMENT, "Argon2 not supported");
|
|
- goto err;
|
|
+ ret = argon2_hash (k->kdf.u.argon2.time, k->kdf.u.argon2.memory, k->kdf.u.argon2.cpus,
|
|
+ passphrase, passphraselen, salt, saltlen, area_key, k->area.key_size,
|
|
+ k->kdf.type == LUKS2_KDF_TYPE_ARGON2I ? Argon2_i : Argon2_id,
|
|
+ ARGON2_VERSION_NUMBER);
|
|
+ if (ret)
|
|
+ {
|
|
+ grub_dprintf ("luks2", "Argon2 failed: %s\n", argon2_error_message (ret));
|
|
+ goto err;
|
|
+ }
|
|
+ break;
|
|
case LUKS2_KDF_TYPE_PBKDF2:
|
|
hash = grub_crypto_lookup_md_by_name (k->kdf.u.pbkdf2.hash);
|
|
if (!hash)
|
|
--
|
|
2.39.5
|
|
|