diff options
author | Laurent Ghigonis <laurent@p1sec.com> | 2013-06-17 10:38:09 +0200 |
---|---|---|
committer | Laurent Ghigonis <laurent@p1sec.com> | 2013-06-17 10:38:09 +0200 |
commit | 618b93e61a7f2f16fbaea9fcbb877bbe157e01fd (patch) | |
tree | 836390f3c4de1c39d96272b04b4a74556b638a50 /jsaccess/store.sh | |
parent | jsaccess: readme wording (diff) | |
download | laurent-tools-618b93e61a7f2f16fbaea9fcbb877bbe157e01fd.tar.xz laurent-tools-618b93e61a7f2f16fbaea9fcbb877bbe157e01fd.zip |
jsaccess: rename encrypt.sh -> store.sh
Diffstat (limited to 'jsaccess/store.sh')
-rwxr-xr-x | jsaccess/store.sh | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/jsaccess/store.sh b/jsaccess/store.sh new file mode 100755 index 0000000..71a42c2 --- /dev/null +++ b/jsaccess/store.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +# jsaccess - private web file sharing using client side crypto +# store.sh: file encrytion script + +# Copyright (c) 2013 Laurent Ghigonis <laurent@gouloum.fr> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +cleanup() { + rm -f $tmp + umask $sumask + exit 0 +} + +if [ $# -ne 1 ]; then + echo "usage: store.sh <myfile>" + exit 1 +fi +myfile=$1 +myfilename=`basename $myfile` + +sumask=$(umask) +umask 077 +tmp=`mktemp ./jsaXXXXXXXX` +trap cleanup INT TERM EXIT + +echo -n "Enter passphrase used to encrypt: " +read pass +dirhash=`echo -n $pass |openssl rmd160 |cut -d' ' -f2` +dir="jsa/files/$dirhash" +file=`echo -n ${dirhash}${myfilename} |openssl rmd160 |cut -d' ' -f2` +echo $dir +mkdir -p $dir +touch $dir/index.html + +base64 -w0 $myfile > $tmp +echo -n $pass |openssl enc -e -a -aes-256-cbc -in $tmp -out $dir/$file -pass stdin ||exit $? +echo "CREATED $dir/$file" + +if [ -f $dir/index.txt ]; then + echo -n $pass |openssl enc -d -a -aes-256-cbc -in $dir/index.txt -out $tmp -pass stdin ||exit $? +else + echo > $tmp +fi +echo $myfilename >> $tmp +rm -f $dir/index.txt +echo -n $pass |openssl enc -e -a -aes-256-cbc -in $tmp -out $dir/index.txt -pass stdin ||exit $? +echo "UPDATED $dir/index.txt" |