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