In T5993#201111, @werner wrote:For example Poppler uses GnuPG comment packets to lower its own attack surface by leaving all OpenPGP handling to gpg. The patch (or at least the version we noticed in Fedora and Debian) entirely breaks this use.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed Advanced Search
Advanced Search
Advanced Search
May 16 2025
May 16 2025
(The commits had a wrong bug it in their message)
It might be useful to have samples of compressed keys:
No, we can't do much about this. It has always been easy to create compression bombs and the more relevant thing here is compressed signed or encrypted data. Or just compressed mails. The patch by @DemiMarie is way to complicated for what it wants to achieve and actually breaks existing use cases. For example Poppler uses GnuPG comment packets to lower its own attack surface by leaving all OpenPGP handling to gpg. The patch (or at least the version we noticed in Fedora and Debian) entirely breaks this use.
May 14 2025
May 14 2025
• werner added a comment to T7589: Unable to export SSH keys for ED25519 keys generate on a SmartCard.
Using the primary key for ssh was not intended and thus not tested. I have not yet found the time too look closer at your report. Just one remark:
• werner added a project to T7589: Unable to export SSH keys for ED25519 keys generate on a SmartCard: gnupg.
May 13 2025
May 13 2025
• werner closed T6941: gpgsm/dirmngr: support for end-entity certificates with an empty "Subject DN", a subtask of T7171: Allow for empty Subject in X.509, as Resolved.
May 9 2025
May 9 2025
• werner set External Link to https://lists.gnupg.org/pipermail/gnupg-announce/2025q2/000492.html on T7586: Release GnuPG 2.5.6.
May 8 2025
May 8 2025
• ikloecker added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
In T7620#200845, @Saturneric wrote:I think it would be much better if GnuPG automatically performed a key listing immediately after key generation when a smartcard is involved. This would allow GnuPG to detect the presence of the subkey on the card right away, rather than leaving it marked as a stub until the user manually lists keys.
Saturneric added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
I see that you generated the secret encryption subkey with backup. This means that the secret subkey is generated on your computer, then copied to the card, and then deleted from your computer. The deletion is the reason why the subkey is marked as stub. Only after listing the keys on the card gpg notices that the secret key is actually on the card.
• werner closed T7547: signatures from revoked or expired keys show up as missing keys, a subtask of T7527: Keyring/keybox denial of service, as Resolved.
May 7 2025
May 7 2025
btw, my clue was that in that last --check-sigs, if i used --debug-all i got this:
This affects certification-only primary keys when doing web-of-trust calculations.
Hi Werner, I submitted a patch right after this bug report using AC_CHECK_DECLS([_sys_siglist]) [1].
May 6 2025
May 6 2025
dkg added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
To avoid further noise on this ticket, i've done as requested and posted to gnupg-devel : https://lists.gnupg.org/pipermail/gnupg-devel/2025-May/035875.html
• ikloecker added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
The first call of get_key receives the following key listing from gpg:
2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: sec:-:256:19:C4A24EB0B5F2E025:1746474606:::u:::s 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: cESCA:::D2760001240100000006180489130000::brainp 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: oolP256r1:23::0:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: fpr:::::::::DEC0948C398A6E7B50746EC6C4A24EB0B5F2 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: E025:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: grp:::::::::06BDACFBDEDBC5783A75AE5E7251FA3369C4 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: 0FF4:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: uid:-::::1746474606::2222D8E2F373B9BDEE0DEA2A20A 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: 9402214E9F984::Eric <eric@bktus.com>::::::::::0: 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: <LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: ssb:-:256:19:EAFC5EA29B758B22:1746474606::::::a: 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: ::D2760001240100000006180489130000::brainpoolP25 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: 6r1:23:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: fpr:::::::::1AD596DDEC9B8CF3C1AC6C41EAFC5EA29B75 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: 8B22:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: grp:::::::::52F0797C0B0439BBD718E2534D46656A6C45 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: 6A78:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: ssb:-:256:18:A874804DB497B91C:1746474606::::::e: 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: ::#::brainpoolP256r1:23:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: fpr:::::::::33B273C7BD46E4EB63DD6874A874804DB497 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: B91C:<LF> 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: grp:::::::::34A1F8D9B2AA0CF07C2E042D70E10F9D4EBE 2025-05-05 21:50:23 gpgme[57059] _gpgme_io_read: check: E734:<LF>
Note the line
ssb:-:256:18:A874804DB497B91C:1746474606::::::e:::#::brainpoolP256r1:23:<LF>
where the # marks the subkey as stub.
Right now we have
Interesting, that sounds like a portable method. I am not very familiar with GPG internals, but to me that sounds like quite a bit of work. Unless there is another benefit to doing so, I don't think it is worth it just to print signal names.
May 5 2025
May 5 2025
Saturneric added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
I have now identified the exact conditions and a reproducible path for the issue I previously reported. I will also attach the relevant gpgme.log.
• werner added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
I doubt that this is a gpgme problem. With a gpgme log we will be able see the exact commands send to gpg and replicate this on the command line.
And the US administration might even change the definition of a year to, say, 100 months so that potus can rightfully keep his promise that there won't be more election in the foreseeable future ;-)
By the way, "years" is also "incorrect" once in ~4 years because it uses n*365 days. Werner's advice still applies. Enter an ISO date if you want an exact date. Or use a UI tool like Kleopatra.
The main problem here was that this all is not async-safe and thus I once implemented only the standard cases I could test easily.
• ikloecker added a comment to T7620: gpgme_get_key fails to detect secret encryption subkey after key generation on card (until context is recreated).
The logs of gpgme would be helpful, i.e. run your test program with GPGME_DEBUG=8:$(pwd)/gpgme-$(date +"%Y-%m-%d-%H%M%S").log to create a log file with gpgme's logs.
• werner added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
For the records:
• werner added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
A bug tracker shall never be used for discussion because the audience is not as expected. Only very few people follow a certain bug but several hundreds are following discussion on gnupg-devel@. That is basic hacker knowledge.
• werner changed the status of T7583: 2.5.5 removes sig on clean that 2.5.4 and earlier kept from Open to Testing.
May 4 2025
May 4 2025
heiko added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
I am surprised that you don't want to use the issue tracker for issues.
GnuPG's trust calculations are quite clearly broken, by any metric. There's nothing to discuss here.
• werner closed T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate as Resolved.
Heiko, I told you already in T7106 that it is not a good idea to re-open a ticket. If you really want to discuss stuff, take that to a mailing list.
heiko reopened T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate as "Open".
I see two interesting angles from which to think about this Web of Trust calculation:
May 2 2025
May 2 2025
Yes, this is related to T7547. With my last fix for that I overlooked that we use PUBKEY_USAGE_CERT to internally request the primary key but that one is not set because in general USAGE_SIG means the same (except for some case in PGP7 mode).
• werner triaged T7629: gcc 15 warns about -Wunterminated-string-initialization in gnupg as Low priority.
• werner closed T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate as Resolved.
> I'm not sure i understand why "the latest" should be preferred.
collinfunk added a project to T7629: gcc 15 warns about -Wunterminated-string-initialization in gnupg: gnupg.
dkg added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
A bit more experimentation shows the same behavior, even if Alice's tsig of Bill is full, not marginal, and even if all signatures are made in the same second, which is the finest resolution that OpenPGP objects can report.
dkg added a comment to T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate.
Interesting analysis, thanks for the sleuthing! I'm not sure i understand why "the latest" should be preferred. For example, in the graph made in this example, which part of the graph is the "latest"? Since the path from Alice to Carol is two hops long at least, it's conceivable that one path (A→Bob→C) has both "the latest" tsig *and* "the earliest" tsig, if the other path (A→Bill→C) happens to have been made between the other two tsigs.
Apr 29 2025
Apr 29 2025
• werner edited projects for T7611: WoT: adding a marginal trustsig reduces the validity of a downstream certificate, added: Not A Bug; removed Bug Report.
I also spend some time with this and the problem is described by this comment in trustdb.c:
Apr 28 2025
Apr 28 2025
• werner changed the status of T7106: Trailing newline trouble in clearsigned message generation and verification from Wontfix to Resolved.
No, it is not a bug and I beg you not to change the status again. Don't start the same trouble here as some of you guys did with the IETF WG!
heiko changed the status of T7106: Trailing newline trouble in clearsigned message generation and verification from Resolved to Wontfix.
heiko added a comment to T7106: Trailing newline trouble in clearsigned message generation and verification.
Err, I don't see why I would "need to test" anything further.
• werner closed T7106: Trailing newline trouble in clearsigned message generation and verification as Resolved.
This is just one build of PGP and you would need to test all versions on Windows, macOS and Unix. You also need to test against all versions of GnuPG since 1998 (when we started with interop tests). We won't change this in GnuPG and risk regression. If you have a problem with that go and add a fix to your tool - name it bug compatibility or whatever. And please do not re-open this bug.
heiko added a comment to T7106: Trailing newline trouble in clearsigned message generation and verification.
In T7106#185462, @werner wrote:This has been implemented and tested to be compatible with PGP - a looong time ago. iirc this was discussed around 1999 but might be only by private mail between the PGP hackers and me. Thus any change now might break PGP - which is still widely used (although mostly for encryption).
Apr 27 2025
Apr 27 2025
The report is correct but it does not make sense to fix it. If you want to use a concrete expiration date just enter the IS date at the prompt; use ? at the prompt for a short description.
Apr 23 2025
Apr 23 2025
• werner closed T7622: `gpg --encrypt --default-recipient-self` emits wrong message about "signing" as Wontfix.
This is really a minor thing and and it is actually true if you also sign something.
• gniibe changed the status of T7623: gpgscm: Fix fixed-size characters (for portability, specifically for GCC 15 or later) from Open to Testing.
Apr 22 2025
Apr 22 2025
• gniibe added a comment to T7623: gpgscm: Fix fixed-size characters (for portability, specifically for GCC 15 or later).
doc/HACKING says it's OK to use variadic arg macros (from C99 features).
If it's OK, this patch can fix the initialization (which silences GCC 15 warnings):
0002-gpgscm-Fix-initialization-for-fixed-size-chars.patch44 KBDownload
• gniibe renamed T7623: gpgscm: Fix fixed-size characters (for portability, specifically for GCC 15 or later) from gpgscm: Don't use fixed size characters (for portability, specifically for GCC 15 or later) to gpgscm: Fix fixed-size characters (for portability, specifically for GCC 15 or later).
• gniibe triaged T7623: gpgscm: Fix fixed-size characters (for portability, specifically for GCC 15 or later) as Normal priority.
Apr 21 2025
Apr 21 2025
Apr 20 2025
Apr 20 2025
Apr 19 2025
Apr 19 2025
Good morning,
I stumbled upon this when digging through old Debian bug reports against 1.4 and checking whether they still applied to 2.4. This one really still applies.
Apr 17 2025
Apr 17 2025
Apr 15 2025
Apr 15 2025
andreasstieger added a comment to T7605: [PATCH] mail-to-translators, gpg-authcode-sign.sh: convert legacy egrep.
POSIX specifies and requires grep -E, but only mentions egrep as old.
• werner triaged T7605: [PATCH] mail-to-translators, gpg-authcode-sign.sh: convert legacy egrep as Low priority.
Removing egrep from a Unix system will break all kind of stuff. I am not even sure whether old Unices support grep -E.
Apr 14 2025
Apr 14 2025
andreasstieger updated the task description for T7605: [PATCH] mail-to-translators, gpg-authcode-sign.sh: convert legacy egrep.
Apr 9 2025
Apr 9 2025
• werner changed the status of T7547: signatures from revoked or expired keys show up as missing keys, a subtask of T7527: Keyring/keybox denial of service, from Open to Testing.
• werner changed the status of T7544: Kleopatra (gnupg, gpgsm) hang on key-creation when x.509 certs are in keystore from Open to Testing.
There is no well defined pripority for the CRL DPs. The code enumarates the DP and tries one after the other until it founds one. If you use --ignore-http_dp http DPs are skipped and with --ignore-ldap-dp LDAP DPs are ignored.
Apr 8 2025
Apr 8 2025
• werner moved T7478: _gpg_close_all_fds hangs on nwer Linux systems in a simple chroot w/o /proc/self/fd from Backlog to QA on the gpgrt board.
Apr 7 2025
Apr 7 2025
• gniibe changed the status of T4021: dirmngr: dirmngr/dns.c issue with 127.0.0.1 from Open to Testing.
Fix pushed by: rG1ed8b0e7b403: dirmngr: Fix libdns with 127.0.0.1.
For Linux kernel, once, it was proposed:
https://patchwork.ozlabs.org/project/netdev/patch/1490748756.24891.27.camel@edumazet-glaptop3.roam.corp.google.com/
Another problem with same cause (possibly) is reported: https://lists.gnupg.org/pipermail/gnupg-devel/2025-April/035845.html
Apr 6 2025
Apr 6 2025
this marked as fixed in 2.4.7. However afaict only one of the two patches made it to STABLE-BRANCH-2-4, b1857a2836c9a91ef4e359ef7ba949b54c77219d did not.
Apr 2 2025
Apr 2 2025
• werner edited projects for T7328: Add Kleopatra configs to gpgconf -X, added: gnupg, Windows; removed gnupg22.
Mar 26 2025
Mar 26 2025
OK. Relying on SQLite semantics for COLLATE NOCASE would not be good.
Exactly same existing semantics (only care about ASCII uppercase characters) is good.
Mar 25 2025
Mar 25 2025
Mar 24 2025
Mar 24 2025
I noticed that the signing key B0D589D46708EC99 is a certify-only key. That signatures made with this key are dropped could be another regression of the fix for dkj's DoS bug.
Taking a bigger sample of keys from the same domain and doing the same testing shows that the signature by B0D589D46708EC99 is removed on all keys.
You mean this would be better becuase it is not clear how we handle X.509 addrsppec (see override_mbox arg of store_into_userid)? I guess COLLATE NOCASE does it the standard way by folding all uppercase characters and not just the ASCII characters as we do in GnuPG. This would be a problem.
Mar 23 2025
Mar 23 2025
ametzler1 renamed T7583: 2.5.5 removes sig on clean that 2.5.4 and earlier kept from 2.5.5 remves sig on clean that 2.5.4 and earlier kept to 2.5.5 removes sig on clean that 2.5.4 and earlier kept.
Mar 21 2025
Mar 21 2025
• werner triaged T7577: GnuPG could not work when TCP congestion provider is set to BBR2 in Windows as Normal priority.
Indeed, GnuPG's IPC uses TCP connections from 127.0.0.1 to 127.0.0.1 taking the destination port (and a cookie) from a file. We can't change that easily to the new Unix socket implementation Windows recently introduced. I hope there is a way to exclude localhost->localhost from congestion control.
I changed my mind. SQLite specific patch might be better:
diff --git a/kbx/backend-sqlite.c b/kbx/backend-sqlite.c index 4c67c3ef7..1db2f2c8d 100644 --- a/kbx/backend-sqlite.c +++ b/kbx/backend-sqlite.c @@ -154,7 +154,7 @@ static struct /* The full user id - for X.509 the Subject or altSubject. */ "uid TEXT NOT NULL," /* The mail address if available or NULL. */ - "addrspec TEXT," + "addrspec TEXT COLLATE NOCASE," /* The type of the public key: 1 = openpgp, 2 = X.509. */ "type INTEGER NOT NULL," /* The order number of the user id within the keyblock or
I changed my mind. SQLite specific patch might be better:
diff --git a/kbx/backend-sqlite.c b/kbx/backend-sqlite.c index 4c67c3ef7..1db2f2c8d 100644 --- a/kbx/backend-sqlite.c +++ b/kbx/backend-sqlite.c @@ -154,7 +154,7 @@ static struct /* The full user id - for X.509 the Subject or altSubject. */ "uid TEXT NOT NULL," /* The mail address if available or NULL. */ - "addrspec TEXT," + "addrspec TEXT COLLATE NOCASE," /* The type of the public key: 1 = openpgp, 2 = X.509. */ "type INTEGER NOT NULL," /* The order number of the user id within the keyblock or
Here is a possible change:
Mar 17 2025
Mar 17 2025
• werner added a comment to T7569: `gpgconf --homedir $x --kill keyboxd` doesn't appear to terminate a running keyboxd.
FWIW: It does works when using GNUPGHOME instead.
• werner closed T7570: `gpg --trust-model always --verify` produces incongruous warning "Using untrusted key!" as Resolved.
This has always been the case. git blame shows for check_signatures_trust:
Mar 14 2025
Mar 14 2025
dkg added a comment to T7570: `gpg --trust-model always --verify` produces incongruous warning "Using untrusted key!".
This seems to be the case on 2.2.46 as well, fwiw. i don't think it's new in 2.4.7.