I examined the code of gnupg_sysconfdir in gnupg/common/homedir.c, if we could factor out things to gpgrt, so that something like gpgrt_fconcat with GPGRT_SYSCONFDIR can be implemented.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Nov 25 2025
Nov 24 2025
Nov 23 2025
git checkout gnupg-2.5.14, reverted the commits 46f4cb66125ee34e87e592cc02d38daead3427af and 0cc7759ed5a3890b4e28563a6b5e97f3aa551530, recompiled, and the error message gpg: keydb_search_first failed: SQL error no longer appeared. Also, in /root/.gnupg/public-keys.d/, the two files pubring.db.lock and .#lk0x0000... are present.
Nov 21 2025
Looks good to me on gpg4win-5.0.0-beta413 @ win11.
Let me explain about the change rG57affc4e98ab.
Additionally, in the /root/.gnupg/public-keys.d/ directory, the two files .#lk0x00007fdcb40043b0.b02bef684bbe.5108 and pubring.db.lock are missing.
Nov 20 2025
gpg was compiled with the latest version of SQLite3 at the time as its own private library, without linking against the system's libsqlite3.so.
Can you please schek which Sqlite version you have installed? I have not seen this on my system.
keyboxd (GnuPG) 2.5.13
gpg -K
cat keyboxd.log
listening on socket '/root/.gnupg/S.keyboxd' keyboxd (GnuPG) 2.5.13 started handler 0x7f2eba314640 for fd 9 started connection from process 4361 (0:0) (SQL: PRAGMA foreign_keys = ON) (SQL: CREATE TABLE IF NOT EXISTS config (name TEXT NOT NULL UNIQUE,value TEXT NOT NULL )) database version: 1 database created: 2025-11-20 06:11:12 (SQL: CREATE TABLE IF NOT EXISTS pubkey (ubid BLOB NOT NULL PRIMARY KEY,type INTEGER NOT NULL,ephemeral INTEGER NOT NULL DEFAULT 0,revoked INTEGER NOT NULL DEFAULT 0,keyblob BLOB NOT NULL)) (SQL: CREATE TABLE IF NOT EXISTS fingerprint (fpr BLOB NOT NULL PRIMARY KEY,kid BLOB NOT NULL,keygrip BLOB NOT NULL,subkey INTEGER NOT NULL,ubid BLOB NOT NULL REFERENCES pubkey)) (SQL: CREATE INDEX IF NOT EXISTS fingerprintidx0 on fingerprint (ubid)) (SQL: CREATE INDEX IF NOT EXISTS fingerprintidx1 on fingerprint (fpr)) (SQL: CREATE INDEX IF NOT EXISTS fingerprintidx2 on fingerprint (keygrip)) (SQL: CREATE TABLE IF NOT EXISTS userid (uid TEXT NOT NULL,addrspec TEXT,type INTEGER NOT NULL,uidno INTEGER NOT NULL,ubid BLOB NOT NULL REFERENCES pubkey)) (SQL: CREATE INDEX IF NOT EXISTS userididx0 on userid (ubid)) (SQL: CREATE INDEX IF NOT EXISTS userididx1 on userid (uid)) (SQL: CREATE INDEX IF NOT EXISTS userididx3 on userid (addrspec)) (SQL: CREATE TABLE IF NOT EXISTS issuer (sn TEXT NOT NULL,dn TEXT NOT NULL,ubid BLOB NOT NULL REFERENCES pubkey)) (SQL: CREATE INDEX IF NOT EXISTS issueridx1 on issuer (dn)) database '/root/.gnupg/public-keys.d/pubring.db' created (SQL: SELECT ubid, type, ephemeral, revoked, keyblob FROM pubkey as p WHERE p.type = 1 ORDER by ubid) (SQL: SELECT ubid, type, ephemeral, revoked, keyblob FROM pubkey as p WHERE p.type = 1 ORDER by ubid) command 'NEXT' failed: Not found handler 0x7f2eba314640 for fd 9 terminated
Interesting. What SQlite version are you using? To see the exact reason and you have a copy of the old pubring.db, please add
Applied the change to master: rG57affc4e98ab: common,agent,dirmngr,kbx:w32: Synchronous spawning daemon process.
I applied a change with GPGRT_ATTR_NONSTRING to master, since 2.6 branch now requires newere gpgrt.
Fix is rGcad79e542d85: agent,common,dirmngr,tests: Silence warnings of a compiler.
For GnuPG, applied the change to master: rG57affc4e98ab: common,agent,dirmngr,kbx:w32: Synchronous spawning daemon process.
t-stringhelp change was pushed by rG8a95e963d53a: common: Fix the test of t-stringhelp.
For int-truncation, I pushed the change rGbcd87ea2b2da: misc: Validate the value on the use of strtol.
Nov 19 2025
The problem is that a user may unintentionally use the suggested filename without checking that it does not harm to write to this file. It is better not to present a default name at all.
Nov 18 2025
I believe this bug was fixed by T7829. Please confirm with new gpgwin-5.0.0-beta.
Nov 17 2025
works with Gpg4win-5.0.0-beta395, too
g++-15 foo.cc `pkg-config --cflags --libs gpgmepp` -o foo -O2 -Wall --std=c++23
Please show the command line of the linker.
Nov 16 2025
Nov 14 2025
Great, thanks!
I considered to make the --display argument optional but that still leads to the error. Thus better do not set or send it at all. I did this now for all gpgme engines.
Nov 13 2025
Nov 12 2025
I checked the code under gnupg/dirmngr. Those are no harm.
Nov 11 2025
There are a lot of other ways to confuse the user. We can't fix them all because the whole purpose of a cleartext signature is to make it easy to use in legacy environments like an BBS. Modern systems use MIME to handle this in a more stringent specified way. For any use it is stongly suggested to check the actual signed data which is avaialable with the --output options. At least a sanitizing viewer should be used which filters out all escape characters (something like cat -v |less).
We have seen wrong encodings quite often in the past and thus we won't apply the patch. After all the armor header is a different layer and could also be applied or removed by other software or tools. The integrity of an OpenPGP message does not depend on its concrete outer encoding.
For someone who considers the rejection is the requirement of the spec., here is a change:
Here is a revised patch (hopefully the last one):
Nov 6 2025
Applied to 1.11 branch.
Nov 5 2025
I think this is correct even on Unix in case someone really uses /usr/local/etc (which I consider problematic). But for Windows we need to determine this at runtime.
For gpgrt/argparse this could be an option (to remove hard-coded /etc):
Here is a patch (revised since the email of mine):
For t-stringhelp.c, here is a fix.
For
openpgp_oid_from_str has a wrong memory-safety assumption
For Integer Overflow in literals_seen, I think that the claim is wrong.
When literals_seen becomes two, GnuPG stops processing to return an error.
It's not possible for GnuPG to keep processing.
For Integer Truncation of Arguments report, since the int value is limited to one-octet value, we could add check for the length of input when we use strtol.
Nov 4 2025
We have fixed it but the commit also states:
I agree because the original purpose from the 90ies to enable the use of signed patch files in the Linux kernel community was never actually used and GnuPG stopped the distribution of patches from version to version many years ago. Thus I agree we should hide this option behind a compatibility flag.
Added a compatibility flag in: rGad0c6c33c3d6: gpg: Do not use a default when asking for another output filename.
This feature should be only enabled with a compatibility flag.
Mitigation would be: adding context validation in add_onepass_sig function, which checks WHAT of armored input.
Pushed the revised change to master.
Nov 3 2025
For argparse we use /etc as a default but applications may use gpgrt_set_confdir to set a different one. Howeever if we already have a new get_sysconfdir function, it is easy and useful to change the default on Unix.
In GnuPG we use CSIDL_COMMON_APPDATA and append "\GNU\etc\gnupg". If this can't be found we use the rootdir, that is he installation directory of the binary or one up if installed below a bin directory. The reason for using GNU and not POSIX or Unix is merely to avoid name clashes with other software ported to Windows. There was no real standard for this on Windows.
We already did this for Libgcrypt 1.8 but take care that an installer includig Libgcrypt should run something like
It is not an ADSK issue. The problem is that the new subkey has not been entered into the fingerprint table and can thus not be found.