~ubuntu-branches/debian/sid/cryptsetup/sid

« back to all changes in this revision

Viewing changes to tests/compat-test

  • Committer: Package Import Robot
  • Author(s): Jonas Meurer
  • Date: 2012-02-05 03:17:59 UTC
  • mfrom: (0.2.9)
  • Revision ID: package-import@ubuntu.com-20120205031759-kua3bplwunj0q2zl
Tags: 2:1.4.1-1
* new upstream release (1.4.0 + 1.4.1) (closes: #647851)
  - fixes typo in german translation. (closes: #645528)
  - remove patches, all incorporated upstream.
  - soname bump, rename library package to libcryptsetup4
* check for busybox in initramfs cryptroot hook, and install the sed binary
  in case it's either not installed or not activated. (closes: #591853)
* add checks for 'type $KEYSCRIPT' to initscripts cryptdisks.functions, and
  to cryptroot initramfs script/hook. this adds support for keyscripts inside
  $PATH. thanks to Ian Jackson for the suggestion. (closes: #597583)
* use argument '--sysinit' for vgchange in cryptroot initramfs script. Thanks
  to Christoph Anton Mitterer for the suggestion.
* add option for discard/trim features to crypttab and initramfs scripts.
  Thanks to intrigeri and Peter Colberg for patches. (closes: #648868)
* print $target on error in initramfs hook. Thanks to Daniel Hahler for the
  bugreport. (closes: #648192)
* add a warning about using decrypt_derived keyscript for devices with
  persistent data. Thanks to Arno Wagner for pointing this out.
* remove quotes from resume device candidates at get_resume_devs() in
  initramfs hook script. Thanks to Johannes Rohr. (closes: #634017)
* support custom $TABFILE, thanks to Douglas Huff. (closes: #638317)
* fix get_lvm_deps() in initramfs cryptroot hook to add all physical volumes
  of lvm volume group that contains the rootfs logical volume, even if the
  rootfs is lv is not spread over all physical volumes. Thanks to Christian
  Pernegger for bugreport and patch. (closes: #634109)
* debian/initramfs/cryptroot-script: Move check for maximum number of tries
  behind the while loop, to make the warning appear in case that maximum
  number of tries is reached. Thanks to Chistian Lamparter for bugreport and
  patch. (closes: #646083)
* incorporate changes to package descriptions and debconf templates that
  suggested by debian-l10n-english people. Special thanks go to Justin B Rye.
* acknowledge NMU, thanks a lot to Christian Perrier for his great work on
  the i18n front. (closes: #633105, #641719, #641839, #641947, #642470,
  #640056, #642540, #643633, #643962, #644853)
* add and update debconf translations:
  - italian, thanks to Milo Casagrande, Francesca Ciceri. (closes: #656933)
  - german, thanks to Erik Pfannenstein. (closes: #642147)
  - spanish, thanks to Camaleón. (closes: #658360)
  - russian, thanks to Yuri Kuzlov (closes: #654676)
* set architecture to linux-any, depends on linux kernel anyway. Thanks to
  Christoph Egger. (closes: #638257)
* small updates to the copyright file.
* add targets build-indep and build-arch to debian/rules, thanks to lintian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 
5
5
DEV_NAME=dummy
6
6
DEV_NAME2=dummy2
 
7
DEV_NAME3=dummy3
7
8
ORIG_IMG=luks-test-orig
8
9
IMG=luks-test
9
10
KEY1=key1
10
11
KEY2=key2
 
12
KEY5=key5
11
13
 
12
14
LUKS_HEADER="S0-5 S6-7 S8-39 S40-71 S72-103 S104-107 S108-111 R112-131 R132-163 S164-167 S168-207 A0-591"
13
15
KEY_SLOT0="S208-211 S212-215 R216-247 A248-251 A251-255"
18
20
KEY_MATERIAL1="R69632-133632"
19
21
KEY_MATERIAL1_EXT="S69632-133632"
20
22
 
 
23
KEY_SLOT5="S448-451 S452-455 R456-487 A488-491 A492-495"
 
24
KEY_MATERIAL5="R331776-395264"
 
25
KEY_MATERIAL5_EXT="S331776-395264"
 
26
 
21
27
TEST_UUID="12345678-1234-1234-1234-123456789abc"
22
28
 
23
29
LOOPDEV=$(losetup -f 2>/dev/null)
24
30
 
25
31
function remove_mapping()
26
32
{
 
33
        [ -b /dev/mapper/$DEV_NAME3 ] && dmsetup remove $DEV_NAME3
27
34
        [ -b /dev/mapper/$DEV_NAME2 ] && dmsetup remove $DEV_NAME2
28
35
        [ -b /dev/mapper/$DEV_NAME ] && dmsetup remove $DEV_NAME
29
36
        losetup -d $LOOPDEV >/dev/null 2>&1
30
 
        rm -f $ORIG_IMG $IMG $KEY1 $KEY2 >/dev/null 2>&1
 
37
        rm -f $ORIG_IMG $IMG $KEY1 $KEY2 $KEY5 >/dev/null 2>&1
31
38
}
32
39
 
33
40
function fail()
34
41
{
 
42
        [ -n "$1" ] && echo "$1"
35
43
        remove_mapping
36
44
        echo "FAILED"
37
45
        exit 2
75
83
                dd if=/dev/urandom of=$KEY2 count=1 bs=16 >/dev/null 2>&1
76
84
        fi
77
85
 
 
86
        if [ ! -e $KEY5 ]; then
 
87
                dd if=/dev/urandom of=$KEY5 count=1 bs=16 >/dev/null 2>&1
 
88
        fi
 
89
 
78
90
        cp $IMG $ORIG_IMG
79
91
        [ -n "$1" ] && echo "CASE: $1"
80
92
}
92
104
        check $1
93
105
}
94
106
 
 
107
function valgrind_setup()
 
108
{
 
109
        which valgrind >/dev/null 2>&1 || fail "Cannot find valgrind"
 
110
 
 
111
        CRYPTSETUP_BIN=$($CRYPTSETUP --lt-debug --version 2>&1 \
 
112
                        | grep "newargv\[0\]" \
 
113
                        | sed 's/.*newargv\[0\]\:[[:space:]]\+\(.*\)$/\1/g')
 
114
        [ -z "$CRYPTSETUP_BIN" ] && fail "Unable to get location of cryptsetup executable."
 
115
        export LD_LIBRARY_PATH="../lib/.libs:$LD_LIBRARY_PATH"
 
116
}
 
117
 
 
118
function valgrind_run()
 
119
{
 
120
        INFOSTRING="$(basename ${BASH_SOURCE[1]})-line-${BASH_LINENO[0]}" ./valg.sh ${CRYPTSETUP_BIN} "$@"
 
121
}
 
122
 
95
123
[ $(id -u) != 0 ] && skip "WARNING: You must be root to run this test, test skipped."
96
124
[ -z "$LOOPDEV" ] && skip "Cannot find free loop device, test skipped."
97
125
 
 
126
[ -n "$VALG" ] && valgrind_setup && CRYPTSETUP=valgrind_run
 
127
 
98
128
# LUKS tests
99
129
 
 
130
 
100
131
prepare "[1] open - compat image - acceptance check" new
101
132
echo "compatkey" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME || fail
102
133
check_exists
 
134
ORG_SHA1=$(sha1sum -b /dev/mapper/$DEV_NAME | cut -f 1 -d' ')
 
135
[ "$ORG_SHA1" = 676062b66ebf36669dab705442ea0762dfc091b0 ] || fail
103
136
 
104
137
prepare "[2] open - compat image - denial check" new
105
138
echo "wrongkey" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME 2>/dev/null && fail
127
160
# Unsuccessful Key Delete - nothing may change
128
161
prepare "[7] unsuccessful delete"
129
162
echo "invalid" | $CRYPTSETUP luksKillSlot $LOOPDEV 1 2>/dev/null && fail
 
163
$CRYPTSETUP -q luksKillSlot $LOOPDEV 8 2>/dev/null && fail
 
164
$CRYPTSETUP -q luksKillSlot $LOOPDEV 7 2>/dev/null && fail
130
165
check
131
166
 
132
167
# Delete Key Test
255
290
$CRYPTSETUP -q resize  $DEV_NAME || fail
256
291
$CRYPTSETUP -q status  $DEV_NAME | grep "size:" | grep -q "19997 sectors" || fail
257
292
$CRYPTSETUP -q remove  $DEV_NAME || fail
 
293
$CRYPTSETUP -q status  $DEV_NAME >/dev/null && fail
258
294
echo "key0" | $CRYPTSETUP create $DEV_NAME --hash sha1 $LOOPDEV || fail
259
295
$CRYPTSETUP -q remove  $DEV_NAME || fail
260
296
echo "key0" | $CRYPTSETUP -q create $DEV_NAME --hash sha1 $LOOPDEV || fail
354
390
echo "key01" | $CRYPTSETUP luksRemoveKey $LOOPDEV -d 4 2>/dev/null && fail
355
391
echo -e "key0\n" | $CRYPTSETUP luksRemoveKey $LOOPDEV -d- -l 4 || fail
356
392
 
 
393
prepare "[25] Create non-overlapping segments" wipe
 
394
echo "key0" | $CRYPTSETUP create $DEV_NAME $LOOPDEV  --hash sha1 --offset   0 --size 256 || fail
 
395
echo "key0" | $CRYPTSETUP create $DEV_NAME2 $LOOPDEV --hash sha1 --offset 512 --size 256 2>/dev/null && fail
 
396
echo "key0" | $CRYPTSETUP create $DEV_NAME2 $LOOPDEV --hash sha1 --offset 512 --size 256 --shared || fail
 
397
echo "key0" | $CRYPTSETUP create $DEV_NAME3 $LOOPDEV --hash sha1 --offset 255 --size 256 --shared 2>/dev/null && fail
 
398
echo "key0" | $CRYPTSETUP create $DEV_NAME3 $LOOPDEV --hash sha1 --offset 256 --size 257 --shared 2>/dev/null && fail
 
399
echo "key0" | $CRYPTSETUP create $DEV_NAME3 $LOOPDEV --hash sha1 --offset 256 --size 1024 --shared 2>/dev/null && fail
 
400
echo "key0" | $CRYPTSETUP create $DEV_NAME3 $LOOPDEV --hash sha1 --offset 256 --size 256 --shared || fail
 
401
$CRYPTSETUP -q remove  $DEV_NAME3 || fail
 
402
$CRYPTSETUP -q remove  $DEV_NAME2 || fail
 
403
$CRYPTSETUP -q remove  $DEV_NAME || fail
 
404
 
 
405
prepare "[26] Suspend/Resume" wipe
 
406
# only LUKS is supported
 
407
echo "key0" | $CRYPTSETUP create $DEV_NAME --hash sha1 $LOOPDEV || fail
 
408
$CRYPTSETUP luksSuspend $DEV_NAME 2>/dev/null && fail
 
409
$CRYPTSETUP luksResume $DEV_NAME 2>/dev/null && fail
 
410
$CRYPTSETUP -q remove  $DEV_NAME || fail
 
411
$CRYPTSETUP luksSuspend $DEV_NAME 2>/dev/null && fail
 
412
# LUKS
 
413
echo "key0" | $CRYPTSETUP -q luksFormat $LOOPDEV || fail
 
414
echo "key0" | $CRYPTSETUP -q luksOpen $LOOPDEV $DEV_NAME || fail
 
415
$CRYPTSETUP luksSuspend $DEV_NAME || fail
 
416
$CRYPTSETUP -q resize  $DEV_NAME 2>/dev/null && fail
 
417
echo "xxx" | $CRYPTSETUP luksResume $DEV_NAME -T 1 2>/dev/null && fail
 
418
echo "key0" | $CRYPTSETUP luksResume $DEV_NAME  || fail
 
419
$CRYPTSETUP -q luksClose $DEV_NAME || fail
 
420
 
 
421
prepare "[27] luksOpen with specified key slot number" wipe
 
422
# first, let's try passphrase option
 
423
echo "key5" | $CRYPTSETUP luksFormat -S 5 $LOOPDEV || fail
 
424
check $LUKS_HEADER $KEY_SLOT5 $KEY_MATERIAL5
 
425
echo "key5" | $CRYPTSETUP luksOpen -S 4 $LOOPDEV $DEV_NAME && fail
 
426
[ -b /dev/mapper/$DEV_NAME ] && fail
 
427
echo "key5" | $CRYPTSETUP luksOpen -S 5 $LOOPDEV $DEV_NAME || fail
 
428
check_exists
 
429
$CRYPTSETUP luksClose $DEV_NAME || fail
 
430
echo -e "key5\nkey0" | $CRYPTSETUP luksAddKey -S 0 $LOOPDEV || fail
 
431
check $LUKS_HEADER $KEY_SLOT0 $KEY_MATERIAL0
 
432
echo "key5" | $CRYPTSETUP luksOpen -S 0 $LOOPDEV $DEV_NAME && fail
 
433
[ -b /dev/mapper/$DEV_NAME ] && fail
 
434
echo "key0" | $CRYPTSETUP luksOpen -S 5 $LOOPDEV $DEV_NAME && fail
 
435
[ -b /dev/mapper/$DEV_NAME ] && fail
 
436
# second, try it with keyfiles
 
437
$CRYPTSETUP luksFormat -q -S 5 -d $KEY5 $LOOPDEV || fail
 
438
check $LUKS_HEADER $KEY_SLOT5 $KEY_MATERIAL5
 
439
$CRYPTSETUP luksAddKey -S 1 -d $KEY5 $LOOPDEV $KEY1 || fail
 
440
check $LUKS_HEADER $KEY_SLOT1 $KEY_MATERIAL1
 
441
$CRYPTSETUP luksOpen -S 5 -d $KEY5 $LOOPDEV $DEV_NAME || fail
 
442
check_exists
 
443
$CRYPTSETUP luksClose $DEV_NAME || fail
 
444
$CRYPTSETUP luksOpen -S 1 -d $KEY5 $LOOPDEV $DEV_NAME && fail
 
445
[ -b /dev/mapper/$DEV_NAME ] && fail
 
446
$CRYPTSETUP luksOpen -S 5 -d $KEY1 $LOOPDEV $DEV_NAME && fail
 
447
[ -b /dev/mapper/$DEV_NAME ] && fail
 
448
 
357
449
remove_mapping
358
450
exit 0