]> git.mxchange.org Git - secure-linux-project.git/blob - encrypt/swap.sh
Initial import from 0.5a version.
[secure-linux-project.git] / encrypt / swap.sh
1 #!/bin/sh
2
3 source /.local.sh
4
5 ZEROS="$SWAP_SIZE"
6 SWAP_SIZE="$(($SWAP_SIZE*1024))"
7 VERIFY="$(($SWAP_OFFSET+$SWAP_SIZE))"
8 VERIFY="$(($ROOT_OFFSET-$VERIFY))"
9
10 if test "$VERIFY" != "12288"; then
11         echo "$0: Failed verification: $VERIFY!=12288. No swap space available!"
12 else
13         # encrypted swap partition
14         SWAPDEVICE="/dev/loop3"
15
16         # loop device name
17         LOOPDEV="/dev/loop4"
18
19         # Blocksize for filling devices with zeros
20         ZERO_BSIZE="4k"
21
22         # Number of above blocks for the zeros
23         ZERO_COUNT=3`echo $RANDOM | cut -c -2`
24
25         # Special options of above stuff
26         ZERO_OPTS="conv=notrunc"
27
28         # Length of the salt for password
29         SALT_LEN="18"
30
31         echo "$0: Initializing encrypted swap partition $SWAPDEVICE ..."
32         MD=`dd if=${SWAPDEVICE} bs=$ZERO_BSIZE count=$ZERO_COUNT 2>/dev/null | md5sum | cut -c-32`
33         for X in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; do
34                 dd if=/dev/zero of=${SWAPDEVICE} bs=$ZERO_BSIZE count=$ZERO_COUNT $ZERO_OPTS 2>/dev/null
35                 sync
36         done
37         UR=`dd if=/dev/urandom bs=$SALT_LEN count=1 2>/dev/null | uuencode -m - | head -n 2 | tail -n 1` 2>/dev/null
38         echo "$0: Preparing ${LOOPDEV}..."
39         echo ${MD}${UR} | losetup -p 0 -C $ITER -e $CIPHER  ${LOOPDEV} ${SWAPDEVICE}
40         MD=
41         UR=
42         dd if=/dev/zero of=${LOOPDEV} bs=$ZERO_BSIZE count=$ZERO_COUNT $ZERO_OPTS 2>/dev/null
43         sync
44         echo "$0: Creating swap space ..."
45         mkswap -fc ${LOOPDEV} $SWAP_SIZE || exit 1
46         sync
47         echo "$0: Activating swap space ..."
48         swapon ${LOOPDEV} || exit 1
49 fi