aesni-x86.pl: fix another typo and add test script.
[oweals/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 aesni; then
18
19     HASH=`cat $PROG | $PROG dgst -hex`
20
21     ACE_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 999"
26     ACE_ALGS="  aes-128-cbc aes-192-cbc aes-256-cbc \
27                 aes-128-cfb aes-192-cfb aes-256-cfb \
28                 aes-128-ofb aes-192-ofb aes-256-ofb"
29     BUFSIZE="48 64 80 96 128 999"
30
31     nerr=0
32
33     for alg in $ACE_ALGS; do
34         echo $alg
35         for bufsize in $BUFSIZE; do
36             TEST=`(     cat $PROG | \
37                 $PROG enc -e -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \
38                 $PROG enc -d -k "$HASH" -$alg | \
39                 $PROG dgst -hex ) 2>/dev/null`
40             if [ "$TEST" != "$HASH" ]; then
41                 echo "-$alg/$bufsize encrypt test failed"
42                 nerr=`expr $nerr + 1`
43             fi
44         done
45         for bufsize in $BUFSIZE; do 
46             TEST=`(     cat $PROG | \
47                 $PROG enc -e -k "$HASH" -$alg | \
48                 $PROG enc -d -k "$HASH" -$alg -bufsize $bufsize -engine aesni | \
49                 $PROG dgst -hex ) 2>/dev/null`
50             if [ "$TEST" != "$HASH" ]; then
51                 echo "-$alg/$bufsize decrypt test failed"
52                 nerr=`expr $nerr + 1`
53             fi
54         done
55         TEST=`( cat $PROG | \
56                 $PROG enc -e -k "$HASH" -$alg -engine aesni | \
57                 $PROG enc -d -k "$HASH" -$alg -engine aesni | \
58                 $PROG dgst -hex ) 2>/dev/null`
59         if [ "$TEST" != "$HASH" ]; then
60                 echo "-$alg en/decrypt test failed"
61                 nerr=`expr $nerr + 1`
62         fi
63     done
64
65     if [ $nerr -gt 0 ]; then
66         echo "AESNI engine test failed."
67         exit 1;
68     fi
69 else
70     echo "AESNI engine is not available"
71 fi
72
73 exit 0