itblack baloon - coffin - secure lan file storage on a device Err parazyd.org 70 hgit clone git://parazyd.org/coffin.git URL:git://parazyd.org/coffin.git parazyd.org 70 1Log /git/coffin/log.gph parazyd.org 70 1Files /git/coffin/files.gph parazyd.org 70 1Refs /git/coffin/refs.gph parazyd.org 70 1Submodules /git/coffin/file/.gitmodules.gph parazyd.org 70 1README /git/coffin/file/README.md.gph parazyd.org 70 1LICENSE /git/coffin/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 657b0aa0f70688b5fc29c5f3139a2c3635c74326 /git/coffin/commit/657b0aa0f70688b5fc29c5f3139a2c3635c74326.gph parazyd.org 70 1parent 80b539b360ebc00c063e06cba6324aa28740d0e3 /git/coffin/commit/80b539b360ebc00c063e06cba6324aa28740d0e3.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Wed, 30 Mar 2016 02:49:46 +0200 Err parazyd.org 70 i Err parazyd.org 70 iblack baloon Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M .gitignore | 10 ++++------ Err parazyd.org 70 i M Makefile | 11 ++++++++--- Err parazyd.org 70 i M conf/config.sh | 91 +++++++++++++++++-------------- Err parazyd.org 70 i M conf/init.skel | 8 ++++---- Err parazyd.org 70 i A src/Makefile | 19 +++++++++++++++++++ Err parazyd.org 70 i D src/Tomb/.gitignore | 11 ----------- Err parazyd.org 70 i D src/Tomb/Makefile | 20 -------------------- Err parazyd.org 70 i R src/Tomb/benchmark.c -> src/benchm… | 0 Err parazyd.org 70 i M src/coffin | 2 +- Err parazyd.org 70 i R src/Tomb/gen_salt.c -> src/gen_sal… | 0 Err parazyd.org 70 i R src/Tomb/hexencode.c -> src/hexenc… | 0 Err parazyd.org 70 i R src/Tomb/pbkdf2.c -> src/pbkdf2.c | 0 Err parazyd.org 70 i R src/Tomb/tomb -> src/tomb | 0 Err parazyd.org 70 i Err parazyd.org 70 i13 files changed, 85 insertions(+), 87 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/.gitignore b/.gitignore /git/coffin/file/.gitignore.gph parazyd.org 70 it@@ -1,9 +1,7 @@ Err parazyd.org 70 i NOTES.md Err parazyd.org 70 i .*.swp Err parazyd.org 70 i test/* Err parazyd.org 70 i-conf/coffin.key Err parazyd.org 70 i-conf/coffin.pem Err parazyd.org 70 i-src/Tomb/kdf-keys/tomb-kdb-hexencode Err parazyd.org 70 i-src/Tomb/kdf-keys/tomb-kdb-pbkdf2 Err parazyd.org 70 i-src/Tomb/kdf-keys/tomb-kdb-pbkdf2-gensalt Err parazyd.org 70 i-src/Tomb/kdf-keys/tomb-kdb-pbkdf2-getiter Err parazyd.org 70 i+src/tomb-kdb-hexencode Err parazyd.org 70 i+src/tomb-kdb-pbkdf2 Err parazyd.org 70 i+src/tomb-kdb-pbkdf2-gensalt Err parazyd.org 70 i+src/tomb-kdb-pbkdf2-getiter Err parazyd.org 70 1diff --git a/Makefile b/Makefile /git/coffin/file/Makefile.gph parazyd.org 70 it@@ -1,13 +1,18 @@ Err parazyd.org 70 i all: Err parazyd.org 70 i- make -C src/Tomb Err parazyd.org 70 i+ make -C src Err parazyd.org 70 i+ @./conf/config.sh gen-ssl Err parazyd.org 70 i+ @./conf/config.sh gen-init Err parazyd.org 70 i @./conf/config.sh checkdep Err parazyd.org 70 i Err parazyd.org 70 i install: Err parazyd.org 70 i- make -C src/Tomb install Err parazyd.org 70 i+ make -C src install Err parazyd.org 70 i @./conf/config.sh snowman Err parazyd.org 70 i Err parazyd.org 70 i clean: Err parazyd.org 70 i- make -C src/Tomb clean Err parazyd.org 70 i+ make -C src clean Err parazyd.org 70 i+ rm -f conf/initscript-*.init Err parazyd.org 70 i+ rm -f conf/coffin.pem Err parazyd.org 70 i+ rm -f conf/coffin.key Err parazyd.org 70 i Err parazyd.org 70 i uninstall: Err parazyd.org 70 i @./conf/config.sh unsnowman Err parazyd.org 70 1diff --git a/conf/config.sh b/conf/config.sh /git/coffin/file/conf/config.sh.gph parazyd.org 70 it@@ -7,7 +7,7 @@ Err parazyd.org 70 i # `make` Err parazyd.org 70 i [[ $1 == "checkdep" ]] && { Err parazyd.org 70 i missing=() Err parazyd.org 70 i- which apache2 >/dev/null || missing+=(apache) Err parazyd.org 70 i+ #which apache2 >/dev/null || missing+=(apache) Err parazyd.org 70 i which cryptsetup >/dev/null || missing+=(cryptsetup) Err parazyd.org 70 i which inotifywatch >/dev/null || missing+=(inotify-tools) Err parazyd.org 70 i which wipe >/dev/null || missing+=(wipe) Err parazyd.org 70 it@@ -31,12 +31,12 @@ Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i # `make install` Err parazyd.org 70 i-#[[ $1 == "snowman" || $1 == "unsnowman" ]] && { Err parazyd.org 70 i-# [[ $UID = 0 ]] || { Err parazyd.org 70 i-# print "You must run this as root!" Err parazyd.org 70 i-# return 1 Err parazyd.org 70 i-# } Err parazyd.org 70 i-#} Err parazyd.org 70 i+[[ $1 == "snowman" || $1 == "unsnowman" ]] && { Err parazyd.org 70 i+ [[ $UID = 0 ]] || { Err parazyd.org 70 i+ print "You must run this as root!" Err parazyd.org 70 i+ return 1 Err parazyd.org 70 i+ } Err parazyd.org 70 i+} Err parazyd.org 70 i Err parazyd.org 70 i edit-sudo() { Err parazyd.org 70 i if [[ $1 == "add" ]]; then Err parazyd.org 70 it@@ -45,11 +45,14 @@ edit-sudo() { Err parazyd.org 70 i elif [[ $1 == "remove" ]]; then Err parazyd.org 70 i tmp=`sed '/^%coffin / d' /etc/sudoers` Err parazyd.org 70 i print $tmp | (EDITOR="tee" visudo) Err parazyd.org 70 i- [[ $? = 0 ]] && print "Removed coffin group from sudoers" Err parazyd.org 70 i+ [[ $? = 0 ]] && print "####################\nRemoved coffin group from sudoers" Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i-generate-init() { Err parazyd.org 70 i+[[ $1 == "gen-init" ]] && { Err parazyd.org 70 i+ # TODO: ckdistro; different ones Err parazyd.org 70 i+ print whereami Err parazyd.org 70 i+ pushd `pwd`/conf Err parazyd.org 70 i cat < initscript-$distro Err parazyd.org 70 i+ cat tempinit init.skel > initscript-$distro.init Err parazyd.org 70 i rm tempinit Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i+apachemods() { Err parazyd.org 70 i+ if [[ $1 == "on" ]]; then Err parazyd.org 70 i+ mods=(ssl dav dav_fs dav_lock) Err parazyd.org 70 i+ for i in $mods; do Err parazyd.org 70 i+ a2enmod $i Err parazyd.org 70 i+ done Err parazyd.org 70 i+ elif [[ $1 == "off" ]]; then Err parazyd.org 70 i+ mods=(dav_lock dav_fs dav ssl) Err parazyd.org 70 i+ for i in $mods; do Err parazyd.org 70 i+ a2dismod $i Err parazyd.org 70 i+ done Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ return 0 Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+[[ $1 == "gen-ssl" ]] && { Err parazyd.org 70 i+ pushd `pwd`/conf Err parazyd.org 70 i+ openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \ Err parazyd.org 70 i+ -keyout coffin.key -out coffin.pem Err parazyd.org 70 i+ return 0 Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i update-init() { Err parazyd.org 70 i # TODO: rearrange this into another function and add other distros Err parazyd.org 70 i- update-rc.d Err parazyd.org 70 i+ # update-rc.d Err parazyd.org 70 i+ # Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i ckdistro() { Err parazyd.org 70 it@@ -82,21 +107,12 @@ ckdistro() { Err parazyd.org 70 i Err parazyd.org 70 i # because all cool software has snowmen in them Err parazyd.org 70 i [[ $1 == "snowman" ]] && { Err parazyd.org 70 i- # NOTE: remember to set this; see update-init() Err parazyd.org 70 i- # ckdistro Err parazyd.org 70 i- distro=deb Err parazyd.org 70 i pushd `pwd`/conf Err parazyd.org 70 i Err parazyd.org 70 i- groupadd coffin && print "created coffin group" Err parazyd.org 70 i- gpasswd -a www-data coffin && print "added www-data to coffin group" Err parazyd.org 70 i+ ckdistro Err parazyd.org 70 i Err parazyd.org 70 i- # ssl Err parazyd.org 70 i- openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \ Err parazyd.org 70 i- -keyout coffin.key -out coffin.pem Err parazyd.org 70 i- [[ $? = 0 ]] || { Err parazyd.org 70 i- print "Failed generating openssl certificate." Err parazyd.org 70 i- return 1 Err parazyd.org 70 i- } Err parazyd.org 70 i+ [[ `grep 'coffin' /etc/group` ]] || groupadd coffin Err parazyd.org 70 i+ gpasswd -a www-data coffin Err parazyd.org 70 i Err parazyd.org 70 i install -Dm440 coffin.pem /etc/ssl/coffin/coffin.pem Err parazyd.org 70 i install -Dm400 coffin.key /etc/ssl/coffin/coffin.key Err parazyd.org 70 it@@ -108,13 +124,9 @@ ckdistro() { Err parazyd.org 70 i print "DAVLockDB /etc/apache2/DAV/DAVLock" >> /etc/apache2/apache2.conf Err parazyd.org 70 i } Err parazyd.org 70 i install -Dm600 davpasswd /etc/apache2/DAV/davpasswd Err parazyd.org 70 i- install -Dm640 coffindav.conf /etc/apache2/sites-available/coffindav.conf Err parazyd.org 70 i+ install -Dm640 apachedav /etc/apache2/sites-available/coffindav.conf Err parazyd.org 70 i Err parazyd.org 70 i- apachemods=(dav dav_fs dav_lock ssl) Err parazyd.org 70 i- print "Enabling Apache modules..." Err parazyd.org 70 i- for i in $apachemods; do Err parazyd.org 70 i- a2enmod $i Err parazyd.org 70 i- done Err parazyd.org 70 i+ apachemods on Err parazyd.org 70 i Err parazyd.org 70 i # [[ -f /etc/apache2/sites-enabled/000-default.conf ]] && a2dissite 000-default.conf Err parazyd.org 70 i [[ -f /etc/apache2/sites-enabled/coffindav.conf ]] || a2ensite coffindav.conf Err parazyd.org 70 it@@ -126,10 +138,9 @@ ckdistro() { Err parazyd.org 70 i Err parazyd.org 70 i install -Dm770 -g coffin -d /home/graveyard Err parazyd.org 70 i Err parazyd.org 70 i- generate-init Err parazyd.org 70 i- update-init Err parazyd.org 70 i- install -Dm755 initscript-$distro /etc/init.d/coffin Err parazyd.org 70 i+ install -Dm755 initscript-$distro.init /etc/init.d/coffin Err parazyd.org 70 i Err parazyd.org 70 i+ print "######################################" Err parazyd.org 70 i print "Successfully installed and configured coffin!" Err parazyd.org 70 i print "You can start it with '/etc/init.d/coffin start'" Err parazyd.org 70 i Err parazyd.org 70 it@@ -139,10 +150,9 @@ ckdistro() { Err parazyd.org 70 i print "The fingerptint of your SSL certificate is: $fprint" Err parazyd.org 70 i print "Compare it and/or set is as trusted when you connect to coffin." Err parazyd.org 70 i print "######################################" Err parazyd.org 70 i- print "" Err parazyd.org 70 i Err parazyd.org 70 i popd Err parazyd.org 70 i- #return 0 Err parazyd.org 70 i+ return 0 Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i # `make uninstall` Err parazyd.org 70 it@@ -156,15 +166,11 @@ ckdistro() { Err parazyd.org 70 i revert=true Err parazyd.org 70 i [[ $revert == "true" ]] && { Err parazyd.org 70 i a2dissite coffindav.conf Err parazyd.org 70 i- a2ensite 000-default.conf Err parazyd.org 70 i- rm -rv /home/graveyard/DAV Err parazyd.org 70 i+ #a2ensite 000-default.conf Err parazyd.org 70 i+ rm -rv /etc/apache2/DAV Err parazyd.org 70 i rm -v /etc/apache2/sites-available/coffindav.conf Err parazyd.org 70 i Err parazyd.org 70 i- apachemods=(dav dav_fs dav_lock ssl) Err parazyd.org 70 i- print "Enabling Apache modules..." Err parazyd.org 70 i- for i in $apachemods; do Err parazyd.org 70 i- a2enmod $i Err parazyd.org 70 i- done Err parazyd.org 70 i+ apachemods off Err parazyd.org 70 i Err parazyd.org 70 i sed -i '/^DAVLockDB / d' /etc/apache2/apache2.conf Err parazyd.org 70 i [[ $? = 0 ]] && print "removed entry from apache2.conf" Err parazyd.org 70 it@@ -175,6 +181,7 @@ ckdistro() { Err parazyd.org 70 i edit-sudo remove Err parazyd.org 70 i Err parazyd.org 70 i rm -rv /usr/local/share/coffin Err parazyd.org 70 i+ rm -v /etc/init.d/coffin Err parazyd.org 70 i Err parazyd.org 70 i update-init Err parazyd.org 70 i } Err parazyd.org 70 1diff --git a/conf/init.skel b/conf/init.skel /git/coffin/file/conf/init.skel.gph parazyd.org 70 it@@ -2,13 +2,13 @@ text -x $DAEMON || exit 0 Err parazyd.org 70 i Err parazyd.org 70 i case "$1" in Err parazyd.org 70 i start) Err parazyd.org 70 i- log_action_begin_msg "Starting $DESC" Err parazyd.org 70 i- nohup $DAEMON & Err parazyd.org 70 i+ echo "Starting $DESC..." Err parazyd.org 70 i+ nohup $DAEMON > /var/run/coffin.out & Err parazyd.org 70 i ;; Err parazyd.org 70 i stop) Err parazyd.org 70 i- log_daemon_msg "Stopping $DESC" Err parazyd.org 70 i+ echo "Stopping $DESC..." Err parazyd.org 70 i pid=`cat $COFFINPID 2>/dev/null` Err parazyd.org 70 i- kill $pid && rm $COFFINPID Err parazyd.org 70 i+ kill $pid && rm /var/run/coffin.pid && rm /var/run/coffin.out Err parazyd.org 70 i ;; Err parazyd.org 70 i restart) Err parazyd.org 70 i $0 stop Err parazyd.org 70 1diff --git a/src/Makefile b/src/Makefile /git/coffin/file/src/Makefile.gph parazyd.org 70 it@@ -0,0 +1,19 @@ Err parazyd.org 70 i+PREFIX = /usr/local/share/coffin/bin Err parazyd.org 70 i+ Err parazyd.org 70 i+all: Err parazyd.org 70 i+ $(CC) -Os -o tomb-kdb-pbkdf2 pbkdf2.c -lgcrypt Err parazyd.org 70 i+ $(CC) -Os -o tomb-kdb-pbkdf2-getiter benchmark.c -lgcrypt Err parazyd.org 70 i+ $(CC) -Os -o tomb-kdb-pbkdf2-gensalt gen_salt.c -lgcrypt Err parazyd.org 70 i+ $(CC) -Os -o tomb-kdb-hexencode hexencode.c Err parazyd.org 70 i+ Err parazyd.org 70 i+clean: Err parazyd.org 70 i+ rm -f tomb-kdb-pbkdf2 tomb-kdb-pbkdf2-getiter tomb-kdb-pbkdf2-gensalt tomb-kdb-hexencode Err parazyd.org 70 i+ Err parazyd.org 70 i+install: Err parazyd.org 70 i+ install -Dm755 coffin ${PREFIX}/coffin Err parazyd.org 70 i+ install -Dm755 sacrist ${PREFIX}/sacrist Err parazyd.org 70 i+ install -Dm755 tomb ${PREFIX}/tomb Err parazyd.org 70 i+ install -Dm755 tomb-kdb-pbkdf2 ${PREFIX}/tomb-kdb-pbkdf2 Err parazyd.org 70 i+ install -Dm755 tomb-kdb-pbkdf2-getiter ${PREFIX}/tomb-kdb-pbkdf2-getiter Err parazyd.org 70 i+ install -Dm755 tomb-kdb-pbkdf2-gensalt ${PREFIX}/tomb-kdb-pbkdf2-gensalt Err parazyd.org 70 i+ install -Dm755 tomb-kdb-hexencode ${PREFIX}/tomb-kdb-hexencode Err parazyd.org 70 1diff --git a/src/Tomb/.gitignore b/src/Tomb/.gitignore /git/coffin/file/src/Tomb/.gitignore.gph parazyd.org 70 it@@ -1,11 +0,0 @@ Err parazyd.org 70 i-\#* Err parazyd.org 70 i-.\#* Err parazyd.org 70 i-*~ Err parazyd.org 70 i-*.o Err parazyd.org 70 i-tomb-askpass Err parazyd.org 70 i-tomb-status Err parazyd.org 70 i-doc/web/public Err parazyd.org 70 i-doc/web/dyne Err parazyd.org 70 i-share/gtkrc Err parazyd.org 70 i-.*.sw? Err parazyd.org 70 i-*.mo Err parazyd.org 70 1diff --git a/src/Tomb/Makefile b/src/Tomb/Makefile /git/coffin/file/src/Tomb/Makefile.gph parazyd.org 70 it@@ -1,20 +0,0 @@ Err parazyd.org 70 i-PREFIX = /usr/local/share/coffin/bin Err parazyd.org 70 i- Err parazyd.org 70 i-all: Err parazyd.org 70 i- $(CC) -Os -o tomb-kdb-pbkdf2 pbkdf2.c -lgcrypt Err parazyd.org 70 i- $(CC) -O2 -o tomb-kdb-pbkdf2-getiter benchmark.c -lgcrypt Err parazyd.org 70 i- $(CC) -O2 -o tomb-kdb-pbkdf2-gensalt gen_salt.c -lgcrypt Err parazyd.org 70 i- $(CC) -O2 -o tomb-kdb-hexencode hexencode.c Err parazyd.org 70 i- Err parazyd.org 70 i-clean: Err parazyd.org 70 i- rm -f tomb-kdb-pbkdf2 tomb-kdb-pbkdf2-getiter tomb-kdb-pbkdf2-gensalt tomb-kdb-hexencode Err parazyd.org 70 i- Err parazyd.org 70 i-install: Err parazyd.org 70 i- install -Dm755 tomb ${PREFIX}/tomb Err parazyd.org 70 i- install -Dm755 tomb-kdb-pbkdf2 ${PREFIX}/tomb-kdb-pbkdf2 Err parazyd.org 70 i- install -Dm755 tomb-kdb-pbkdf2-getiter ${PREFIX}/tomb-kdb-pbkdf2-getiter Err parazyd.org 70 i- install -Dm755 tomb-kdb-pbkdf2-gensalt ${PREFIX}/tomb-kdb-pbkdf2-gensalt Err parazyd.org 70 i- install -Dm755 tomb-kdb-hexencode ${PREFIX}/tomb-kdb-hexencode Err parazyd.org 70 i- @echo Err parazyd.org 70 i- @echo "Tomb is installed succesfully." Err parazyd.org 70 i- @echo Err parazyd.org 70 1diff --git a/src/Tomb/benchmark.c b/src/benchmark.c /git/coffin/file/src/benchmark.c.gph parazyd.org 70 1diff --git a/src/coffin b/src/coffin /git/coffin/file/src/coffin.gph parazyd.org 70 it@@ -7,7 +7,7 @@ Err parazyd.org 70 i pattern='sd[a-z][1-9]$' Err parazyd.org 70 i coproc inotifywait --monitor --event create,delete --format '%e %w%f' /dev Err parazyd.org 70 i Err parazyd.org 70 i-echo $$ > `pwd`/coffin.pid # pidfile Err parazyd.org 70 i+echo $COPROC_PID > /var/run/coffin.pid # pidfile Err parazyd.org 70 i Err parazyd.org 70 i while read -r -u "${COPROC[0]}" event file; do Err parazyd.org 70 i if [[ $file =~ $pattern ]]; then Err parazyd.org 70 1diff --git a/src/Tomb/gen_salt.c b/src/gen_salt.c /git/coffin/file/src/gen_salt.c.gph parazyd.org 70 1diff --git a/src/Tomb/hexencode.c b/src/hexencode.c /git/coffin/file/src/hexencode.c.gph parazyd.org 70 1diff --git a/src/Tomb/pbkdf2.c b/src/pbkdf2.c /git/coffin/file/src/pbkdf2.c.gph parazyd.org 70 1diff --git a/src/Tomb/tomb b/src/tomb /git/coffin/file/src/tomb.gph parazyd.org 70 .