Gpgme 1.1.3 and gnupg 2.0.2 do not interact properly under some circumstances.
As an example, using gpgme
- create a context,
- select the signer's key,
- create the input and output data objects, and then
- call gpgme_op_sign().
Gpg-agent kicks in and calls pinentry to read the passphrase of the secret key.
Now click cancel in pinentry - and gpgme_op_sign() will return with exit code
0! (Log file attached, name gpgme-gnupg2.0.2.log)
Replacing gpg2 by gpg 1.4.5, everything works flawlessly (see attached log
gpgme-gnupg1.4.5.log). Please note that at the end of this log, apparently more
information about the failed operation is available (fd 33:
"MISSING_PASSPHRASE", "BAD_PASSPHRASE").