delkey_test.sh revision 148459
1148459Spjd#!/bin/sh
2148459Spjd# $FreeBSD: head/tools/regression/geom_eli/delkey.t 148459 2005-07-27 22:27:30Z pjd $
3148459Spjd
4148459Spjdbase=`basename $0`
5148459Spjdno=45
6148459Spjdsectors=100
7148459Spjdkeyfile1=`mktemp /tmp/$base.XXXXXX` || exit 1
8148459Spjdkeyfile2=`mktemp /tmp/$base.XXXXXX` || exit 1
9148459Spjdkeyfile3=`mktemp /tmp/$base.XXXXXX` || exit 1
10148459Spjdkeyfile4=`mktemp /tmp/$base.XXXXXX` || exit 1
11148459Spjdmdconfig -a -t malloc -s `expr $sectors + 1` -u $no || exit 1
12148459Spjd
13148459Spjdecho "1..14"
14148459Spjd
15148459Spjddd if=/dev/random of=${keyfile1} bs=512 count=16 >/dev/null 2>&1
16148459Spjddd if=/dev/random of=${keyfile2} bs=512 count=16 >/dev/null 2>&1
17148459Spjddd if=/dev/random of=${keyfile3} bs=512 count=16 >/dev/null 2>&1
18148459Spjddd if=/dev/random of=${keyfile4} bs=512 count=16 >/dev/null 2>&1
19148459Spjd
20148459Spjdgeli init -P -K $keyfile1 md${no}
21148459Spjdgeli attach -p -k $keyfile1 md${no}
22148459Spjdgeli setkey -n 1 -P -K $keyfile2 md${no}
23148459Spjd
24148459Spjd# Remove key 0 for attached provider.
25148459Spjdgeli delkey -n 0 md${no}
26148459Spjdif [ $? -eq 0 ]; then
27148459Spjd	echo "ok 1"
28148459Spjdelse
29148459Spjd	echo "not ok 1"
30148459Spjdfi
31148459Spjdgeli detach md${no}
32148459Spjd
33148459Spjd# We cannot use keyfile1 anymore.
34148459Spjdgeli attach -p -k $keyfile1 md${no} 2>/dev/null
35148459Spjdif [ $? -ne 0 ]; then
36148459Spjd	echo "ok 2"
37148459Spjdelse
38148459Spjd	echo "not ok 2"
39148459Spjdfi
40148459Spjd
41148459Spjd# Attach with key 1.
42148459Spjdgeli attach -p -k $keyfile2 md${no}
43148459Spjdif [ $? -eq 0 ]; then
44148459Spjd	echo "ok 3"
45148459Spjdelse
46148459Spjd	echo "not ok 3"
47148459Spjdfi
48148459Spjd
49148459Spjd# We cannot remove last key without -f option (for attached provider).
50148459Spjdgeli delkey -n 1 md${no} 2>/dev/null
51148459Spjdif [ $? -ne 0 ]; then
52148459Spjd	echo "ok 4"
53148459Spjdelse
54148459Spjd	echo "not ok 4"
55148459Spjdfi
56148459Spjd
57148459Spjd# Remove last key for attached provider.
58148459Spjdgeli delkey -f -n 1 md${no}
59148459Spjdif [ $? -eq 0 ]; then
60148459Spjd	echo "ok 5"
61148459Spjdelse
62148459Spjd	echo "not ok 5"
63148459Spjdfi
64148459Spjd
65148459Spjd# If there are no valid keys, but provider is attached, we can save situation.
66148459Spjdgeli setkey -n 0 -P -K $keyfile3 md${no}
67148459Spjdif [ $? -eq 0 ]; then
68148459Spjd	echo "ok 6"
69148459Spjdelse
70148459Spjd	echo "not ok 6"
71148459Spjdfi
72148459Spjdgeli detach md${no}
73148459Spjd
74148459Spjd# We cannot use keyfile2 anymore.
75148459Spjdgeli attach -p -k $keyfile2 md${no} 2>/dev/null
76148459Spjdif [ $? -ne 0 ]; then
77148459Spjd	echo "ok 7"
78148459Spjdelse
79148459Spjd	echo "not ok 7"
80148459Spjdfi
81148459Spjd
82148459Spjd# Attach with key 0.
83148459Spjdgeli attach -p -k $keyfile3 md${no}
84148459Spjdif [ $? -eq 0 ]; then
85148459Spjd	echo "ok 8"
86148459Spjdelse
87148459Spjd	echo "not ok 8"
88148459Spjdfi
89148459Spjd
90148459Spjd# Setup key 1.
91148459Spjdgeli setkey -n 1 -P -K $keyfile4 md${no}
92148459Spjdif [ $? -eq 0 ]; then
93148459Spjd	echo "ok 9"
94148459Spjdelse
95148459Spjd	echo "not ok 9"
96148459Spjdfi
97148459Spjdgeli detach md${no}
98148459Spjd
99148459Spjd# Remove key 1 for detached provider.
100148459Spjdgeli delkey -n 1 md${no}
101148459Spjdif [ $? -eq 0 ]; then
102148459Spjd	echo "ok 10"
103148459Spjdelse
104148459Spjd	echo "not ok 10"
105148459Spjdfi
106148459Spjd
107148459Spjd# We cannot use keyfile4 anymore.
108148459Spjdgeli attach -p -k $keyfile4 md${no} 2>/dev/null
109148459Spjdif [ $? -ne 0 ]; then
110148459Spjd	echo "ok 11"
111148459Spjdelse
112148459Spjd	echo "not ok 11"
113148459Spjdfi
114148459Spjd
115148459Spjd# We cannot remove last key without -f option (for detached provider).
116148459Spjdgeli delkey -n 0 md${no} 2>/dev/null
117148459Spjdif [ $? -ne 0 ]; then
118148459Spjd	echo "ok 12"
119148459Spjdelse
120148459Spjd	echo "not ok 12"
121148459Spjdfi
122148459Spjd
123148459Spjd# Remove last key for detached provider.
124148459Spjdgeli delkey -f -n 0 md${no}
125148459Spjdif [ $? -eq 0 ]; then
126148459Spjd	echo "ok 13"
127148459Spjdelse
128148459Spjd	echo "not ok 13"
129148459Spjdfi
130148459Spjd
131148459Spjd# We cannot use keyfile3 anymore.
132148459Spjdgeli attach -p -k $keyfile3 md${no} 2>/dev/null
133148459Spjdif [ $? -ne 0 ]; then
134148459Spjd	echo "ok 14"
135148459Spjdelse
136148459Spjd	echo "not ok 14"
137148459Spjdfi
138148459Spjd
139148459Spjdmdconfig -d -u $no
140148459Spjdrm -f $keyfile1 $keyfile2 $keyfile3 $keyfile4
141