In case anybody is interested, I back-ported much of check-in 12871
(http://cvs.openssl.org/chngview?cn=12871) to apply to the 0.9.7e
release. This fixes 'make test' failures when building shared libs on
Linux (and perhaps other systems), and may be useful to people who are
somehow constrained from using the code in CVS.
Michael Moss
Google, Inc.
diff -ur --new-file openssl-0.9.7e/apps/CA.pl.in
openssl-0.9.7e.mtm/apps/CA.pl.in
--- openssl-0.9.7e/apps/CA.pl.in 2004-04-22 05:19:47.000000000 -0700
+++ openssl-0.9.7e.mtm/apps/CA.pl.in 2005-02-04 10:12:19.000000000 -0800
@@ -36,13 +36,21 @@
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
+my $openssl;
+if(defined $ENV{OPENSSL}) {
+ $openssl = $ENV{OPENSSL};
+} else {
+ $openssl = "openssl";
+ $ENV{OPENSSL} = $openssl;
+}
+
$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"};
$DAYS="-days 365";
-$REQ="openssl req $SSLEAY_CONFIG";
-$CA="openssl ca $SSLEAY_CONFIG";
-$VERIFY="openssl verify";
-$X509="openssl x509";
-$PKCS12="openssl pkcs12";
+$REQ="$openssl req $SSLEAY_CONFIG";
+$CA="$openssl ca $SSLEAY_CONFIG";
+$VERIFY="$openssl verify";
+$X509="$openssl x509";
+$PKCS12="$openssl pkcs12";
$CATOP="./demoCA";
$CAKEY="cakey.pem";
diff -ur --new-file openssl-0.9.7e/apps/CA.sh openssl-0.9.7e.mtm/apps/CA.sh
--- openssl-0.9.7e/apps/CA.sh 2000-02-03 15:22:15.000000000 -0800
+++ openssl-0.9.7e.mtm/apps/CA.sh 2005-02-04 10:12:51.000000000 -0800
@@ -30,11 +30,13 @@
# default openssl.cnf file has setup as per the following
# demoCA ... where everything is stored
+if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
+
DAYS="-days 365"
-REQ="openssl req $SSLEAY_CONFIG"
-CA="openssl ca $SSLEAY_CONFIG"
-VERIFY="openssl verify"
-X509="openssl x509"
+REQ="$OPENSSL req $SSLEAY_CONFIG"
+CA="$OPENSSL ca $SSLEAY_CONFIG"
+VERIFY="$OPENSSL verify"
+X509="$OPENSSL x509"
CATOP=./demoCA
CAKEY=./cakey.pem
diff -ur --new-file openssl-0.9.7e/apps/Makefile
openssl-0.9.7e.mtm/apps/Makefile
--- openssl-0.9.7e/apps/Makefile 2004-08-10 02:09:07.000000000 -0700
+++ openssl-0.9.7e.mtm/apps/Makefile 2005-02-04 10:13:50.000000000 -0800
@@ -152,13 +152,8 @@
if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint
$(TOP)/libcrypto.a $(EXE); \
fi
- -(cd ..; OPENSSL="`pwd`/apps/$(EXE)"; export OPENSSL; \
- LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
PATH; \
+ -(cd ..; \
+ OPENSSL="`pwd`/util/opensslwrap.sh"; export OPENSSL; \
$(PERL) tools/c_rehash certs)
progs.h: progs.pl
diff -ur --new-file openssl-0.9.7e/Makefile.org openssl-0.9.7e.mtm/Makefile.org
--- openssl-0.9.7e/Makefile.org 2004-09-28 13:52:14.000000000 -0700
+++ openssl-0.9.7e.mtm/Makefile.org 2005-02-04 10:44:31.000000000 -0800
@@ -679,29 +679,19 @@
rehash: rehash.time
rehash.time: certs
- @(OPENSSL="`pwd`/apps/openssl$(EXE_EXT)"; OPENSSL_DEBUG_MEMORY=on; \
+ @(OPENSSL="`pwd`/util/opensslwrap.sh"; \
+ OPENSSL_DEBUG_MEMORY=on; \
export OPENSSL OPENSSL_DEBUG_MEMORY; \
- LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
PATH; \
$(PERL) tools/c_rehash certs)
touch rehash.time
test: tests
tests: rehash
- @(cd test && echo "testing..." && \
+ @(chmod 750 util/shlib_wrap.sh util/opensslwrap.sh && \
+ cd test && echo "testing..." && \
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}'
SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}'
EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}'
FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}'
RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}'
FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}'
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}'
PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}'
KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}'
SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}'
SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
- @LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
- LIBPATH="`pwd`:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
- apps/openssl version -a
+ util/shlib_wrap.sh apps/openssl version -a
report:
@$(PERL) util/selftest.pl
diff -ur --new-file openssl-0.9.7e/test/Makefile
openssl-0.9.7e.mtm/test/Makefile
--- openssl-0.9.7e/test/Makefile 2004-06-28 15:00:49.000000000 -0700
+++ openssl-0.9.7e.mtm/test/Makefile 2005-02-04 11:17:18.000000000 -0800
@@ -124,14 +124,6 @@
apps:
@(cd ..; $(MAKE) DIRS=apps all)
-SET_SO_PATHS=OSSL_LIBPATH="`cd ..; pwd`"; \
- LD_LIBRARY_PATH="$$OSSL_LIBPATH:$$LD_LIBRARY_PATH"; \
- DYLD_LIBRARY_PATH="$$OSSL_LIBPATH:$$DYLD_LIBRARY_PATH"; \
- SHLIB_PATH="$$OSSL_LIBPATH:$$SHLIB_PATH"; \
- LIBPATH="$$OSSL_LIBPATH:$$LIBPATH"; \
- if [ "$(PLATFORM)" = "Cygwin" ]; then
PATH="$${LIBPATH}:$$PATH"; fi; \
- export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH
-
alltests: \
test_des test_idea test_sha test_md4 test_md5 test_hmac \
test_md2 test_mdc2 \
@@ -145,145 +137,145 @@
fips_test_aes:
if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
mkdir -p fips_aes_data/rsp; \
- $(SET_SO_PATHS); ./$(FIPS_AESTEST) -d fips_aes_data/list; \
+ ../util/shlib_wrap.sh ./$(FIPS_AESTEST) -d fips_aes_data/list; \
fi
test_evp:
- $(SET_SO_PATHS); ./$(EVPTEST) evptests.txt
+ ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
test_des:
- $(SET_SO_PATHS); ./$(DESTEST)
+ ../util/shlib_wrap.sh ./$(DESTEST)
test_idea:
- $(SET_SO_PATHS); ./$(IDEATEST)
+ ../util/shlib_wrap.sh ./$(IDEATEST)
test_sha:
- $(SET_SO_PATHS); ./$(SHATEST)
- $(SET_SO_PATHS); ./$(SHA1TEST)
+ ../util/shlib_wrap.sh ./$(SHATEST)
+ ../util/shlib_wrap.sh ./$(SHA1TEST)
if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
- $(SET_SO_PATHS); ./$(FIPS_SHA1TEST) sha1vectors.txt | sed
s/Strings/Hashes/ | cmp sha1hashes.txt - ; \
+ ../util/shlib_wrap.sh ./$(FIPS_SHA1TEST) sha1vectors.txt | sed
s/Strings/Hashes/ | cmp sha1hashes.txt - ; \
fi
test_mdc2:
- $(SET_SO_PATHS); ./$(MDC2TEST)
+ ../util/shlib_wrap.sh ./$(MDC2TEST)
test_md5:
- $(SET_SO_PATHS); ./$(MD5TEST)
+ ../util/shlib_wrap.sh ./$(MD5TEST)
test_md4:
- $(SET_SO_PATHS); ./$(MD4TEST)
+ ../util/shlib_wrap.sh ./$(MD4TEST)
test_hmac:
- $(SET_SO_PATHS); ./$(HMACTEST)
+ ../util/shlib_wrap.sh ./$(HMACTEST)
test_md2:
- $(SET_SO_PATHS); ./$(MD2TEST)
+ ../util/shlib_wrap.sh ./$(MD2TEST)
test_rmd:
- $(SET_SO_PATHS); ./$(RMDTEST)
+ ../util/shlib_wrap.sh ./$(RMDTEST)
test_bf:
- $(SET_SO_PATHS); ./$(BFTEST)
+ ../util/shlib_wrap.sh ./$(BFTEST)
test_cast:
- $(SET_SO_PATHS); ./$(CASTTEST)
+ ../util/shlib_wrap.sh ./$(CASTTEST)
test_rc2:
- $(SET_SO_PATHS); ./$(RC2TEST)
+ ../util/shlib_wrap.sh ./$(RC2TEST)
test_rc4:
- $(SET_SO_PATHS); ./$(RC4TEST)
+ ../util/shlib_wrap.sh ./$(RC4TEST)
test_rc5:
- $(SET_SO_PATHS); ./$(RC5TEST)
+ ../util/shlib_wrap.sh ./$(RC5TEST)
test_rand:
- $(SET_SO_PATHS); ./$(RANDTEST)
+ ../util/shlib_wrap.sh ./$(RANDTEST)
if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
- $(SET_SO_PATHS); ./$(FIPS_RANDTEST); \
+ ../util/shlib_wrap.sh ./$(FIPS_RANDTEST); \
fi
test_enc:
- @$(SET_SO_PATHS); sh ./testenc
+ @sh ./testenc
test_x509:
echo test normal x509v1 certificate
- $(SET_SO_PATHS); sh ./tx509 2>/dev/null
+ sh ./tx509 2>/dev/null
echo test first x509v3 certificate
- $(SET_SO_PATHS); sh ./tx509 v3-cert1.pem 2>/dev/null
+ sh ./tx509 v3-cert1.pem 2>/dev/null
echo test second x509v3 certificate
- $(SET_SO_PATHS); sh ./tx509 v3-cert2.pem 2>/dev/null
+ sh ./tx509 v3-cert2.pem 2>/dev/null
test_rsa:
- @$(SET_SO_PATHS); sh ./trsa 2>/dev/null
- $(SET_SO_PATHS); ./$(RSATEST)
+ sh ./trsa 2>/dev/null
+ ../util/shlib_wrap.sh ./$(RSATEST)
test_crl:
- @$(SET_SO_PATHS); sh ./tcrl 2>/dev/null
+ @sh ./tcrl 2>/dev/null
test_sid:
- @$(SET_SO_PATHS); sh ./tsid 2>/dev/null
+ @sh ./tsid 2>/dev/null
test_req:
- @$(SET_SO_PATHS); sh ./treq 2>/dev/null
- @$(SET_SO_PATHS); sh ./treq testreq2.pem 2>/dev/null
+ @sh ./treq 2>/dev/null
+ @sh ./treq testreq2.pem 2>/dev/null
test_pkcs7:
- @$(SET_SO_PATHS); sh ./tpkcs7 2>/dev/null
- @$(SET_SO_PATHS); sh ./tpkcs7d 2>/dev/null
+ @sh ./tpkcs7 2>/dev/null
+ @sh ./tpkcs7d 2>/dev/null
test_bn:
@echo starting big number library test, could take a while...
- @$(SET_SO_PATHS); ./$(BNTEST) >tmp.bntest
+ @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest
@echo quit >>tmp.bntest
@echo "running bc"
@<tmp.bntest sh -c "`sh ./bctest ignore`" | $(PERL) -e '$$i=0; while
(<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/)
{die "\nFailed! bc: $$_";} else {print STDERR "."; $$i++;}} print STDERR "\n$$i
tests passed\n"'
@echo 'test a^b%c implementations'
- $(SET_SO_PATHS); ./$(EXPTEST)
+ ../util/shlib_wrap.sh ./$(EXPTEST)
test_ec:
@echo 'test elliptic curves'
- $(SET_SO_PATHS); ./$(ECTEST)
+ ../util/shlib_wrap.sh ./$(ECTEST)
test_verify:
@echo "The following command should have some OK's and some failures"
@echo "There are definitly a few expired certificates"
- -$(SET_SO_PATHS); ../apps/openssl verify -CApath ../certs ../certs/*.pem
+ -../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs
../certs/*.pem
test_dh:
@echo "Generate a set of DH parameters"
- $(SET_SO_PATHS); ./$(DHTEST)
+ ../util/shlib_wrap.sh ./$(DHTEST)
test_dsa:
@echo "Generate a set of DSA parameters"
- $(SET_SO_PATHS); ./$(DSATEST)
- $(SET_SO_PATHS); ./$(DSATEST) -app2_1
+ ../util/shlib_wrap.sh ./$(DSATEST)
+ ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
- $(SET_SO_PATHS); ./$(FIPS_DSATEST); \
- $(SET_SO_PATHS); ./$(FIPS_DSATEST) -app2_1; \
+ ../util/shlib_wrap.sh ./$(FIPS_DSATEST); \
+ ../util/shlib_wrap.sh ./$(FIPS_DSATEST) -app2_1; \
fi
test_gen:
@echo "Generate and verify a certificate request"
- @$(SET_SO_PATHS); sh ./testgen
+ @sh ./testgen
test_ss keyU.ss certU.ss certCA.ss: testss
@echo "Generate and certify a test certificate"
- @$(SET_SO_PATHS); sh ./testss
+ @sh ./testss
test_engine:
@echo "Manipulate the ENGINE structures"
- $(SET_SO_PATHS); ./$(ENGINETEST)
+ ../util/shlib_wrap.sh ./$(ENGINETEST)
test_ssl: keyU.ss certU.ss certCA.ss
@echo "test SSL protocol"
@if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h >
/dev/null; then \
- $(SET_SO_PATHS); sh ./testfipsssl keyU.ss certU.ss certCA.ss; \
+ sh ./testfipsssl keyU.ss certU.ss certCA.ss; \
fi
- @$(SET_SO_PATHS); sh ./testssl keyU.ss certU.ss certCA.ss
+ @sh ./testssl keyU.ss certU.ss certCA.ss
test_ca:
- @$(SET_SO_PATHS); if ../apps/openssl no-rsa; then \
+ @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
echo "skipping CA.sh test -- requires RSA"; \
else \
echo "Generate and certify a test certificate via the 'ca' program"; \
@@ -292,7 +284,7 @@
test_aes: #$(AESTEST)
# @echo "test Rijndael"
-# $(SET_SO_PATHS); ./$(AESTEST)
+# ../util/shlib_wrap.sh ./$(AESTEST)
lint:
lint -DLINT $(INCLUDES) $(SRC)>fluff
diff -ur --new-file openssl-0.9.7e/test/tcrl openssl-0.9.7e.mtm/test/tcrl
--- openssl-0.9.7e/test/tcrl 2002-06-13 13:40:33.000000000 -0700
+++ openssl-0.9.7e.mtm/test/tcrl 2005-02-03 16:36:24.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl crl'
+cmd='../util/shlib_wrap.sh ../apps/openssl crl'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/testca openssl-0.9.7e.mtm/test/testca
--- openssl-0.9.7e/test/testca 2002-06-13 13:40:33.000000000 -0700
+++ openssl-0.9.7e.mtm/test/testca 2005-02-03 16:37:28.000000000 -0800
@@ -2,15 +2,18 @@
SH="/bin/sh"
if test "$OSTYPE" = msdosdjgpp; then
- PATH=./apps\;../apps\;$PATH
+ PATH="./apps\;../apps\;$PATH"
else
- PATH=../apps:$PATH
+ PATH="../apps:$PATH"
fi
export SH PATH
SSLEAY_CONFIG="-config CAss.cnf"
export SSLEAY_CONFIG
+OPENSSL="`pwd`/../util/opensslwrap.sh"
+export OPENSSL
+
/bin/rm -fr demoCA
$SH ../apps/CA.sh -newca <<EOF
EOF
diff -ur --new-file openssl-0.9.7e/test/testenc openssl-0.9.7e.mtm/test/testenc
--- openssl-0.9.7e/test/testenc 2004-05-11 05:46:15.000000000 -0700
+++ openssl-0.9.7e.mtm/test/testenc 2005-02-03 16:37:49.000000000 -0800
@@ -2,7 +2,7 @@
testsrc=Makefile
test=./p
-cmd=../apps/openssl
+cmd="../util/shlib_wrap.sh ../apps/openssl"
cat $testsrc >$test;
diff -ur --new-file openssl-0.9.7e/test/testfipsssl
openssl-0.9.7e.mtm/test/testfipsssl
--- openssl-0.9.7e/test/testfipsssl 2004-05-11 05:46:15.000000000 -0700
+++ openssl-0.9.7e.mtm/test/testfipsssl 2005-02-04 11:25:20.000000000 -0800
@@ -13,9 +13,9 @@
ciphers="DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:EXP1024-DHE-DSS-DES-CBC-SHA:EXP1024-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA"
-ssltest="./ssltest -F -key $key -cert $cert -c_key $key -c_cert $cert -cipher
$ciphers"
+ssltest="../util/shlib_wrap.sh ./ssltest -F -key $key -cert $cert -c_key $key
-c_cert $cert -cipher $ciphers"
-if ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key'
>/dev/null; then
+if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep
'DSA Public Key' >/dev/null; then
dsa_cert=YES
else
dsa_cert=NO
@@ -89,24 +89,24 @@
#############################################################################
-if ../apps/openssl no-dh; then
+if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping anonymous DH tests
else
echo test tls1 with 1024bit anonymous DH, multiple handshakes
$ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra
|| exit 1
fi
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping RSA tests
else
echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f
-time $extra || exit 1
- if ../apps/openssl no-dh; then
+ if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping RSA+DHE tests
else
echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
- ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10
-f -time $extra || exit 1
+ ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert
../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
fi
fi
diff -ur --new-file openssl-0.9.7e/test/testgen openssl-0.9.7e.mtm/test/testgen
--- openssl-0.9.7e/test/testgen 2003-01-10 02:55:01.000000000 -0800
+++ openssl-0.9.7e.mtm/test/testgen 2005-02-03 16:38:24.000000000 -0800
@@ -17,7 +17,7 @@
echo "string to make the random number generator think it has entropy" >>
./.rnd
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
req_new='-newkey dsa:../apps/dsa512.pem'
else
req_new='-new'
@@ -29,13 +29,13 @@
rm -f testkey.pem testreq.pem
-../apps/openssl req -config test.cnf $req_new -out testreq.pem
+../util/shlib_wrap.sh ../apps/openssl req -config test.cnf $req_new -out
testreq.pem
if [ $? != 0 ]; then
echo problems creating request
exit 1
fi
-../apps/openssl req -config test.cnf -verify -in testreq.pem -noout
+../util/shlib_wrap.sh ../apps/openssl req -config test.cnf -verify -in
testreq.pem -noout
if [ $? != 0 ]; then
echo signature on req is wrong
exit 1
diff -ur --new-file openssl-0.9.7e/test/testss openssl-0.9.7e.mtm/test/testss
--- openssl-0.9.7e/test/testss 2001-10-15 10:58:00.000000000 -0700
+++ openssl-0.9.7e.mtm/test/testss 2005-02-04 11:26:26.000000000 -0800
@@ -1,9 +1,9 @@
#!/bin/sh
digest='-md5'
-reqcmd="../apps/openssl req"
-x509cmd="../apps/openssl x509 $digest"
-verifycmd="../apps/openssl verify"
+reqcmd="../util/shlib_wrap.sh ../apps/openssl req"
+x509cmd="../util/shlib_wrap.sh ../apps/openssl x509 $digest"
+verifycmd="../util/shlib_wrap.sh ../apps/openssl verify"
dummycnf="../apps/openssl.cnf"
CAkey="keyCA.ss"
@@ -22,7 +22,7 @@
echo "string to make the random number generator think it has entropy" >>
./.rnd
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
req_new='-newkey dsa:../apps/dsa512.pem'
else
req_new='-new'
diff -ur --new-file openssl-0.9.7e/test/testssl openssl-0.9.7e.mtm/test/testssl
--- openssl-0.9.7e/test/testssl 2002-12-12 10:43:32.000000000 -0800
+++ openssl-0.9.7e.mtm/test/testssl 2005-02-03 16:40:59.000000000 -0800
@@ -10,9 +10,9 @@
else
cert="$2"
fi
-ssltest="./ssltest -key $key -cert $cert -c_key $key -c_cert $cert"
+ssltest="../util/shlib_wrap.sh ./ssltest -key $key -cert $cert -c_key $key
-c_cert $cert"
-if ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key'
>/dev/null; then
+if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep
'DSA Public Key' >/dev/null; then
dsa_cert=YES
else
dsa_cert=NO
@@ -121,24 +121,24 @@
#############################################################################
-if ../apps/openssl no-dh; then
+if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping anonymous DH tests
else
echo test tls1 with 1024bit anonymous DH, multiple handshakes
$ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra
|| exit 1
fi
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping RSA tests
else
echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
- ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f
-time $extra || exit 1
+ ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem
-no_dhe -num 10 -f -time $extra || exit 1
- if ../apps/openssl no-dh; then
+ if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
echo skipping RSA+DHE tests
else
echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
- ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10
-f -time $extra || exit 1
+ ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert
../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
fi
fi
diff -ur --new-file openssl-0.9.7e/test/tpkcs7 openssl-0.9.7e.mtm/test/tpkcs7
--- openssl-0.9.7e/test/tpkcs7 2002-06-13 13:40:34.000000000 -0700
+++ openssl-0.9.7e.mtm/test/tpkcs7 2005-02-03 16:41:18.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl pkcs7'
+cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/tpkcs7d openssl-0.9.7e.mtm/test/tpkcs7d
--- openssl-0.9.7e/test/tpkcs7d 2002-06-13 13:40:34.000000000 -0700
+++ openssl-0.9.7e.mtm/test/tpkcs7d 2005-02-03 16:41:46.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl pkcs7'
+cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/treq openssl-0.9.7e.mtm/test/treq
--- openssl-0.9.7e/test/treq 2002-06-13 13:40:35.000000000 -0700
+++ openssl-0.9.7e.mtm/test/treq 2005-02-03 16:42:09.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl req -config ../apps/openssl.cnf'
+cmd='../util/shlib_wrap.sh ../apps/openssl req -config ../apps/openssl.cnf'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/trsa openssl-0.9.7e.mtm/test/trsa
--- openssl-0.9.7e/test/trsa 2002-06-13 13:40:36.000000000 -0700
+++ openssl-0.9.7e.mtm/test/trsa 2005-02-03 16:42:36.000000000 -0800
@@ -7,12 +7,12 @@
fi
export PATH
-if ../apps/openssl no-rsa; then
+if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
echo skipping rsa conversion test
exit 0
fi
-cmd='../apps/openssl rsa'
+cmd='../util/shlib_wrap.sh ../apps/openssl rsa'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/tsid openssl-0.9.7e.mtm/test/tsid
--- openssl-0.9.7e/test/tsid 2002-06-13 13:40:36.000000000 -0700
+++ openssl-0.9.7e.mtm/test/tsid 2005-02-03 16:42:48.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl sess_id'
+cmd='../util/shlib_wrap.sh ../apps/openssl sess_id'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/test/tx509 openssl-0.9.7e.mtm/test/tx509
--- openssl-0.9.7e/test/tx509 2002-06-13 13:40:36.000000000 -0700
+++ openssl-0.9.7e.mtm/test/tx509 2005-02-03 16:43:05.000000000 -0800
@@ -7,7 +7,7 @@
fi
export PATH
-cmd='../apps/openssl x509'
+cmd='../util/shlib_wrap.sh ../apps/openssl x509'
if [ "$1"x != "x" ]; then
t=$1
diff -ur --new-file openssl-0.9.7e/util/opensslwrap.sh
openssl-0.9.7e.mtm/util/opensslwrap.sh
--- openssl-0.9.7e/util/opensslwrap.sh 1969-12-31 16:00:00.000000000 -0800
+++ openssl-0.9.7e.mtm/util/opensslwrap.sh 2005-02-03 16:45:41.000000000
-0800
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+HERE="`echo $0 | sed -e 's|[^/]*$||'`"
+OPENSSL="${HERE}../apps/openssl"
+
+if [ -x "${OPENSSL}.exe" ]; then
+ # The original reason for this script existence is to work around
+ # certain caveats in run-time linker behaviour. On Windows platforms
+ # adjusting $PATH used to be sufficient, but with introduction of
+ # SafeDllSearchMode in XP/2003 the only way to get it right in
+ # *all* possible situations is to copy newly built .DLLs to apps/
+ # and test/, which is now done elsewhere... The $PATH is adjusted
+ # for backward compatibility (and nostagical reasons:-).
+ if [ "$OSTYPE" != msdosdjgpp ]; then
+ PATH="${HERE}..:$PATH"; export PATH
+ fi
+ exec "${OPENSSL}.exe" "$@"
+elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then
+ exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@"
+else
+ exec "${OPENSSL}" "$@" # hope for the best...
+fi
diff -ur --new-file openssl-0.9.7e/util/shlib_wrap.sh
openssl-0.9.7e.mtm/util/shlib_wrap.sh
--- openssl-0.9.7e/util/shlib_wrap.sh 1969-12-31 16:00:00.000000000 -0800
+++ openssl-0.9.7e.mtm/util/shlib_wrap.sh 2005-02-03 16:45:34.000000000
-0800
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+[ $# -ne 0 ] || set -x # debug mode without arguments:-)
+
+THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.."
+[ -d "${THERE}" ] || exec "$@" # should never happen...
+
+# Alternative to this is to parse ${THERE}/Makefile...
+LIBCRYPTOSO="${THERE}/libcrypto.so"
+if [ -f "$LIBCRYPTOSO" ]; then
+ while [ -h "$LIBCRYPTOSO" ]; do
+ LIBCRYPTOSO="${THERE}/`ls -l "$LIBCRYPTOSO" | sed -e 's|.*\-> ||'`"
+ done
+ SOSUFFIX=`echo ${LIBCRYPTOSO} | sed -e 's|.*\.so||' 2>/dev/null`
+ LIBSSLSO="${THERE}/libssl.so${SOSUFFIX}"
+fi
+
+case "`(uname -s) 2>/dev/null`" in
+SunOS|IRIX*)
+ # SunOS and IRIX run-time linkers evaluate alternative
+ # variables depending on target ABI...
+ rld_var=LD_LIBRARY_PATH
+ case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in
+ *ELF\ 64*SPARC*)
+ [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64
+ ;;
+ *ELF\ N32*MIPS*)
+ [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH
+ _RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export
_RLDN32_LIST
+ ;;
+ *ELF\ 64*MIPS*)
+ [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH
+ _RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST
+ ;;
+ esac
+ eval $rld_var=\"${THERE}:'$'$rld_var\"; export $rld_var
+ unset rld_var
+ ;;
+*) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX
+ DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH" # MacOS X
+ SHLIB_PATH="${THERE}:$SHLIB_PATH" # legacy HP-UX
+ LIBPATH="${THERE}:$LIBPATH" # AIX, OS/2
+ export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
+ # Even though $PATH is adjusted [for Windows sake], it doesn't
+ # necessarily does the trick. Trouble is that with introduction
+ # of SafeDllSearchMode in XP/2003 it's more appropriate to copy
+ # .DLLs in vicinity of executable, which is done elsewhere...
+ if [ "$OSTYPE" != msdosdjgpp ]; then
+ PATH="${THERE}:$PATH"; export PATH
+ fi
+ ;;
+esac
+
+if [ -f "$LIBCRYPTOSO" ]; then
+ # Following three lines are major excuse for isolating them into
+ # this wrapper script. Original reason for setting LD_PRELOAD
+ # was to make it possible to pass 'make test' when user linked
+ # with -rpath pointing to previous version installation. Wrapping
+ # it into a script makes it possible to do so on multi-ABI
+ # platforms.
+ LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" # SunOS, Linux, ELF HP-UX
+ _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX
+ export LD_PRELOAD _RLD_LIST
+fi
+
+exec "$@"