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