From: Gary Lin via Grub-devel <grub-devel@gnu.org>
To: The development of GNU GRUB <grub-devel@gnu.org>
Cc: Gary Lin <glin@suse.com>, Daniel Kiper <daniel.kiper@oracle.com>,
Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>,
Glenn Washburn <development@efficientek.com>,
Michael Chang <mchang@suse.com>,
Waldemar Brodkorb <wbx@openadk.org>
Subject: [PATCH v3 00/12] Support Argon2 KDF
Date: Tue, 26 Aug 2025 10:01:46 +0800 [thread overview]
Message-ID: <20250826020158.738-1-glin@suse.com> (raw)
This patch series imports the Argon2 code and tests from libgcrypt and
adds Argon2 support to LUKS2.
- Patch 1~6 import kdf.c from libgcrypt and extract the Argon2 related
functions. The _gcry_kdf_* functions are also imported to make it
easier to support other KDF functions when necessary.
- Patch 7 introduces grub_crypto_argon2().
- Patch 8 and 9 integrates the Argon2 tests from libgcrypt into
functional_test.
- Patch 10 leverages grub_crypto_argon2() to add Argon2 support to LUKS2.
- Patch 11 changes the default KDF of the LUKS2 test to Argon2id.
- Patch 12 documents argon2 and argon2_test modules.
v3:
- Updating comments in import_gcry.py
- Splitting the kdf build patch into 3 smaller patches
- Fixing the build error on 32-bit platforms
- Adjusting the order of 'ldadd' in Makefile.util.def
- Fixing the error messages in luks2_parse_keyslot()
v2:
- Import Argon2 code differently to improve maintainability
* Updating import_gcry.py to import Argon2 and _gcry_kdf_* functions
from kdf.c instead of extracting the code manually
* Implementing grub_crypto_argon2() with the _gcry_kdf_* functions to
avoid the GCRY flags when building argon2.c
* Building argon2.c inside libgrubkernel.a since the GCRY flags are not
needed anymore
Gary Lin (12):
util/import_gcry: Import kdf.c for Argon2
crypto: Update crypto.h for libgcrypt KDF functions
libgcrypt/kdf: Implement blake2b_512.hash_buffers()
libgcrypt/kdf: Get rid of gpg_err_code_from_errno()
libgcrypt/kdf: Remove unsupported KDFs
libgcrypt/kdf: Fix 64-bit modulus on 32-bit platforms
argon2: Introduce grub_crypto_argon2()
Import Argon2 tests from libgcrypt
Integrate Argon2 tests into functional_test
disk/luks2: Add Argon2 support
tests/util/grub-fs-tester: Use Argon2id for LUKS2 test
docs: Document argon2 and argon2_test
Makefile.util.def | 55 +++---
conf/Makefile.extra-dist | 4 +
docs/grub.texi | 11 ++
grub-core/Makefile.core.def | 10 ++
grub-core/disk/luks2.c | 40 ++++-
grub-core/lib/argon2.c | 52 ++++++
.../09-blake2b-hash-buffers.patch | 54 ++++++
.../10-kdf-use-GPG-errs.patch | 48 +++++
.../11-kdf-remove-unsupported-kdfs.patch | 166 ++++++++++++++++++
.../12-kdf-use-grub_divmod64.patch | 78 ++++++++
grub-core/tests/argon2_test.c | 139 +++++++++++++++
grub-core/tests/lib/functional_test.c | 1 +
include/grub/crypto.h | 49 ++++++
tests/util/grub-fs-tester.in | 10 +-
util/import_gcry.py | 31 +++-
15 files changed, 712 insertions(+), 36 deletions(-)
create mode 100644 grub-core/lib/argon2.c
create mode 100644 grub-core/lib/libgcrypt-patches/09-blake2b-hash-buffers.patch
create mode 100644 grub-core/lib/libgcrypt-patches/10-kdf-use-GPG-errs.patch
create mode 100644 grub-core/lib/libgcrypt-patches/11-kdf-remove-unsupported-kdfs.patch
create mode 100644 grub-core/lib/libgcrypt-patches/12-kdf-use-grub_divmod64.patch
create mode 100644 grub-core/tests/argon2_test.c
Range-diff against v2:
1: 5dd329599 ! 1: 4c2b3fec8 util/import_gcry: Import kdf.c for Argon2
@@ Commit message
## util/import_gcry.py ##
@@ util/import_gcry.py: with codecs.open (os.path.join (cipher_dir_out, "crypto.lst"), "w", "utf-8") as
+ if re.match (r"(Makefile\.am|primegen\.c|cipher\.c|cipher-.*\.c|mac-.*\.c|mac\.c|pubkey\.c)$", cipher_file):
chlog = "%s%s: Removed\n" % (chlog, chlognew)
continue
- # TODO: Support KDF
+- # TODO: Support KDF
- if re.match (r"(kdf\.c|scrypt\.c)$", cipher_file):
++ # TODO: Support scrypt KDF
+ if re.match (r"(scrypt\.c)$", cipher_file):
chlog = "%s%s: Removed\n" % (chlog, chlognew)
continue
@@ util/import_gcry.py: with codecs.open (os.path.join (cipher_dir_out, "crypto.lst
nch = True
continue
+ elif re.match ("_gcry_kdf_selftest|check_one|_gcry_kdf_pkdf2|_gcry_kdf_derive|openpgp_s2k|ballon_context_size|balloon_*|prng_aes_*|onestep_kdf_*|hkdf_*|x963_kdf_*", line) is not None and cipher_file == "kdf.c":
++ # TODO Support other KDFs
+ skip = 1
+ fname = re.match ("[a-zA-Z0-9_]*", line).group ()
+ chmsg = "(%s): Removed." % fname
2: 5e544e51c ! 2: 210b6292b crypto: Update crypto.h for libgcrypt KDF functions
@@ Commit message
- prototypes of '_gcry_kdf_*' functions
Signed-off-by: Gary Lin <glin@suse.com>
+ Reviewed-by: Vladimir Serbinenko<phcoder@gmail.com>
## include/grub/crypto.h ##
@@ include/grub/crypto.h: typedef enum
-: --------- > 3: 97e34226d libgcrypt/kdf: Implement blake2b_512.hash_buffers()
-: --------- > 4: ece319254 libgcrypt/kdf: Get rid of gpg_err_code_from_errno()
3: 69aea293b ! 5: ac22a5546 kdf: Resovle the build errors
@@ Metadata
Author: Gary Lin <glin@suse.com>
## Commit message ##
- kdf: Resovle the build errors
+ libgcrypt/kdf: Remove unsupported KDFs
- - Adding argon2_blake2b_512_hash_buffers() as the replacement of
- _gcry_digest_spec_blake2b_512.hash_buffers()
- - Replacing gpg_err_code_from_errno() with GPG_ERR_*
- - Removing the unsupported KDFs from _gcry_kdf_*()
+ Clean up _gcry_kdf_*() to remove unsupported KDFs.
Signed-off-by: Gary Lin <glin@suse.com>
## conf/Makefile.extra-dist ##
-@@ conf/Makefile.extra-dist: EXTRA_DIST += grub-core/lib/libgcrypt-patches/05_disable_rsa_shake.patch
- EXTRA_DIST += grub-core/lib/libgcrypt-patches/06_blake.patch
- EXTRA_DIST += grub-core/lib/libgcrypt-patches/07_disable_64div.patch
+@@ conf/Makefile.extra-dist: EXTRA_DIST += grub-core/lib/libgcrypt-patches/07_disable_64div.patch
EXTRA_DIST += grub-core/lib/libgcrypt-patches/08_sexp_leak.patch
-+EXTRA_DIST += grub-core/lib/libgcrypt-patches/09_kdf_build_fix.patch
+ EXTRA_DIST += grub-core/lib/libgcrypt-patches/09-blake2b-hash-buffers.patch
+ EXTRA_DIST += grub-core/lib/libgcrypt-patches/10-kdf-use-GPG-errs.patch
++EXTRA_DIST += grub-core/lib/libgcrypt-patches/11-kdf-remove-unsupported-kdfs.patch
EXTRA_DIST += grub-core/lib/libtasn1-patches/0001-libtasn1-disable-code-not-needed-in-grub.patch
EXTRA_DIST += grub-core/lib/libtasn1-patches/0002-libtasn1-replace-strcat-with-strcpy-in-_asn1_str_cat.patch
- ## grub-core/lib/libgcrypt-patches/09_kdf_build_fix.patch (new) ##
+ ## grub-core/lib/libgcrypt-patches/11-kdf-remove-unsupported-kdfs.patch (new) ##
@@
-+From 8583cb1211e9f8253e072b047082b2141346fd31 Mon Sep 17 00:00:00 2001
++From f46f3dbd2e572a6610d651d14e9a3a8b27883c49 Mon Sep 17 00:00:00 2001
+From: Gary Lin <glin@suse.com>
-+Date: Wed, 6 Aug 2025 09:56:21 +0800
-+Subject: [PATCH] kdf: Resovle the build errors
++Date: Mon, 25 Aug 2025 16:00:17 +0800
++Subject: [PATCH 3/4] libgcrypt/kdf: Remove unsupported KDFs
+
-+- Adding argon2_blake2b_512_hash_buffers() as the replacement of
-+ _gcry_digest_spec_blake2b_512.hash_buffers()
-+- Replacing gpg_err_code_from_errno() with GPG_ERR_*
-+- Removing the unsupported KDFs from _gcry_kdf_*()
++Clean up _gcry_kdf_*() to remove unsupported KDFs.
+
+Signed-off-by: Gary Lin <glin@suse.com>
+---
-+ grub-core/lib/libgcrypt-grub/cipher/kdf.c | 145 ++++------------------
-+ 1 file changed, 22 insertions(+), 123 deletions(-)
++ grub-core/lib/libgcrypt-grub/cipher/kdf.c | 119 ----------------------
++ 1 file changed, 119 deletions(-)
+
+diff --git a/grub-core/lib/libgcrypt-grub/cipher/kdf.c b/grub-core/lib/libgcrypt-grub/cipher/kdf.c
-+index 0689f88b1..6e825d3e8 100644
++index 55294672b..6e825d3e8 100644
+--- a/grub-core/lib/libgcrypt-grub/cipher/kdf.c
++++ b/grub-core/lib/libgcrypt-grub/cipher/kdf.c
-+@@ -129,6 +129,24 @@ beswap64_block (u64 *dst)
-+ #endif
-+ }
-+
-++/* Implementation of _gcry_blake2b_512_hash_buffers */
-++static void
-++argon2_blake2b_512_hash_buffers (void *outbuf, const gcry_buffer_t *iov, int iovcnt)
-++{
-++ void *hd;
-++
-++ hd = xtrymalloc (_gcry_digest_spec_blake2b_512.contextsize);
-++ if (!hd)
-++ return;
-++
-++ _gcry_digest_spec_blake2b_512.init (hd, 0);
-++ for (;iovcnt > 0; iov++, iovcnt--)
-++ _gcry_digest_spec_blake2b_512.write (hd, (const char*)iov[0].data + iov[0].off, iov[0].len);
-++ _gcry_digest_spec_blake2b_512.final (hd);
-++ grub_memcpy (outbuf, _gcry_digest_spec_blake2b_512.read (hd), 512 / 8);
-++
-++ xfree (hd);
-++}
-+
-+ static gpg_err_code_t
-+ argon2_fill_first_blocks (argon2_ctx_t a)
-+@@ -195,7 +213,7 @@ argon2_fill_first_blocks (argon2_ctx_t a)
-+ iov_count++;
-+ }
-+
-+- _gcry_digest_spec_blake2b_512.hash_buffers (h0_01_i, 64, iov, iov_count);
-++ argon2_blake2b_512_hash_buffers (h0_01_i, iov, iov_count);
-+
-+ for (i = 0; i < a->lanes; i++)
-+ {
-+@@ -242,7 +260,7 @@ argon2_init (argon2_ctx_t a, unsigned int parallelism,
-+ block = xtrymalloc (1024 * memory_blocks);
-+ if (!block)
-+ {
-+- ec = gpg_err_code_from_errno (errno);
-++ ec = GPG_ERR_OUT_OF_MEMORY;
-+ return ec;
-+ }
-+ memset (block, 0, 1024 * memory_blocks);
-+@@ -250,7 +268,7 @@ argon2_init (argon2_ctx_t a, unsigned int parallelism,
-+ thread_data = xtrymalloc (a->lanes * sizeof (struct argon2_thread_data));
-+ if (!thread_data)
-+ {
-+- ec = gpg_err_code_from_errno (errno);
-++ ec = GPG_ERR_OUT_OF_MEMORY;
-+ xfree (block);
-+ return ec;
-+ }
-+@@ -601,7 +619,7 @@ argon2_open (gcry_kdf_hd_t *hd, int subalgo,
-+ n = offsetof (struct argon2_context, out) + taglen;
-+ a = xtrymalloc (n);
-+ if (!a)
-+- return gpg_err_code_from_errno (errno);
-++ return GPG_ERR_OUT_OF_MEMORY;
-+
-+ a->algo = GCRY_KDF_ARGON2;
-+ a->hash_type = hash_type;
-+@@ -798,64 +816,6 @@ _gcry_kdf_open (gcry_kdf_hd_t *hd, int algo, int subalgo,
++@@ -816,64 +816,6 @@ _gcry_kdf_open (gcry_kdf_hd_t *hd, int algo, int subalgo,
+ key, keylen, ad, adlen);
+ break;
+
@@ -798,64 +816,6 @@ _gcry_kdf_open (gcry_kdf_hd_t *hd, int algo, int subalgo,
+ default:
+ ec = GPG_ERR_UNKNOWN_ALGORITHM;
+ break;
-+@@ -875,26 +835,6 @@ _gcry_kdf_compute (gcry_kdf_hd_t h, const struct gcry_kdf_thread_ops *ops)
++@@ -893,26 +835,6 @@ _gcry_kdf_compute (gcry_kdf_hd_t h, const struct gcry_kdf_thread_ops *ops)
+ ec = argon2_compute ((argon2_ctx_t)(void *)h, ops);
+ break;
+
@@ -875,26 +835,6 @@ _gcry_kdf_compute (gcry_kdf_hd_t h, const struct gcry_kdf_thre
+ default:
+ ec = GPG_ERR_UNKNOWN_ALGORITHM;
+ break;
-+@@ -915,27 +855,6 @@ _gcry_kdf_final (gcry_kdf_hd_t h, size_t resultlen, void *result)
++@@ -933,27 +855,6 @@ _gcry_kdf_final (gcry_kdf_hd_t h, size_t resultlen, void *result)
+ ec = argon2_final ((argon2_ctx_t)(void *)h, resultlen, result);
+ break;
+
@@ -915,27 +855,6 @@ _gcry_kdf_final (gcry_kdf_hd_t h, size_t resultlen, void *resu
+ default:
+ ec = GPG_ERR_UNKNOWN_ALGORITHM;
+ break;
-+@@ -953,26 +872,6 @@ _gcry_kdf_close (gcry_kdf_hd_t h)
++@@ -971,26 +872,6 @@ _gcry_kdf_close (gcry_kdf_hd_t h)
+ argon2_close ((argon2_ctx_t)(void *)h);
+ break;
+
-: --------- > 6: 51cabda08 libgcrypt/kdf: Fix 64-bit modulus on 32-bit platforms
4: d551580b9 ! 7: b56661bb6 argon2: Introduce grub_crypto_argon2()
@@ Commit message
linker can discover those functions.
Signed-off-by: Gary Lin <glin@suse.com>
+ Reviewed-by: Vladimir Serbinenko<phcoder@gmail.com>
## Makefile.util.def ##
@@ Makefile.util.def: library = {
@@ Makefile.util.def: library = {
common = grub-core/lib/pbkdf2.c;
common = grub-core/commands/extcmd.c;
common = grub-core/lib/arg.c;
+@@ Makefile.util.def: program = {
+ extra_dist = util/grub-mkimagexx.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBLZMA)';
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
@@ Makefile.util.def: program = {
cflags = '-I$(srcdir)/grub-core/lib/tss2 -I$(srcdir)/grub-core/commands/tpm2_key_protector';
@@ Makefile.util.def: program = {
@@ Makefile.util.def: program = {
common = grub-core/osdep/init.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+
+ ldadd = '$(LIBLZMA)';
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
ldadd = libgrubmods.a;
- ldadd = libgrubgcry.a;
ldadd = libgrubkern.a;
@@ Makefile.util.def: program = {
ldadd = grub-core/lib/gnulib/libgnu.a;
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
};
+@@ Makefile.util.def: program = {
+ cflags = '$(FUSE_CFLAGS)';
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM) $(FUSE_LIBS)';
+ condition = COND_GRUB_MOUNT;
+@@ Makefile.util.def: program = {
+ cppflags = '-DGRUB_MKFONT=1';
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(FREETYPE_LIBS)';
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
@@ Makefile.util.def: program = {
common = grub-core/kern/emu/argp_common.c;
@@ Makefile.util.def: program = {
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
};
@@ Makefile.util.def: program = {
+
+ ldadd = '$(LIBLZMA)';
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+
+ ldadd = '$(LIBLZMA)';
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/kern/misc.c;
+ common = grub-core/tests/lib/test.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/kern/misc.c;
+ common = grub-core/tests/lib/test.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/kern/misc.c;
+ common = grub-core/tests/lib/test.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/tests/lib/test.c;
+ common = grub-core/lib/priority_queue.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ condition = COND_HAVE_CXX;
+@@ Makefile.util.def: program = {
+ common = grub-core/kern/misc.c;
+ common = grub-core/tests/lib/test.c;
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
+@@ Makefile.util.def: program = {
common = grub-core/kern/emu/argp_common.c;
ldadd = libgrubmods.a;
@@ Makefile.util.def: program = {
ldadd = grub-core/lib/gnulib/libgnu.a;
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
};
+@@ Makefile.util.def: program = {
+ common = grub-core/osdep/init.c;
+
+ ldadd = libgrubmods.a;
+- ldadd = libgrubgcry.a;
+ ldadd = libgrubkern.a;
++ ldadd = libgrubgcry.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+ };
## grub-core/Makefile.core.def ##
@@ grub-core/Makefile.core.def: module = {
5: 60a8a8ff9 = 8: 54bd89f6a Import Argon2 tests from libgcrypt
6: 78d6cb520 ! 9: e386633aa Integrate Argon2 tests into functional_test
@@ Commit message
Signed-off-by: Gary Lin <glin@suse.com>
Tested-By: Waldemar Brodkorb <wbx@openadk.org>
+ Reviewed-by: Vladimir Serbinenko<phcoder@gmail.com>
## grub-core/Makefile.core.def ##
@@ grub-core/Makefile.core.def: module = {
7: 06836af69 ! 10: 86bbe307d disk/luks2: Add Argon2 support
@@ grub-core/disk/luks2.c: luks2_parse_keyslot (grub_luks2_keyslot_t *out, const gr
{
out->kdf.type = LUKS2_KDF_TYPE_ARGON2I;
if (grub_json_getint64 (&out->kdf.u.argon2i.time, &kdf, "time") ||
-@@ grub-core/disk/luks2.c: luks2_parse_keyslot (grub_luks2_keyslot_t *out, const grub_json_t *keyslot)
+ grub_json_getint64 (&out->kdf.u.argon2i.memory, &kdf, "memory") ||
grub_json_getint64 (&out->kdf.u.argon2i.cpus, &kdf, "cpus"))
- return grub_error (GRUB_ERR_BAD_ARGUMENT, "Missing Argon2i parameters");
- }
+- return grub_error (GRUB_ERR_BAD_ARGUMENT, "Missing Argon2i parameters");
++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "missing Argon2i parameters");
++ }
+ else if (!grub_strcmp (type, "argon2id"))
+ {
+ out->kdf.type = LUKS2_KDF_TYPE_ARGON2ID;
+ if (grub_json_getint64 (&out->kdf.u.argon2i.time, &kdf, "time") ||
+ grub_json_getint64 (&out->kdf.u.argon2i.memory, &kdf, "memory") ||
+ grub_json_getint64 (&out->kdf.u.argon2i.cpus, &kdf, "cpus"))
-+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Missing Argon2id parameters");
-+ }
++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "missing Argon2id parameters");
+ }
else if (!grub_strcmp (type, "pbkdf2"))
{
- out->kdf.type = LUKS2_KDF_TYPE_PBKDF2;
@@ grub-core/disk/luks2.c: luks2_decrypt_key (grub_uint8_t *out_key,
grub_uint8_t salt[GRUB_CRYPTODISK_MAX_KEYLEN];
grub_uint8_t *split_key = NULL;
8: 57ec8ca9f ! 11: f626d2001 tests/util/grub-fs-tester: Use Argon2id for LUKS2 test
@@ Commit message
Signed-off-by: Gary Lin <glin@suse.com>
Tested-By: Waldemar Brodkorb <wbx@openadk.org>
+ Reviewed-by: Vladimir Serbinenko<phcoder@gmail.com>
## tests/util/grub-fs-tester.in ##
@@ tests/util/grub-fs-tester.in: for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do
9: 1d3ce8f59 ! 12: a1cdf3b42 docs: Document argon2 and argon2_test
@@ Commit message
Signed-off-by: Gary Lin <glin@suse.com>
Tested-By: Waldemar Brodkorb <wbx@openadk.org>
+ Reviewed-by: Vladimir Serbinenko<phcoder@gmail.com>
## docs/grub.texi ##
@@ docs/grub.texi: Modules can be loaded via the @command{insmod} (@pxref{insmod}) command.
--
2.43.0
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
next reply other threads:[~2025-08-26 2:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-26 2:01 Gary Lin via Grub-devel [this message]
2025-08-26 2:01 ` [PATCH v3 01/12] util/import_gcry: Import kdf.c for Argon2 Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 02/12] crypto: Update crypto.h for libgcrypt KDF functions Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 03/12] libgcrypt/kdf: Implement blake2b_512.hash_buffers() Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 04/12] libgcrypt/kdf: Get rid of gpg_err_code_from_errno() Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 05/12] libgcrypt/kdf: Remove unsupported KDFs Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 06/12] libgcrypt/kdf: Fix 64-bit modulus on 32-bit platforms Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 07/12] argon2: Introduce grub_crypto_argon2() Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 08/12] Import Argon2 tests from libgcrypt Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 09/12] Integrate Argon2 tests into functional_test Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 10/12] disk/luks2: Add Argon2 support Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 11/12] tests/util/grub-fs-tester: Use Argon2id for LUKS2 test Gary Lin via Grub-devel
2025-08-26 2:01 ` [PATCH v3 12/12] docs: Document argon2 and argon2_test Gary Lin via Grub-devel
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=20250826020158.738-1-glin@suse.com \
--to=grub-devel@gnu.org \
--cc=daniel.kiper@oracle.com \
--cc=development@efficientek.com \
--cc=glin@suse.com \
--cc=mchang@suse.com \
--cc=phcoder@gmail.com \
--cc=wbx@openadk.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;
as well as URLs for NNTP newsgroup(s).