mirror of
https://github.com/Llewellynvdm/Tomb.git
synced 2024-11-25 14:17:41 +00:00
new key on usb
usb key detection tested on ubuntu 10.04
This commit is contained in:
parent
cd9b16667b
commit
f39b6e5cf7
66
src/tomb
66
src/tomb
@ -47,6 +47,60 @@ else
|
|||||||
DD=dd
|
DD=dd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# usb auto detect
|
||||||
|
# tested on ubuntu 10.04 - please test and patch on other systems if you can
|
||||||
|
ask_usbkey() {
|
||||||
|
echo "looking for key $1 on usb"
|
||||||
|
echo -n "please insert your usb key "
|
||||||
|
|
||||||
|
plugged=false
|
||||||
|
while [ "$plugged" != "true" ]; do
|
||||||
|
dmesg | tail -n 12 | grep -q 'new.*USB device'
|
||||||
|
if [ $? = 0 ]; then plugged=true; fi
|
||||||
|
echo -n "."
|
||||||
|
sleep .5
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "usb key inserted, attaching "
|
||||||
|
|
||||||
|
attached=false
|
||||||
|
while [ "$attached" != "true" ]; do
|
||||||
|
dmesg | tail -n 3| grep -q 'Attached.*removable disk'
|
||||||
|
if [ $? = 0 ]; then attached=true; fi
|
||||||
|
echo -n "."
|
||||||
|
sleep .5
|
||||||
|
done
|
||||||
|
|
||||||
|
# get the first partition
|
||||||
|
usbpart=`dmesg |tail -n 4 |awk '/ sd.:/ { print $3 }'`
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -n "usb key attached, mounting "
|
||||||
|
# what that it is mounted
|
||||||
|
mounted=false
|
||||||
|
while [ "$mounted" != "true" ]; do
|
||||||
|
cat /proc/mounts | tail -n2 | grep -q "^/dev/$usbpart"
|
||||||
|
if [ $? = 0 ]; then mounted=true; fi
|
||||||
|
echo -n "."
|
||||||
|
sleep .5
|
||||||
|
done
|
||||||
|
|
||||||
|
# check where it is mounted
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
# user interface (just to ask the password)
|
# user interface (just to ask the password)
|
||||||
ask_password() {
|
ask_password() {
|
||||||
|
|
||||||
@ -270,11 +324,15 @@ mount_tomb() {
|
|||||||
|
|
||||||
# check if key file is present
|
# check if key file is present
|
||||||
if ! [ -r "${enc_key}" ]; then
|
if ! [ -r "${enc_key}" ]; then
|
||||||
error "encryption key ${enc_key} not found"
|
error "encryption key ${enc_key} not found on disk"
|
||||||
error "use -k option to specify which key to use"
|
error "use -k option to specify which key to use"
|
||||||
losetup -d ${nstloop}
|
error "or provide a usb key, or press ctrl-c to abort"
|
||||||
sleep 5
|
ask_usbkey ".tomb/$enc_key"
|
||||||
return
|
if ! [ -r "${enc_key}" ]; then
|
||||||
|
losetup -d ${nstloop}
|
||||||
|
sleep 5
|
||||||
|
return
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
modprobe dm-crypt
|
modprobe dm-crypt
|
||||||
|
Loading…
Reference in New Issue
Block a user