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