integrity-hmac.t revision 159328
1169942Sobrien#!/bin/sh 2169942Sobrien# $FreeBSD: head/tools/regression/geom_eli/integrity-hmac.t 159328 2006-06-06 06:46:51Z pjd $ 3169942Sobrien 4169942Sobrienbase=`basename $0` 5169942Sobrienno=45 6169942Sobriensectors=100 7169942Sobrienkeyfile=`mktemp /tmp/$base.XXXXXX` || exit 1 8169942Sobriensector=`mktemp /tmp/$base.XXXXXX` || exit 1 9169942Sobrien 10169942Sobrienecho "1..1080" 11169942Sobrien 12169942Sobrieni=1 13169942Sobrienfor cipher in aes:0 aes:128 aes:192 aes:256 \ 14169942Sobrien 3des:0 3des:192 \ 15169942Sobrien blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \ 16169942Sobrien blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \ 17169942Sobrien blowfish:416 blowfish:448; do 18169942Sobrien ealgo=${cipher%%:*} 19169942Sobrien keylen=${cipher##*:} 20169942Sobrien for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 hmac/sha512; do 21169942Sobrien for secsize in 512 1024 2048 4096 8192; do 22169942Sobrien mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u $no || exit 1 23169942Sobrien 24169942Sobrien dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1 25169942Sobrien 26169942Sobrien geli init -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s $secsize md${no} 27169942Sobrien geli attach -p -k $keyfile md${no} 28169942Sobrien 29169942Sobrien dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1 30169942Sobrien 31169942Sobrien dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1 32169942Sobrien if [ $? -eq 0 ]; then 33 echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 34 else 35 echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 36 fi 37 i=$((i+1)) 38 39 geli detach md${no} 40 # Corrupt 8 bytes of HMAC. 41 dd if=/dev/md${no} of=${sector} bs=512 count=1 >/dev/null 2>&1 42 dd if=/dev/random of=${sector} bs=1 count=16 conv=notrunc >/dev/null 2>&1 43 dd if=${sector} of=/dev/md${no} bs=512 count=1 >/dev/null 2>&1 44 geli attach -p -k $keyfile md${no} 45 46 dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1 47 if [ $? -ne 0 ]; then 48 echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 49 else 50 echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 51 fi 52 i=$((i+1)) 53 54 geli detach md${no} 55 mdconfig -d -u $no 56 done 57 done 58done 59 60rm -f $keyfile $sector 61