We investigated this a bit and it only happens when trying to sign with a non VSD key when gnupg is in VSD mode
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Mar 12 2025
Something went wrong during signing - the question is what.
Did you also tried with --no-sig-cache ? That could help to get a better insight into the reason for that difference.
Mar 11 2025
OK, now i really don't know what the issue is on the 2.4 branch. trying to replicate it with and without this patch, the --with-colons output of --check-sigs appears to depend on the order in which the certificates were ingested.
hm, digging a bit further, i think the above changes have to do with third-party signatures using SHA1, *not* with expired certifiers. in 2.4.7, i see a change from % to ! for these certifications. (2.2.x, which i know is EOL) shows the difference between ? and !. I'm trying to make a simpler replicator now.
Please test using the latest gpg4win installer (beta145).
Backported for VSD 3.3.x / Gpg4win 4.4.x
With the patch "gpg: Fix regression for the recent malicious subkey DoS fix", there is a change in how gpg --check-sigs reports certifications from expired keys.
Mar 7 2025
it would be great to include a test in the test suite that ensures that the --status output behaves as expected in the face of expired or revoked keys.
tested with version 4.0.0.250370 (Gpg4win-5.0.0-beta125): no pop-ups
After testing the feature again with Beta 5.0.0-125 I repeat myself: this works.
There is the action "Unblock card" for unblocking the card with the rest code / PUK.
I think that major signal sources for K have been killed so far.
Mar 6 2025
rG25d48663f9 seems to fix this for me. However in my test cases I got a hang in dirmngr simply by running several gpgsm instances to get the details of an X.509 key. I had different logging options enabled, though.
Please use "unbreak now" only for *released* software with a criticial bug.
Thanks for the report! That's indeed a regression introduced by the changes for T7527: Keyring/keybox denial of service. Commenting/Removing line https://dev.gnupg.org/source/gnupg/browse/master/g10/getkey.c$343 seems to fix the regression, but (very likely) this would reintroduce the issues reported in T7527: Keyring/keybox denial of service.
Mar 5 2025
whether you use --pinentry-mode=loopback or --pinentry-mode=cancel or --pinentry-mode=error, if gpg-agent has cached the password already, the decryption will work; otherwise, it will fail with an error like that describe above.
here's an example of no prompting at all using --pinentry-mode=loopback:
Mar 4 2025
Feb 28 2025
This is also causing problems with ostree, see https://bugs.debian.org/1098951 and https://github.com/ostreedev/ostree/issues/3386
I remove the milestone tag, as that one means "fixed in version 2.2.46" and added the general gnupg tag
Feb 27 2025
The same effect seems to be happening on signatures made from expired keys.
works as described.
Feb 26 2025
The certificate can also be downloaded from https://www.bsi.bund.de/DE/Service-Navi/Kontakt/smime.html
Feb 25 2025
One more change for _gcry_dsa_gen_k in rC54caef02afa9: cipher:(EC)DSA: Simply use mpi_clear_highbit in _gcry_dsa_gen_k.
One more change for mpi_invm in rCc1da86e45a6e: mpi: Avoid normalizing MPI in _gcry_mpi_invm.
Feb 24 2025
Feb 22 2025
Thank you @werner ! I can confirm that the patches that have landed on STABLE-BRANCH-2-4 do clear up the DoS i was seeing for signature verification.
Feb 21 2025
The patch below fixes the master branch to be compliant with the standards for CSF message generation and verification.
New Situation
Once I started testing in logging mode the problem had gone away already. There were some hints to HTTPS certificate issues, but nothing really to blame. Neither with nor without logging the problem could be reproduced after two days of questioning me.
Also fixed for 2.4
This has been fixed in master with rG48978ccb4e:
Finally removed with gpgme 2.0
Closed after the release of 2.5.4
Right when you use a different homedir you also need to pass --homedir to gpgconf or set GNUPGHOME before invoking gpgconf. If you call gpgconf via GPGME the --homedir option is passed; afaics we don't have a kill option gpgme.
This even happens with native Windows applications thus normal priority. Users need to watch the taskbar for blinking items.
The caching works on the base of the requested domain, that is example.org and not openpgpkey.example.org - thus it should not make a difference when you change your setup. There is an initial test for a cached domain status before the resolving process starts. If you want to look yourself: gnupg/dirmngr/server.c:cmd_wkd_get() and domainfo.c.
Reproducibility
The problem cannot be confirmed generic on domain level. I can reproduce the effect with keys shipped from my domain, i.e. email addresses @shimps.de, but the issue vanishes when I try to reproduce it with email addresses @gnupg.org as e.g. Werner's address.
Feb 20 2025
Well, the different outcome depends on the order of the certificates or the string comparision in keyboxd. So it is not a keyboxd vs. pubring.kbx thing.
Okay, I can reproduce it when not using keyboxd.
Feb 19 2025
I can't remember that we ever had support this. It is also not easy to come up with the good way to present the status for all files in a folder. We would need to define a format similar to what sha1sum uses: A list of file with they signature file or so. Note that kleopatra has support for running sha256sum in such a way.
Sorry. I can't reproduce this. Neither with master nor with the 2.4 repo version.
We don't have this exact action on windows, but the normal "Decrypt & Verify" action shows up for folders there (and doesn't work either).
All changes are pushed to master.
Feb 18 2025
the reproducer is:
I don't think this is fixed. With this patch in place, if i import blocker.cert first, and then import distsigkey.gpg, it looks to me like i still can't verify signatures made from any of the GnuPG signing keys.
Feb 14 2025
Use of mpi_cmp is now being fixed, by providing _gcry_mpih_cmp_lli function.
Along with that, we need to fix use of mpi_cmp_ui, since it's skips earlier depending its limbs.
diff --git a/cipher/dsa-common.c b/cipher/dsa-common.c index 170dce12..e010e182 100644 --- a/cipher/dsa-common.c +++ b/cipher/dsa-common.c @@ -25,6 +25,7 @@
Feb 13 2025
Just a note that i've tested this and --clearsign appears to be problematic for 2.4.7 as well as 2.2.40.
Feb 12 2025
a demonstration:
Here we go:
Thanks.
Alright, my above putenv option won't work because it modifies the session environment and thus needs to be run for each gpg-agent session (connection). Adding a putenv_startrup option would help here but this way each connection could chnage the environment - also not good. In the end a way to modify the used environment variables, as you suggested, is a better way.
Feb 11 2025
Yes, the workaround is to use a pinentry wrapper script that sets the value back to the correct one and then invokes the real pinentry.
The actual cause here was that right before storing the imported key we need to decide whether to insert or update a keyblock. For this we need to lookup the key in our database and the lookup function does the usual thing by looking at any fingerprint. This is wrong: Here we need to lookup only by primary fingerprint. This is what the above patches do.
That is not a new issue. We have the very same issue since ever. However, without keyboxd you had random results depending on the order of the keys in the keyring.
Feb 10 2025
To be clear about what's going on here, blocker.cert has simply adopted the primary keys of each certificate found in /usr/share/gnupg/distsigkey.gpg -- i think GnuPG requires each component key in its keystore to have a unique fingerprint across all component keys in the keystore. so when one certificate claims those fingerprints as subkeys, any certificate that has a primary key with a matching fingerprint gets rejected with doesn't match our copy.