gnome-keyring Auto launched gpg-agent doesn't work with pinentry-gnome3



The auto-launched gpg-agent doesn't work with pinentry-gnome3. We see
this in the gpg-agent logs:

2015-06-09 09:26:53 gpg-agent[11676] failed to unprotect the secret key:
Operation cancelled
2015-06-09 09:26:53 gpg-agent[11676] failed to read the secret key
2015-06-09 09:26:53 gpg-agent[11676] command 'PKDECRYPT' failed:
Operation cancelled <Pinentry>

It also seems that the stderr output of pinentry programs are discarded.
I couldn't find the output anywhere for diagnosis. I had to do this to
see what was going wrong in pinentry main():

dup2 (open ("/tmp/pinentry.log", O_WRONLY | O_CREAT | O_APPEND), 2);

Once I did that, I could see:

** (pinentry-gnome3:11678): WARNING **: couldn't create prompt for gnupg
passphrase: Error spawning command line 'dbus-launch
--autolaunch=1c5785a20dda4b3abffa4e903a66f54d --binary-syntax
--close-stderr': Child process exited with code 1

This is because (at least) the following environment variable is not
available:

DBUS_SESSION_BUS_ADDRESS

I think this needs be added to the set of environment variables allowed
through to the gpg-agent and pinentry program?

Yuuma, since you're working to help finish up this work, here's probably
another task you could work on patches for.

I would propose two changes:

 1. Pass DBUS_SESSION_BUS_ADDRESS to gpg-agent and pinentry
 2. Route pinentry stderr output to the gpg-agent logging routines.

The latter is obviously less critical, but it does help us track down
issues going forward once people start actually using this.

Cheers,

Stef


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]