Subject: bug#9113: 24.0.50; auth-sources: .authinfo versus .authinfo.gpg, bug#9113: 24.0.50; auth-sources: .authinfo versus .authinfo.gpg, bug#9113: 24.0.50; auth-sources: .authinfo versus .authinfo.gpg

From: Ted Zlatanov <[email-masked]>
Date: Thu, 26 Jan 2012 14:01:39 -0600

>>> 2) use unencrypted authinfo with encrypted password tokens, which
>>> looks like this:
>> 
>>> machine supertest password
>>> gpg:jA0EAwMC2tUEaZgM7A5gyWM/owySdCOS/cjoFCuf8LI1d1kYX7z6cjsNkakM04u1geh/iesqyH3XQFI+SEVLb/oEC/EoQ0LIgRRoBiLyu9XZWN1ytY7MQxpPZniFz13oGV4/Dwl8yrP3Hba5LfQpHy2FZRM=

On Thu, 26 Jan 2012 18:53:46 +0100 Achim Gratz <[email-masked]> wrote: 

AG> That looks appealing.  Can it work with ssh-agent also?

No, unfortunately.

On Thu, 26 Jan 2012 12:28:47 -0500 Stefan Monnier <[email-masked]> wrote: 

SM> That might be a good option.

It works fairly well but it's hacky, and can't be shared with other
programs.  I'd like to implement it with libnettle at least, so it
doesn't depend on the external gpg utility.  But yes, we could do this
one and it would work on all platforms with libnettle.

On Thu, 26 Jan 2012 18:52:25 +0100 Lars Ingebrigtsen <[email-masked]> wrote: 

LI> Yes.  But it will require the user to type in a password to get to the
LI> password.  :-)  And again, programs like Firefox defaults to storing the
LI> passwords in non-encrypted files, so I don't really see why Emacs should
LI> be more difficult to use than Firefox.

The encryption doesn't have to be strong.  It could use a well-known
secret that the user can override, rather than an actual passphrase, and
then no questions will be asked.

SM> Another option (the better long-term option) is to use an external
SM> keychain service to handle these issues.  That's what we should focus on
SM> for the "next time".

Do you mean gpg-agent or the OS keychain?  Neither is available on all
platforms consistently.

>> IIRC for 23 the default was to keep the password for the current session
>> and not to store it in any file at all.  I think it's a better default
>> than writing it in clear in some file, so at least for 24.1 reverting to
>> the Emacs-23 default is very attractive.

LI> Well, Emacs 23 just made you write the .authinfo file by hand.  Emacs 24
LI> prompts you for whether you want to store the password or not.  If you
LI> don't want to, say "n".

One possible flow:

If the user says `y' then we can ask (if `auth-sources' is 'ask) 
"Do you want to keep your passwords in a GPG-encrypted file?"

If they say `y' then set `auth-sources' to "~/.authinfo.gpg" and check
that EPA/EPG are enabled. If GPG is not available, what do we do? Use
libnettle? Or explain and pretend they said `n'?

If they say `n' then set `auth-sources' to "~/.authinfo".

So it's one extra step.  But it is getting unwieldy.

Ted