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