Use dynamic engine for libssl test harness
authorRichard Levitte <levitte@openssl.org>
Mon, 10 Aug 2015 09:46:27 +0000 (10:46 +0100)
committerMatt Caswell <matt@openssl.org>
Tue, 11 Aug 2015 19:27:46 +0000 (20:27 +0100)
Use a dynamic engine for ossltest engine so that we can build it without
subsequently deploying it during install. We do not want people accidentally
using this engine.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
engines/Makefile
engines/e_ossltest.c
test/Makefile
util/TLSProxy/Proxy.pm

index c0b7c034933032d193b2b4249799a50915a0a400..8b9e38b1e9a46bbe56067c61562bc278ad92819c 100644 (file)
@@ -31,20 +31,21 @@ AFLAGS= $(ASFLAGS)
 GENERAL=Makefile engines.com install.com engine_vector.mar
 
 LIB=$(TOP)/libcrypto.a
 GENERAL=Makefile engines.com install.com engine_vector.mar
 
 LIB=$(TOP)/libcrypto.a
-LIBNAMES= 4758cca gmp padlock capi ossltest
-
+LIBNAMES= 4758cca gmp padlock capi
 LIBSRC=        e_4758cca.c \
        e_gmp.c \
        e_padlock.c \
 LIBSRC=        e_4758cca.c \
        e_gmp.c \
        e_padlock.c \
-       e_capi.c \
-       e_ossltest.c
+       e_capi.c
 LIBOBJ= e_4758cca.o \
        e_gmp.o \
        e_padlock.o \
        e_capi.o \
 LIBOBJ= e_4758cca.o \
        e_gmp.o \
        e_padlock.o \
        e_capi.o \
-       e_ossltest.o \
        $(ENGINES_ASM_OBJ)
 
        $(ENGINES_ASM_OBJ)
 
+TESTLIBNAMES= ossltest
+TESTLIBSRC= e_ossltest.c
+TESTLIBOBJ= e_ossltest.o
+
 SRC= $(LIBSRC)
 
 HEADER=        e_4758cca_err.c e_4758cca_err.h \
 SRC= $(LIBSRC)
 
 HEADER=        e_4758cca_err.c e_4758cca_err.h \
@@ -63,10 +64,10 @@ top:
 
 all:   lib subdirs
 
 
 all:   lib subdirs
 
-lib:   $(LIBOBJ)
+lib:   $(LIBOBJ) $(TESTLIBOBJ)
        @if [ -n "$(SHARED_LIBS)" ]; then \
                set -e; \
        @if [ -n "$(SHARED_LIBS)" ]; then \
                set -e; \
-               for l in $(LIBNAMES); do \
+               for l in $(LIBNAMES) $(TESTLIBNAMES); do \
                        $(MAKE) -f ../Makefile.shared -e \
                                LIBNAME=$$l LIBEXTRAS="e_$$l*.o" \
                                LIBDEPS='-L.. -lcrypto $(EX_LIBS)' \
                        $(MAKE) -f ../Makefile.shared -e \
                                LIBNAME=$$l LIBEXTRAS="e_$$l*.o" \
                                LIBDEPS='-L.. -lcrypto $(EX_LIBS)' \
@@ -145,7 +146,7 @@ depend: local_depend
        @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
        @[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
 local_depend:
        @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
        @[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
 local_depend:
-       @[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
+       @[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC) $(TESTLIBSRC)
 
 dclean:
        $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
 
 dclean:
        $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
index 689e5321ca5917f1de1e637508d0d74389f255b1..6e50a5fceaa57e3b2888b2e1cb3fe610f6435195 100644 (file)
@@ -257,7 +257,7 @@ static int bind_ossltest(ENGINE *e)
     return 1;
 }
 
     return 1;
 }
 
-#ifdef ENGINE_DYNAMIC_SUPPORT
+#ifndef OPENSSL_NO_DYNAMIC_ENGINE
 static int bind_helper(ENGINE *e, const char *id)
 {
     if (id && (strcmp(id, engine_ossltest_id) != 0))
 static int bind_helper(ENGINE *e, const char *id)
 {
     if (id && (strcmp(id, engine_ossltest_id) != 0))
@@ -269,7 +269,8 @@ static int bind_helper(ENGINE *e, const char *id)
 
 IMPLEMENT_DYNAMIC_CHECK_FN()
     IMPLEMENT_DYNAMIC_BIND_FN(bind_helper)
 
 IMPLEMENT_DYNAMIC_CHECK_FN()
     IMPLEMENT_DYNAMIC_BIND_FN(bind_helper)
-#else
+#endif
+
 static ENGINE *engine_ossltest(void)
 {
     ENGINE *ret = ENGINE_new();
 static ENGINE *engine_ossltest(void)
 {
     ENGINE *ret = ENGINE_new();
@@ -292,7 +293,6 @@ void ENGINE_load_ossltest(void)
     ENGINE_free(toadd);
     ERR_clear_error();
 }
     ENGINE_free(toadd);
     ERR_clear_error();
 }
-#endif
 
 
 static int ossltest_init(ENGINE *e)
 
 
 static int ossltest_init(ENGINE *e)
index 5cd024acb08df491ccae346a585a62c4f95a1b6b..31b379650ab68a1cac0d53475e9746c81be88283 100644 (file)
@@ -424,15 +424,18 @@ test_packet: $(PACKETTEST)$(EXE_EXT)
 #OPENSSL_ia32cap=... in ssl tests below ensures AES-NI is switched off (AES-NI does not go through the testmode engine)
 test_sslvertol: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
 #OPENSSL_ia32cap=... in ssl tests below ensures AES-NI is switched off (AES-NI does not go through the testmode engine)
 test_sslvertol: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
-       PERL5LIB=$$PERL5LIB:../util ../util/shlib_wrap.sh ./$(SSLVERTOLTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       [ -z "$(SHARED_LIBS)" ] || PERL5LIB=$$PERL5LIB:../util OPENSSL_ENGINES=../engines ../util/shlib_wrap.sh ./$(SSLVERTOLTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       @[ -n "$(SHARED_LIBS)" ] || echo test_sslvertol can only be performed with OpenSSL configured shared
 
 test_sslextension: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
 
 test_sslextension: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
-       PERL5LIB=$$PERL5LIB:../util ../util/shlib_wrap.sh ./$(SSLEXTENSIONTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       [ -z "$(SHARED_LIBS)" ] || PERL5LIB=$$PERL5LIB:../util OPENSSL_ENGINES=../engines ../util/shlib_wrap.sh ./$(SSLEXTENSIONTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       @[ -n "$(SHARED_LIBS)" ] || echo test_sslextension can only be performed with OpenSSL configured shared
 
 test_sslskewith0p: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
 
 test_sslskewith0p: ../apps/openssl$(EXE_EXT)
        @echo $(START) $@
-       PERL5LIB=$$PERL5LIB:../util ../util/shlib_wrap.sh ./$(SSLSKEWITH0PTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       [ -z "$(SHARED_LIBS)" ] || PERL5LIB=$$PERL5LIB:../util OPENSSL_ENGINES=../engines ../util/shlib_wrap.sh ./$(SSLSKEWITH0PTEST) "OPENSSL_ia32cap='~0x200000200000000' ../apps/openssl$(EXE_EXT)" ../apps/server.pem
+       @[ -n "$(SHARED_LIBS)" ] || echo test_sslskewith0p can only be performed with OpenSSL configured shared
 
 update: local_depend
        @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
 
 update: local_depend
        @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
index 8c4f55db0861316f2877c2bccead7a19cce633f1..c033c29dd7da661d9329702b486968159fea021f 100644 (file)
@@ -130,7 +130,7 @@ sub start
         open(STDOUT, ">", File::Spec->devnull())
             or die "Failed to redirect stdout";
         open(STDERR, ">&STDOUT");
         open(STDOUT, ">", File::Spec->devnull())
             or die "Failed to redirect stdout";
         open(STDERR, ">&STDOUT");
-        my $execcmd = $self->execute." s_server -testmode -accept "
+        my $execcmd = $self->execute." s_server -engine ossltest -accept "
             .($self->server_port)
             ." -cert ".$self->cert." -naccept 1";
         if ($self->ciphers ne "") {
             .($self->server_port)
             ." -cert ".$self->cert." -naccept 1";
         if ($self->ciphers ne "") {
@@ -167,7 +167,7 @@ sub start
                 or die "Failed to redirect stdout";
             open(STDERR, ">&STDOUT");
             my $execcmd = $self->execute
                 or die "Failed to redirect stdout";
             open(STDERR, ">&STDOUT");
             my $execcmd = $self->execute
-                 ." s_client -testmode -connect "
+                 ." s_client -engine ossltest -connect "
                  .($self->proxy_addr).":".($self->proxy_port);
             if ($self->cipherc ne "") {
                 $execcmd .= " -cipher ".$self->cipherc;
                  .($self->proxy_addr).":".($self->proxy_port);
             if ($self->cipherc ne "") {
                 $execcmd .= " -cipher ".$self->cipherc;