aboutsummaryrefslogtreecommitdiffstats
path: root/jsaccess/store.sh
diff options
context:
space:
mode:
authorLaurent Ghigonis <laurent@p1sec.com>2013-06-17 10:38:09 +0200
committerLaurent Ghigonis <laurent@p1sec.com>2013-06-17 10:38:09 +0200
commit618b93e61a7f2f16fbaea9fcbb877bbe157e01fd (patch)
tree836390f3c4de1c39d96272b04b4a74556b638a50 /jsaccess/store.sh
parentjsaccess: readme wording (diff)
downloadlaurent-tools-618b93e61a7f2f16fbaea9fcbb877bbe157e01fd.tar.xz
laurent-tools-618b93e61a7f2f16fbaea9fcbb877bbe157e01fd.zip
jsaccess: rename encrypt.sh -> store.sh
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"