1#!/bin/sh 2# $FreeBSD$ 3 4. $(dirname $0)/conf.sh 5 6base=`basename $0` 7sectors=100 8 9echo "1..200" 10 11do_test() { 12 cipher=$1 13 secsize=$2 14 ealgo=${cipher%%:*} 15 keylen=${cipher##*:} 16 17 rnd=`mktemp $base.XXXXXX` || exit 1 18 19 geli onetime -e $ealgo -l $keylen -s $secsize ${md} 2>/dev/null 20 21 secs=`diskinfo /dev/${md}.eli | awk '{print $4}'` 22 23 dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} >/dev/null 2>&1 24 dd if=${rnd} of=/dev/${md}.eli bs=${secsize} count=${secs} 2>/dev/null 25 26 md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5` 27 md_ddev=`dd if=/dev/${md}.eli bs=${secsize} count=${secs} 2>/dev/null | md5` 28 md_edev=`dd if=/dev/${md} bs=${secsize} count=${secs} 2>/dev/null | md5` 29 30 if [ ${md_rnd} = ${md_ddev} ]; then 31 echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 32 else 33 echo "not ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 34 fi 35 i=$((i+1)) 36 if [ ${md_rnd} != ${md_edev} ]; then 37 echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 38 else 39 echo "not ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}" 40 fi 41 i=$((i+1)) 42 43 rm -f $rnd 44} 45 46i=1 47for_each_geli_config_nointegrity do_test 48