More questions on gpgme

Stephane Corthesy stephane@sente.ch
Thu Sep 27 19:00:02 2001


Hi,

Here are some more questions on gpgme use:

- Is there a particular return code we can expect when sign  
operation has been cancelled, either user cancelled entry, or program  
aborted context operation? Can we always expect GPGME_No_Data to be  
returned for this case only?

- There is an inconsistent behaviour: if we pass three times an  
invalid (but non empty) passphrase, return code is GPGME_No_Data, but  
if we pass three times an empty (and invalid) passphrase, we get  
GPGME_No_Passphrase.

- I have the following problem: my passphrase callback wants to find  
the GpgmeKey corresponding to the keyID given in the passphrase  
callback (using gpgme_op_trustlist_start()), but DURING the  
passphrase callback. If I use the same GpgmeContext as the one which  
is currently asking for a passphrase, my app crashes: the r_hd in the  
callback has become invalid; if I use a brand new one, the callback  
is called recursively, when I ask to enumerate keys.
Seems there is no way to retrieve the corresponding GpgmeKey during  
passphrase callback... This could be OK when signing, 'cause I know  
the key, but this is not the case when decrypting (though I didn't  
test this case yet).

- Currently there is no way to perform encrypt+sign operations!!!  
gpgme_signers_add() cannot be used for gpgme_op_encrypt().

- Is there a way to get the currently used hash algorithm? Or to set  
it in a GpgmeContext operation?

Thanks,

Stephane