diff --git a/libgcrypt-1.11.0-montgomery-zeroes.patch b/libgcrypt-1.11.0-montgomery-zeroes.patch new file mode 100644 index 0000000..e735100 --- /dev/null +++ b/libgcrypt-1.11.0-montgomery-zeroes.patch @@ -0,0 +1,40 @@ +From 5ba63ec41a6e734c9ff82e20e4f84ac94c59ae27 Mon Sep 17 00:00:00 2001 +From: NIIBE Yutaka +Date: Fri, 10 Apr 2026 16:58:57 +0900 +Subject: [PATCH] cipher:ecc: Fix decoding a point on Montgomery curve. + +* cipher/ecc-misc.c (_gcry_ecc_mont_decodepoint): Fix the padding +mistake and add updating RAWMPILEN. + +-- + +Reported by Calif.io in collaboration with Claude and Anthropic +Research. + +GnuPG-bug-id: 8211 +Fixes-commit: bbe15758c893dbf546416c1a6bccdad1ab000ad7 +Suggested-by: Bronson Yen +Signed-off-by: NIIBE Yutaka +--- + cipher/ecc-misc.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/cipher/ecc-misc.c b/cipher/ecc-misc.c +index 0c387c27..be4e2862 100644 +--- a/cipher/ecc-misc.c ++++ b/cipher/ecc-misc.c +@@ -324,7 +324,10 @@ _gcry_ecc_mont_decodepoint (gcry_mpi_t pk, mpi_ec_t ctx, mpi_point_t result) + *--p = *buf++; + + if (rawmpilen < nbytes) +- memset (rawmpi + nbytes - rawmpilen, 0, nbytes - rawmpilen); ++ { ++ memset (rawmpi + rawmpilen, 0, nbytes - rawmpilen); ++ rawmpilen = nbytes; ++ } + } + else + { +-- +2.54.0 + diff --git a/libgcrypt.spec b/libgcrypt.spec index b6f4d4f..ebe39ff 100644 --- a/libgcrypt.spec +++ b/libgcrypt.spec @@ -31,6 +31,8 @@ Patch4: libgcrypt-1.11.0-cf-protection.patch Patch5: libgcrypt-1.11.0-pac-bti-protection.patch # https://gitlab.com/redhat-crypto/libgcrypt/libgcrypt-mirror/-/merge_requests/19/ Patch6: libgcrypt-1.11.0-marvin.patch +# https://dev.gnupg.org/T8211.html +Patch7: libgcrypt-1.11.0-montgomery-zeroes.patch %global gcrylibdir %{_libdir} %global gcrysoname libgcrypt.so.20 @@ -71,6 +73,7 @@ applications using libgcrypt. %patch 4 -p1 %patch 5 -p1 %patch 6 -p1 +%patch 7 -p1 %build # should be all algorithms except SM3 and SM4, aria