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