X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=openct-initramfs-hook;fp=openct-initramfs-hook;h=e83ca1b1c28ec24bea627181f093919679c0115f;hb=05602da6ce9639dafe62c0ce505a69451654fd54;hp=0000000000000000000000000000000000000000;hpb=c7214fd6d8f6a9d480cc30acdf3d942db6e14e55;p=packages%2Fopenct.git diff --git a/openct-initramfs-hook b/openct-initramfs-hook new file mode 100644 index 0000000..e83ca1b --- /dev/null +++ b/openct-initramfs-hook @@ -0,0 +1,61 @@ +#!/bin/sh + +set -e + +PREREQ="cryptroot" + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in + prereqs) + prereqs + exit 0 + ;; +esac + +. /usr/share/initramfs-tools/hook-functions + +# Hooks for loading smartcard reading software into the initramfs + +# Check whether cryptroot hook has installed decrypt_openct script +if [ ! -x ${DESTDIR}/keyscripts/decrypt_openct ] ; then + exit 0 +fi + +# Install cryptroot key files into initramfs +keys=$(sed 's/^\(.*,\|\)key=//; s/,.*//' ${DESTDIR}/conf/conf.d/cryptroot) + +if [ "${keys}" != "none" ] +then + if [ -z "${keys}" ] ; then + echo $0: Missing key files in ${DESTDIR}/conf/conf.d/cryptroot >&2 + cat ${DESTDIR}/conf/conf.d/cryptroot >&2 + exit 1 + fi + for key in ${keys} ; do + if [ ! -d ${DESTDIR}/$(dirname ${key}) ] ; then + mkdir -p ${DESTDIR}/$(dirname ${key}) + fi + cp ${key} ${DESTDIR}/${key} + done +fi + +# Install directories needed by smartcard reading daemon, command, and +# key-script +for dir in etc etc/init.d etc/udev/rules.d lib/udev usr/bin usr/sbin var/run/openct tmp ; do + if [ ! -d ${DESTDIR}/${dir} ] ; then mkdir -p ${DESTDIR}/${dir} ; fi +done + +# Install openct tools, drivers, conf file +cp /etc/openct.conf ${DESTDIR}/etc/ +cp /etc/udev/rules.d/z60_openct.rules ${DESTDIR}/etc/udev/rules.d/ +cp /lib/udev/openct_pcmcia ${DESTDIR}/lib/udev/ +cp /lib/udev/openct_serial ${DESTDIR}/lib/udev/ +cp /lib/udev/openct_usb ${DESTDIR}/lib/udev/ +copy_exec /usr/bin/openct-tool +copy_exec /usr/bin/pkcs15-tool +copy_exec /usr/sbin/ifdhandler +copy_exec /usr/sbin/openct-control