1#!/bin/sh 2 3PROG=$1 4 5if [ -x $PROG ]; then 6 if expr "x`$PROG version`" : "xOpenSSL" > /dev/null; then 7 : 8 else 9 echo "$PROG is not OpenSSL executable" 10 exit 1 11 fi 12else 13 echo "$PROG is not executable" 14 exit 1; 15fi 16 17if $PROG engine aesni | grep -v no-aesni; then 18 19 HASH=`cat $PROG | $PROG dgst -hex` 20 21 AES_ALGS=" aes-128-ecb aes-192-ecb aes-256-ecb \ 22 aes-128-cbc aes-192-cbc aes-256-cbc \ 23 aes-128-cfb aes-192-cfb aes-256-cfb \ 24 aes-128-ofb aes-192-ofb aes-256-ofb" 25 BUFSIZE="16 32 48 64 80 96 128 144 999" 26 27 nerr=0 28 29 for alg in $AES_ALGS; do 30 echo $alg 31 for bufsize in $BUFSIZE; do 32 TEST=`( cat $PROG | \ 33 $PROG enc -e -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \ 34 $PROG enc -d -k "$HASH" -$alg | \ 35 $PROG dgst -hex ) 2>/dev/null` 36 if [ "$TEST" != "$HASH" ]; then 37 echo "-$alg/$bufsize encrypt test failed" 38 nerr=`expr $nerr + 1` 39 fi 40 done 41 for bufsize in $BUFSIZE; do 42 TEST=`( cat $PROG | \ 43 $PROG enc -e -k "$HASH" -$alg | \ 44 $PROG enc -d -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \ 45 $PROG dgst -hex ) 2>/dev/null` 46 if [ "$TEST" != "$HASH" ]; then 47 echo "-$alg/$bufsize decrypt test failed" 48 nerr=`expr $nerr + 1` 49 fi 50 done 51 TEST=`( cat $PROG | \ 52 $PROG enc -e -k "$HASH" -$alg -engine aesni | \ 53 $PROG enc -d -k "$HASH" -$alg -engine aesni | \ 54 $PROG dgst -hex ) 2>/dev/null` 55 if [ "$TEST" != "$HASH" ]; then 56 echo "-$alg en/decrypt test failed" 57 nerr=`expr $nerr + 1` 58 fi 59 done 60 61 if [ $nerr -gt 0 ]; then 62 echo "AESNI engine test failed." 63 exit 1; 64 fi 65else 66 echo "AESNI engine is not available" 67fi 68 69exit 0 70