Thread (3 messages) flat view 3 messages, 2 authors, 2016-06-15

Re: Using gpg and gitattributes together

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:44:18

Hi,

On Wed, 27 Feb 2008, Johannes Schindelin wrote:
I just added my .netrc to a repository where I track some files that I 
would hate to lose.  However, since I mirror that repository to a 
machine where other people than me have root access, I thought that I 
encrypt the file with gpg.

To make this procedure more convenient for me, I decided not to encrypt 
with a private key, but with a passphrase, and to use gitattributes to 
do the encryption for me:

$ echo 'netrc filter=gpg' > .gitattributes
$ git config filter.gpg.clean 'gpg --cipher-algo AES256 -c'
$ git config filter.gpg.smudge 'gpg --decrypt'
$ git add netrc

It asks quite a few times for the passphrase (as expected), but I had to 
add the file twice (not expected).  However, since it worked now, I am 
happy.

Maybe somebody else will find this information useful.
Unfortunately, this procedure has an issue I was not able to fix, and not 
even Daniel's checkout patch could fix it.

When encrypting, gpg uses a random element (to make the encryption harder 
to break, I guess).  So when I update netrc with "git add" (and nothing 
was changed), git will have a _different_ blob.

So I just tried "git checkout netrc", hoping that the index would be 
updated to say that the netrc file is current, after writing it.

But that did not work, since git checkout insisted on readding the file 
(which again resulted in a different blob, and therefore netrc seems to be 
out-of-date at all times).

So scrap that method.

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help