Kleopatra: Verifying detached OpenPGP signatures uses different code paths
Closed, ResolvedPublic

Assigned To
Authored By
ikloecker
Jul 9 2026, 11:16 AM

Description

Given a file test.txt with detached OpenPGP signature test.txt.sig.

On verification of test.txt.sig, the new file-based approach (see {6351}) is used for the verification.

On verification of test.txt, the old data-based approach is still used for the verification. This is wrong.

Event Timeline

This fix should be backported for VSD 3.4.

ikloecker changed the task status from Open to Testing.Jul 9 2026, 2:04 PM
ikloecker moved this task from Backlog to WIP on the vsd34 board.

Fixed and backported for VSD 3.4.

Notes for testing: In both cases you should now see that the file paths of the two files are passed to gpg --verify. You can, for example, have a look at the gpgme log.

ikloecker mentioned this in Unknown Object (Maniphest Task).Jul 13 2026, 9:41 AM

Checked with Gpg4win-5.1.0-beta666:

yes, both filenames were given after "--verify" in both cases.

timegrid added a subscriber: timegrid.

Looks good to me on vsd-3.4.0-beta1326 @ win10:

  • selecting test.pdf.sig
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: enter: path=0x0c7d45a0 path=C:\\Program Files (x86)\\GnuPG VS-Desktop\\GnuPG\\bin\\gpg.exe
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 0] = gpg.exe
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 1] = --batch
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 2] = --proc-all-sigs
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 3] = --status-fd
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 4] = 1
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 5] = --logger-fd
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 6] = 3
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 7] = --no-tty
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 8] = --charset=utf8
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[ 9] = --enable-progress-filter
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[10] = --exit-on-status-write-error
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[11] = --ttyname=/dev/tty
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[12] = --verify
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[13] = --
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[14] = C:/Users/g10/Desktop/testdata/test.pdf.sig
2026-08-18 13:13:06 gpgme[4932.704]   _gpgme_io_spawn: check: path=0x0c7d45a0 argv[15] = C:/Users/g10/Desktop/testdata/test.pdf
  • selecting test.pdf
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: enter: path=0x0c7d4f30 path=C:\\Program Files (x86)\\GnuPG VS-Desktop\\GnuPG\\bin\\gpg.exe
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 0] = gpg.exe
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 1] = --batch
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 2] = --proc-all-sigs
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 3] = --status-fd
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 4] = 1
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 5] = --logger-fd
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 6] = 3
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 7] = --no-tty
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 8] = --charset=utf8
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[ 9] = --enable-progress-filter
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[10] = --exit-on-status-write-error
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[11] = --ttyname=/dev/tty
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[12] = --verify
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[13] = --
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[14] = C:/Users/g10/Desktop/testdata/test.pdf.sig
2026-08-18 13:14:06 gpgme[4932.13d4]   _gpgme_io_spawn: check: path=0x0c7d4f30 argv[15] = C:/Users/g10/Desktop/testdata/test.pdf
timegrid edited projects, added vsd34 (vsd-3.4.0); removed vsd34.