Today
Yesterday
Fri, Apr 10
The minimum fix avoids changes needed, thus, a bit confusing as a whole.
Here are better changes:
Thu, Apr 9
Minimum fix is:
Mon, Apr 6
Wed, Apr 1
Wed, Mar 25
Tue, Mar 24
While I pushed the change of libgcrypt, I'd like to apply following change to GnuPG.
This is more kind than GPG_ERR_BAD_PASSPHRASE by gcry_pk_testkey failure.
Mon, Mar 23
I retract my patch in T8171#215603
@m.eik gave us this link: https://github.com/ProtonMail/go-crypto/issues/184
Thu, Mar 19
Setting to low because this has never been a problem in the last 30 or 35 years. A check to help pinpointing bad keys is however a good idea.
Wed, Mar 18
I sent a patch to gcrypt-devel mailing list for the preparation of the change of RSA secret key checking.
If enabled, wrong RSA secret key (wrong means: under the Libre/OpenPGP specification) is rejected at import when gpg-agent calls gcry_pk_test_key.
Tue, Mar 17
BTW, LibrePGP also demands p < q in "Algorithm-Specific Part for RSA Keys".
For OpenSSH, ssh-agent spec. defines p, q, and qInv.
FIPS has: FIPS 186-5 and SP 800-56Br2.
existing standards
Mar 16 2026
CRT is used with GnuPG. In libgcrypt, pk_sign and pk_decrypt don't require P, Q, and U in a key (it's optional), but pk_test_key does.
Mar 13 2026
Du we have any information on whether the CRT is used and whether u et al. is also wrong? For example due to an OpenSSL generated key?
Mar 2 2026
The reporter informed us that the possible DoS has CVE number assigned:
CVE-2025-69913
Feb 23 2026
Feb 21 2026
Fixed in 1.12.1.
Feb 20 2026
Feb 19 2026
Fixed in 1.12.0.
Feb 15 2026
FWIW: Okay, gmime is still a wrapper around gpgme. After decryption it has the ability to get the used session key from the gpgme result structure. Thus, I have been on the wrong trail. The actual problem is not gpgme but more GnuPG's use of Libgcrypt or an actual regression in Libgcrypt. Well, Friday 13th.
Feb 14 2026
Any hints where to find the actual crypto code which uses libgcrypt?
Feb 13 2026
Maintainer of the FreeBSD notmuch port/package here. The steps below consistently trigger the problem on FreeBSD 16.0 (unreleased main branch), but there are no problems on FreeBSD 15.0. All my testing was on amd64.
Any hints where to find the actual crypto code which uses libgcrypt?
@thesamesam Thanks a lot.
I managed to replicate the failure somehow (for me, it fails at the importing the key).
I've attached notmuch-bug.log with debug-level guru commented out for gpg-agent:
.I can reproduce it using Stuart's script from https://lists.gnupg.org/pipermail/gcrypt-devel/2026-February/006031.html.
$ uname -a Linux mop 6.18.10 #1 SMP PREEMPT_DYNAMIC Wed Feb 11 21:14:57 GMT 2026 x86_64 AMD Ryzen 9 3950X 16-Core Processor AuthenticAMD GNU/Linux
Please tell us the information of your environment.
What the versions of gpg and gpg-agent?
We have seen the same thing on amd64 (x86_64) linux: https://bugs.gentoo.org/969501
Feb 11 2026
No, OpenBSD's implementation of POSIX semaphore is different to NetBSD.
(It doesn't support PSHARED=1.)
Possibly, it is related to the NetBSD failure of T8065.
If importing the secret key fails (which invokes gpg-agent), decryption cannot be succeeded.
I will check OpenBSD implementation of POSIX semaphore, if it's similar to NetBSD one.
Feb 10 2026
According to the ML @gniibe tried to replicate the problem without success.
Feb 9 2026
Feb 3 2026
Will go into 1.12.1
Thanks. Will go int the next version.
