[xmlsec] cleanup tests
- From: Aleksey Sanin <aleksey src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [xmlsec] cleanup tests
- Date: Fri, 30 Apr 2010 21:49:00 +0000 (UTC)
commit 0f1f1ffb1b39dc541494461a06809b76b8afd21b
Author: Aleksey Sanin <aleksey aleksey com>
Date: Fri Apr 30 14:50:54 2010 -0700
cleanup tests
Makefile.am | 65 +++++++--
tests/testDSig.sh | 185 ++-----------------------
tests/testEnc.sh | 325 ++++++++++++++++++++-----------------------
tests/testKeys.sh | 170 +++++++---------------
tests/testXKMS.sh | 197 ++++++++++++--------------
tests/testrun.sh | 404 +++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 764 insertions(+), 582 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index a55dc74..85bff4a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -85,11 +85,28 @@ check: check-all check-info
check-all: $(TEST_APP)
@($(PRECHECK_COMMANDS) && \
- for i in $(CHECK_CRYPTO_LIST) ; do \
- echo "=================== Checking xmlsec-$$i =================================" && \
- $(SHELL) ./tests/testKeys.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \
- $(SHELL) ./tests/testDSig.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \
- $(SHELL) ./tests/testEnc.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der ; \
+ for crypto in $(CHECK_CRYPTO_LIST) ; do \
+ echo "=================== Checking xmlsec-$$crypto =================================" && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testKeys.sh \
+ $$crypto \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testDSig.sh \
+ $$crypto \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testEnc.sh \
+ $$crypto \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ ; \
done; )
check-info:
@@ -102,21 +119,45 @@ check-info:
@echo "--- when you use OpenSSL 0.9.6 (see the FAQ for details) ---"
@echo "-------------------------- ATTENTION -----------------------------------"
-check-km: $(TEST_APP)
+check-keys: $(TEST_APP)
@($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testKeys.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der)
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testKeys.sh \
+ default \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ )
check-dsig: $(TEST_APP)
@($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testDSig.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der)
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testDSig.sh \
+ default \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ )
-check-xkms: $(TEST_APP)
+check-enc: $(TEST_APP)
@($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testXKMS.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der)
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testEnc.sh \
+ default \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ )
-check-enc: $(TEST_APP)
+check-xkms: $(TEST_APP)
@($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testEnc.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der)
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testXKMS.sh \
+ default \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ )
memcheck-res:
@grep -i lost /tmp/*.log | sed 's/==.*== *//' | sort -u
diff --git a/tests/testDSig.sh b/tests/testDSig.sh
index c39dcb1..7e25938 100755
--- a/tests/testDSig.sh
+++ b/tests/testDSig.sh
@@ -1,176 +1,17 @@
-#!/bin/sh -x
-
-OS_ARCH=`uname -o`
-OS_KERNEL=`uname -s`
-
-crypto=$1
-if [ "z$OS_ARCH" = "zCygwin" ] ; then
- topfolder=`cygpath -wa $2`
- xmlsec_app=`cygpath -a $3`
-else
- topfolder=$2
- xmlsec_app=$3
-fi
-file_format=$4
-
-pub_key_format=$file_format
-cert_format=$file_format
-priv_key_option="--pkcs12"
-priv_key_format="p12"
-
-# On Windows, one needs to specify Crypto Service Provider (CSP)
-# in the pkcs12 file to ensure it is loaded correctly to be used
-# with SHA2 algorithms. Worse, the CSP is different for XP and older
-# versions
-if [ "z$OS_ARCH" = "zCygwin" ] ; then
- if [ "z$OS_KERNEL" = "zCYGWIN_NT-5.1" ] ; then
- priv_key_suffix="-winxp"
- else
- priv_key_suffix="-win"
- fi
-else
- priv_key_suffix=""
-fi
-
-if [ "z$TMPFOLDER" = "z" ] ; then
- TMPFOLDER=/tmp
-fi
-timestamp=`date +%Y%m%d_%H%M%S`
-if [ "z$OS_ARCH" = "zCygwin" ] ; then
- tmpfile=`cygpath -wa $TMPFOLDER/testDSig.$timestamp-$$.tmp`
- logfile=`cygpath -wa $TMPFOLDER/testDSig.$timestamp-$$.log`
-else
- tmpfile=$TMPFOLDER/testDSig.$timestamp-$$.tmp
- logfile=$TMPFOLDER/testDSig.$timestamp-$$.log
-fi
-
-script="$0"
-
-# prepate crypto config folder
-crypto_config=$TMPFOLDER/xmlsec-crypto-config
-keysfile=$crypto_config/keys.xml
-
-valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
-valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
-
-if [ "z$crypto" != "z" -a "z$crypto" != "zdefault" ] ; then
- xmlsec_params="$xmlsec_params --crypto $crypto"
-fi
-xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
-
-if [ -n "$DEBUG_MEMORY" ] ; then
- export VALGRIND="valgrind $valgrind_options"
- export REPEAT=3
- xmlsec_params="$xmlsec_params --repeat $REPEAT"
-fi
-
-if [ -n "$PERF_TEST" ] ; then
- xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
-fi
-
-res_success="success"
-res_fail="fail"
-printRes() {
- expected_res=$1
- actual_res=$2
-
- # convert status to string
- if [ $actual_res = 0 ]; then
- actual_res=$res_success
- else
- actual_res=$res_fail
- fi
-
- # check
- if [ "z$expected_res" = "z$actual_res" ] ; then
- echo " OK"
- elif [ "z$expected_res" = "z$res_fail" ] ; then
- echo " Fail"
- fi
-
- # memlog
- if [ -f .memdump ] ; then
- cat .memdump >> $logfile
- fi
-}
-
-execDSigTest() {
- expected_res=$1
- folder=$2
- file=$3
- req_transforms=$4
- params1=$5
- params2=$6
- params3=$7
- old_pwd=`pwd`
- rm -f $tmpfile
-
- # check params
- if [ -n "$folder" ] ; then
- cd $topfolder/$folder
- full_file=$file
- echo $folder/$file
- echo "Test: $folder/$file in folder " `pwd` " ($expected_res)" >> $logfile
- else
- full_file=$topfolder/$file
- echo $file
- echo "Test: $folder/$file ($expected_res)" >> $logfile
- fi
-
- if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
- echo " Bad parameter: expected_res=$expected_res"
- cd $old_pwd
- return
- fi
-
- # check transforms
- if [ -n "$req_transforms" ] ; then
- printf " Checking required transforms "
- echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
- $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
- res=$?
- if [ $res = 0 ]; then
- echo " OK"
- else
- echo " Skip"
- cd $old_pwd
- return
- fi
- fi
-
- # run tests
- if [ -n "$params1" ] ; then
- printf " Verify existing signature "
- echo "$xmlsec_app verify $xmlsec_params $params1 $full_file.xml" >> $logfile
- $VALGRIND $xmlsec_app verify $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
- printRes $expected_res $?
- fi
-
- if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
- printf " Create new signature "
- echo "$xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
- $VALGRIND $xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
- printRes $expected_res $?
- fi
-
- if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
- printf " Verify new signature "
- echo "$xmlsec_app verify $xmlsec_params $params3 $tmpfile" >> $logfile
- $VALGRIND $xmlsec_app verify $xmlsec_params $params3 $tmpfile >> $logfile 2>> $logfile
- printRes $expected_res $?
- fi
-
- # done
- cd $old_pwd
-}
-
-echo "--- testDSig started for xmlsec-$crypto library ($timestamp)"
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--- testDSig started for xmlsec-$crypto library ($timestamp)"
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "--- log file is $logfile"
echo "--- testDSig started for xmlsec-$crypto library ($timestamp)" >> $logfile
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
-
##########################################################################
##########################################################################
##########################################################################
@@ -861,7 +702,6 @@ execDSigTest $res_success \
# test dynamic signature
#
##########################################################################
-
echo "Dynamic signature template"
printf " Create new signature "
echo "$xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
@@ -932,9 +772,10 @@ execDSigTest $res_fail \
"sha1 rsa-sha1" \
"--trusted-$cert_format certs/rsa-ca-cert.$cert_format"
-rm -rf $tmpfile
-
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testDSig finished" >> $logfile
echo "--- testDSig finished"
-echo "--- detailed log is written to $logfile"
+echo "--- detailed log is written to $logfile"
diff --git a/tests/testEnc.sh b/tests/testEnc.sh
index 7fad5a6..2d3b2df 100755
--- a/tests/testEnc.sh
+++ b/tests/testEnc.sh
@@ -1,126 +1,11 @@
-#!/bin/sh
-
-OS_ARCH=`uname -o`
-
-crypto=$1
-topfolder=$2
-xmlsec_app=$3
-file_format=$4
-
-pub_key_format=$file_format
-cert_format=$file_format
-priv_key_option="--pkcs12"
-priv_key_format="p12"
-
-if [ "z$TMPFOLDER" = "z" ] ; then
- TMPFOLDER=/tmp
-fi
-
-timestamp=`date +%Y%m%d_%H%M%S`
-tmpfile=$TMPFOLDER/testEnc.$timestamp-$$.tmp
-logfile=$TMPFOLDER/testEnc.$timestamp-$$.log
-script="$0"
-
-# prepate crypto config folder
-crypto_config=$TMPFOLDER/xmlsec-crypto-config
-keysfile=$crypto_config/keys.xml
-
-valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
-valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
-
-
-if [ "z$crypto" != "z" -a "z$crypto" != "zdefault" ] ; then
- xmlsec_params="$xmlsec_params --crypto $crypto"
-fi
-xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
-
-if [ -n "$DEBUG_MEMORY" ] ; then
- export VALGRIND="valgrind $valgrind_options"
- export REPEAT=3
- xmlsec_params="$xmlsec_params --repeat $REPEAT"
-fi
-
-if [ -n "$PERF_TEST" ] ; then
- export xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
-fi
-
-printRes() {
- if [ $1 = 0 ]; then
- echo " OK"
- else
- echo " Fail"
- fi
- if [ -f .memdump ] ; then
- cat .memdump >> $logfile
- fi
-}
-
-execEncTest() {
- filename=$1
- req_transforms=$2
- params1=$3
- params2=$4
- params3=$5
-
- echo $filename
- echo $filename >> $logfile
- file=$topfolder/$filename
-
- if [ -n "$req_transforms" ] ; then
- printf " Checking required transforms "
- echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
- $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
- res=$?
- if [ $res = 0 ]; then
- echo " OK"
- else
- echo " Skip"
- return
- fi
- fi
-
- printf " Decrypt existing document "
- rm -f $tmpfile
-
- if [ "z$OS_ARCH" = "zCygwin" ] ; then
- diff_param=-uw
- else
- diff_param=-u
- fi
-
- echo "$xmlsec_app decrypt $xmlsec_params $params1 $file.xml" >> $logfile
- $VALGRIND $xmlsec_app decrypt $xmlsec_params $params1 $file.xml > $tmpfile 2>> $logfile
- if [ $? = 0 ]; then
- diff $diff_param $file.data $tmpfile >> $logfile 2>> $logfile
- printRes $?
- else
- echo " Error"
- fi
-
- if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
- printf " Encrypt document "
- rm -f $tmpfile
- echo "$xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $file.tmpl" >> $logfile
- $VALGRIND $xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $file.tmpl >> $logfile 2>> $logfile
- printRes $?
-
- if [ -n "$params4" ] ; then
- if [ -z "$VALGRIND" ] ; then
- printf " Decrypt new document "
- echo "$xmlsec_app decrypt $xmlsec_params $params4 --output $tmpfile.2 $tmpfile" >> $logfile
- $VALGRIND $xmlsec_app decrypt $xmlsec_params $params4 --output $tmpfile.2 $tmpfile >> $logfile 2>> $logfile
- if [ $? = 0 ]; then
- diff $diff_param $file.data $tmpfile.2 >> $logfile 2>> $logfile
- printRes $?
- else
- echo " Error"
- fi
- fi
- fi
- fi
- rm -f $tmpfile $tmpfile.2
-}
+#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testEnc started for xmlsec-$crypto library ($timestamp)"
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "--- log file is $logfile"
@@ -128,64 +13,89 @@ echo "--- testEnc started for xmlsec-$crypto library ($timestamp)" >> $logfile
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+
+##########################################################################
#
# aleksey-xmlenc-01
#
##########################################################################
-execEncTest "aleksey-xmlenc-01/enc-des3cbc-keyname" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname" \
"tripledes-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname.data" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-des3cbc-keyname2" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname2" \
"tripledes-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname2.data" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-aes128cbc-keyname" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes128cbc-keyname" \
"aes128-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes128cbc-keyname.data" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-aes192cbc-keyname" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname" \
"aes192-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes192cbc-keyname.data" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
"aes192-cbc" \
"--keys-file $topfolder/keys/keys.xml"
-execEncTest "aleksey-xmlenc-01/enc-aes256cbc-keyname" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-aes256cbc-keyname" \
"aes256-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --binary-data $topfolder/aleksey-xmlenc-01/enc-aes256cbc-keyname.data" \
"--keys-file $keysfile"
execEncTest "aleksey-xmlenc-01/enc-des3cbc-keyname-content" \
- "tripledes-cbc" \
+ "tripled$res_success \
+ "" \
+ es-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data --node-id Test" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-des3cbc-keyname-element" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname-element" \
"tripledes-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data --node-id Test" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-des3cbc-keyname-element-root" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-keyname-element-root" \
"tripledes-cbc" \
"--keys-file $topfolder/keys/keys.xml" \
"--keys-file $keysfile --xml-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data --node-id Test" \
"--keys-file $keysfile"
-execEncTest "aleksey-xmlenc-01/enc-des3cbc-aes192-keyname" \
+execEncTest $res_success \
+ "" \
+ "aleksey-xmlenc-01/enc-des3cbc-aes192-keyname" \
"tripledes-cbc kw-aes192" \
"--keys-file $topfolder/keys/keys.xml --enabled-key-data key-name,enc-key" \
"--keys-file $keysfile --session-key des-192 --binary-data $topfolder/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data" \
@@ -197,65 +107,87 @@ execEncTest "aleksey-xmlenc-01/enc-des3cbc-aes192-keyname" \
#
##########################################################################
-execEncTest "merlin-xmlenc-five/encrypt-data-aes128-cbc" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes128-cbc" \
"aes128-cbc" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes128-cbc.data" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-content-tripledes-cbc" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-tripledes-cbc" \
"tripledes-cbc" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --enabled-key-data key-name --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data --node-id Payment" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-content-aes256-cbc-prop" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-aes256-cbc-prop" \
"aes256-cbc" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --enabled-key-data key-name --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data --node-id Payment" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-element-aes192-cbc-ref" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes192-cbc-ref" \
"aes192-cbc" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5" \
"aes128-cbc rsa-1_5" \
"$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-128 $priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --xml-data $topfolder/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data --node-id Purchase --pwd secret" \
"$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret"
-execEncTest "merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p" \
"tripledes-cbc rsa-oaep-mgf1p" \
"$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key des-192 $priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data --pwd secret" \
"$priv_key_option $topfolder/merlin-xmlenc-five/rsapriv.$priv_key_format --pwd secret"
-execEncTest "merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes" \
"aes256-cbc kw-tripledes" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-256 --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192" \
"aes128-cbc kw-aes192" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-128 --node-name urn:example:po:PaymentInfo --xml-data $topfolder/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256" \
"aes192-cbc kw-aes256" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key aes-192 --binary-data $topfolder/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128" \
"tripledes-cbc kw-aes128" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml --session-key des-192 --node-name urn:example:po:PaymentInfo --xml-data $topfolder/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
-execEncTest "merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256" \
"aes256-cbc kw-aes256" \
"--keys-file $topfolder/merlin-xmlenc-five/keys.xml"
@@ -277,109 +209,145 @@ execEncTest "merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256"
#
##########################################################################
-execEncTest "01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5" \
"tripledes-cbc rsa-1_5" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1" \
"tripledes-cbc rsa-oaep-mgf1p" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5" \
"aes128-cbc rsa-1_5" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1" \
"aes128-cbc rsa-oaep-mgf1p" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1" \
"aes192-cbc rsa-oaep-mgf1p" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5" \
"aes192-cbc rsa-1_5" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
"aes256-cbc rsa-1_5" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1" \
"aes256-cbc rsa-oaep-mgf1p" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret" \
"--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data --node-name http://example.org/paymentv2:CreditCard" \
"$priv_key_option $topfolder/01-phaos-xmlenc-3/rsa-priv-key.$priv_key_format --pwd secret"
-execEncTest "01-phaos-xmlenc-3/enc-element-3des-kw-3des" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-3des-kw-3des" \
"tripledes-cbc kw-tripledes" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-content-aes128-kw-3des" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes128-kw-3des" \
"aes128-cbc kw-tripledes" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes128-kw-aes128" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kw-aes128" \
"aes128-cbc kw-aes128" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes128-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes128-kw-aes256" \
"aes128-cbc kw-aes256" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-content-3des-kw-aes192" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-3des-kw-aes192" \
"tripledes-cbc kw-aes192" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-content-aes192-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes192-kw-aes256" \
"aes192-cbc kw-aes256" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes192-kw-aes192" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes192-kw-aes192" \
"aes192-cbc kw-aes192" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-element-aes256-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-element-aes256-kw-aes256" \
"aes256-cbc kw-aes256" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-256 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-text-3des-kw-aes256" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-3des-kw-aes256" \
"tripledes-cbc kw-aes256" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key des-192 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data --node-name http://example.org/paymentv2:CreditCard" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "01-phaos-xmlenc-3/enc-text-aes128-kw-aes192" \
+execEncTest $res_success \
+ "" \
+ "01-phaos-xmlenc-3/enc-text-aes128-kw-aes192" \
"aes128-cbc kw-aes192" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml" \
"--session-key aes-128 --keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-key-data key-name --xml-data $topfolder/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data --node-name http://example.org/paymentv2:CreditCard" \
@@ -393,38 +361,51 @@ execEncTest "01-phaos-xmlenc-3/enc-text-aes128-kw-aes192" \
#01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml
#01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml
-# test dynamic encryption
+##########################################################################
+#
+# test dynamicencryption
+#
+##########################################################################
echo "Dynamic encryption template"
printf " Encrypt template "
echo "$xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
$VALGRIND $xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile >> $logfile 2>> $logfile
-printRes $?
+printRes $res_success $?
printf " Decrypt document "
echo "$xmlsec_app decrypt $xmlsec_params $keysfile $tmpfile" >> $logfile
$VALGRIND $xmlsec_app decrypt $xmlsec_params --keys-file $keysfile $tmpfile >> $logfile 2>> $logfile
-printRes $?
-
+printRes $res_success $?
+##########################################################################
+##########################################################################
+##########################################################################
echo "--------- Negative Testing: Following tests MUST FAIL ----------"
echo "--- detailed log is written to $logfile"
-execEncTest "01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des" \
+execEncTest $res_fail \
+ "" \
+ "01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des" \
"" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml"
-execEncTest "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
+execEncTest $res_fail \
+ "" \
+ "aleksey-xmlenc-01/enc-aes192cbc-keyname-ref" \
"" \
"--keys-file $topfolder/keys/keys.xml --enabled-cipher-reference-uris empty"
-execEncTest "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
+execEncTest $res_fail \
+ "" \
+ "01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5" \
"" \
"--keys-file $topfolder/01-phaos-xmlenc-3/keys.xml --enabled-retrieval-method-uris empty"
-
+
rm -rf $tmpfile
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testEnc finished" >> $logfile
echo "--- testEnc finished"
-echo "--- detailed log is written to $logfile"
-
-#more $logfile
+echo "--- detailed log is written to $logfile"
diff --git a/tests/testKeys.sh b/tests/testKeys.sh
index 1b882f3..1bf7dc2 100755
--- a/tests/testKeys.sh
+++ b/tests/testKeys.sh
@@ -1,133 +1,69 @@
#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
-crypto=$1
-topfolder=$2
-xmlsec_app=$3
-file_format=$4
-
-pub_key_format=$file_format
-cert_format=$file_format
-priv_key_option="--pkcs12"
-priv_key_format="p12"
-
-if [ "z$TMPFOLDER" = "z" ] ; then
- TMPFOLDER=/tmp
-fi
-
-timestamp=`date +%Y%m%d_%H%M%S`
-tmpfile=$TMPFOLDER/testKeys.$timestamp-$$.tmp
-logfile=$TMPFOLDER/testKeys.$timestamp-$$.log
-script="$0"
-nssdbfolder=$topfolder/nssdb
-
-# prepate crypto config folder
-crypto_config=$TMPFOLDER/xmlsec-crypto-config
-keysfile=$crypto_config/keys.xml
-mkdir -p $crypto_config
-rm -rf $crypto_config/*
-
-valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
-valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
-
-
-if [ "z$crypto" != "z" -a "z$crypto" != "zdefault" ] ; then
- xmlsec_params="$xmlsec_params --crypto $crypto"
-fi
-xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
-
-if [ -n "$DEBUG_MEMORY" ] ; then
- export VALGRIND="valgrind $valgrind_options"
- export REPEAT=3
- xmlsec_params="$xmlsec_params --repeat $REPEAT"
-fi
-
-if [ -n "$PERF_TEST" ] ; then
- export xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
-fi
-
-printRes() {
- if [ $1 = 0 ]; then
- echo " OK"
- else
- echo " Fail"
- fi
- if [ -f .memdump ] ; then
- cat .memdump >> $logfile
- fi
-}
-
-execKeysTest() {
- req_key_data=$1
- key_name=$2
- alg_name=$3
-
- if [ -n "$req_key_data" ] ; then
- printf " Checking $req_key_data key data presense "
- echo "$xmlsec_app check-key-data $xmlsec_params $req_key_data" >> $logfile
- $xmlsec_app check-key-data $xmlsec_params $req_key_data >> $logfile 2>> $logfile
- res=$?
- if [ $res = 0 ]; then
- echo " OK"
- else
- echo " Skip"
- return
- fi
- fi
-
- printf " Creating new key: $alg_name "
-
- params="--gen-key:$key_name $alg_name"
- if [ -f $keysfile ] ; then
- params="$params --keys-file $keysfile"
- fi
-
- echo "$xmlsec_app keys $params $xmlsec_params $keysfile" >> $logfile
- $VALGRIND $xmlsec_app keys $params $xmlsec_params $keysfile >> $logfile 2>> $logfile
- printRes $?
-}
-
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testKeys started for xmlsec-$crypto library ($timestamp) ---"
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "--- log file is $logfile"
echo "--- testKeys started for xmlsec-$crypto library ($timestamp) ---" >> $logfile
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
+# cleanup crypto config folder
+mkdir -p $crypto_config
+rm -rf $crypto_config/*
+
# remove old keys file and copy NSS DB files if needed
rm -rf $keysfile
if [ "z$crypto" = "znss" ] ; then
cp -f $nssdbfolder/*.db $crypto_config
fi
-execKeysTest \
- "hmac" \
- "test-hmac-sha1" \
- "hmac-192"
-execKeysTest \
- "rsa " \
- "test-rsa " \
- "rsa-1024"
-execKeysTest \
- "dsa " \
- "test-dsa " \
- "dsa-1024"
-execKeysTest \
- "des " \
- "test-des " \
- "des-192 "
-execKeysTest \
- "aes " \
- "test-aes128 " \
- "aes-128 "
-execKeysTest \
- "aes " \
- "test-aes192 " \
- "aes-192 "
-execKeysTest \
- "aes " \
- "test-aes256 " \
- "aes-256 "
-
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+execKeysTest $res_success \
+ "hmac" \
+ "test-hmac-sha1" \
+ "hmac-192"
+
+execKeysTest $res_success \
+ "rsa " \
+ "test-rsa " \
+ "rsa-1024"
+
+execKeysTest $res_success \
+ "dsa " \
+ "test-dsa " \
+ "dsa-1024"
+
+execKeysTest $res_success \
+ "des " \
+ "test-des " \
+ "des-192 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes128 " \
+ "aes-128 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes192 " \
+ "aes-192 "
+
+execKeysTest $res_success \
+ "aes " \
+ "test-aes256 " \
+ "aes-256 "
+
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testKeys finished ---" >> $logfile
echo "--- testKeys finished ---"
-echo "--- detailed log is written to $logfile ---"
-
+echo "--- detailed log is written to $logfile ---"
diff --git a/tests/testXKMS.sh b/tests/testXKMS.sh
index 6c46c81..be972dd 100755
--- a/tests/testXKMS.sh
+++ b/tests/testXKMS.sh
@@ -1,149 +1,128 @@
#!/bin/sh
+#
+# This script needs to be called from testrun.sh script
+#
-crypto=$1
-topfolder=$2
-xmlsec_app=$3
-file_format=$4
-
-pub_key_format=$file_format
-cert_format=$file_format
-priv_key_option="--pkcs12"
-priv_key_format="p12"
-
-if [ "z$TMPFOLDER" = "z" ] ; then
- TMPFOLDER=/tmp
-fi
-
-timestamp=`date +%Y%m%d_%H%M%S`
-tmpfile=$TMPFOLDER/testXKMS.$timestamp-$$.tmp
-tmpfile2=$TMPFOLDER/testXKMS.$timestamp-$$-2.tmp
-tmpfile3=$TMPFOLDER/testXKMS.$timestamp-$$-3.tmp
-logfile=$TMPFOLDER/testXKMS.$timestamp-$$.log
-script="$0"
-
-# prepate crypto config folder
-crypto_config=$TMPFOLDER/xmlsec-crypto-config
-keysfile=$crypto_config/keys.xml
-
-valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
-valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
-
-if [ "z$crypto" != "z" -a "z$crypto" != "zdefault" ] ; then
- xmlsec_params="$xmlsec_params --crypto $crypto"
-fi
-xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
-
-if [ -n "$DEBUG_MEMORY" ] ; then
- export VALGRIND="valgrind $valgrind_options"
- export REPEAT=3
- xmlsec_params="$xmlsec_params --repeat $REPEAT"
-fi
-
-if [ -n "$PERF_TEST" ] ; then
- xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
-fi
-
-# debug
-# xmlsec_params="$xmlsec_params --xkms-stop-on-unknown-response-mechanism --xkms-stop-on-unknown-respond-with --xkms-stop-on-unknown-key-usage"
-
-
-printRes() {
- if [ $1 = 0 ]; then
- echo " OK"
- else
- echo " Fail"
- fi
- if [ -f .memdump ] ; then
- cat .memdump >> $logfile
- fi
-}
-
-execXkmsServerRequestTest() {
- src_file=$topfolder/$1.xml
- res_file=$topfolder/$1-$2.xml
- echo "$1 ($2)"
-
- rm -f $tmpfile $tmpfile2 $tmpfile3
-
- printf " Processing xkms request "
- echo "$xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $3 $src_file" >> $logfile
- $VALGRIND $xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $3 $src_file >> $logfile 2>> $logfile
- if [ $? = 0 ]; then
- # cleanup Id attribute because it is generated every time
- sed 's/ Id="[^\"]*"/ Id=""/g' $res_file > $tmpfile2
- sed 's/ Id="[^\"]*"/ Id=""/g' $tmpfile > $tmpfile3
- diff $tmpfile2 $tmpfile3 >> $logfile 2>> $logfile
- printRes $?
- else
- echo " Error"
- fi
-}
-
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)"
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "--- log file is $logfile"
echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)" >> $logfile
echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
-execXkmsServerRequestTest \
- "aleksey-xkms-01/locate-example-1" "no-match" \
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Positive Testing ----------"
+
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-1" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/locate-example-1" "bad-service" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-1" \
+ "" \
+ "bad-service" \
"--xkms-service http://www.example.com/xkms-bad-service"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/locate-example-2" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-example-2" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/validate-example-1" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/validate-example-1" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/locate-opaque-client-data" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/locate-opaque-client-data" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/compound-example-1" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/compound-example-1" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/status-request" "success" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/status-request" \
+ "" \
+ "success" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/bad-request-name" "not-supported" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/bad-request-name" \
+ "" \
+ "not-supported" \
"--xkms-service http://www.example.com/xkms"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap12-locate-example-1" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-locate-example-1" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap11-locate-example-1" "unsupported" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-locate-example-1" \
+ "" \
+ "unsupported" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap12-bad-request-name" "msg-invalid" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-bad-request-name" \
+ "" \
+ "msg-invalid" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap11-locate-example-1" "no-match" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-locate-example-1" \
+ "" \
+ "no-match" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap12-locate-example-1" "unsupported" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap12-locate-example-1" \
+ "" \
+ "unsupported" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
-execXkmsServerRequestTest \
- "aleksey-xkms-01/soap11-bad-request-name" "msg-invalid" \
+execXkmsServerRequestTest $res_success \
+ "" \
+ "aleksey-xkms-01/soap11-bad-request-name" \
+ "" \
+ "msg-invalid" \
"--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
+##########################################################################
+##########################################################################
+##########################################################################
+echo "--------- Negative Testing ----------"
-rm -f $tmpfile $tmpfile2 $tmpfile3
-
+##########################################################################
+##########################################################################
+##########################################################################
echo "--- testXKMS finished" >> $logfile
echo "--- testXKMS finished"
echo "--- detailed log is written to $logfile"
diff --git a/tests/testrun.sh b/tests/testrun.sh
new file mode 100755
index 0000000..491d144
--- /dev/null
+++ b/tests/testrun.sh
@@ -0,0 +1,404 @@
+#!/bin/sh
+
+OS_ARCH=`uname -o`
+OS_KERNEL=`uname -s`
+
+#
+# Get command line params
+#
+testfile="$1"
+crypto="$2"
+topfolder="$3"
+xmlsec_app="$4"
+file_format="$5"
+timestamp=`date +%Y%m%d_%H%M%S`
+
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ topfolder=`cygpath -wa "$topfolder"`
+ xmlsec_app=`cygpath -a "$xmlsec_app"`
+fi
+
+#
+# Setup keys config
+#
+pub_key_format=$file_format
+cert_format=$file_format
+priv_key_option="--pkcs12"
+priv_key_format="p12"
+
+# On Windows, one needs to specify Crypto Service Provider (CSP)
+# in the pkcs12 file to ensure it is loaded correctly to be used
+# with SHA2 algorithms. Worse, the CSP is different for XP and older
+# versions
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ if [ "z$OS_KERNEL" = "zCYGWIN_NT-5.1" ] ; then
+ priv_key_suffix="-winxp"
+ else
+ priv_key_suffix="-win"
+ fi
+else
+ priv_key_suffix=""
+fi
+
+#
+# Prepare folders
+#
+if [ "z$TMPFOLDER" = "z" ] ; then
+ TMPFOLDER=/tmp
+fi
+testname=`basename $testfile`
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ tmpfile=`cygpath -wa $TMPFOLDER/$testname.$timestamp-$$.tmp`
+ logfile=`cygpath -wa $TMPFOLDER/$testname.$timestamp-$$.log`
+else
+ tmpfile=$TMPFOLDER/$testname.$timestamp-$$.tmp
+ logfile=$TMPFOLDER/$testname.$timestamp-$$.log
+fi
+
+#
+# Valgrind
+#
+valgrind_suppression="--suppressions=$topfolder/openssl.supp --suppressions=$topfolder/nss.supp"
+valgrind_options="--leak-check=yes --show-reachable=yes --num-callers=32 -v"
+if [ -n "$DEBUG_MEMORY" ] ; then
+ export VALGRIND="valgrind $valgrind_options"
+ export REPEAT=3
+ xmlsec_params="$xmlsec_params --repeat $REPEAT"
+fi
+
+#
+# Setup crypto engine
+#
+crypto_config=$TMPFOLDER/xmlsec-crypto-config
+keysfile=$crypto_config/keys.xml
+if [ "z$crypto" != "z" -a "z$crypto" != "zdefault" ] ; then
+ xmlsec_params="$xmlsec_params --crypto $crypto"
+fi
+xmlsec_params="$xmlsec_params --crypto-config $crypto_config"
+
+#
+# Misc
+#
+if [ -n "$PERF_TEST" ] ; then
+ xmlsec_params="$xmlsec_params --repeat $PERF_TEST"
+fi
+
+if [ "z$OS_ARCH" = "zCygwin" ] ; then
+ diff_param=-uw
+else
+ diff_param=-u
+fi
+
+#
+# Check the command result and print it to stdout
+#
+res_success="success"
+res_fail="fail"
+printRes() {
+ expected_res="$1"
+ actual_res="$2"
+
+ # convert status to string
+ if [ $actual_res = 0 ]; then
+ actual_res=$res_success
+ else
+ actual_res=$res_fail
+ fi
+
+ # check
+ if [ "z$expected_res" = "z$actual_res" ] ; then
+ echo " OK"
+ else
+ echo " Fail"
+ fi
+
+ # memlog
+ if [ -f .memdump ] ; then
+ cat .memdump >> $logfile
+ fi
+}
+
+#
+# Keys Manager test function
+#
+execKeysTest() {
+ expected_res="$1"
+ req_key_data="$2"
+ key_name="$3"
+ alg_name="$4"
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ echo "Test: $alg_name ($expected_res)"
+
+ # check key data
+ if [ -n "$req_key_data" ] ; then
+ printf " Checking required key data "
+ echo "$xmlsec_app check-key-data $xmlsec_params $req_key_data" >> $logfile
+ $xmlsec_app check-key-data $xmlsec_params $req_key_data >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # run tests
+ printf " Creating new key "
+ params="--gen-key:$key_name $alg_name"
+ if [ -f $keysfile ] ; then
+ params="$params --keys-file $keysfile"
+ fi
+ echo "$xmlsec_app keys $params $xmlsec_params $keysfile" >> $logfile
+ $VALGRIND $xmlsec_app keys $params $xmlsec_params $keysfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+}
+
+#
+# DSig test function
+#
+execDSigTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ params1="$5"
+ params2="$6"
+ params3="$7"
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ echo $folder/$filename
+ echo "Test: $folder/$filename in folder " `pwd` " ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ echo $filename
+ echo "Test: $folder/$filename ($expected_res)" >> $logfile
+ fi
+
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ cd $old_pwd
+ return
+ fi
+ fi
+
+ # prepare
+ rm -f $tmpfile
+ old_pwd=`pwd`
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ printf " Verify existing signature "
+ echo "$xmlsec_app verify $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app verify $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
+ printf " Create new signature "
+ echo "$xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ $VALGRIND $xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
+ printf " Verify new signature "
+ echo "$xmlsec_app verify $xmlsec_params $params3 $tmpfile" >> $logfile
+ $VALGRIND $xmlsec_app verify $xmlsec_params $params3 $tmpfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile
+}
+
+#
+# Enc test function
+#
+execEncTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ params1="$5"
+ params2="$6"
+ params3="$7"
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ echo $folder/$filename
+ echo "Test: $folder/$filename in folder " `pwd` " ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ echo $filename
+ echo "Test: $folder/$filename ($expected_res)" >> $logfile
+ fi
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # prepare
+ rm -f $tmpfile $tmpfile.2
+ old_pwd=`pwd`
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ rm -f $tmpfile
+ printf " Decrypt existing document "
+ echo "$xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml > $tmpfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ diff $diff_param $full_file.data $tmpfile >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
+ rm -f $tmpfile
+ printf " Encrypt document "
+ echo "$xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ $VALGRIND $xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ fi
+
+ if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
+ rm -f $tmpfile.2
+ printf " Decrypt new document "
+ echo "$xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile" >> $logfile
+ $VALGRIND $xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ diff $diff_param $full_file.data $tmpfile.2 >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile $tmpfile.2
+}
+
+execXkmsServerRequestTest() {
+ expected_res="$1"
+ folder="$2"
+ filename="$3"
+ req_transforms="$4"
+ response="$5"
+ params1="$6"
+
+ # check params
+ if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
+ echo " Bad parameter: expected_res=$expected_res"
+ cd $old_pwd
+ return
+ fi
+ if [ -n "$folder" ] ; then
+ cd $topfolder/$folder
+ full_file=$filename
+ full_resfile=$filename-$response
+ echo "$folder/$filename ($response)"
+ echo "Test: $folder/$filename in folder " `pwd` " $response ($expected_res)" >> $logfile
+ else
+ full_file=$topfolder/$filename
+ full_resfile=$topfolder/$filename-$response
+ echo "$filename ($response)"
+ echo "Test: $folder/$filename $response ($expected_res)" >> $logfile
+ fi
+
+ # check transforms
+ if [ -n "$req_transforms" ] ; then
+ printf " Checking required transforms "
+ echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
+ $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ echo " OK"
+ else
+ echo " Skip"
+ return
+ fi
+ fi
+
+ # prepare
+ rm -f $tmpfile $tmpfile.2 tmpfile.3
+ old_pwd=`pwd`
+
+ # run tests
+ if [ -n "$params1" ] ; then
+ printf " Processing xkms request "
+ echo "$xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml" >> $logfile
+ $VALGRIND $xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
+ res=$?
+ if [ $res = 0 ]; then
+ # cleanup Id attribute because it is generated every time
+ sed 's/ Id="[^\"]*"/ Id=""/g' $full_resfile > $tmpfile.2
+ sed 's/ Id="[^\"]*"/ Id=""/g' $tmpfile > $tmpfile.3
+ diff $tmpfile.2 $tmpfile.3 >> $logfile 2>> $logfile
+ printRes $expected_res $?
+ else
+ printRes $expected_res $res
+ fi
+ fi
+
+ # cleanup
+ cd $old_pwd
+ rm -f $tmpfile $tmpfile.2 tmpfile.3
+}
+
+
+# prepare
+rm -rf $tmpfile $tmpfile.2 tmpfile.3
+
+# run tests
+source "$testfile"
+
+# cleanup
+rm -rf $tmpfile $tmpfile.2 tmpfile.3
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]