aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-x[-rw-r--r--]scripts/naskconf8
-rwxr-xr-x[-rw-r--r--]scripts/naskpass.inithook1
-rwxr-xr-x[-rw-r--r--]scripts/naskpass.initscript18
3 files changed, 19 insertions, 8 deletions
diff --git a/scripts/naskconf b/scripts/naskconf
index 4a4a7e0..5f82f22 100644..100755
--- a/scripts/naskconf
+++ b/scripts/naskconf
@@ -14,8 +14,8 @@ _nask_cmd () {
return 1
fi
dpkg-divert --package naskpass --add --rename --divert /var/backups/cryptroot.initramfs.bak ${ORGFILE}
- cp /usr/share/naskpass/naskpass.script.initramfs ${ORGFILE}
- ln -s /usr/share/naskpass/naskpass.hook.initramfs \
+ cp /usr/share/naskpass/naskpass.initscript ${ORGFILE}
+ ln -s /usr/share/naskpass/naskpass.inithook \
/usr/share/initramfs-tools/hooks/naskpass
db_set naskpass/active true
elif [ "x$1" = "xDCTV" ] && [ "$RET" = "true" ]; then
@@ -23,9 +23,13 @@ _nask_cmd () {
rm /usr/share/initramfs-tools/hooks/naskpass
dpkg-divert --package naskpass --rename --remove ${ORGFILE}
db_set naskpass/active false
+ elif [ "x$1" = "xUPDT" ] && [ "$RET" = "true" ]; then
+ cp /usr/share/naskpass/naskpass.initscript ${ORGFILE}
fi
return 0
}
nask_activate () { _nask_cmd "ACTV"; return $?; }
nask_deactivate () { _nask_cmd "DCTV"; return $?; }
+nask_update () { _nask_cmd "UPDT"; return $?; }
+
diff --git a/scripts/naskpass.inithook b/scripts/naskpass.inithook
index 083c477..074dff3 100644..100755
--- a/scripts/naskpass.inithook
+++ b/scripts/naskpass.inithook
@@ -19,6 +19,7 @@ esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /lib/cryptsetup/naskpass /lib/cryptsetup
+copy_exec /lib/cryptsetup/naskpass_check /lib/cryptsetup
mkdir -p ${DESTDIR}/lib/terminfo/l
cp /lib/terminfo/l/linux ${DESTDIR}/lib/terminfo/l/
diff --git a/scripts/naskpass.initscript b/scripts/naskpass.initscript
index a2d7e95..98fd1dc 100644..100755
--- a/scripts/naskpass.initscript
+++ b/scripts/naskpass.initscript
@@ -290,7 +290,7 @@ setup_mapping()
# Plymouth will add a : if it is a non-graphical prompt
cryptkey="Please unlock disk $diskname"
else
- if [ -x /lib/cryptsetup/naskpass ]; then
+ if [ -x /lib/cryptsetup/naskpass ] && [ $askpass_fallback -eq 0 ]; then
cryptkeyscript="/lib/cryptsetup/naskpass"
cryptkey=""
else
@@ -302,22 +302,24 @@ setup_mapping()
if [ ! -e "$NEWROOT" ]; then
- if [ -x /bin/plymouth ] && plymouth --ping; then
- message "naskpass does not work with playmouth, falling back to default askpass .."
+ if [ -x /bin/plymouth ] && plymouth --ping || [ $askpass_fallback -ne 0 ]; then
+ if [ $askpass_fallback -eq 0 ]; then
+ message "naskpass does not work with plymouth, falling back to default askpass .."
+ fi
if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
$cryptkeyscript "$cryptkey" | $cryptopen; then
message "cryptsetup: cryptsetup failed, bad password or options?"
continue
fi
else
- dmesg -D
- if ! $cryptkeyscript -c "cryptsetup -T 1 open $cryptsource $crypttarget"; then
+ dmesg -n 1
+ if ! $cryptkeyscript -c "/sbin/cryptsetup -T 1 open $cryptsource $crypttarget"; then
message "naskpass: failed"
continue
else
message "naskpass: success"
fi
- dmesg -E
+ dmesg -n 4
fi
fi
@@ -383,6 +385,7 @@ setup_mapping()
#
# Do we have any kernel boot arguments?
+askpass_fallback=0
cmdline_cryptopts=''
unset cmdline_root
for opt in $(cat /proc/cmdline); do
@@ -406,6 +409,9 @@ for opt in $(cat /proc/cmdline); do
*) # lilo major/minor number (See #398957). Ignore
esac
;;
+ cryptfallback)
+ askpass_fallback=1
+ ;;
esac
done