Author: asomers
Date: Thu Dec 29 20:28:50 2016
New Revision: 310786
URL: https://svnweb.freebsd.org/changeset/base/310786

Log:
  Reduce the runtime of the GELI tests
  
  There is no reduction in test coverage.  On my system runtime is reduced
  from 38m32s to 6m24s.
  
  tests/sys/geom/class/eli/conf.sh
  tests/sys/geom/class/eli/init_a_test.sh
  tests/sys/geom/class/eli/init_test.sh
  tests/sys/geom/class/eli/integrity_copy_test.sh
  tests/sys/geom/class/eli/integrity_data_test.sh
  tests/sys/geom/class/eli/integrity_hmac_test.sh
  tests/sys/geom/class/eli/onetime_a_test.sh
  tests/sys/geom/class/eli/onetime_test.sh
        Move the looping code into common functions in conf.sh, and remove
        alias ciphers from the list.
  
  tests/sys/geom/class/eli/init_a_test.sh
  tests/sys/geom/class/eli/init_test.sh
  tests/sys/geom/class/eli/integrity_copy_test.sh
  tests/sys/geom/class/eli/integrity_data_test.sh
  tests/sys/geom/class/eli/integrity_hmac_test.sh
  tests/sys/geom/class/eli/onetime_a_test.sh
        Move a few commands that don't need to be in the inner loop out.
  
  tests/sys/geom/class/eli/init_test.sh
  tests/sys/geom/class/eli/onetime_a_test.sh
        Reduce the sector count
  
  tests/sys/geom/class/eli/Makefile
  tests/sys/geom/class/eli/init_alias_test.sh
        Add a test for initializing a GELI device using one of the cipher
        aliases, and check that the alias is correctly interpreted.
  
  MFC after:    4 weeks
  Sponsored by: Spectra Logic Corp
  Differential Revision:        https://reviews.freebsd.org/D8814

Added:
  head/tests/sys/geom/class/eli/init_alias_test.sh   (contents, props changed)
Modified:
  head/tests/sys/geom/class/eli/Makefile
  head/tests/sys/geom/class/eli/conf.sh
  head/tests/sys/geom/class/eli/init_a_test.sh
  head/tests/sys/geom/class/eli/init_test.sh
  head/tests/sys/geom/class/eli/integrity_copy_test.sh
  head/tests/sys/geom/class/eli/integrity_data_test.sh
  head/tests/sys/geom/class/eli/integrity_hmac_test.sh
  head/tests/sys/geom/class/eli/onetime_a_test.sh
  head/tests/sys/geom/class/eli/onetime_test.sh

Modified: head/tests/sys/geom/class/eli/Makefile
==============================================================================
--- head/tests/sys/geom/class/eli/Makefile      Thu Dec 29 20:27:54 2016        
(r310785)
+++ head/tests/sys/geom/class/eli/Makefile      Thu Dec 29 20:28:50 2016        
(r310786)
@@ -11,6 +11,7 @@ TAP_TESTS_SH+= detach_l_test
 TAP_TESTS_SH+= init_B_test
 TAP_TESTS_SH+= init_J_test
 TAP_TESTS_SH+= init_a_test
+TAP_TESTS_SH+= init_alias_test
 TAP_TESTS_SH+= init_i_P_test
 TAP_TESTS_SH+= init_test
 TAP_TESTS_SH+= integrity_copy_test

Modified: head/tests/sys/geom/class/eli/conf.sh
==============================================================================
--- head/tests/sys/geom/class/eli/conf.sh       Thu Dec 29 20:27:54 2016        
(r310785)
+++ head/tests/sys/geom/class/eli/conf.sh       Thu Dec 29 20:28:50 2016        
(r310786)
@@ -11,6 +11,54 @@ while [ -c /dev/md$no ]; do
        : $(( no += 1 ))
 done
 
+# Execute `func` for each combination of cipher, sectorsize, and hmac algo
+# `func` usage should be:
+# func <cipher> <aalgo> <secsize>
+for_each_geli_config() {
+       func=$1
+
+       for cipher in aes-xts:128 aes-xts:256 \
+           aes-cbc:128 aes-cbc:192 aes-cbc:256 \
+           3des-cbc:192 \
+           blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 \
+           blowfish-cbc:224 blowfish-cbc:256 blowfish-cbc:288 \
+           blowfish-cbc:320 blowfish-cbc:352 blowfish-cbc:384 \
+           blowfish-cbc:416 blowfish-cbc:448 \
+           camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+               ealgo=${cipher%%:*}
+               keylen=${cipher##*:}
+               for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 \
+                   hmac/sha384 hmac/sha512; do
+                       for secsize in 512 1024 2048 4096 8192; do
+                               ${func} $cipher $aalgo $secsize
+                       done
+               done
+       done
+}
+
+# Execute `func` for each combination of cipher, and sectorsize, with no hmac
+# `func` usage should be:
+# func <cipher> <secsize>
+for_each_geli_config_nointegrity() {
+       func=$1
+
+       for cipher in aes-xts:128 aes-xts:256 \
+           aes-cbc:128 aes-cbc:192 aes-cbc:256 \
+           3des-cbc:192 \
+           blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 \
+           blowfish-cbc:224 blowfish-cbc:256 blowfish-cbc:288 \
+           blowfish-cbc:320 blowfish-cbc:352 blowfish-cbc:384 \
+           blowfish-cbc:416 blowfish-cbc:448 \
+           camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+               ealgo=${cipher%%:*}
+               keylen=${cipher##*:}
+               for secsize in 512 1024 2048 4096 8192; do
+                       ${func} $cipher $aalgo $secsize
+               done
+       done
+}
+
+
 geli_test_cleanup()
 {
        [ -c /dev/md${no}.eli ] && geli detach md${no}.eli

Modified: head/tests/sys/geom/class/eli/init_a_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/init_a_test.sh        Thu Dec 29 20:27:54 
2016        (r310785)
+++ head/tests/sys/geom/class/eli/init_a_test.sh        Thu Dec 29 20:28:50 
2016        (r310786)
@@ -6,55 +6,45 @@
 base=`basename $0`
 sectors=100
 keyfile=`mktemp $base.XXXXXX` || exit 1
+rnd=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..1380"
-
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       aalgo=$2
+       secsize=$3
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 
hmac/sha512; do
-               for secsize in 512 1024 2048 4096 8192; do
-                       rnd=`mktemp $base.XXXXXX` || exit 1
-                       mdconfig -a -t malloc -s `expr $secsize \* $sectors + 
512`b -u $no || exit 1
-
-                       dd if=/dev/random of=${keyfile} bs=512 count=16 
>/dev/null 2>&1
-
-                       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K 
$keyfile -s $secsize md${no} 2>/dev/null
-                       geli attach -p -k $keyfile md${no}
-
-                       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
-
-                       dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} 
>/dev/null 2>&1
-                       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} 
count=${secs} 2>/dev/null
-
-                       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 
2>/dev/null | md5`
-                       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} 
count=${secs} 2>/dev/null | md5`
-
-                       if [ ${md_rnd} = ${md_ddev} ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       rm -f $rnd
-                       mdconfig -d -u $no
-               done
-       done
-done
 
+       mdconfig -a -t malloc -s `expr $secsize \* $sectors + 512`b -u $no || 
exit 1
+       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s 
$secsize md${no} 2>/dev/null
+       geli attach -p -k $keyfile md${no}
+
+       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
+
+       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null
+
+       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5`
+       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null 
| md5`
+
+       if [ ${md_rnd} = ${md_ddev} ]; then
+               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       else
+               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+echo "1..600"
+
+i=1
+
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+dd if=/dev/random of=${rnd} bs=8192 count=${sectors} >/dev/null 2>&1
+
+for_each_geli_config do_test
+
+rm -f $rnd
 rm -f $keyfile

Added: head/tests/sys/geom/class/eli/init_alias_test.sh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/tests/sys/geom/class/eli/init_alias_test.sh    Thu Dec 29 20:28:50 
2016        (r310786)
@@ -0,0 +1,64 @@
+#!/bin/sh
+# $FreeBSD$
+
+# Test "geli init"'s various cipher aliases
+. $(dirname $0)/conf.sh
+
+base=`basename $0`
+sectors=100
+keyfile=`mktemp $base.XXXXXX` || exit 1
+rnd=`mktemp $base.XXXXXX` || exit 1
+
+do_test() {
+       ealgo=$1
+       keylen=$2
+       expected_ealgo=$3
+       expected_keylen=$4
+
+       geli init -B none -e $ealgo -l $keylen -P -K $keyfile md${no} 
2>/dev/null
+       geli attach -p -k $keyfile md${no}
+       real_ealgo=`geli list md${no}.eli | awk '/EncryptionAlgorithm/ {print 
$2}'`
+       real_keylen=`geli list md${no}.eli | awk '/KeyLength/ {print $2}'`
+
+       if [ ${real_ealgo} = ${expected_ealgo} ]; then
+               echo "ok $i - ${ealgo} aliased to ${real_ealgo}"
+       else
+               echo "not ok $i - expected ${expected_ealgo} but got 
${real_ealgo}"
+       fi
+       i=$((i+1))
+
+       if [ ${real_keylen} = ${expected_keylen} ]; then
+               echo "ok $i - keylen=${keylen} for ealgo=${ealgo} aliases to 
${real_keylen}"
+       else
+               echo "not ok $i - expected ${expected_keylen} but got 
${real_keylen}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+}
+
+echo "1..38"
+i=1
+mdconfig -a -t malloc -s 1024k -u $no || exit 1
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+
+for spec in aes:0:AES-XTS:128 aes:128:AES-XTS:128 aes:256:AES-XTS:256 \
+       3des:0:3DES-CBC:192 3des:192:3DES-CBC:192 \
+       blowfish:0:Blowfish-CBC:128 blowfish:128:Blowfish-CBC:128 \
+       blowfish:160:Blowfish-CBC:160 blowfish:192:Blowfish-CBC:192 \
+       blowfish:224:Blowfish-CBC:224 blowfish:256:Blowfish-CBC:256 \
+       blowfish:288:Blowfish-CBC:288 blowfish:352:Blowfish-CBC:352 \
+       blowfish:384:Blowfish-CBC:384 blowfish:416:Blowfish-CBC:416 \
+       blowfish:448:Blowfish-CBC:448 \
+       camellia:0:CAMELLIA-CBC:128 camellia:128:CAMELLIA-CBC:128 \
+       camellia:256:CAMELLIA-CBC:256 ; do
+
+       ealgo=`echo $spec | cut -d : -f 1`
+       keylen=`echo $spec | cut -d : -f 2`
+       expected_ealgo=`echo $spec | cut -d : -f 3`
+       expected_keylen=`echo $spec | cut -d : -f 4`
+
+       do_test $ealgo $keylen $expected_ealgo $expected_keylen
+done
+
+rm -f $keyfile

Modified: head/tests/sys/geom/class/eli/init_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/init_test.sh  Thu Dec 29 20:27:54 2016        
(r310785)
+++ head/tests/sys/geom/class/eli/init_test.sh  Thu Dec 29 20:28:50 2016        
(r310786)
@@ -4,62 +4,52 @@
 . $(dirname $0)/conf.sh
 
 base=`basename $0`
-sectors=100
+sectors=32
 keyfile=`mktemp $base.XXXXXX` || exit 1
+rnd=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..460"
+echo "1..200"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       secsize=$2
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for secsize in 512 1024 2048 4096 8192; do
-               rnd=`mktemp $base.XXXXXX` || exit 1
-               mdconfig -a -t malloc -s `expr $secsize \* $sectors + 512`b -u 
$no || exit 1
-
-               dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
-
-               geli init -B none -e $ealgo -l $keylen -P -K $keyfile -s 
$secsize md${no} 2>/dev/null
-               geli attach -p -k $keyfile md${no}
-
-               secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
-
-               dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} 
>/dev/null 2>&1
-               dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 
2>/dev/null
-
-               md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | 
md5`
-               md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 
2>/dev/null | md5`
-               md_edev=`dd if=/dev/md${no} bs=${secsize} count=${secs} 
2>/dev/null | md5`
-
-               if [ ${md_rnd} = ${md_ddev} ]; then
-                       echo "ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               else
-                       echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               fi
-               i=$((i+1))
-               if [ ${md_rnd} != ${md_edev} ]; then
-                       echo "ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               else
-                       echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               fi
-               i=$((i+1))
-
-               geli detach md${no}
-               rm -f $rnd
-               mdconfig -d -u $no
-       done
-done
 
+       mdconfig -a -t malloc -s `expr $secsize \* $sectors + 512`b -u $no || 
exit 1
+
+       geli init -B none -e $ealgo -l $keylen -P -K $keyfile -s $secsize 
md${no} 2>/dev/null
+       geli attach -p -k $keyfile md${no}
+
+       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
+
+       dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} >/dev/null 2>&1
+       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null
+
+       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5`
+       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null 
| md5`
+       md_edev=`dd if=/dev/md${no} bs=${secsize} count=${secs} 2>/dev/null | 
md5`
+
+       if [ ${md_rnd} = ${md_ddev} ]; then
+               echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       fi
+       i=$((i+1))
+       if [ ${md_rnd} != ${md_edev} ]; then
+               echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+i=1
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+for_each_geli_config_nointegrity do_test
+
+rm -f $rnd
 rm -f $keyfile

Modified: head/tests/sys/geom/class/eli/integrity_copy_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/integrity_copy_test.sh        Thu Dec 29 
20:27:54 2016        (r310785)
+++ head/tests/sys/geom/class/eli/integrity_copy_test.sh        Thu Dec 29 
20:28:50 2016        (r310786)
@@ -4,96 +4,85 @@
 . $(dirname $0)/conf.sh
 
 base=`basename $0`
-sectors=100
 keyfile=`mktemp $base.XXXXXX` || exit 1
 sector=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..5520"
+echo "1..2400"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       aalgo=$2
+       secsize=$3
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 
hmac/sha512; do
-               for secsize in 512 1024 2048 4096 8192; do
-                       #mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b 
-u $no || exit 1
-                       mdconfig -a -t malloc -s $sectors -u $no || exit 1
-
-                       dd if=/dev/random of=${keyfile} bs=512 count=16 
>/dev/null 2>&1
-
-                       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K 
$keyfile -s $secsize md${no} 2>/dev/null
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} 
count=1 >/dev/null 2>&1
-
-                       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 
2>&1
-                       if [ $? -eq 0 ]; then
-                               echo "ok $i - small 1 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - small 1 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       # Copy first small sector to the second small sector.
-                       # This should be detected as corruption.
-                       dd if=/dev/md${no} of=${sector} bs=512 count=1 
>/dev/null 2>&1
-                       dd if=${sector} of=/dev/md${no} bs=512 count=1 seek=1 
>/dev/null 2>&1
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} 
count=1 >/dev/null 2>&1
-                       if [ $? -ne 0 ]; then
-                               echo "ok $i - small 2 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - small 2 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       ms=`diskinfo /dev/md${no} | awk '{print $3 - 512}'`
-                       ns=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
-                       usecsize=`echo "($ms / $ns) - (($ms / $ns) % 512)" | bc`
-
-                       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} 
count=2 >/dev/null 2>&1
-
-                       dd if=/dev/md${no}.eli bs=${secsize} count=2 >/dev/null 
2>&1
-                       if [ $? -eq 0 ]; then
-                               echo "ok $i - big 1 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - big 1 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       # Copy first big sector to the second big sector.
-                       # This should be detected as corruption.
-                       dd if=/dev/md${no} of=${sector} bs=${usecsize} count=1 
>/dev/null 2>&1
-                       dd if=${sector} of=/dev/md${no} bs=${usecsize} count=1 
seek=1 >/dev/null 2>&1
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} 
count=2 >/dev/null 2>&1
-                       if [ $? -ne 0 ]; then
-                               echo "ok $i - big 2 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - big 2 aalgo=${aalgo} 
ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       mdconfig -d -u $no
-               done
-       done
-done
+
+       mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u $no || exit 1
+       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s 
$secsize md${no} 2>/dev/null
+       geli attach -p -k $keyfile md${no}
+
+       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 
2>&1
+
+       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1
+       if [ $? -eq 0 ]; then
+               echo "ok $i - small 1 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - small 1 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       # Copy first small sector to the second small sector.
+       # This should be detected as corruption.
+       dd if=/dev/md${no} of=${sector} bs=512 count=1 >/dev/null 2>&1
+       dd if=${sector} of=/dev/md${no} bs=512 count=1 seek=1 >/dev/null 2>&1
+       geli attach -p -k $keyfile md${no}
+
+       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} count=1 >/dev/null 
2>&1
+       if [ $? -ne 0 ]; then
+               echo "ok $i - small 2 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - small 2 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       ms=`diskinfo /dev/md${no} | awk '{print $3 - 512}'`
+       ns=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
+       usecsize=`echo "($ms / $ns) - (($ms / $ns) % 512)" | bc`
+
+       # Fix the corruption
+       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} count=2 >/dev/null 
2>&1
+
+       dd if=/dev/md${no}.eli bs=${secsize} count=2 >/dev/null 2>&1
+       if [ $? -eq 0 ]; then
+               echo "ok $i - big 1 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - big 1 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       # Copy first big sector to the second big sector.
+       # This should be detected as corruption.
+       dd if=/dev/md${no} of=${sector} bs=${usecsize} count=1 >/dev/null 2>&1
+       dd if=${sector} of=/dev/md${no} bs=${usecsize} count=1 seek=1 
>/dev/null 2>&1
+       geli attach -p -k $keyfile md${no}
+
+       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} count=2 >/dev/null 
2>&1
+       if [ $? -ne 0 ]; then
+               echo "ok $i - big 2 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - big 2 aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+
+i=1
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+
+for_each_geli_config do_test
 
 rm -f $keyfile $sector

Modified: head/tests/sys/geom/class/eli/integrity_data_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/integrity_data_test.sh        Thu Dec 29 
20:27:54 2016        (r310785)
+++ head/tests/sys/geom/class/eli/integrity_data_test.sh        Thu Dec 29 
20:28:50 2016        (r310786)
@@ -4,66 +4,42 @@
 . $(dirname $0)/conf.sh
 
 base=`basename $0`
-sectors=100
 keyfile=`mktemp $base.XXXXXX` || exit 1
 sector=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..2760"
+echo "1..600"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       aalgo=$2
+       secsize=$3
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 
hmac/sha512; do
-               for secsize in 512 1024 2048 4096 8192; do
-                       mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u 
$no || exit 1
-
-                       dd if=/dev/random of=${keyfile} bs=512 count=16 
>/dev/null 2>&1
-
-                       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K 
$keyfile -s $secsize md${no} 2>/dev/null
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} 
count=1 >/dev/null 2>&1
-
-                       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 
2>&1
-                       if [ $? -eq 0 ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       # Corrupt 8 bytes of data.
-                       dd if=/dev/md${no} of=${sector} bs=512 count=1 
>/dev/null 2>&1
-                       dd if=/dev/random of=${sector} bs=1 count=8 seek=64 
conv=notrunc >/dev/null 2>&1
-                       dd if=${sector} of=/dev/md${no} bs=512 count=1 
>/dev/null 2>&1
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} 
count=1 >/dev/null 2>&1
-                       if [ $? -ne 0 ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       mdconfig -d -u $no
-               done
-       done
-done
+
+       mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u $no || exit 1
+       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s 
$secsize md${no} 2>/dev/null
+
+       # Corrupt 8 bytes of data.
+       dd if=/dev/md${no} of=${sector} bs=512 count=1 >/dev/null 2>&1
+       dd if=/dev/random of=${sector} bs=1 count=8 seek=64 conv=notrunc 
>/dev/null 2>&1
+       dd if=${sector} of=/dev/md${no} bs=512 count=1 >/dev/null 2>&1
+       geli attach -p -k $keyfile md${no}
+
+       dd if=/dev/md${no}.eli of=/dev/null bs=${secsize} count=1 >/dev/null 
2>&1
+       if [ $? -ne 0 ]; then
+               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       else
+               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+i=1
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+
+for_each_geli_config do_test
 
 rm -f $keyfile $sector

Modified: head/tests/sys/geom/class/eli/integrity_hmac_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/integrity_hmac_test.sh        Thu Dec 29 
20:27:54 2016        (r310785)
+++ head/tests/sys/geom/class/eli/integrity_hmac_test.sh        Thu Dec 29 
20:28:50 2016        (r310786)
@@ -4,66 +4,43 @@
 . $(dirname $0)/conf.sh
 
 base=`basename $0`
-sectors=100
 keyfile=`mktemp $base.XXXXXX` || exit 1
 sector=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..2760"
+echo "1..600"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       aalgo=$2
+       secsize=$3
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 
hmac/sha512; do
-               for secsize in 512 1024 2048 4096 8192; do
-                       mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u 
$no || exit 1
-
-                       dd if=/dev/random of=${keyfile} bs=512 count=16 
>/dev/null 2>&1
-
-                       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K 
$keyfile -s $secsize md${no} 2>/dev/null
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/random of=/dev/md${no}.eli bs=${secsize} 
count=1 >/dev/null 2>&1
-
-                       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 
2>&1
-                       if [ $? -eq 0 ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       # Corrupt 8 bytes of HMAC.
-                       dd if=/dev/md${no} of=${sector} bs=512 count=1 
>/dev/null 2>&1
-                       dd if=/dev/random of=${sector} bs=1 count=16 
conv=notrunc >/dev/null 2>&1
-                       dd if=${sector} of=/dev/md${no} bs=512 count=1 
>/dev/null 2>&1
-                       geli attach -p -k $keyfile md${no}
-
-                       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 
2>&1
-                       if [ $? -ne 0 ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       mdconfig -d -u $no
-               done
-       done
-done
+
+       mdconfig -a -t malloc -s `expr $secsize \* 2 + 512`b -u $no || exit 2
+       geli init -B none -a $aalgo -e $ealgo -l $keylen -P -K $keyfile -s 
$secsize md${no} 2>/dev/null
+
+       # Corrupt 8 bytes of HMAC.
+       dd if=/dev/md${no} of=${sector} bs=512 count=1 >/dev/null 2>&1
+       dd if=/dev/random of=${sector} bs=1 count=16 conv=notrunc >/dev/null 
2>&1
+       dd if=${sector} of=/dev/md${no} bs=512 count=1 >/dev/null 2>&1
+       geli attach -p -k $keyfile md${no}
+
+       dd if=/dev/md${no}.eli bs=${secsize} count=1 >/dev/null 2>&1
+       if [ $? -ne 0 ]; then
+               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       else
+               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+
+i=1
+dd if=/dev/random of=${keyfile} bs=512 count=16 >/dev/null 2>&1
+
+for_each_geli_config do_test
 
 rm -f $keyfile $sector

Modified: head/tests/sys/geom/class/eli/onetime_a_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/onetime_a_test.sh     Thu Dec 29 20:27:54 
2016        (r310785)
+++ head/tests/sys/geom/class/eli/onetime_a_test.sh     Thu Dec 29 20:28:50 
2016        (r310786)
@@ -4,51 +4,42 @@
 . $(dirname $0)/conf.sh
 
 base=`basename $0`
-sectors=100
+sectors=8
+rnd=`mktemp $base.XXXXXX` || exit 1
 
-echo "1..1380"
+echo "1..600"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       aalgo=$2
+       secsize=$3
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for aalgo in hmac/md5 hmac/sha1 hmac/ripemd160 hmac/sha256 hmac/sha384 
hmac/sha512; do
-               for secsize in 512 1024 2048 4096 8192; do
-                       rnd=`mktemp $base.XXXXXX` || exit 1
-                       mdconfig -a -t malloc -s `expr $secsize \* $sectors + 
512`b -u $no || exit 1
-
-                       geli onetime -a $aalgo -e $ealgo -l $keylen -s $secsize 
md${no} 2>/dev/null
-
-                       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
-
-                       dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} 
>/dev/null 2>&1
-                       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} 
count=${secs} 2>/dev/null
-
-                       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 
2>/dev/null | md5`
-                       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} 
count=${secs} 2>/dev/null | md5`
-
-                       if [ ${md_rnd} = ${md_ddev} ]; then
-                               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       else
-                               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
-                       fi
-                       i=$((i+1))
-
-                       geli detach md${no}
-                       rm -f $rnd
-                       mdconfig -d -u $no
-               done
-       done
-done
+
+       mdconfig -a -t malloc -s `expr $secsize \* $sectors + 512`b -u $no || 
exit 1
+       geli onetime -a $aalgo -e $ealgo -l $keylen -s $secsize md${no} 
2>/dev/null
+
+       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
+
+       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null
+
+       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5`
+       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null 
| md5`
+
+       if [ ${md_rnd} = ${md_ddev} ]; then
+               echo "ok $i - aalgo=${aalgo} ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       else
+               echo "not ok $i - aalgo=${aalgo} ealgo=${ealgo} 
keylen=${keylen} sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       mdconfig -d -u $no
+}
+
+i=1
+dd if=/dev/random of=${rnd} bs=1024 count=1024 >/dev/null 2>&1
+
+for_each_geli_config do_test
+
+rm -f $rnd

Modified: head/tests/sys/geom/class/eli/onetime_test.sh
==============================================================================
--- head/tests/sys/geom/class/eli/onetime_test.sh       Thu Dec 29 20:27:54 
2016        (r310785)
+++ head/tests/sys/geom/class/eli/onetime_test.sh       Thu Dec 29 20:28:50 
2016        (r310786)
@@ -6,54 +6,45 @@
 base=`basename $0`
 sectors=100
 
-echo "1..460"
+echo "1..200"
 
-i=1
-for cipher in aes:0 aes:128 aes:256 \
-    aes-xts:0 aes-xts:128 aes-xts:256 \
-    aes-cbc:0 aes-cbc:128 aes-cbc:192 aes-cbc:256 \
-    3des:0 3des:192 \
-    3des-cbc:0 3des-cbc:192 \
-    blowfish:0 blowfish:128 blowfish:160 blowfish:192 blowfish:224 \
-    blowfish:256 blowfish:288 blowfish:320 blowfish:352 blowfish:384 \
-    blowfish:416 blowfish:448 \
-    blowfish-cbc:0 blowfish-cbc:128 blowfish-cbc:160 blowfish-cbc:192 
blowfish-cbc:224 \
-    blowfish-cbc:256 blowfish-cbc:288 blowfish-cbc:320 blowfish-cbc:352 
blowfish-cbc:384 \
-    blowfish-cbc:416 blowfish-cbc:448 \
-    camellia:0 camellia:128 camellia:192 camellia:256 \
-    camellia-cbc:0 camellia-cbc:128 camellia-cbc:192 camellia-cbc:256; do
+do_test() {
+       cipher=$1
+       secsize=$2
        ealgo=${cipher%%:*}
        keylen=${cipher##*:}
-       for secsize in 512 1024 2048 4096 8192; do
-               rnd=`mktemp $base.XXXXXX` || exit 1
-               mdconfig -a -t malloc -s `expr $secsize \* $sectors`b -u $no || 
exit 1
-
-               geli onetime -e $ealgo -l $keylen -s $secsize md${no} 
2>/dev/null
-
-               secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
-
-               dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} 
>/dev/null 2>&1
-               dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 
2>/dev/null
-
-               md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | 
md5`
-               md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 
2>/dev/null | md5`
-               md_edev=`dd if=/dev/md${no} bs=${secsize} count=${secs} 
2>/dev/null | md5`
-
-               if [ ${md_rnd} = ${md_ddev} ]; then
-                       echo "ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               else
-                       echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               fi
-               i=$((i+1))
-               if [ ${md_rnd} != ${md_edev} ]; then
-                       echo "ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               else
-                       echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
-               fi
-               i=$((i+1))
-
-               geli detach md${no}
-               rm -f $rnd
-               mdconfig -d -u $no
-       done
-done
+
+       rnd=`mktemp $base.XXXXXX` || exit 1
+       mdconfig -a -t malloc -s `expr $secsize \* $sectors`b -u $no || exit 1
+
+       geli onetime -e $ealgo -l $keylen -s $secsize md${no} 2>/dev/null
+
+       secs=`diskinfo /dev/md${no}.eli | awk '{print $4}'`
+
+       dd if=/dev/random of=${rnd} bs=${secsize} count=${secs} >/dev/null 2>&1
+       dd if=${rnd} of=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null
+
+       md_rnd=`dd if=${rnd} bs=${secsize} count=${secs} 2>/dev/null | md5`
+       md_ddev=`dd if=/dev/md${no}.eli bs=${secsize} count=${secs} 2>/dev/null 
| md5`
+       md_edev=`dd if=/dev/md${no} bs=${secsize} count=${secs} 2>/dev/null | 
md5`
+
+       if [ ${md_rnd} = ${md_ddev} ]; then
+               echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       fi
+       i=$((i+1))
+       if [ ${md_rnd} != ${md_edev} ]; then
+               echo "ok $i - ealgo=${ealgo} keylen=${keylen} sec=${secsize}"
+       else
+               echo "not ok $i - ealgo=${ealgo} keylen=${keylen} 
sec=${secsize}"
+       fi
+       i=$((i+1))
+
+       geli detach md${no}
+       rm -f $rnd
+       mdconfig -d -u $no
+}
+
+i=1
+for_each_geli_config_nointegrity do_test
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to