#!/bin/bash -x
trap 'exit' ERR
export tmp=`mktemp /tmp/luksmeta.XXXXXXXXXX`
function onexit() {
rm -f $tmp
}
trap 'onexit' EXIT
truncate -s 4M $tmp
echo -n foo | cryptsetup luksFormat $tmp -
! ./luksmeta test -d $tmp
./luksmeta init -f -d $tmp
./luksmeta test -d $tmp
./luksmeta init -f -d $tmp
for slot in `seq 0 7`; do
test "`./luksmeta show -s $slot -d $tmp`" == ""
echo hi | ./luksmeta save -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
test "`./luksmeta show -s $slot -d $tmp`" == "23149359-1b61-4803-b818-774ab730fbec"
test "`./luksmeta load -s $slot -d $tmp`" == "hi"
test "`./luksmeta load -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp`" == "hi"
! ./luksmeta load -s $slot -u 23149359-1b61-4803-b818-774ab730fbed -d $tmp
! ./luksmeta wipe -f -s $slot -u 23149359-1b61-4803-b818-774ab730fbed -d $tmp
./luksmeta wipe -f -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
! ./luksmeta load -s $slot -d $tmp
echo hi | ./luksmeta save -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
./luksmeta wipe -f -s $slot -d $tmp
! ./luksmeta load -s $slot -d $tmp
done
# Test nuking
./luksmeta test -d $tmp
./luksmeta init -f -d $tmp
./luksmeta nuke -f -d $tmp
! ./luksmeta test -d $tmp
# Test implicit nuking
./luksmeta init -f -d $tmp
echo hi | ./luksmeta save -s 0 -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
test "`./luksmeta load -s 0 -d $tmp`" == "hi"
./luksmeta init -n -f -d $tmp
! ./luksmeta load -s 0 -d $tmp