Page MenuHome GnuPG

Kleopatra: General error on import + certify with revoked and valid UID
Testing, NormalPublic

Description

How to reproduce:
You need a public key with two UIDs: one valid and one revoked UID.
When importing that key and trying to immediately certify it when prompted by the import dialog window, the certification results in a general error.
Certifying it after the import from the context menu works, though.

Debugview output is short, this is from the OK to the question if you want to certify now until the error occurs:

499	3866.983050	7548	kleopatra.exe	org.kde.pim.kleopatra: handleOwnerTrust Skipping non-OpenPGP import
500	3875.423807	7548	kleopatra.exe	org.kde.pim.kleopatra: Checked user IDs: std::vector("Jane Tester")
501	3875.424121	7548	kleopatra.exe	org.kde.pim.kleopatra: Checked user IDs: std::vector("Jane Tester")
502	3886.348538	7548	kleopatra.exe	org.kde.pim.kleopatra: Checked user IDs: std::vector("Jane Tester")
503	3886.353979	7548	kleopatra.exe	org.kde.pim.kleopatra: Checked user IDs: std::vector("Jane Tester")


GPGMEPP_INTERACTOR_DEBUG:

Details

Version
at least vsd 3.2.2 and newer

Event Timeline

The interactor log shows what's happening:

EditInteractor: 0 -> nextState( GET_LINE, keyedit.prompt ) -> 1
EditInteractor: action result "lsign"
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1 -> nextState( GOT_IT,  ) -> 1
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)

gpg asks what to do. Kleopatra answers "lsign".

EditInteractor: 1 -> nextState( GET_BOOL, keyedit.sign_all.okay ) -> 2
EditInteractor: action result "Y"
EditInteractor: error now 0 (Erfolg)
EditInteractor: 2 -> nextState( GOT_IT,  ) -> 2
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)

gpg asks if all user IDs shall be signed. Kleopatra answers "Y".

EditInteractor: 2 -> nextState( (unknown), F367A0B399AFD967DD1C018E66FC6CB57BB8FD02 0 ) -> 2
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 2 -> nextState( GET_BOOL, sign_uid.revoke_okay ) -> 4294967295

gpg asks if the revoked user ID shall be signed. gpgme/Kleopatra doesn't expect this question. -> error

The bug doesn't occur when the normal certification process is used because there we specifically tell gpg which user IDs to sign (excluding the revoked one).

ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
werner renamed this task from Kleopatra: General error on import + certify to Kleopatra: General error on import + certify with revoked and valid UID.Sep 2 2024, 5:03 PM
werner triaged this task as Normal priority.
ikloecker changed the task status from Open to Testing.Sep 4 2024, 10:23 AM

This was fixed in gpgme and is therefore automatically in VSD 3.3

ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
ebo moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.Fri, Nov 22, 4:10 PM

Gpg4win-Beta-75++

Works!