summaryrefslogtreecommitdiffstats
path: root/test/test_padlock
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2005-12-28 17:16:56 +0100
committerAndy Polyakov <appro@openssl.org>2005-12-28 17:16:56 +0100
commit34b537ee66eb7d327ff04121ccb7b9cc6b07ab3e (patch)
tree46a7c1387083b44f9434293d1dcbb1a4ec20e1f4 /test/test_padlock
parentMinor sparcv9 clean-ups. (diff)
downloadopenssl-34b537ee66eb7d327ff04121ccb7b9cc6b07ab3e.tar.xz
openssl-34b537ee66eb7d327ff04121ccb7b9cc6b07ab3e.zip
Fix CFB and OFB modes in eng_padlock.c. Engine was consistent with itself,
but not interoperable with the rest of the world. test_padlock script is added mostly for reference.
Diffstat (limited to 'test/test_padlock')
-rwxr-xr-xtest/test_padlock64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/test_padlock b/test/test_padlock
new file mode 100755
index 0000000000..6dd4911f4f
--- /dev/null
+++ b/test/test_padlock
@@ -0,0 +1,64 @@
+#!/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 $PROG engine padlock | grep -v no-ACE; then
+
+ HASH=`cat $PROG | $PROG dgst -hex`
+
+ ACE_ALGS=" aes-128-ecb aes-192-ecb aes-256-ecb \
+ aes-128-cbc aes-192-cbc aes-256-cbc \
+ aes-128-cfb aes-192-cfb aes-256-cfb \
+ aes-128-ofb aes-192-ofb aes-256-ofb"
+
+ nerr=0
+
+ for alg in $ACE_ALGS; do
+ echo $alg
+ TEST=`( cat $PROG | \
+ $PROG enc -e -k $HASH -$alg -bufsize 999 -engine padlock | \
+ $PROG enc -d -k $HASH -$alg | \
+ $PROG dgst -hex ) 2>/dev/null`
+ if [ $TEST != $HASH ]; then
+ echo "-$alg encrypt test failed"
+ nerr=`expr $nerr + 1`
+ fi
+ TEST=`( cat $PROG | \
+ $PROG enc -e -k $HASH -$alg | \
+ $PROG enc -d -k $HASH -$alg -bufsize 999 -engine padlock | \
+ $PROG dgst -hex ) 2>/dev/null`
+ if [ $TEST != $HASH ]; then
+ echo "-$alg decrypt test failed"
+ nerr=`expr $nerr + 1`
+ fi
+ TEST=`( cat $PROG | \
+ $PROG enc -e -k $HASH -$alg -engine padlock | \
+ $PROG enc -d -k $HASH -$alg -engine padlock | \
+ $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 "PadLock ACE test failed."
+ exit 1;
+ fi
+else
+ echo "PadLock ACE is not available"
+fi
+
+exit 0