]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - tools/regression/geom_eli/delkey.t
MFC r293436:
[FreeBSD/stable/10.git] / tools / regression / geom_eli / delkey.t
1 #!/bin/sh
2 # $FreeBSD$
3
4 . $(dirname $0)/conf.sh
5
6 base=`basename $0`
7 sectors=100
8 keyfile1=`mktemp $base.XXXXXX` || exit 1
9 keyfile2=`mktemp $base.XXXXXX` || exit 1
10 keyfile3=`mktemp $base.XXXXXX` || exit 1
11 keyfile4=`mktemp $base.XXXXXX` || exit 1
12 mdconfig -a -t malloc -s `expr $sectors + 1` -u $no || exit 1
13
14 echo "1..14"
15
16 dd if=/dev/random of=${keyfile1} bs=512 count=16 >/dev/null 2>&1
17 dd if=/dev/random of=${keyfile2} bs=512 count=16 >/dev/null 2>&1
18 dd if=/dev/random of=${keyfile3} bs=512 count=16 >/dev/null 2>&1
19 dd if=/dev/random of=${keyfile4} bs=512 count=16 >/dev/null 2>&1
20
21 geli init -B none -P -K $keyfile1 md${no}
22 geli attach -p -k $keyfile1 md${no}
23 geli setkey -n 1 -P -K $keyfile2 md${no}
24
25 # Remove key 0 for attached provider.
26 geli delkey -n 0 md${no}
27 if [ $? -eq 0 ]; then
28         echo "ok 1"
29 else
30         echo "not ok 1"
31 fi
32 geli detach md${no}
33
34 # We cannot use keyfile1 anymore.
35 geli attach -p -k $keyfile1 md${no} 2>/dev/null
36 if [ $? -ne 0 ]; then
37         echo "ok 2"
38 else
39         echo "not ok 2"
40 fi
41
42 # Attach with key 1.
43 geli attach -p -k $keyfile2 md${no}
44 if [ $? -eq 0 ]; then
45         echo "ok 3"
46 else
47         echo "not ok 3"
48 fi
49
50 # We cannot remove last key without -f option (for attached provider).
51 geli delkey -n 1 md${no} 2>/dev/null
52 if [ $? -ne 0 ]; then
53         echo "ok 4"
54 else
55         echo "not ok 4"
56 fi
57
58 # Remove last key for attached provider.
59 geli delkey -f -n 1 md${no}
60 if [ $? -eq 0 ]; then
61         echo "ok 5"
62 else
63         echo "not ok 5"
64 fi
65
66 # If there are no valid keys, but provider is attached, we can save situation.
67 geli setkey -n 0 -P -K $keyfile3 md${no}
68 if [ $? -eq 0 ]; then
69         echo "ok 6"
70 else
71         echo "not ok 6"
72 fi
73 geli detach md${no}
74
75 # We cannot use keyfile2 anymore.
76 geli attach -p -k $keyfile2 md${no} 2>/dev/null
77 if [ $? -ne 0 ]; then
78         echo "ok 7"
79 else
80         echo "not ok 7"
81 fi
82
83 # Attach with key 0.
84 geli attach -p -k $keyfile3 md${no}
85 if [ $? -eq 0 ]; then
86         echo "ok 8"
87 else
88         echo "not ok 8"
89 fi
90
91 # Setup key 1.
92 geli setkey -n 1 -P -K $keyfile4 md${no}
93 if [ $? -eq 0 ]; then
94         echo "ok 9"
95 else
96         echo "not ok 9"
97 fi
98 geli detach md${no}
99
100 # Remove key 1 for detached provider.
101 geli delkey -n 1 md${no}
102 if [ $? -eq 0 ]; then
103         echo "ok 10"
104 else
105         echo "not ok 10"
106 fi
107
108 # We cannot use keyfile4 anymore.
109 geli attach -p -k $keyfile4 md${no} 2>/dev/null
110 if [ $? -ne 0 ]; then
111         echo "ok 11"
112 else
113         echo "not ok 11"
114 fi
115
116 # We cannot remove last key without -f option (for detached provider).
117 geli delkey -n 0 md${no} 2>/dev/null
118 if [ $? -ne 0 ]; then
119         echo "ok 12"
120 else
121         echo "not ok 12"
122 fi
123
124 # Remove last key for detached provider.
125 geli delkey -f -n 0 md${no}
126 if [ $? -eq 0 ]; then
127         echo "ok 13"
128 else
129         echo "not ok 13"
130 fi
131
132 # We cannot use keyfile3 anymore.
133 geli attach -p -k $keyfile3 md${no} 2>/dev/null
134 if [ $? -ne 0 ]; then
135         echo "ok 14"
136 else
137         echo "not ok 14"
138 fi
139
140 rm -f $keyfile1 $keyfile2 $keyfile3 $keyfile4