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