#!/bin/sh

PROG=$1

if [ -x $PROG ]; then
    if expr "x`$PROG version`" : "xOpenSSL" > /dev/null; then
	:
    else
	echo "$PROG is not OpenSSL executable"
	exit 1
    fi
else
    echo "$PROG is not executable"
    exit 1;
fi

if [ 1 ]; then

    HASH=`cat $PROG | $PROG dgst -hex`

    AES_ALGS="	camellia-128-cbc camellia-128-cfb \
		camellia-192-cbc camellia-192-cfb \
		camellia-256-cbc camellia-256-cfb \
		aes-128-ctr aes-128-cbc aes-128-cfb aes-128-ofb \
		aes-192-ctr aes-192-cbc aes-192-cfb aes-192-ofb \
		aes-256-ctr aes-256-cbc aes-256-cfb aes-256-ofb"
    BUFSIZE="16 32 48 999"

    nerr=0

    for alg in $AES_ALGS; do
	echo $alg
	for bufsize in $BUFSIZE; do
	    TEST=`(	cat $PROG | \
		$PROG enc -e -k "$HASH" -$alg -bufsize $bufsize | \
		env OPENSSL_sparcv9cap=0 $PROG enc -d -k "$HASH" -$alg | \
		$PROG dgst -hex ) 2>/dev/null`
	    if [ "$TEST" != "$HASH" ]; then
		echo "-$alg/$bufsize encrypt test failed"
		nerr=`expr $nerr + 1`
	    fi
	done
	for bufsize in $BUFSIZE; do 
	    TEST=`(	cat $PROG | \
		env OPENSSL_sparcv9cap=0 $PROG enc -e -k "$HASH" -$alg | \
		$PROG enc -d -k "$HASH" -$alg -bufsize $bufsize | \
		$PROG dgst -hex ) 2>/dev/null`
	    if [ "$TEST" != "$HASH" ]; then
		echo "-$alg/$bufsize decrypt test failed"
		nerr=`expr $nerr + 1`
	    fi
	done
	TEST=`(	cat $PROG | \
		$PROG enc -e -k "$HASH" -$alg | \
		$PROG enc -d -k "$HASH" -$alg | \
		$PROG dgst -hex ) 2>/dev/null`
	if [ "$TEST" != "$HASH" ]; then
		echo "-$alg en/decrypt test failed"
		nerr=`expr $nerr + 1`
	fi
    done

    if [ $nerr -gt 0 ]; then
	echo "SPARC T4 test failed."
	exit 1
    fi
fi

exit 0
