diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2011-08-01 13:26:42 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2011-08-01 13:26:42 +0200 |
commit | 32d4f19aa5f05255c3d609048e1bf6ac4ffbfef4 (patch) | |
tree | a92c3310cd85ac00ed20e1ecac5dc4fdc5243fda /package/cryptinit/src/cryptinitsc | |
parent | 38e356a749191c1832c9726b0b6cb913737af700 (diff) | |
parent | a3e0d02b1c8b618fdfc0454560f75e678e0d68c0 (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'package/cryptinit/src/cryptinitsc')
-rwxr-xr-x | package/cryptinit/src/cryptinitsc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/package/cryptinit/src/cryptinitsc b/package/cryptinit/src/cryptinitsc new file mode 100755 index 000000000..c29e231ee --- /dev/null +++ b/package/cryptinit/src/cryptinitsc @@ -0,0 +1,65 @@ +#!/bin/sh + +load_modules() { + (sed "s,^[^#][^[:space:]]*,insmod /lib/modules/$(uname -r)/&.ko," $* | sh 2>&- || :) +} + +echo -n "Kernel currently running: " +uname -rsmo +echo -n "Kernel parameters: "; cat /proc/cmdline +for word in $(cat /proc/cmdline) ; do + case $word in + [a-z]*=*) + eval "export $word" + ;; + esac +done + +echo 0 > /proc/sys/kernel/printk + +load_modules /etc/modules +for f in /etc/modules.d/*; do + [[ -e $f ]] && load_modules /etc/modules.d/* + break +done + +mount /dev/sda1 /boot +mkdir -p /var/run/openct +openct-control init +pcscd -f >/dev/null & +sleep 2 + +fail=0 +count=0 +while true; do + pkcs15-crypt --decipher --input /boot/key --pkcs1 --raw >/tmp/skey + cryptsetup -d /tmp/skey --batch-mode luksOpen $swap swapcrypt + if [ $? = 0 ];then + break + fi + if [ $count = 2 ];then + echo "You are not allowed" + sleep 3 + fail=1 + break + fi + count=$(($count+1)) +done + +if [ $fail -eq 1 ];then + echo "Poweroff." + p +fi + +echo "Try to resume from hibernation" +echo "254:0" > /sys/power/resume + +cryptsetup -d /tmp/skey --batch-mode luksOpen $root rootcrypt +swapon /dev/mapper/swapcrypt +mount /dev/mapper/rootcrypt /mnt +pkill pcscd +rm /tmp/skey +umount /proc +umount /sys +umount /dev/pts +umount /tmp |