tsmall fixes to tmpfile handling for key from stdin - tomb - the crypto undertaker HTML git clone git://parazyd.org/tomb.git DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit 772b731e5fde5eae5567d26b4d3930bc242c2f8a DIR parent 7736cc97af078828ec1b267ab4202d44bd2ee6d4 HTML Author: Jaromil <jaromil@dyne.org> Date: Tue, 11 Jun 2013 15:04:10 +0000 small fixes to tmpfile handling for key from stdin Diffstat: M tomb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) --- DIR diff --git a/tomb b/tomb t@@ -58,6 +58,9 @@ typeset -A global_opts typeset -A opts typeset -h username +typeset -h tombkeydir # global used if key comes from stdin +tombkeydir="" + typeset -h _uid typeset -h _gid typeset -h _tty t@@ -100,7 +103,7 @@ safe_dir() { while (( $tries < 3 )) ; do tries+=1 if _have_shm; then - xxx "safe_dir creating directory in RAM" + xxx "safe_dir creating $1 dir in RAM" if (( $MKTEMP )); then mktemp -d /dev/shm/$1.$$.XXXXXXX else t@@ -435,7 +438,6 @@ check_bin() { # {{{ Key operations -typeset -h tombkeydir # global used if key comes from stdin # This function retrieves a tomb key specified on commandline or one # laying nearby the tomb if found, or from stdin if the option was t@@ -446,12 +448,14 @@ load_key() { # check if the key is set manually then use the one existing local tombdir="$1" local tombname="$2" + local tombkey="" if option_is_set -k ; then if [[ "`option_value -k`" == "-" ]]; then # take key from stdin - tombkeydir=`safe_dir` + tombkeydir=`safe_dir tomb` cat > ${tombkeydir}/stdin.tmp tombkey=${tombkeydir}/stdin.tmp + xxx " `ls -lh ${tombkey}`" else # take key from a file tombkey=`option_value -k` t@@ -471,7 +475,7 @@ load_key() { # this does a check on the file header if ! is_valid_key ${tombkey}; then _warning "The key seems invalid, the application/pgp header is missing" - return 1 + return 1 fi print "$tombkey" return 0 t@@ -1146,6 +1150,7 @@ mount_tomb() { tombname=${tombfile%%\.*} xxx "tomb found: ${tombdir}/${tombfile}" + # load_key called here tombkey=`load_key ${tombdir} ${tombname}` { test $? = 0 } || { die "Aborting operations: error loading key $tombkey" } t@@ -1211,6 +1216,8 @@ mount_tomb() { get_lukskey "${tombpass}" ${tombkey} | \ cryptsetup --key-file - luksOpen ${nstloop} ${mapper} + + # key dropped here drop_key unset tombpass