X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=crypttab-keyscript.patch;fp=crypttab-keyscript.patch;h=1438099496054f21ff73d5db54583b8d61166da1;hb=3f3a9504b008558380bea81c4ea45c00e05ae239;hp=0000000000000000000000000000000000000000;hpb=cfe0e4e788101c69cd5b96f7f88962439b844fcf;p=packages%2Fdracut.git diff --git a/crypttab-keyscript.patch b/crypttab-keyscript.patch new file mode 100644 index 0000000..1438099 --- /dev/null +++ b/crypttab-keyscript.patch @@ -0,0 +1,58 @@ +diff -ur dracut-047.orig/modules.d/90crypt/cryptroot-ask.sh dracut-047/modules.d/90crypt/cryptroot-ask.sh +--- dracut-047.orig/modules.d/90crypt/cryptroot-ask.sh 2018-02-19 09:00:33.000000000 +0000 ++++ dracut-047/modules.d/90crypt/cryptroot-ask.sh 2018-07-02 11:37:44.222951181 +0000 +@@ -106,6 +106,9 @@ + header=*) + cryptsetupopts="${cryptsetupopts} --${1}" + ;; ++ keyscript=*) ++ keyscript=${1##keyscript=} ++ ;; + esac + shift + done +@@ -163,6 +166,14 @@ + done + fi + ++if [ ! -z "$keyscript" -a -x "$keyscript" ]; then ++ info "Executing keyscript $keyscript" ++ eval $keyscript ++ if [ $? -eq 0 ]; then ++ ask_passphrase=0 ++ fi ++fi ++ + if [ $ask_passphrase -ne 0 ]; then + luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen" + ask_for_password --ply-tries 5 \ +diff -ur dracut-047.orig/modules.d/90crypt/module-setup.sh dracut-047/modules.d/90crypt/module-setup.sh +--- dracut-047.orig/modules.d/90crypt/module-setup.sh 2018-02-19 09:00:33.000000000 +0000 ++++ dracut-047/modules.d/90crypt/module-setup.sh 2018-07-02 10:57:20.952095619 +0000 +@@ -96,10 +96,26 @@ + forceentry="yes" + break + ;; ++ keyscript=*) ++ keyscript=${1##keyscript=} ++ break ++ ;; + esac + shift + done + ++ if [ ! -z "${keyscript}" ]; then ++ if [ -x "${keyscript}" ]; then ++ if [ ! -d "${initdir}/etc/keyscripts" ]; then ++ mkdir "${initdir}/etc/keyscripts" 2>/dev/null ++ fi ++ inst_script "${keyscript}" /etc/keyscripts/${keyscript##*/} ++ _luksoptions=${_luksoptions/${keyscript%%=*}/\/etc\/keyscripts\/${keyscript##*/}} ++ else ++ dwarning "Missing keyscript referenced in crypttab: ${keyscript}" ++ fi ++ fi ++ + # include the entry regardless + if [ "${forceentry}" = "yes" ]; then + echo "$_mapper $_dev $_luksfile $_luksoptions"