AGWA / git-crypt

Transparent file encryption in git
https://www.agwa.name/projects/git-crypt/
GNU General Public License v3.0
8.18k stars 475 forks source link

0.6.0 fails on Windows #144

Open rasa opened 6 years ago

rasa commented 6 years ago

I compiled 0.6.0 for Windows without issue, and uploaded the executables to https://github.com/rasa/git-crypt/releases

I ran the commands listed on https://github.com/AGWA/git-crypt/wiki/Create-a-Repostiory in both Linux and Windows. In Linux, it-just-works. On Windows, when I run git-crypt status, I get:

    encrypted: myKeys.secure *** WARNING: staged/committed version is NOT ENCRYPTED! ***
    encrypted: mySecret.txt *** WARNING: staged/committed version is NOT ENCRYPTED! ***
    encrypted: passwords.secure *** WARNING: staged/committed version is NOT ENCRYPTED! ***

and when I run git-crypt unlock secret.key, I get:

git-crypt: Warning: file not encrypted
git-crypt: Run 'git-crypt status' to make sure all files are properly encrypted
git-crypt: If 'git-crypt status' reports no problems, then an older version of
git-crypt: this file may be unencrypted in the repository's history.  If this
git-crypt: file contains sensitive information, you can use 'git filter-branch'
git-crypt: to remove its old versions from the history.
git-crypt: Warning: file not encrypted
git-crypt: Run 'git-crypt status' to make sure all files are properly encrypted
git-crypt: If 'git-crypt status' reports no problems, then an older version of
git-crypt: this file may be unencrypted in the repository's history.  If this
git-crypt: file contains sensitive information, you can use 'git filter-branch'
git-crypt: to remove its old versions from the history.
git-crypt: Warning: file not encrypted
git-crypt: Run 'git-crypt status' to make sure all files are properly encrypted
git-crypt: If 'git-crypt status' reports no problems, then an older version of
git-crypt: this file may be unencrypted in the repository's history.  If this
git-crypt: file contains sensitive information, you can use 'git filter-branch'
git-crypt: to remove its old versions from the history.

Here's the complete test script:

git init
touch README.md
git add README.md
git commit -m "Initial Commit"
touch myFile.txt mySecret.txt passwords.secure myKeys.secure
git add -A
git commit -am "Added some files"
git-crypt init
touch .gitattributes
echo mySecret.txt filter=git-crypt diff=git-crypt >.gitattributes
echo *.secure filter=git-crypt diff=git-crypt >>.gitattributes
git add -A
git-crypt status
git commit -m "Added .gitattributes for git-crypt"
git-crypt status
git-crypt add-gpg-user D74CA7EF275BD151
git-crypt status
git-crypt export-key secret.key
git-crypt unlock secret.key 
echo secret1 >myKeys.secure 
echo secret2 >passwords.secure 
echo secret3 >mySecret.txt 
git add -A
git ci -m "encrypted files"
cat mySecret.txt 
git-crypt lock
cat mySecret.txt