parsing encrypted netrc file

MRAB python at mrabarnett.plus.com
Mon Jun 22 21:08:19 EDT 2020


On 2020-06-23 01:47, Seb wrote:
> On Tue, 23 Jun 2020 00:40:28 +0100,
> MRAB <python at mrabarnett.plus.com> wrote:
> 
>> On 2020-06-22 23:38, Seb wrote:
>>> Hello,
> 
>>> What's the pythonic way to do this without polluting the user's
>>> directory with the decrypted file?  I wrongly thought this should do
>>> it:
> 
>>> import os.path as osp import gnupg import netrc import tempfile
> 
>>> gpg = gnupg.GPG()
> 
>>> with open(osp.expanduser("~/.authinfo.gpg"), "rb") as f: with
>>> tempfile.NamedTemporaryFile("w+") as tf: status = gpg.decrypt_file(f,
>>> output=tf.name) info = netrc.netrc(tf.name)
> 
>>> which fails as the temporary file doesn't even get created.
> 
>> Are you sure it doesn't get created?
> 
> Without using tempfile:
> 
> with open(osp.expanduser("~/.authinfo.gpg"), "rb") as f:
>      status = gpg.decrypt_file(f, output=".authinfo.txt")
>      info = netrc.netrc(".authinfo.txt")
> 
> I get the error:
> 
> NetrcParseError: bad follower token 'port' (.authinfo.txt, line 1)
> 
> which is interesting.  The structure of ~/.authinfo.gpg is:
> 
> machine my.server.com login user at foo.com password mypasswd port 587
> 
> so it seems this is not what netrc.netrc expects.
> 
Here's a page I found about ".netrc":

https://ec.haxx.se/usingcurl/usingcurl-netrc

and here's a page I found about ".authinfo.gpg":

https://www.emacswiki.org/emacs/GnusAuthinfo

Can you see the subtle difference?


More information about the Python-list mailing list