tfixes to the way paths are handled in load_keys - tomb - the crypto undertaker
 (HTM) git clone git://parazyd.org/tomb.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 28a52f5851babd78278bb63043884364ee65780a
 (DIR) parent 710eb5c45897c97eeb7ce9fdbf96e97ed34ed0df
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Tue, 11 Jun 2013 18:34:17 +0000
       
       fixes to the way paths are handled in load_keys
       
       should fix issue #97
       
       Diffstat:
         M tomb                                |      52 ++++++++++++++++---------------
       
       1 file changed, 27 insertions(+), 25 deletions(-)
       ---
 (DIR) diff --git a/tomb b/tomb
       t@@ -445,29 +445,33 @@ check_bin() {
        # always use drop_key() when done with all key operations.
        # On success returns 0 and prints out the full path to the key
        load_key() {
       -    # check if the key is set manually then use the one existing
       -    local tombdir="$1"
       -    local tombname="$2"
       -    local tombkey=""
       +    tombdir=`dirname $1`
       +    tombfile=`basename $1`
       +    tombname=${tombfile%%\.*}
            if option_is_set -k ; then
                if [[ "`option_value -k`" == "-" ]]; then
       +            xxx "load_key reading from stdin"
                    # take key from stdin
                    tombkeydir=`safe_dir tomb`
       +            xxx "tempdir is $tombkeydir"
                    cat > ${tombkeydir}/stdin.tmp
       -            tombkey=${tombkeydir}/stdin.tmp
       -            xxx " `ls -lh ${tombkey}`"
       -        else
       +            tombdir=${tombkeydir}
       +            tombfile=stdin.tmp
       +            tombname="stdin"
       +        elif [[ "`option_value -k`" != "" ]]; then
                    # take key from a file
                    tombkey=`option_value -k`
       +            tombdir=`dirname $tombkey`
       +            tombfile=`basename $tombkey`
                fi
       -    else
       -        # guess key as lying besides the tomb
       -        tombkey=${tombdir}/${tombname}.tomb.key
            fi
       +    
       +    tombkey=${tombdir}/${tombfile}
       +
       +    xxx "load_key: `ls -lh ${tombkey}`"
        
            if [ -r "${tombkey}" ]; then
       -        _message "We'll use this key:"
       -        _message " `ls -lh ${tombkey}`"
       +        _message "We'll use this key: ${tombkey}"
            else
                return 1
            fi
       t@@ -1009,13 +1013,12 @@ lock_tomb_with_key() {
                return 1
            fi
        
       -    tombfile=`basename $1`
       +    tombfile="$1"
            _message "Commanded to lock tomb ${tombfile}"
        
            tombdir=`dirname $1`
       -    # make sure the file has a .tomb extension
       +    tombfile=`basename $1`
            tombname=${tombfile%%\.*}
       -    tombfile=${tombname}.tomb
        
            { test -f ${tombdir}/${tombfile} } || {
                die "There is no tomb here. You have to it dig first."
       t@@ -1040,7 +1043,7 @@ lock_tomb_with_key() {
            fi
        
            # load key from options or file
       -    tombkey=`load_key ${tombdir} ${tombname}`
       +    tombkey=`load_key ${tombdir}/${tombfile}`
            { test $? = 0 } || {
                losetup -d $nstloop
                die "Aborting operations: error loading key $tombkey" }
       t@@ -1167,9 +1170,9 @@ mount_tomb() {
            xxx "tomb found: ${tombdir}/${tombfile}"
        
            # load_key called here
       -    tombkey=`load_key ${tombdir} ${tombname}`
       +    tombkey=`load_key ${tombdir}/${tombfile}.key`
            { test $? = 0 } || {
       -        die "Aborting operations: error loading key $tombkey" }
       +        die "Aborting operations: error loading key $tombkey"    }
        
        
            if [ "$2" = "" ]; then
       t@@ -1185,7 +1188,7 @@ mount_tomb() {
                _warning "$tombname is already open."
                _message "here below its status is reported:"
                list_tombs ${tombname}
       -        return 1
       +        return 0
            fi
        
            _success "Opening $tombfile on $tombmount"
       t@@ -1613,14 +1616,13 @@ resize_tomb() {
            # $1 is the tomb file path
        
            local c tombpass tombkey
       -    local tombfile=`basename $1`
       -    local tombdir=`dirname $1`
       -    # make sure the file has a .tomb extension
       -    local tombname=${tombfile%%\.*}
       -    tombfile=${tombname}.tomb
       +
       +    tombdir=`dirname $1`
       +    tombfile=`basename $1`
       +    tombname=${tombfile%%\.*}
        
            # load key from options or file
       -    tombkey=`load_key ${tombdir} ${tombname}`
       +    tombkey=`load_key ${tombdir}/${tombfile}`
            { test $? = 0 } || {
                die "Aborting operations: error loading key $tombkey" }
            # make sure to call drop_key later