mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.1 KiB

  1. #!/bin/bash
  2. encryption_start() {
  3. if [ -e /lvp.data1 ] ; then
  4. numfiles=0
  5. files=""
  6. echo -n "Found "
  7. for x in /lvp.data* ; do
  8. echo -n "${x} "
  9. numfiles=$(( ${numfiles} + 1 ))
  10. files="${files} /dev/loop/${numfiles}"
  11. done
  12. echo
  13. echo "Starting crypto-subroutine"
  14. exec 2>/dev/null
  15. for x in /lvp.data* ; do
  16. losetup /dev/loop/${x#/lvp.data} ${x}
  17. done
  18. mdadm --build /dev/md/0 -l linear --force -n ${numfiles} ${files}
  19. while [ ! -e /mnt1/lvp.xml ] ; do
  20. echo -n "Please enter passphrase: "
  21. read -s pass
  22. echo
  23. pass="`echo ${pass} | md5sum`"
  24. pass=${pass%% *}
  25. echo 0 `/sbin/blockdev --getsize /dev/md/0` crypt aes-plain ${pass} 0 /dev/md/0 0 | /sbin/dmsetup create lvp_data
  26. mount /dev/mapper/lvp_data /mnt1
  27. if [ ! -e /mnt1/lvp.xml ] ; then
  28. echo "Wrong Passphrase!"
  29. dmsetup remove /dev/mapper/lvp_data
  30. fi
  31. done
  32. exec 2>&1
  33. fi
  34. }
  35. encryption_stop(){
  36. umount /mnt1
  37. dmsetup remove /dev/mapper/lvp_data
  38. mdadm -S /dev/md/0
  39. for x in /lvp.data* ; do
  40. losetup -d /dev/loop/${x#/lvp.data}
  41. done
  42. }
  43. encryption_(){
  44. echo "Uh-Oh"
  45. }
  46. eval "encryption_${1}"