identical files -> non-identical encrypted files

Roscoe eocsor at gmail.com
Sat Aug 2 21:13:42 CEST 2008


On Tue, Jul 22, 2008 at 12:08 PM, Ian Zimmerman <itz at buug.org> wrote:
> I have a local file that I want to encrypt and upload to a remote
> machine in encrypted form.  Encrypting is farily quick, but uploading is
> slow, so I use rsync for the other (unencrypted) files.  But the fact
> that the encrypted file is different each time defeats the rsync
> incremental upload.
>
> A partial workaround is only encrypting when the plaintext file is newer
> than the encrypted one, but it's not bulletproof because sometimes the
> plaintext _does_ get saved even if it's identical.
>
> Not a huge deal, in all, but someone must have faced this situation before.


So is the local file is available in an unencrypted form on your host?
If so one could utilise some scheme involving rdiff.

There's also http://duplicity.nongnu.org/ which I think does something
similar, but in an easier to use way.




0 ~$ cd test
0 ~/test$ echo hello > mysecretfile
0 ~/test$ mkdir remotesite
0 ~/test$ gpg -o remotesite/mysecretfile.gpg -c mysecretfile
0 ~/test$ rdiff signature mysecretfile mysecretfile-uploaded-signature
0 ~/test$ echo i think this will work >> mysecretfile
0 ~/test$ rdiff delta mysecretfile-uploaded-signature mysecretfile
mysecretfile. update1
0 ~/test$ gpg -o remotesite/mysecretfile.update1.gpg -c mysecretfile.update1
0 ~/test$ rdiff signature mysecretfile mysecretfile-uploaded-signature
0 ~/test$ echo i hope this will work >> mysecretfile 0 ~/test$ rdiff
delta mysecretfile-uploaded-signature mysecretfile mysecretfile.
update2
0 ~/test$ cd remotesite
0 ~/test/remotesite$ gpg -o mysecretfile -d mysecretfile.gpg
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
0 ~/test/remotesite$ gpg -o mysecretfile.update1 -d mysecretfile.update1.gpg
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
0 ~/test/remotesite$ gpg -o mysecretfile.update2 -d mysecretfile.update2.gpg
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
0 ~/test/remotesite$ ls
mysecretfile  mysecretfile.gpg  mysecretfile.update1
mysecretfile.update1.gpg  mysecretfile.update2
mysecretfile.update2.gpg
0 ~/test/remotesite$ cat mysecretfile
hello
0 ~/test/remotesite$ rdiff patch mysecretfile mysecretfile.update1
mysecretfile.1
0 ~/test/remotesite$ rdiff patch mysecretfile.1 mysecretfile.update2
mysecretfile.2
0 ~/test/remotesite$ cat mysecretfile.2
hello
i think this will work
i hope this will work
0 ~/test/remotesite$



More information about the Gnupg-users mailing list