xref: /openbsd/lib/libssl/test/test_aesni (revision d415bd75)
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