1148459Spjd#!/bin/sh
2148459Spjd# $FreeBSD$
3148459Spjd
4148459Spjdbase=`basename $0`
5148459Spjdno=45
6148459Spjdsectors=100
7148459Spjdkeyfile=`mktemp /tmp/$base.XXXXXX` || exit 1
8148459Spjd
9213168Spjdecho "1..460"
10148459Spjd
11148459Spjdi=1
12213168Spjdfor cipher in aes:0 aes:128 aes:256 \
13213168Spjd    aes-xts:0 aes-xts:128 aes-xts:256 \
14213168Spjd    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
15148459Spjd    3des:0 3des:192 \
16213168Spjd    3des-cbc:0 3des-cbc:192 \
17148459Spjd    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
18148459Spjd    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
19172031Spjd    blowfish:416 blowfish:448 \
20213168Spjd    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 blowfish-cbc:224 \
21213168Spjd    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 blowfish-cbc:384 \
22213168Spjd    blowfish-cbc:416 blowfish-cbc:448 \
23213168Spjd    camellia:0 camellia:128 camellia:192 camellia:256 \
24213168Spjd    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
25159327Spjd	ealgo=${cipher%%:*}
26148459Spjd	keylen=${cipher##*:}
27159327Spjd	for secsize in 512 1024 2048 4096 8192; do
28159327Spjd		rnd=`mktemp /tmp/$base.XXXXXX` || exit 1
29159327Spjd		mdconfig -a -t malloc -s `expr $secsize \* $sectors + 512`b -u $no || exit 1
30148459Spjd
31159327Spjd		dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
32148459Spjd
33182452Spjd		geli init -B none -e $ealgo -l $keylen -P -K $keyfile -s $secsize md${no} 2>/dev/null
34159327Spjd		geli attach -p -k $keyfile md${no}
35148459Spjd
36159327Spjd		secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
37148459Spjd
38159327Spjd		dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} >/dev/null 2>&1
39159327Spjd		dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null
40148459Spjd
41159327Spjd		md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5`
42159327Spjd		md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null | md5`
43159327Spjd		md_edev=`dd if=/dev/md${no} bs=${secsize} count=${secs} 2>/dev/null | md5`
44148459Spjd
45159327Spjd		if [ ${md_rnd} = ${md_ddev} ]; then
46159327Spjd			echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
47159327Spjd		else
48159327Spjd			echo "not ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
49159327Spjd		fi
50159327Spjd		i=$((i+1))
51159327Spjd		if [ ${md_rnd} != ${md_edev} ]; then
52159327Spjd			echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
53159327Spjd		else
54159327Spjd			echo "not ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
55159327Spjd		fi
56159327Spjd		i=$((i+1))
57159327Spjd
58159327Spjd		geli detach md${no}
59159327Spjd		rm -f $rnd
60159327Spjd		mdconfig -d -u $no
61159327Spjd	done
62148459Spjddone
63148459Spjd
64159327Spjdrm -f $keyfile
65