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