4 . $(dirname $0)/conf.sh
7 keyfile=`mktemp $base.XXXXXX` || exit 1
8 sector=`mktemp $base.XXXXXX` || exit 1
19 mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u $no || exit 1
20 geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s $secsize md${no} 2>/dev/null
21 geli attach -p -k $keyfile md${no}
23 dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1
25 dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1
27 echo "ok $i - small 1 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
29 echo "not ok $i - small 1 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
34 # Copy first small sector to the second small sector.
35 # This should be detected as corruption.
36 dd if=/dev/md${no} of=${sector} bs=512 count=1 >/dev/null 2>&1
37 dd if=${sector} of=/dev/md${no} bs=512 count=1 seek=1 >/dev/null 2>&1
38 geli attach -p -k $keyfile md${no}
40 dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} count=1 >/dev/null 2>&1
42 echo "ok $i - small 2 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
44 echo "not ok $i - small 2 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
48 ms=`diskinfo /dev/md${no} | awk '{print $3 - 512}'`
49 ns=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
50 usecsize=`echo "($ms / $ns) - (($ms / $ns) % 512)" | bc`
53 dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} count=2 >/dev/null 2>&1
55 dd if=/dev/md${no}.eli bs=${secsize} count=2 >/dev/null 2>&1
57 echo "ok $i - big 1 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
59 echo "not ok $i - big 1 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
64 # Copy first big sector to the second big sector.
65 # This should be detected as corruption.
66 dd if=/dev/md${no} of=${sector} bs=${usecsize} count=1 >/dev/null 2>&1
67 dd if=${sector} of=/dev/md${no} bs=${usecsize} count=1 seek=1 >/dev/null 2>&1
68 geli attach -p -k $keyfile md${no}
70 dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} count=2 >/dev/null 2>&1
72 echo "ok $i - big 2 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
74 echo "not ok $i - big 2 aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
84 dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
86 for_each_geli_config do_test
88 rm -f $keyfile $sector