aboutsummaryrefslogtreecommitdiffstats
path: root/jsaccess/store.sh
diff options
context:
space:
mode:
Diffstat (limited to 'jsaccess/store.sh')
-rwxr-xr-xjsaccess/store.sh59
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"