Lines 54-77
Link Here
|
54 |
case "$mode" in |
54 |
case "$mode" in |
55 |
gpg|reg) |
55 |
gpg|reg) |
56 |
# handle key on removable device |
56 |
# handle key on removable device |
57 |
if [ -n "$remdev" ]; then |
57 |
local mntrem=/mnt/remdev c=0 ans i devices |
58 |
# temp directory to mount removable device |
58 |
[ ! -d "$mntrem" ] && mkdir -p ${mntrem} 2>/dev/null >/dev/null |
59 |
local mntrem=/mnt/remdev |
59 |
for (( i = 0 ; i < 10 ; i++ )); do |
60 |
local c=0 ans |
60 |
if [ -f "${key}" ]; then |
61 |
for (( i = 0 ; i < 10 ; i++ )) |
61 |
break; |
62 |
do |
62 |
elif [ -z "$remdev" ]; then |
63 |
[ ! -d "$mntrem" ] && mkdir -p ${mntrem} 2>/dev/null >/dev/null |
63 |
ebegin " Guessing the key device" |
|
|
64 |
# usb keychain/storage |
65 |
devices="/dev/sd*" |
66 |
# ide |
67 |
devices="${devices} /dev/hd*" |
68 |
# usb using the 'usb block driver' |
69 |
devices="${devices} /dev/ubd* /dev/ubd/*" |
70 |
# cdrom's |
71 |
devices="${devices} /dev/cdroms/* /dev/ide/cd/* /dev/sr*" |
72 |
for x in ${devices}; do |
73 |
if [ -b "${x}" ]; then |
74 |
mount -r -t auto ${x} ${mntrem} >/dev/null 2>&1 |
75 |
if [ "$?" = '0' ]; then |
76 |
if [ -f "${mntrem}/${key}" ]; then |
77 |
key="${mntrem}/${key}" |
78 |
break 2; |
79 |
fi |
80 |
else |
81 |
umount ${mntrem} >/dev/null 2>&1 |
82 |
fi |
83 |
fi |
84 |
done |
85 |
einfo "Removable device for ${target} not present." |
86 |
echo -n -e " ${green}*${off} Auto search (${green}a${off}), quit (${red}q${off}) or input device name:" >/dev/console |
87 |
read -t 25 ans </dev/console; [ "$?" != '0' ] && continue |
88 |
echo >/dev/console |
89 |
case ${ans} in |
90 |
a) |
91 |
remdev=''; i=$((i-1)); sleep 8; continue |
92 |
;; |
93 |
q) |
94 |
return |
95 |
;; |
96 |
'') |
97 |
i=$((i-1)); sleep 8; continue |
98 |
;; |
99 |
*) |
100 |
remdev=${ans}; i=0; sleep 8 |
101 |
;; |
102 |
esac |
103 |
else |
64 |
if mount -n -o ro ${remdev} ${mntrem} 2>/dev/null >/dev/null ; then |
104 |
if mount -n -o ro ${remdev} ${mntrem} 2>/dev/null >/dev/null ; then |
65 |
sleep 2 |
105 |
sleep 2 |
66 |
# keyfile exists? |
106 |
# keyfile exists? |
67 |
if [ ! -e "${mntrem}${key}" ]; then |
107 |
if [ ! -e "${mntrem}/${key}" ]; then |
68 |
umount -n ${mntrem} 2>/dev/null >/dev/null |
108 |
umount -n ${mntrem} 2>/dev/null >/dev/null |
69 |
rmdir ${mntrem} 2>/dev/null >/dev/null |
109 |
rmdir ${mntrem} 2>/dev/null >/dev/null |
70 |
einfo "Cannot find ${key} on removable media." |
110 |
einfo "Cannot find ${key} on removable media ${remdev}." |
71 |
echo -n -e " ${green}*${off} Abort?(${red}yes${off}/${green}no${off})" >/dev/console |
111 |
echo -n -e " ${green}*${off} Auto search (${green}a${off}), quit (${red}q${off}) or input device name:" >/dev/console |
72 |
read ans </dev/console |
112 |
read -t 25 ans </dev/console; [ "$?" != '0' ] && continue |
73 |
echo >/dev/console |
113 |
echo >/dev/console |
74 |
[ "$ans" != "yes" ] && { i=0; c=0; } || return |
114 |
case "${ans}" in |
|
|
115 |
a) |
116 |
remdev=''; i=$((i-2)); c=0; sleep 8; continue |
117 |
;; |
118 |
q) |
119 |
return |
120 |
;; |
121 |
'') |
122 |
i=0; c=0; sleep 8 |
123 |
;; |
124 |
*) |
125 |
remdev=${ans}; i=0; c=0; |
126 |
;; |
127 |
esac |
75 |
else |
128 |
else |
76 |
key="${mntrem}${key}" |
129 |
key="${mntrem}${key}" |
77 |
break |
130 |
break |
Lines 83-102
Link Here
|
83 |
# let user abort |
136 |
# let user abort |
84 |
if [ "$i" -eq 9 ]; then |
137 |
if [ "$i" -eq 9 ]; then |
85 |
rmdir ${mntrem} 2>/dev/null >/dev/null |
138 |
rmdir ${mntrem} 2>/dev/null >/dev/null |
86 |
einfo "Removable device for ${target} not present." |
139 |
einfo "Removable device ${remdev} for ${target} not present." |
87 |
echo -n -e " ${green}*${off} Abort?(${red}yes${off}/${green}no${off})" >/dev/console |
140 |
echo -n -e " ${green}*${off} Auto search (${green}a${off}), quit (${red}q${off}) or input device name:" >/dev/console |
88 |
read ans </dev/console |
141 |
read -t 25 ans </dev/console; [ "$?" != '0' ] && continue |
89 |
echo >/dev/console |
142 |
echo >/dev/console |
90 |
[ "$ans" != "yes" ] && { i=0; c=0; } || return |
143 |
case ${ans} in |
|
|
144 |
a) |
145 |
remdev=''; i=$((i-2)); c=0; sleep 8; continue |
146 |
;; |
147 |
q) |
148 |
return |
149 |
;; |
150 |
'') |
151 |
i=0; c=0; sleep 8 |
152 |
;; |
153 |
*) |
154 |
remdev=${ans}; i=0; c=0; sleep 8 |
155 |
;; |
156 |
esac |
91 |
fi |
157 |
fi |
92 |
fi |
158 |
fi |
93 |
done |
|
|
94 |
else # keyfile ! on removable device |
95 |
if [ ! -e "$key" ]; then |
96 |
ewarn "${source} will not be decrypted ..." |
97 |
einfo "Reason: keyfile ${key} does not exist." |
98 |
return |
99 |
fi |
159 |
fi |
|
|
160 |
done |
161 |
# keyfile ! on removable device |
162 |
if [ ! -e "$key" ]; then |
163 |
ewarn "${source} will not be decrypted ..." |
164 |
einfo "Reason: keyfile ${key} does not exist." |
165 |
return |
100 |
fi |
166 |
fi |
101 |
;; |
167 |
;; |
102 |
*) |
168 |
*) |