Page MenuHome GnuPG

Kleopatra: General error when trying to certify key and key is expired or password prompt is canceled
Closed, ResolvedPublic

Description

The following operations result in "general error" reports from Kleopatra:

  1. Trying to sign a key which is expired. Click on certify.

GPGMEPP_INTERACTOR_DEBUG output:

EditInteractor: 0 -> nextState( KEYEXPIRED, 1641041241 ) -> 0
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 0 -> nextState( (unknown), 240EB8AC896E707877E520F54535A551598A605C 0 ) -> 0
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
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)
EditInteractor: 1 -> nextState( (unknown), 8CC2AEFCD4C5B2786CDE32BE9FEFBA0038865942 0 ) -> 1
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1 -> nextState( GET_BOOL, sign_uid.expired_okay ) -> 4294967295
EditInteractor: error now 536870913 (Allgemeiner Fehler)
  1. Trying to sign a key. Click on certify, then at the password window abort:
EditInteractor: 0 -> nextState( (unknown), A028030B8FA9954E04401F417E99CD5116035BCF 0 ) -> 0
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
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)
EditInteractor: 1 -> nextState( (unknown), 8CC2AEFCD4C5B2786CDE32BE9FEFBA0038865942 0 ) -> 1
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1 -> nextState( GET_BOOL, sign_uid.okay ) -> 1000006
EditInteractor: action result "Y"
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1000006 -> nextState( GOT_IT,  ) -> 1000006
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1000006 -> nextState( (unknown), 9912 qt 1.2.1 /dev/tty - - ? 0/0 - ) -> 1000006
EditInteractor: no action executed
EditInteractor: error now 0 (Erfolg)
EditInteractor: 1000006 -> nextState( ERROR, keysig 83886179 ) -> 4294967295
EditInteractor: error now 536870913 (Allgemeiner Fehler)

Event Timeline

ikloecker triaged this task as Normal priority.
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

How did you manage to certify an expired key? For me the Certify action is always disabled for an expired key or user ID.

With GnuPG VSD 3.1.25 the Certify action is not disabled for me. Neither on Windows nor on Linux system.

ikloecker renamed this task from GpgME++: missing states in ceritfy edit interactor to Kleopatra: General error when trying to certify key and key is expired or password prompt is canceled.Dec 8 2022, 12:24 PM
In T6305#165907, @ebo wrote:

With GnuPG VSD 3.1.25 the Certify action is not disabled for me. Neither on Windows nor on Linux system.

Okay. That was fixed with T6155: Kleopatra: Certify expired userids offered but leads to General Error.

ikloecker changed the task status from Open to Testing.Dec 8 2022, 3:48 PM
ikloecker removed ikloecker as the assignee of this task.
ikloecker moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
ikloecker added a subscriber: ikloecker.

The problem with expired keys may still happen for GpgSignKeyEditInteractor, but Kleopatra doesn't allow certifying expired keys or user IDs. Therefore, I don't look into this.

A canceled password prompt is now handled correctly when certifying keys/user IDs. Moreover, this should now also be handled by all other actions that use an edit interactor internally. (See rMc419376b85ff for a list of all edit interactors.)

ebo claimed this task.

works: the process is canceled without any notification.