[It would be great, if you wouldn't top-post even if this isn't easy with Outlook or Office 365 or whatever email client you are using.]
On Freitag, 11. März 2022 10:29:41 CET Schultschik, Sven via Gnupg-users wrote: > The method gpgme_op_encrypt provides the interactive possibility itself. > > If you don't set a passphrase with gpgme_set_passphrase_cb before calling > gpgme_op_encrypt, it asks itself for a passphrase. > > See screenshot. Okay. You are using pinentry-curses. > There are more issues with this interactive view. > > 1. Cancel does not send an error I cannot reproduce this. For me it works correctly. ``` $ export GNUPGHOME=$(mktemp --directory) $ cat >${GNUPGHOME}/gpg-agent.conf <<EOF pinentry-program /usr/bin/pinentry-curses EOF $ ./t-encrypt-sym [Tab][Tab][Enter] ../../../../src/gpgme/tests/gpg/t-encrypt-sym.c:67: GPGME: Operation cancelled ``` > 2. If you wait for the timeout of the passphrase form, it returns Error 0 > Success as well Let's try. ``` $ cat >>${GNUPGHOME}/gpg-agent.conf <<EOF pinentry-timeout 5 EOF $ gpgconf --kill all $ ./t-encrypt-sym [wait 5 seconds ...] ../../../../src/gpgme/tests/gpg/t-encrypt-sym.c:67: GPGME: Operation cancelled ``` > 3. Ctrl+C does not cancel the gpgme passphrase entry. See > screenshot 2 Pressing Ctrl+C while t-encrypt-sym is running and pinentry-curses is asking for the password quits pinentry-curses and t-encrypt-sym without further output. That's common behavior for command line programs. My conclusion is that gpgme_op_encrypt() is working as expected as my experiments with the official test t-encrypt-sym proves. I suspect that there is something wrong with your program. Please have a look at the official test t-encrypt-sym (in tests/gpg of gpgme's source code) and check what you are doing differently. I'm using gpgme 1.17.1. Regards, Ingo > -----Ursprüngliche Nachricht----- > Von: Gnupg-users <gnupg-users-boun...@gnupg.org> Im Auftrag von Ingo Klöcker > Gesendet: Donnerstag, 10. März 2022 22:16 > An: gnupg-users@gnupg.org > Betreff: Re: Cancel operation does not return error code > > On Donnerstag, 10. März 2022 14:30:29 CET Schultschik, Sven via Gnupg-users > > wrote: > > if your using gpgme with interactive password entry on the command > > line and the user cancels the operation, shouldn't there be an error > > returned? > > > > Following code > > > > err = gpgme_op_encrypt(ctx, NULL, GPGME_ENCRYPT_SYMMETRIC, in, out); > > > > fprintf(stdout, "DEBUG ERROR Code = \%d \%s \%s\n" , > > gpgme_err_code(err), > > gpgme_strsource(err) , gpgme_strerror(err)); > > > > If user cancel on the passwort screen, the following error code is > > returned > > > > ERROR Code = 0 Unspecified source Success > > When I run t-encrypt-sym (in gpgme/tests/gpg) and cancel the passphrase > dialog provided by pinentry-qt, then t-encrypt-sym prints > ../../../../src/gpgme/tests/gpg/t-encrypt-sym.c:67: GPGME: Operation > cancelled > > When I force usage of pinentry-tty and cancel the passphrase entry with > Ctrl+D, then I get the same result: > ===== > $ ./t-encrypt-sym > Enter passphrase > > Passphrase: > ../../../../src/gpgme/tests/gpg/t-encrypt-sym.c:67: GPGME: Operation > cancelled ===== > > So, in general, gpgme_op_encrypt seems to return the correct error code. > What I'm wondering is how do you cancel "interactive password entry on the > command line" resp. how do you do "interactive password entry on the > command line"? > > Regards, > Ingo
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Gnupg-users mailing list Gnupg-users@gnupg.org https://lists.gnupg.org/mailman/listinfo/gnupg-users