Subject: bug#7130: 24.0.50; EPA queries twice and doesn't cache passwords when decrypting files

From: Daiki Ueno <[email-masked]>
Date: Thu, 30 Sep 2010 11:20:00 +0900

tags 7130 moreinfo unreproducible
thanks

Tassilo Horn <[email-masked]> writes:

> I use several symmetrically encrypted files, like my ~/.authinfo.gpg
> used by Gnus.  That file is a symlink to
> ~/repos/configs/dot-authinfo.gpg.  When I find it using emacs (started
> with or without -Q), I have to give my password in a pinentry window,
> then I have to accept following the symlink, and then I have to provide
> the password a second time.
>
> For information about GNU Emacs and the GNU system, type C-h C-a.
> /home/horn/.authinfo: 0% (0/248)
> /home/horn/.authinfo: 100% (248/248)
> Loading vc-git...done
> /home/horn/repos/con: 0% (0/248)
> /home/horn/repos/con: 100% (248/248)
> Followed link to /home/horn/repos/configs/dot-authinfo.gpg
>
> And although I have epa-file-cache-passphrase-for-symmetric-encryption
> set to t, the passwords are not cached (epa-file-passphrase-alist is
> nil).  I've tried to edebug epa-file-passphrase-callback-function, but
> I'm never put into the debugger.  That function seems not to be
> called...

Hrm, I can't reproduce this.  It seems that the only special thing on
your environment is that your dot-authinfo.gpg is version controlled.
However, even if I created a test Git repo and set up the symlink, I can
by-pass the 2nd password query, if
epa-file-cache-passphrase-for-symmetric-encryption is set.

> That's a pretty serious issue for me, because since I entrypted my
> .authinfo (which is good!), I have to enter my password for that file
> gazillion times when starting up Gnus where I use 4 mail/news accounts
> requiring authentication...

Anyway, I added some resources to "(epa)Bug Reports".  Could you provide
more information to reproduce this?  Ideally, with a script to setup the
test environment.  Here are the steps I tried:

$ mkdir -p /tmp/test && cd /tmp/test
$ gpg --symmetric > dot-test.gpg < /dev/null
$ git init
$ git add dot-test.gpg
$ cd .. && ln -s test/dot-test.gpg .test.gpg
$ emacs -Q
$ M-: (setq epa-file-cache-passphrase-for-symmetric-encryption t)
$ C-x C-f .test.gpg

Regards,
-- 
Daiki Ueno