3 [ -z "$CRYPTSETUP_PATH" ] && CRYPTSETUP_PATH=".."
4 CRYPTSETUP=$CRYPTSETUP_PATH/cryptsetup
9 CRYPTSETUP_VALGRIND=../.libs/cryptsetup
10 CRYPTSETUP_LIB_VALGRIND=../.libs
12 [ -z "$srcdir" ] && srcdir="."
14 function remove_mapping()
16 [ -b /dev/mapper/$MAP ] && dmsetup remove --retry $MAP
22 [ -n "$1" ] && echo "$1"
24 echo "FAILED backtrace:"
25 while caller $frame; do ((frame++)); done
32 [ -n "$1" ] && echo "$1"
37 function valgrind_setup()
39 command -v valgrind >/dev/null || fail "Cannot find valgrind."
40 [ ! -f $CRYPTSETUP_VALGRIND ] && fail "Unable to get location of cryptsetup executable."
41 export LD_LIBRARY_PATH="$CRYPTSETUP_LIB_VALGRIND:$LD_LIBRARY_PATH"
44 function valgrind_run()
46 INFOSTRING="$(basename ${BASH_SOURCE[1]})-line-${BASH_LINENO[0]}" ./valg.sh ${CRYPTSETUP_VALGRIND} "$@"
49 function remove_imgs()
51 echo "WARNING: $1 not available, not testing some images."
52 rm $(ls $TST_DIR/*$1*.img)
57 $CRYPTSETUP benchmark -c "$1" -s "$2" | grep -v "#" || remove_imgs $1
60 function test_required()
62 echo "REQUIRED KDF TEST"
63 $CRYPTSETUP benchmark -h whirlpool | grep "N/A" && remove_imgs whirlpool
65 echo "REQUIRED CIPHERS TEST"
66 echo "# Algorithm | Key | Encryption | Decryption"
69 test_one twofish-xts 256
70 test_one serpent-xts 256
76 [ ! -x "$CRYPTSETUP" ] && skip "Cannot find $CRYPTSETUP, test skipped."
77 command -v blkid >/dev/null || skip "blkid tool required, test skipped."
78 [ -n "$VALG" ] && valgrind_setup && CRYPTSETUP=valgrind_run
79 [ ! -d $TST_DIR ] && tar xJf $srcdir/luks1-images.tar.xz --no-same-owner
82 echo "PASSPHRASE CHECK"
83 for file in $(ls $TST_DIR/luks1_*) ; do
85 $CRYPTSETUP luksOpen -d $TST_DIR/$KEYFILE $file --test-passphrase 2>/dev/null
87 # ignore missing whirlpool (pwd failed is exit code 2)
88 [ $ret -eq 1 ] && (echo $file | grep -q -e "whirlpool") && echo " [N/A]" && continue
89 # ignore flawed whirlpool (pwd failed is exit code 2)
90 [ $ret -eq 2 ] && (echo $file | grep -q -e "whirlpool") && \
91 ($CRYPTSETUP luksDump $file --debug | grep -q -e "flawed whirlpool") && \
92 echo " [IGNORED (flawed Whirlpool library)]" && continue
93 [ $ret -ne 0 ] && fail
97 if [ $(id -u) != 0 ]; then
98 echo "WARNING: You must be root to run activation part of test, test skipped."
103 echo "ACTIVATION FS UUID CHECK"
104 for file in $(ls $TST_DIR/luks1_*) ; do
106 $CRYPTSETUP luksOpen -d $TST_DIR/$KEYFILE $file $MAP 2>/dev/null
108 # ignore missing whirlpool (pwd failed is exit code 2)
109 [ $ret -eq 1 ] && (echo $file | grep -q -e "whirlpool") && echo " [N/A]" && continue
110 # ignore flawed whirlpool (pwd failed is exit code 2)
111 [ $ret -eq 2 ] && (echo $file | grep -q -e "whirlpool") && \
112 ($CRYPTSETUP luksDump $file --debug | grep -q -e "flawed whirlpool") && \
113 echo " [IGNORED (flawed Whirlpool library)]" && continue
114 [ $ret -ne 0 ] && fail
115 $CRYPTSETUP status $MAP >/dev/null || fail
116 $CRYPTSETUP status /dev/mapper/$MAP >/dev/null || fail
117 UUID=$(blkid -p -o value -s UUID /dev/mapper/$MAP)
118 $CRYPTSETUP remove $MAP || fail
119 [ "$UUID" != "DEAD-BABE" ] && fail "UUID check failed."