commit 12f49bf2ff6f5ce6cfad43acba83893519179cfd
parent 7fb404d97c42dc3018e8b67d61c42d90d6ff7122
Author: Jaromil <jaromil@dyne.org>
Date: Fri, 21 Feb 2014 22:40:06 +0100
another fix to key handling
ultimately removing the case in which we guess if the key is near
the tomb: that is not anymore in documentation and we stop encouraging
to keep the key near the tomb.
Diffstat:
M | tomb | | | 32 | +++++++++++++------------------- |
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/tomb b/tomb
@@ -540,22 +540,17 @@ check_bin() {
# On success returns 0 and prints out the full path to the key
load_key() {
# take the name of a tomb file as argument
- # this is used for guessing if the key is nearby
- { test "$1" = "" } || {
- 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 load_key_stdin` # global used to check if key from stdin
xxx "tempdir is $tombkeydir"
+ act "waiting for the key to be piped from stdin... "
cat > ${tombkeydir}/stdin.tmp.key
+ print ok >&2
tombdir=${tombkeydir}
- tombfile=stdin.tmp
+ tombfile=stdin.tmp.key
tombname="stdin"
elif [[ "`option_value -k`" != "" ]]; then
xxx "load_key argument: `option_value -k`"
@@ -564,23 +559,19 @@ load_key() {
tombdir=`dirname $tombkey`
tombfile=`basename $tombkey`
fi
+
+ else # no -k specified
+ die "this operation requires a key file to be specified using the -k option"
+ return 1
fi
- tombkey=${tombdir}/${tombfile}.key
+ tombkey=${tombdir}/${tombfile}
xxx "load_key: ${tombkey}"
-
- if [ -r "${tombkey}" ]; then
- if [ "$tombkeydir" = "" ]; then
- _message "We'll use this key: ${tombkey}"
- else
- _message "We'll use the key piped from stdin"
- fi
- else
+ { test -r "${tombkey}" } || {
_warning "Key not found, specify one using -k"
drop_key
- return 1
- fi
+ return 1 }
# this does a check on the file header
if ! is_valid_key ${tombkey}; then
@@ -1452,6 +1443,7 @@ mount_tomb() {
if [ $? = 255 ]; then
die "too many tomb opened. Please close any of them to open another tomb"
fi
+ xxx "next free loop device: $nstloop"
losetup -f ${tombdir}/${tombfile}
cryptsetup isLuks ${nstloop}
@@ -1481,6 +1473,8 @@ mount_tomb() {
mapdate=`date +%s`
mapper="tomb.${tombname}.${mapdate}.`basename $nstloop`"
+ xxx "dev mapper device: $mapper"
+ xxx "tomb key: $tombkey"
keyname=`basename $tombkey | cut -d. -f1`
tombpass=`ask_key_password $tombkey`