commit b669a11ff410f2dc9458339939e46642f196c58f
parent dad9a4b7169aebf80d4be0975ff87be002a49e9c
Author: Jaromil <jaromil@dyne.org>
Date:   Tue, 11 Jan 2011 12:57:44 +0100
now using ext4 filesystem
also tomb creation ask for saving the key on usb
Diffstat:
| M | src/tomb |  |  | 48 | +++++++++++++++++++++++++++--------------------- | 
1 file changed, 27 insertions(+), 21 deletions(-)
diff --git a/src/tomb b/src/tomb
@@ -90,15 +90,8 @@ ask_usbkey() {
     usbmount=`cat /proc/mounts | awk -v p=$usbpart '{ if( $1 == "/dev/" p) print $2 }'`
     echo
     echo "usb key mounted on $usbmount"
-    # check if the key is there
-    if [ -r ${usbmount}/$1 ]; then
-	echo "key found!"
-	export enc_key="${usbmount}/${1}"
-	return 0
-    else
-	echo "key not found on usb"
-    fi
-    return 1
+    export usbkey_mount
+    return 0
 }
 
 # user interface (just to ask the password)
@@ -257,20 +250,32 @@ create_tomb() {
 	exit 0
     fi
  
-    act "formatting Ext3 filesystem"
     
     cryptsetup --key-file ${keytmp} --cipher aes luksOpen ${nstloop} tomb.tmp
-
     rm -f ${keytmp}
 
+    notice "Your tomb is read on ${FILE} and secured with key ${FILE}.gpg"
+    act "now plug an external usb device to save the key separately:"
+    ask_usbkey
+    if ! [ -w ${usbkey_mount} ]; then
+	error "cannot save the key in a separate place, move it yourself later."
+    else
+	mkdir -p ${usbkey_mount}/.tomb
+	cp -v ${FILE}.gpg ${usbkey_mount}/.tomb/
+	chown -R go-rwx ${usbkey_mount}/.tomb
+	rm -rf ${FILE}.gpg
+    fi
+
 #    cryptsetup luksDump ${nstloop}
 
-    mkfs.ext3 -q -F -j -L "`hostname`-`date +%s`" /dev/mapper/tomb.tmp
+    act "formatting your Tomb with Ext4 filesystem"
+ 
+    mkfs.ext4 -q -F -j -L "`hostname`-`date +%s`" /dev/mapper/tomb.tmp
 
     if [ $? = 0 ]; then
-	act "OK, encrypted storage succesfully formatted with Ext3 filesystem"
+	act "OK, encrypted storage succesfully formatted"
     else
-	act "error formatting storage file with Ext3 filesystem"
+	act "error formatting Tomb"
     fi
 
     sync
@@ -320,10 +325,13 @@ mount_tomb() {
 	error "encryption key ${enc_key} not found on disk"
 	error "use -k option to specify which key to use"
 	error "or provide a usb key, or press ctrl-c to abort"
-	ask_usbkey ".tomb/$enc_key"
-	if ! [ -r "${enc_key}" ]; then
+	ask_usbkey
+        # returns usbkey_mount, now check if the key is there
+	if [ -r ${usbkey_mount}/.tomb/${enc_key} ]; then
+	    notice "key found on ${usbkey_mount}/.tomb/${enc_key}"
+	else
 	    error "key is missing."
-	    exit 0
+	    exit 1
 	fi
     fi
     
@@ -374,11 +382,9 @@ mount_tomb() {
     fi
     
     act "encrypted storage filesystem check"
-    fsck.ext3 -p -C0 /dev/mapper/${mapper}
-    
-    
+    fsck.ext4 -p -C0 /dev/mapper/${mapper}
     
-    mount -t ext3 /dev/mapper/${mapper} ${MOUNT}
+    mount -t ext4 -o rw,noatime,nodev /dev/mapper/${mapper} ${MOUNT}
 # TODO: possible mount options to try out:
 #  -o rw,noatime,nodev,data=writeback,commit=30
 #  -o rw,noatime,nodev