TCRYPT: add simple test and image archive.
[platform/upstream/cryptsetup.git] / tests / tcrypt-compat-test
1 #!/bin/bash
2
3 # check tcrypt images parsing
4
5 CRYPTSETUP=../src/cryptsetup
6 TST_DIR=tcrypt-images
7 MAP=tctst
8 PASSWORD="aaaaaaaaaaaa"
9 PASSWORD_HIDDEN="bbbbbbbbbbbb"
10
11 function remove_mapping()
12 {
13         [ -b /dev/mapper/$MAP ] && dmsetup remove $MAP
14         [ -b /dev/mapper/"$MAP"_1 ] && dmsetup remove "$MAP"_1
15         [ -b /dev/mapper/"$MAP"_2 ] && dmsetup remove "$MAP"_2
16 }
17
18 function fail()
19 {
20         [ -n "$1" ] && echo "$1"
21         echo "FAILED"
22         remove_mapping
23         exit 2
24 }
25
26
27 [ ! -d $TST_DIR ] && tar xjf tcrypt-images.tar.bz2
28
29 echo "HEADER CHECK"
30 for file in $(ls $TST_DIR/tc_*) ; do
31         echo -n " $file"
32         echo $PASSWORD | $CRYPTSETUP tcryptDump $file >/dev/null || fail
33         echo " [OK]"
34 done
35
36 echo "HEADER CHECK (HIDDEN)"
37 for file in $(ls $TST_DIR/tc_*-hidden) ; do
38         echo -n " $file (hidden)"
39         echo $PASSWORD_HIDDEN | $CRYPTSETUP tcryptDump --hidden $file >/dev/null || fail
40         echo " [OK]"
41 done
42
43 if [ $(id -u) != 0 ]; then
44         echo "WARNING: You must be root to run this test, test skipped."
45         exit 0
46 fi
47
48 echo "ACTIVATION FS UUID CHECK (LRW/XTS modes only)"
49 for file in $(ls $TST_DIR/*-lrw-* $TST_DIR/*-xts-*) ; do
50         echo -n " $file"
51         echo $PASSWORD | $CRYPTSETUP tcryptOpen -r $file $MAP || fail
52         UUID=$(lsblk -n -o UUID /dev/mapper/$MAP)
53         $CRYPTSETUP remove $MAP || fail
54         [ "$UUID" != "DEAD-BABE" ] && fail "UUID check failed."
55         echo " [OK]"
56 done
57
58 echo "ACTIVATION FS UUID (HIDDEN) CHECK (LRW/XTS modes only)"
59 for file in $(ls $TST_DIR/*-lrw-*-hidden $TST_DIR/*-xts-*-hidden) ; do
60         echo -n " $file"
61         echo $PASSWORD_HIDDEN | $CRYPTSETUP tcryptOpen -r $file $MAP --hidden || fail
62         UUID=$(lsblk -n -o UUID /dev/mapper/$MAP)
63         $CRYPTSETUP remove $MAP || fail
64         [ "$UUID" != "CAFE-BABE" ] && fail "UUID check failed."
65         echo " [OK]"
66 done