Looking for simple wrapper for symmetric key file encryption

Mr. Clif clif at eugeneweb.com
Sun Jan 19 07:50:49 CET 2014


So no one got back to me.

Does anyone use symmetric file encryption? What is the best practice 
here? I heard of another solution which was to mount an encrypted 
directory with fuser to drop files into. I think I would wounder how 
safe the passphrase was for mounted filesystems, though I know of some 
techniques for protecting them.

Any pointers regarding best practices for  symmetric file encryption 
would be much appreciated.

     Thanks,
     Clif

On 01/17/2014 01:15 PM, Mr. Clif wrote:
> Greetings!
>
> I've been happily using pgp and gpg off and on for decades. One thing 
> I never quite figured out was what the best way to use it for 
> encrypting sensitive files on disk. After doing that one has to 
> remember to cleanup after themselves and delete all the leftover 
> plaintext versions of the file, or it kind of defeats the whole 
> purpose, and its pretty easy to make a mistake when doing it manually. 
> I always felt that GPG should help you a bit more in that regard. Now 
> I know that full disk encryption might be a way around this, but it 
> seems like overkill if you just have a couple of files to protect.
>
> I have searched high and low and checked out GnuPG Shell, GPA, 
> Seahorse, XAP, and some other misc wrappers but nothing seemed to fit 
> my use case. So I wrote a simple wrapper in perl. Basically it just 
> lets you toggle a file between plaintext and encrypted forms without 
> letting the plaintext version touch/remain on the disk, unless that is 
> what you want.
>
> #! /usr/bin/perl -U
> #       This Perl script is a wrapper around GPG to decrypt or encrypt 
> a file.
> #    It's goal is to try to prevent plaintext from touching, or remaining
> #    on the disk, something GPG fails to do. If there is a new file 
> created
> #    It will be in the same directory as the original unless you 
> specify a new
> #    path in a second arg.
> #
> #    By Clif 12/05/13
> #
>
> # External utilities
> $GPG   = "/usr/bin/gpg";              # GnuPG 1.4.15
> $SHRED = "/usr/bin/shred";                      # secure file deleter 
> (GNU coreutils) 8.13
>
> # Arguments
> ($arg, $dest) = @ARGV;
>
> # Break down the pathname
> $path = $1 if $arg  =~ /^(.*?)(\/[^\/]*)$/;
> $file = $1 if $arg  =~ /([^\/]+)\/?$/;
> $base = $1 if $file =~ /^(.+?)(\.[^.]*)?$/;
> $ext  = $1 if $file =~ /\.([^. ]*)\s*$/;
>
> # Get destination
> if ($dest) {
>      $destp = 1;
>      $dest .= "/$base" if (-d $dest);
>      $dest =~ s/\.asc\s*$//;
> } else { $dest = $path ? "$path/$base" : $base }
>
> # Is this a planetext or an encrypted file?
>
> if (-r $arg) {
>     if ($ext eq "asc") {                    # Encrypted
>         if ($destp) { system("$GPG -o $dest $arg") }
>         else        { system("$GPG -o -     $arg") }
>     } else {                        # Plaintext
>         unlink "${dest}.asc";
>         $err = system("$GPG -o ${dest}.asc -ca --cipher-algo AES256 
> $arg");
>         if ($err) { print "ERROR = $err\n" }
>         else      { system("$SHRED -un9 $arg") }
>     }
> } else { warn "No such file: $arg\n" }
> # All done
>
>
> Obviously it could be much more thorough but I just wanted to get the 
> idea across. I was also thinking about adding a RAM based editing 
> feature but I didn't want to reinvent the wheel if someone knows of a 
> similar project.
>
>     Thanks for any comments you might have,
>     Clif
>
>




More information about the Gnupg-users mailing list