tundertaker: new auxiliary program to fetch keys from different protocols - tomb - the crypto undertaker
 (HTM) git clone git://parazyd.org/tomb.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 02787f4418fe4ab0987f201dd5e713cd4269b514
 (DIR) parent ddd9331f1ef02b57ba001e09b0130c759277efab
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Thu, 17 Nov 2011 14:47:40 +0100
       
       undertaker: new auxiliary program to fetch keys from different protocols
       
       undertaker will print out the key to stdout
       tthen tomb can use it with -k stdin
       
       so far the only implemented method is bluetooth
       
       Diffstat:
         A src/undertaker                      |      96 +++++++++++++++++++++++++++++++
       
       1 file changed, 96 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/undertaker b/src/undertaker
       t@@ -0,0 +1,96 @@
       +#!/bin/zsh
       +#
       +# Undertaker, auxiliary command for Tomb
       +#
       +# Tomb is a tool to operate file encryption of private and secret data
       +#
       +# Undertaker is a tool to retrieve tomb keys from various sources
       +#
       +# Copyleft (C) 2011 Denis Roio <jaromil@dyne.org>
       +#
       +# This source  code is free  software; you can redistribute  it and/or
       +# modify it under the terms of  the GNU Public License as published by
       +# the Free  Software Foundation; either  version 3 of the  License, or
       +# (at your option) any later version.
       +#
       +# This source code is distributed in  the hope that it will be useful,
       +# but  WITHOUT ANY  WARRANTY;  without even  the  implied warranty  of
       +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       +# Please refer to the GNU Public License for more details.
       +#
       +# You should have received a copy of the GNU Public License along with
       +# this source code; if not, write to:
       +# Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
       +
       +
       +# first of all source the tomb core functions
       +which tomb > /dev/null
       +if [[ $? != 0 ]]; then
       +    print "$fg[red][!]$fg[white] Tomb command not found, operation aborted."; exit 1
       +fi
       +source tomb source
       +
       +if ! [ $1 ] ; then
       +    error "an argument is missing, the undertaker is confused"
       +    act "usage: undertaker url://host:path/to/tomb.key"
       +    exit 1;
       +fi
       +
       +ARG1=${1}
       +
       +check_bin
       +
       +notice "Undertaker will look for ${ARG1}"
       +
       +baseurl=${ARG1%//*}
       +
       +case $baseurl in
       +    bluetooth:)
       +        act "access to bluetooth protocol requested"
       +        which obexftp &> /dev/null
       +        if [[ $? != 0 ]]; then
       +            error "obexftp not found, needed for bluetooth: operation aborted."
       +            exit 1
       +        fi
       +        keytmp=`safe_dir undertaker`
       +        cd $keytmp
       +        # fetch key from bluetooth, url format: bluetooth://55:33:44:55:66/file/path
       +        obexdevpath=${ARG1#*//}
       +        obexdev=${obexdevpath%%/*}
       +        obexpath=${obexdevpath#*/}
       +        act "obex device: $obexdev"
       +        act "obex path: $obexpath"
       +        obexftp -b $obexdev -g $obexpath 
       +        if [[ $? != 0 ]]; then
       +            error "a problem occurred retreiving the key via bluetooth."
       +            rmdir ${keytmp}
       +            exit 1;
       +        fi
       +        # print out the key on stdout
       +        cat $obexpath >&1
       +        # wipe out the key
       +        ${WIPE[@]} $obexpath
       +        cd -
       +        rmdir ${keytmp}
       +
       +#        tombkey="basename $obexpath"
       +        
       +        ;;
       +
       +    file:)
       +        act "local file access requested"
       +        error "TODO"
       +        ;;
       +    http:)
       +        act "access to web protocol requested"
       +        error "TODO"
       +        ;;
       +    ssh:)
       +        act "access to secure shell requested"
       +        error "TODO"
       +        ;;
       +    *)
       +        error "url protocol not recognized: $baseurl"
       +        exit 1
       +        ;;
       +esac