From ac63f8879068b2758a4059b0b88ce12d846e618b Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 21 Mar 2001 18:18:58 +0000 Subject: [PATCH] Changes from the 0.9.6-stable branch. --- CHANGES | 24 +++- Configure | 109 +++++++++-------- Makefile.org | 166 ++++++++++++------------- STATUS | 19 ++- TABLE | 220 +++++++++++++++++++++++++++++----- apps/Makefile.ssl | 70 ++++++----- apps/s_client.c | 1 + apps/s_server.c | 1 + apps/speed.c | 2 +- config | 19 ++- crypto/crypto-lib.com | 2 +- crypto/dso/dso_dl.c | 11 +- crypto/err/err.c | 11 +- crypto/pkcs12/p12_key.c | 11 +- crypto/pkcs7/pk7_doit.c | 4 + crypto/rand/md_rand.c | 4 +- crypto/rand/rand.h | 4 +- crypto/rand/rand_egd.c | 7 ++ crypto/rand/randfile.c | 4 +- doc/apps/pkcs12.pod | 20 ++++ doc/crypto/RAND_load_file.pod | 2 +- doc/crypto/rand.pod | 12 +- ms/16all.bat | 2 + ms/32all.bat | 2 + util/clean-depend.pl | 4 +- util/libeay.num | 22 ++-- 26 files changed, 505 insertions(+), 248 deletions(-) diff --git a/CHANGES b/CHANGES index b2075c769e..b55c928cab 100644 --- a/CHANGES +++ b/CHANGES @@ -4,7 +4,14 @@ Changes between 0.9.6 and 0.9.6a [xx XXX 2001] - *) Fix a memory leak in err.c: free err_data string if necessary. + *) Fix bug in PKCS#12 key generation routines. This was triggered + if a 3DES key was generated with a 0 initial byte. Include + PKCS12_BROKEN_KEYGEN compilation option to retain the old + (but broken) behaviour. + [Steve Henson] + + *) Fix memory leaks in err.c: free err_data string if necessary; + don't write to the wrong index in ERR_set_error_data. [Bodo Moeller] *) Implement ssl23_peek (analogous to ssl23_read), which previously @@ -189,6 +196,21 @@ *) Fix typo in get_cert_by_subject() in by_dir.c [Jean-Marc Desperrier ] + *) Rework the system to generate shared libraries: + + - Make note of the expected extension for the shared libraries and + if there is a need for symbolic links from for example libcrypto.so.0 + to libcrypto.so.0.9.7. There is extended info in Configure for + that. + + - Make as few rebuilds of the shared libraries as possible. + + - Still avoid linking the OpenSSL programs with the shared libraries. + + - When installing, install the shared libraries separately from the + static ones. + [Richard Levitte] + *) Fix SSL_CTX_set_read_ahead macro to actually use its argument. Copy SSL_CTX's read_ahead flag to SSL object directly in SSL_new diff --git a/Configure b/Configure index f300b4a342..113989427f 100755 --- a/Configure +++ b/Configure @@ -136,32 +136,32 @@ my %table=( # surrounds it with #APP #NO_APP comment pair which (at least Solaris # 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic" # error message. -"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_sol_asm}:dlfcn:solaris-shared:-fPIC", +"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_sol_asm}:dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SPARC Solaris with GNU C setups -"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-fPIC", -"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC", -"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC", +"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8 # but keep the assembler modules. -"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC", +"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### -"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC", -"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC", +"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SPARC Solaris with Sun C setups # DO NOT use /xO[34] on sparc with SC3.0. It is broken, and will not pass the tests -"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC", +"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", # SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2. # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8 # SC5.0 note: Compiler common patch 107357-01 or later is required! -"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC", -"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC", -"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC", -"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:/usr/ccs/bin/ar rs", +"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs", #### -"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC", -"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC", +"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SPARC Linux setups "linux-sparcv7","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::", @@ -271,10 +271,10 @@ my %table=( # Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with # the new compiler # For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version -"alpha-gcc","gcc:-O3::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:asm/alpha.o:::::::::dlfcn:true64-shared", -"alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared", -"alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared", -"FreeBSD-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2:::", +"alpha-gcc","gcc:-O3::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:asm/alpha.o:::::::::dlfcn:true64-shared::.so", +"alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared::.so", +"alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared::.so", +"FreeBSD-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### Alpha Linux with GNU C and Compaq C setups # Special notes: @@ -289,8 +289,8 @@ my %table=( # # # -"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:::::::::dlfcn:linux-shared:-fPIC", -"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:::::::::dlfcn:linux-shared:-fPIC", +"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o:::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::", @@ -299,7 +299,7 @@ my %table=( # The intel boxes :-), It would be worth seeing if bsdi-gcc can use the # bn86-elf.o file file since it is hand tweaked assembler. -"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC", +"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT:-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", @@ -308,13 +308,13 @@ my %table=( "linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::", "linux-s390", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::", "linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown)::SIXTY_FOUR_BIT_LONG::", -"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::", -"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::", -"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:", -"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", +"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", "bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::(unknown)::RSA_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_bsdi_asm}", -"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", +"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "nextstep", "cc:-O -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", "nextstep3.3", "cc:-O3 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # NCR MP-RAS UNIX ver 02.03.01 @@ -324,11 +324,16 @@ my %table=( "qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown)::${x86_gcc_des} ${x86_gcc_opts}:", # Linux on ARM -"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC", +"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -# UnixWare 2.0 -"unixware-2.0","cc:-O -DFILIO_H::(unknown):-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:::", -"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread::(unknown):-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::", +# UnixWare 2.0x fails destest with -O +"unixware-2.0","cc:-DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} ${x86_gcc_opts}:::", +"unixware-2.0-pentium","cc:-DFILIO_H -Kpentium:-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::", + +# UnixWare 2.1 +"unixware-2.1","cc:-O -DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} ${x86_gcc_opts}:::", +"unixware-2.1-pentium","cc:-O -DFILIO_H -Kpentium::-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::", +"unixware-2.1-p6","cc:-O -DFILIO_H -Kp6::-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::", # UnixWare 7 "unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::", @@ -336,6 +341,8 @@ my %table=( # IBM's AIX. "aix-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR:::", "aix-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR:::", +"aix43-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:", +"aix43-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:", # # Cray T90 (SDSC) @@ -365,9 +372,13 @@ my %table=( "dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::", "dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown):-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", +# SCO 3 - Tim Rice +"sco3-gcc", "gcc:-O3 -fomit-frame-pointer -Dssize_t=int -DNO_SYS_UN_H::(unknown)::-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ... + # SCO 5 - Ben Laurie says the -O breaks the # SCO cc. "sco5-cc", "cc:::(unknown):-lsocket:${x86_gcc_des} ${x86_gcc_opts}:::", # des options? +"sco5-cc-pentium", "cc:-Kpentium::(unknown):-lsocket:${x86_gcc_des} ${x86_gcc_opts}:::", # des options? "sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ... # Sinix/ReliantUNIX RM400 @@ -407,10 +418,10 @@ my %table=( ##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown)::::::", # Some OpenBSD from Bob Beck -"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:::", -"OpenBSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn", -"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL:::", -"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::", +"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"OpenBSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ##### MacOS X (a.k.a. Rhapsody) setup "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::", @@ -654,8 +665,8 @@ $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /^\//; print "IsWindows=$IsWindows\n"; (my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj, - $md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag, my $ranlib)= - split(/\s*:\s*/,$table{$target} . ":" x 22 , -1); + $md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,my $shared_extension,my $ranlib)= + split(/\s*:\s*/,$table{$target} . ":" x 30 , -1); $cflags="$flags$cflags" if ($flags ne ""); # The DSO code currently always implements all functions so that no @@ -730,15 +741,16 @@ if ($threads) } # You will find shlib_mark1 and shlib_mark2 explained in Makefile.org -my $shared_mark1 = ""; -my $shared_mark2 = ""; -if ($shared_cflag ne "") +my $shared_mark = ""; +if ($shared_target ne "") { - $cflags = "$shared_cflag $cflags"; + if ($shared_cflag ne "") + { + $cflags = "$shared_cflag $cflags"; + } if (!$no_shared) { - $shared_mark1 = ".shlib-clean."; - $shared_mark2 = ".shlib."; + #$shared_mark = "\$(SHARED_LIBS)"; } } else @@ -831,6 +843,7 @@ while () s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/; s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/; s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/; + s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/; s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/; s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/; s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/; @@ -854,9 +867,9 @@ while () s/^RANLIB=.*/RANLIB= $ranlib/; s/^PERL=.*/PERL= $perl/; s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/; - s/^SHLIB_MARK1=.*/SHLIB_MARK1=$shared_mark1/; - s/^SHLIB_MARK2=.*/SHLIB_MARK2=$shared_mark2/; - s/^LIBS=.*/LIBS=libcrypto\.so\* libssl\.so\*/ if (!$no_shared); + s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/; + s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared); + s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.so.\$(SHLIB_MAJOR) .so/ if ($shared_extension ne "" && $shared_extension !~ /^\.s[ol]$/); print OUT $_."\n"; } close(IN); @@ -1143,8 +1156,9 @@ sub print_table_entry (my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops, my $bn_obj,my $des_obj,my $bf_obj, my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj, - my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,my $ranlib)= - split(/\s*:\s*/,$table{$target} . ":" x 22 , -1); + my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag, + my $shared_extension,my $ranlib)= + split(/\s*:\s*/,$table{$target} . ":" x 30 , -1); print < /dev/null 2>&1 && \ + [ -n "$(SHARED_LIBS)" ]; then \ $(MAKE) $(SHARED_LIBS); \ fi -libcrypto.so: libcrypto.a +libcrypto$(SHLIB_EXT): libcrypto.a @if [ "$(SHLIB_TARGET)" != "" ]; then \ - $(MAKE) SHLIBDIRS=crypto $(SHLIB_TARGET); \ + $(MAKE) SHLIBDIRS=crypto build-shared; \ else \ echo "There's no support for shared libraries on this platform" >&2; \ fi -libssl.so: libcrypto.so libssl.a +libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a @if [ "$(SHLIB_TARGET)" != "" ]; then \ - $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \ + $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ else \ echo "There's no support for shared libraries on this platform" >&2; \ fi clean-shared: - for i in ${SHLIBDIRS}; do \ - rm -f lib$$i.so \ - lib$$i.so.${SHLIB_MAJOR} \ - lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ + @for i in $(SHLIBDIRS); do \ + if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ + tmp="$(SHARED_LIBS_LINK_EXTS)"; \ + for j in $${tmp:-x}; do \ + ( set -x; rm -f lib$$i$$j ); \ + done; \ + fi; \ + ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \ done -linux-shared: - libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ - rm -f lib$$i.so \ - lib$$i.so.${SHLIB_MAJOR} \ - lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ +link-shared: + @for i in $(SHLIBDIRS); do \ + prev=lib$$i$(SHLIB_EXT); \ + if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \ + tmp="$(SHARED_LIBS_LINK_EXTS)"; \ + for j in $${tmp:-x}; do \ + ( set -x; ln -s -f $$prev lib$$i$$j ); \ + prev=lib$$i$$j; \ + done; \ + fi; \ + done + +build-shared: clean-shared do_$(SHLIB_TARGET) link-shared + +do_bsd-gcc-shared: linux-shared +do_linux-shared: + libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ ( set -x; ${CC} -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ -Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR} \ -Wl,--whole-archive lib$$i.a \ -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \ - libs="$$libs -L. -l$$i"; \ - ( set -x; \ - ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ - lib$$i.so.${SHLIB_MAJOR}; \ - ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so ); \ + libs="$$libs -l$$i"; \ done # This assumes that GNU utilities are *not* used -true64-shared: - libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ +do_true64-shared: + libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ ( set -x; ${CC} -shared -no_archive -o lib$$i.so \ -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \ - libs="$$libs -L. -l$$i"; \ + libs="$$libs -l$$i"; \ done # This assumes that GNU utilities are *not* used -solaris-shared: - libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ - rm -f lib$$i.so \ - lib$$i.so.${SHLIB_MAJOR} \ - lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ +do_solaris-shared: + libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \ ( set -x; ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ -h lib$$i.so.${SHLIB_MAJOR} \ -z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \ - libs="$$libs -L. -l$$i"; \ - ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ - lib$$i.so.${SHLIB_MAJOR}; \ - ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so; \ + libs="$$libs -l$$i"; \ done Makefile.ssl: Makefile.org @@ -306,7 +290,7 @@ clean: rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making clean in $$i..." && \ $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \ rm -f $(LIBS); \ @@ -327,7 +311,7 @@ files: $(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making 'files' in $$i..." && \ $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \ fi; \ @@ -338,7 +322,7 @@ links: @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) @for i in $(DIRS); do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making links in $$i..." && \ $(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}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' links ) || exit 1; \ fi; \ @@ -348,7 +332,7 @@ dclean: rm -f *.bak @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making dclean in $$i..." && \ $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \ fi; \ @@ -372,7 +356,7 @@ report: depend: @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making dependencies $$i..." && \ $(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \ fi; \ @@ -381,7 +365,7 @@ depend: lint: @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making lint $$i..." && \ $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \ fi; \ @@ -390,7 +374,7 @@ lint: tags: @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i && echo "making tags $$i..." && \ $(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \ fi; \ @@ -452,7 +436,7 @@ install: all install_docs done; @for i in $(DIRS) ;\ do \ - if echo "$$i" | grep -v '^\.'; then \ + if [ -d "$$i" ]; then \ (cd $$i; echo "installing $$i..."; \ $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' install ); \ fi; \ @@ -462,11 +446,24 @@ install: all install_docs if [ -f "$$i" ]; then \ ( echo installing $$i; \ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ - (echo $$i | grep '\\.a$$' > /dev/null 2>&1) \ - && $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ + $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ fi \ done + @if [ -n "$(SHARED_LIBS)" ]; then \ + tmp="$(SHARED_LIBS)"; \ + for i in $${tmp:-x}; \ + do \ + if [ -f "$$i" ]; then \ + ( echo installing $$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ + fi \ + done; \ + ( here="`pwd`"; \ + cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ + make -f $$here/Makefile link-shared ); \ + fi install_docs: @$(PERL) $(TOP)/util/mkdir-p.pl \ @@ -493,11 +490,4 @@ install_docs: > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \ done -shlib: all - if [ ! -d shlib_dir ] ; then mkdir shlib_dir ; else rm -f shlib_dir/* ; fi - cd shlib_dir ; ar -x ../libcrypto.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libcrypto.so.0.9 \ - -o ./libcrypto.so.0.9.4 && rm *.o - cd shlib_dir ; ar -x ../libssl.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libssl.so.0.9 \ - -o ./libssl.so.0.9.4 && rm *.o - # DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/STATUS b/STATUS index 182f179460..e5c17a95f3 100644 --- a/STATUS +++ b/STATUS @@ -1,6 +1,6 @@ OpenSSL STATUS Last modified at - ______________ $Date: 2001/03/14 11:38:40 $ + ______________ $Date: 2001/03/21 18:18:51 $ DEVELOPMENT STATE @@ -10,21 +10,32 @@ HP-UX 10.20 (hpux-parisc-gcc) - PASSED [normal+engine] HP-UX 11.00 32bit (hpux-parisc-gcc) - FAILED [engine] "openssl speed rsa1024 -engine cswift" fails unless - libswift.sl is in $CWD, even if $SHLIB_PATH is defined. + libswift.sl is renamed to libswift.so. + [CORRECTED] + HP MPE/iX - PASSED [presumed normal] Linux 2.2.17 SMP (linux-elf) - PASSED [normal+engine] Windows (VC-WIN32) - FAILED [presumed normal] Missing line in ms/32all.bat: perl util\mkfiles.pl >MINFO [CORRECTED] In randfile.c, line 214, signed and unsigned int are mixed. + [CORRECTED] In s_client.c and s_server.c, RAND_status() needs to get - declared (#include ) + declared (#include ) + [CORRECTED] OpenVMS (any version) - FAILED [normal+engine] - Missing istructions in building script. + Missing instructions in building script. + [CORRECTED] AIX 4.3 - FAILED [engine] Needs -DDSO_DLFCN and -DHAVE_DLFCN_H to work. + [CORRECTED] (but will not be automagically configured) Irix 6.5.11 - FAILED [presumed normal] BN_sqr test fails. + solaris64-sparcv9-cc (SunOS 5.8) - PASSED [normal+engine] + BSDI 4.0.1 (bsdi-elf-gcc) - FAILED [engine] + Needs -DDSO_DLFCN, -DHAVE_DLFCN_H and -ldl to work. + [CORRECTED] + mingw32 w/ gcc 2.95.2 - PASSED [presumed normal] o OpenSSL 0.9.6: Released on September 24th, 2000 o OpenSSL 0.9.5a: Released on April 1st, 2000 o OpenSSL 0.9.5: Released on February 28th, 2000 diff --git a/TABLE b/TABLE index 051730760f..d57245cdb0 100644 --- a/TABLE +++ b/TABLE @@ -19,6 +19,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** BC-32 @@ -40,6 +41,7 @@ $rc5_obj = $dso_scheme = win32 $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** BS2000-OSD @@ -61,6 +63,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** CygWin32 @@ -82,6 +85,7 @@ $rc5_obj = $dso_scheme = win32 $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** FreeBSD @@ -103,6 +107,7 @@ $rc5_obj = asm/r586-out.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** FreeBSD-alpha @@ -121,9 +126,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** FreeBSD-elf @@ -142,9 +148,10 @@ $cast_obj = asm/cx86-elf.o $rc4_obj = asm/rx86-elf.o $rmd160_obj = asm/rm86-elf.o $rc5_obj = asm/r586-elf.o -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** MPE/iX-gcc @@ -166,6 +173,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** Mingw32 @@ -187,6 +195,7 @@ $rc5_obj = $dso_scheme = win32 $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** NetBSD-m68 @@ -205,9 +214,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** NetBSD-sparc @@ -226,9 +236,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** NetBSD-x86 @@ -247,9 +258,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** OpenBSD @@ -268,9 +280,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** OpenBSD-alpha @@ -289,9 +302,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** OpenBSD-mips @@ -310,9 +324,10 @@ $cast_obj = $rc4_obj = $rmd160_obj = $rc5_obj = -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** OpenBSD-x86 @@ -332,8 +347,9 @@ $rc4_obj = asm/rx86-out.o $rmd160_obj = asm/rm86-out.o $rc5_obj = asm/r586-out.o $dso_scheme = dlfcn -$shared_target= -$shared_cflag = +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** ReliantUNIX @@ -355,6 +371,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** SINIX @@ -376,6 +393,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** SINIX-N @@ -397,6 +415,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-MSDOS @@ -418,6 +437,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-NT @@ -439,6 +459,7 @@ $rc5_obj = $dso_scheme = win32 $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-W31-16 @@ -460,6 +481,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-W31-32 @@ -481,6 +503,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-WIN16 @@ -502,6 +525,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** VC-WIN32 @@ -523,6 +547,7 @@ $rc5_obj = $dso_scheme = win32 $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** aix-cc @@ -544,6 +569,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** aix-gcc @@ -565,6 +591,51 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = +$ranlib = + +*** aix43-cc +$cc = cc +$cflags = -O -DAIX -DB_ENDIAN -qmaxmem=16384 +$unistd = +$thread_cflag = (unknown) +$lflags = +$bn_ops = BN_LLONG RC4_CHAR +$bn_obj = +$des_obj = +$bf_obj = +$md5_obj = +$sha1_obj = +$cast_obj = +$rc4_obj = +$rmd160_obj = +$rc5_obj = +$dso_scheme = dlfcn +$shared_target= +$shared_cflag = +$shared_extension = +$ranlib = + +*** aix43-gcc +$cc = gcc +$cflags = -O3 -DAIX -DB_ENDIAN +$unistd = +$thread_cflag = (unknown) +$lflags = +$bn_ops = BN_LLONG RC4_CHAR +$bn_obj = +$des_obj = +$bf_obj = +$md5_obj = +$sha1_obj = +$cast_obj = +$rc4_obj = +$rmd160_obj = +$rc5_obj = +$dso_scheme = dlfcn +$shared_target= +$shared_cflag = +$shared_extension = $ranlib = *** alpha-cc @@ -586,6 +657,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= true64-shared $shared_cflag = +$shared_extension = .so $ranlib = *** alpha-gcc @@ -607,6 +679,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= true64-shared $shared_cflag = +$shared_extension = .so $ranlib = *** alpha164-cc @@ -628,6 +701,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= true64-shared $shared_cflag = +$shared_extension = .so $ranlib = *** bsdi-elf-gcc @@ -635,7 +709,7 @@ $cc = gcc $cflags = -DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall $unistd = $thread_cflag = (unknown) -$lflags = +$lflags = -ldl $bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT $bn_obj = asm/bn86-elf.o asm/co86-elf.o $des_obj = asm/dx86-elf.o asm/yx86-elf.o @@ -646,9 +720,10 @@ $cast_obj = asm/cx86-elf.o $rc4_obj = asm/rx86-elf.o $rmd160_obj = asm/rm86-elf.o $rc5_obj = asm/r586-elf.o -$dso_scheme = -$shared_target= -$shared_cflag = +$dso_scheme = dlfcn +$shared_target= bsd-gcc-shared +$shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** bsdi-gcc @@ -670,6 +745,7 @@ $rc5_obj = asm/r586bsdi.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** cc @@ -691,6 +767,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** cray-t3e @@ -712,6 +789,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** cray-t90-cc @@ -733,6 +811,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug @@ -754,6 +833,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-ben @@ -775,6 +855,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-ben-debug @@ -796,6 +877,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-ben-strict @@ -817,6 +899,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-bodo @@ -838,6 +921,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-levitte-linux-elf @@ -859,6 +943,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-linux-elf @@ -880,6 +965,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = dlfcn $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-linux-elf-noefence @@ -901,6 +987,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = dlfcn $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-rse @@ -922,6 +1009,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-solaris-sparcv8-cc @@ -943,6 +1031,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** debug-solaris-sparcv8-gcc @@ -964,6 +1053,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** debug-solaris-sparcv9-cc @@ -985,6 +1075,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** debug-solaris-sparcv9-gcc @@ -1006,6 +1097,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** debug-steve @@ -1027,6 +1119,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** debug-ulf @@ -1048,6 +1141,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** dgux-R3-gcc @@ -1069,6 +1163,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** dgux-R4-gcc @@ -1090,6 +1185,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** dgux-R4-x86-gcc @@ -1111,6 +1207,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** dist @@ -1132,6 +1229,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** gcc @@ -1153,6 +1251,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-brokencc @@ -1174,6 +1273,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-brokengcc @@ -1195,6 +1295,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-cc @@ -1216,6 +1317,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-gcc @@ -1237,6 +1339,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-parisc-cc @@ -1258,6 +1361,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-parisc-cc-o4 @@ -1279,6 +1383,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-parisc-gcc @@ -1300,6 +1405,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-parisc1_1-cc @@ -1321,6 +1427,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux-parisc2-cc @@ -1342,6 +1449,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux10-brokencc @@ -1363,6 +1471,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux10-brokengcc @@ -1384,6 +1493,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux10-cc @@ -1405,6 +1515,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux10-gcc @@ -1426,6 +1537,7 @@ $rc5_obj = $dso_scheme = dl $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux64-parisc-cc @@ -1447,6 +1559,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** hpux64-parisc2-cc @@ -1468,6 +1581,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix-cc @@ -1489,6 +1603,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix-gcc @@ -1510,6 +1625,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix-mips3-cc @@ -1531,6 +1647,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix-mips3-gcc @@ -1552,6 +1669,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix64-mips4-cc @@ -1573,6 +1691,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** irix64-mips4-gcc @@ -1594,6 +1713,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-alpha+bwx-ccc @@ -1615,6 +1735,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-alpha+bwx-gcc @@ -1636,6 +1757,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** linux-alpha-ccc @@ -1657,6 +1779,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-alpha-gcc @@ -1678,6 +1801,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** linux-aout @@ -1699,6 +1823,7 @@ $rc5_obj = asm/r586-out.o $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-elf @@ -1720,6 +1845,7 @@ $rc5_obj = asm/r586-elf.o $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** linux-elf-arm @@ -1741,6 +1867,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= linux-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** linux-ia64 @@ -1762,6 +1889,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-m68k @@ -1783,6 +1911,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-mips @@ -1804,6 +1933,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-ppc @@ -1825,6 +1955,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-s390 @@ -1846,6 +1977,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-sparcv7 @@ -1867,6 +1999,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-sparcv8 @@ -1888,6 +2021,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** linux-sparcv9 @@ -1909,6 +2043,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** ncr-scde @@ -1930,6 +2065,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** newsos4-gcc @@ -1951,6 +2087,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** nextstep @@ -1972,6 +2109,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** nextstep3.3 @@ -1993,6 +2131,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** purify @@ -2014,6 +2153,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** qnx4 @@ -2035,6 +2175,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** rhapsody-ppc-cc @@ -2056,6 +2197,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** sco5-cc @@ -2077,6 +2219,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** sco5-gcc @@ -2098,6 +2241,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** solaris-sparc-sc3 @@ -2119,6 +2263,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv7-cc @@ -2140,6 +2285,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv7-gcc @@ -2161,6 +2307,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv8-cc @@ -2182,6 +2329,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv8-gcc @@ -2203,6 +2351,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv9-cc @@ -2224,6 +2373,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv9-gcc @@ -2245,6 +2395,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-sparcv9-gcc27 @@ -2266,6 +2417,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris-x86-gcc @@ -2287,6 +2439,7 @@ $rc5_obj = asm/r586-sol.o $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -fPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = *** solaris64-sparcv9-cc @@ -2308,6 +2461,7 @@ $rc5_obj = $dso_scheme = dlfcn $shared_target= solaris-shared $shared_cflag = -KPIC +$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR) $ranlib = /usr/ccs/bin/ar rs *** sunos-gcc @@ -2329,6 +2483,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** ultrix-cc @@ -2350,6 +2505,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** ultrix-gcc @@ -2371,6 +2527,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** unixware-2.0 @@ -2392,6 +2549,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** unixware-2.0-pentium @@ -2413,6 +2571,7 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = *** unixware-7 @@ -2434,4 +2593,5 @@ $rc5_obj = $dso_scheme = $shared_target= $shared_cflag = +$shared_extension = $ranlib = diff --git a/apps/Makefile.ssl b/apps/Makefile.ssl index bc703ffd2b..91b5f1f4f2 100644 --- a/apps/Makefile.ssl +++ b/apps/Makefile.ssl @@ -723,24 +723,23 @@ s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h s_client.o: ../include/openssl/crypto.h ../include/openssl/des.h s_client.o: ../include/openssl/dh.h ../include/openssl/dsa.h s_client.o: ../include/openssl/e_os.h ../include/openssl/e_os.h -s_client.o: ../include/openssl/e_os2.h ../include/openssl/engine.h -s_client.o: ../include/openssl/err.h ../include/openssl/evp.h -s_client.o: ../include/openssl/idea.h ../include/openssl/lhash.h -s_client.o: ../include/openssl/md2.h ../include/openssl/md4.h -s_client.o: ../include/openssl/md5.h ../include/openssl/mdc2.h -s_client.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h -s_client.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h -s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h -s_client.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h -s_client.o: ../include/openssl/rc2.h ../include/openssl/rc4.h -s_client.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h -s_client.o: ../include/openssl/rsa.h ../include/openssl/safestack.h -s_client.o: ../include/openssl/sha.h ../include/openssl/ssl.h -s_client.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h -s_client.o: ../include/openssl/ssl3.h ../include/openssl/stack.h -s_client.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h -s_client.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h -s_client.o: s_apps.h +s_client.o: ../include/openssl/e_os2.h ../include/openssl/err.h +s_client.o: ../include/openssl/evp.h ../include/openssl/idea.h +s_client.o: ../include/openssl/lhash.h ../include/openssl/md2.h +s_client.o: ../include/openssl/md4.h ../include/openssl/md5.h +s_client.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h +s_client.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h +s_client.o: ../include/openssl/opensslv.h ../include/openssl/pem.h +s_client.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h +s_client.o: ../include/openssl/rand.h ../include/openssl/rc2.h +s_client.o: ../include/openssl/rc4.h ../include/openssl/rc5.h +s_client.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h +s_client.o: ../include/openssl/safestack.h ../include/openssl/sha.h +s_client.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h +s_client.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h +s_client.o: ../include/openssl/stack.h ../include/openssl/symhacks.h +s_client.o: ../include/openssl/tls1.h ../include/openssl/x509.h +s_client.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_server.o: ../include/openssl/asn1.h ../include/openssl/bio.h s_server.o: ../include/openssl/blowfish.h ../include/openssl/bn.h s_server.o: ../include/openssl/buffer.h ../include/openssl/cast.h @@ -748,24 +747,23 @@ s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h s_server.o: ../include/openssl/crypto.h ../include/openssl/des.h s_server.o: ../include/openssl/dh.h ../include/openssl/dsa.h s_server.o: ../include/openssl/e_os.h ../include/openssl/e_os.h -s_server.o: ../include/openssl/e_os2.h ../include/openssl/engine.h -s_server.o: ../include/openssl/err.h ../include/openssl/evp.h -s_server.o: ../include/openssl/idea.h ../include/openssl/lhash.h -s_server.o: ../include/openssl/md2.h ../include/openssl/md4.h -s_server.o: ../include/openssl/md5.h ../include/openssl/mdc2.h -s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h -s_server.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h -s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h -s_server.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h -s_server.o: ../include/openssl/rc2.h ../include/openssl/rc4.h -s_server.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h -s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h -s_server.o: ../include/openssl/sha.h ../include/openssl/ssl.h -s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h -s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h -s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h -s_server.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h -s_server.o: s_apps.h +s_server.o: ../include/openssl/e_os2.h ../include/openssl/err.h +s_server.o: ../include/openssl/evp.h ../include/openssl/idea.h +s_server.o: ../include/openssl/lhash.h ../include/openssl/md2.h +s_server.o: ../include/openssl/md4.h ../include/openssl/md5.h +s_server.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h +s_server.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h +s_server.o: ../include/openssl/opensslv.h ../include/openssl/pem.h +s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h +s_server.o: ../include/openssl/rand.h ../include/openssl/rc2.h +s_server.o: ../include/openssl/rc4.h ../include/openssl/rc5.h +s_server.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h +s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h +s_server.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h +s_server.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h +s_server.o: ../include/openssl/stack.h ../include/openssl/symhacks.h +s_server.o: ../include/openssl/tls1.h ../include/openssl/x509.h +s_server.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_socket.o: ../include/openssl/asn1.h ../include/openssl/bio.h s_socket.o: ../include/openssl/blowfish.h ../include/openssl/bn.h s_socket.o: ../include/openssl/buffer.h ../include/openssl/cast.h diff --git a/apps/s_client.c b/apps/s_client.c index e1f48444d5..0e1a61b789 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -79,6 +79,7 @@ typedef unsigned int u_int; #include #include #include +#include #include #include "s_apps.h" diff --git a/apps/s_server.c b/apps/s_server.c index 314ff4c79e..e545e4d225 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -83,6 +83,7 @@ typedef unsigned int u_int; #include #include #include +#include #include #include "s_apps.h" diff --git a/apps/speed.c b/apps/speed.c index ba41916371..f05cd8a38c 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -1207,7 +1207,7 @@ int MAIN(int argc, char **argv) { BIO_printf(bio_err,"RSA verify failure. No RSA verify will be done.\n"); ERR_print_errors(bio_err); - dsa_doit[j] = 0; + rsa_doit[j] = 0; } else { diff --git a/config b/config index 346ad35048..77e8421cb8 100755 --- a/config +++ b/config @@ -49,10 +49,18 @@ if [ "x$XREL" != "x" ]; then echo "whatever-whatever-sco5"; exit 0 ;; 4.2MP) - if [ "x$VERSION" = "x2.1.1" ]; then + if [ "x$VERSION" = "x2.01" ]; then + echo "${MACHINE}-whatever-unixware201"; exit 0 + elif [ "x$VERSION" = "x2.02" ]; then + echo "${MACHINE}-whatever-unixware202"; exit 0 + elif [ "x$VERSION" = "x2.03" ]; then + echo "${MACHINE}-whatever-unixware203"; exit 0 + elif [ "x$VERSION" = "x2.1.1" ]; then echo "${MACHINE}-whatever-unixware211"; exit 0 elif [ "x$VERSION" = "x2.1.2" ]; then echo "${MACHINE}-whatever-unixware212"; exit 0 + elif [ "x$VERSION" = "x2.1.3" ]; then + echo "${MACHINE}-whatever-unixware213"; exit 0 else echo "${MACHINE}-whatever-unixware2"; exit 0 fi @@ -473,9 +481,12 @@ case "$GUESSOS" in *-*-unixware7) OUT="unixware-7" ;; *-*-UnixWare7) OUT="unixware-7" ;; *-*-Unixware7) OUT="unixware-7" ;; - *-*-unixware[1-2]*) OUT="unixware-2.0" ;; - *-*-UnixWare[1-2]*) OUT="unixware-2.0" ;; - *-*-Unixware[1-2]*) OUT="unixware-2.0" ;; + *-*-unixware20*) OUT="unixware-2.0" ;; + *-*-unixware21*) OUT="unixware-2.1" ;; + *-*-UnixWare20*) OUT="unixware-2.0" ;; + *-*-UnixWare21*) OUT="unixware-2.1" ;; + *-*-Unixware20*) OUT="unixware-2.0" ;; + *-*-Unixware21*) OUT="unixware-2.1" ;; BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; RM*-siemens-sysv4) OUT="ReliantUNIX" ;; *-siemens-sysv4) OUT="SINIX" ;; diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com index 21d56a4b50..482a136177 100644 --- a/crypto/crypto-lib.com +++ b/crypto/crypto-lib.com @@ -174,7 +174,7 @@ $! $ APPS_DES = "DES/DES,CBC3_ENC" $ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE" $ -$ LIB_ = "cryptlib,mem,mem_dbg,cversion,ex_data,tmdiff,cpt_err" +$ LIB_ = "cryptlib,mem,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid" $ LIB_MD2 = "md2_dgst,md2_one" $ LIB_MD4 = "md4_dgst,md4_one" $ LIB_MD5 = "md5_dgst,md5_one" diff --git a/crypto/dso/dso_dl.c b/crypto/dso/dso_dl.c index f661ec5bfb..1a898c5407 100644 --- a/crypto/dso/dso_dl.c +++ b/crypto/dso/dso_dl.c @@ -111,6 +111,11 @@ DSO_METHOD *DSO_METHOD_dl(void) * type so the cast is safe. */ +#if defined(__hpux) +static const char extension[] = ".sl"; +#else +static const char extension[] = ".so"; +#endif static int dl_load(DSO *dso, const char *filename) { shl_t ptr; @@ -118,12 +123,12 @@ static int dl_load(DSO *dso, const char *filename) int len; /* The same comment as in dlfcn_load applies here. bleurgh. */ - len = strlen(filename); + len = strlen(filename) + len(extension); if((dso->flags & DSO_FLAG_NAME_TRANSLATION) && - (len + 6 < DSO_MAX_TRANSLATED_SIZE) && + (len + 3 < DSO_MAX_TRANSLATED_SIZE) && (strstr(filename, "/") == NULL)) { - sprintf(translated, "lib%s.so", filename); + sprintf(translated, "lib%s%s", filename, extension); ptr = shl_load(translated, BIND_IMMEDIATE, NULL); } else diff --git a/crypto/err/err.c b/crypto/err/err.c index a7778ea764..839f4ab81a 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -389,20 +389,18 @@ void ERR_put_error(int lib, int func, int reason, const char *file, void ERR_clear_error(void) { + int i; ERR_STATE *es; es=ERR_get_state(); -#if 0 - /* hmm... is this needed */ for (i=0; ierr_buffer[i]=0; + err_clear_data(es,i); es->err_file[i]=NULL; es->err_line[i]= -1; - err_clear_data(es,i); } -#endif es->top=es->bottom=0; } @@ -756,8 +754,9 @@ void ERR_set_error_data(char *data, int flags) if (i == 0) i=ERR_NUM_ERRORS-1; + err_clear_data(es,i); es->err_data[i]=data; - es->err_data_flags[es->top]=flags; + es->err_data_flags[i]=flags; } void ERR_add_error_data(int num, ...) @@ -766,7 +765,7 @@ void ERR_add_error_data(int num, ...) int i,n,s; char *str,*p,*a; - s=64; + s=80; str=OPENSSL_malloc(s+1); if (str == NULL) return; str[0]='\0'; diff --git a/crypto/pkcs12/p12_key.c b/crypto/pkcs12/p12_key.c index a9b4b8c972..a4fd5b98ec 100644 --- a/crypto/pkcs12/p12_key.c +++ b/crypto/pkcs12/p12_key.c @@ -102,7 +102,7 @@ int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, const EVP_MD *md_type) { unsigned char *B, *D, *I, *p, *Ai; - int Slen, Plen, Ilen; + int Slen, Plen, Ilen, Ijlen; int i, j, u, v; BIGNUM *Ij, *Bpl1; /* These hold Ij and B + 1 */ EVP_MD_CTX ctx; @@ -180,10 +180,17 @@ int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, BN_bin2bn (I + j, v, Ij); BN_add (Ij, Ij, Bpl1); BN_bn2bin (Ij, B); + Ijlen = BN_num_bytes (Ij); /* If more than 2^(v*8) - 1 cut off MSB */ - if (BN_num_bytes (Ij) > v) { + if (Ijlen > v) { BN_bn2bin (Ij, B); memcpy (I + j, B + 1, v); +#ifndef PKCS12_BROKEN_KEYGEN + /* If less than v bytes pad with zeroes */ + } else if (Ijlen < v) { + memset(I + j, 0, v - Ijlen); + BN_bn2bin(Ij, I + j + v - Ijlen); +#endif } else BN_bn2bin (Ij, I + j); } } diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c index 93ad9a45b8..a4e1f6c864 100644 --- a/crypto/pkcs7/pk7_doit.c +++ b/crypto/pkcs7/pk7_doit.c @@ -588,8 +588,10 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio) pp=NULL; } +#ifndef NO_DSA if (si->pkey->type == EVP_PKEY_DSA) ctx_tmp.digest=EVP_dss1(); +#endif if (!EVP_SignFinal(&ctx_tmp,(unsigned char *)buf->data, (unsigned int *)&buf->length,si->pkey)) @@ -788,7 +790,9 @@ for (ii=0; iitype == EVP_PKEY_DSA) mdc_tmp.digest=EVP_dss1(); +#endif i=EVP_VerifyFinal(&mdc_tmp,os->data,os->length, pkey); EVP_PKEY_free(pkey); diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c index d167dea77d..567838f6c3 100644 --- a/crypto/rand/md_rand.c +++ b/crypto/rand/md_rand.c @@ -482,12 +482,12 @@ static int ssleay_rand_bytes(unsigned char *buf, int num) unpredictable */ static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num) { - int ret, err; + int ret; ret = RAND_bytes(buf, num); if (ret == 0) { - err = ERR_peek_error(); + long err = ERR_peek_error(); if (ERR_GET_LIB(err) == ERR_LIB_RAND && ERR_GET_REASON(err) == RAND_R_PRNG_NOT_SEEDED) (void)ERR_get_error(); diff --git a/crypto/rand/rand.h b/crypto/rand/rand.h index eb9c8c034d..9c6052733e 100644 --- a/crypto/rand/rand.h +++ b/crypto/rand/rand.h @@ -59,6 +59,8 @@ #ifndef HEADER_RAND_H #define HEADER_RAND_H +#include + #ifdef __cplusplus extern "C" { #endif @@ -89,7 +91,7 @@ void RAND_seed(const void *buf,int num); void RAND_add(const void *buf,int num,double entropy); int RAND_load_file(const char *file,long max_bytes); int RAND_write_file(const char *file); -const char *RAND_file_name(char *file,int num); +const char *RAND_file_name(char *file,size_t num); int RAND_status(void); int RAND_egd(const char *path); int RAND_egd_bytes(const char *path,int bytes); diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c index 02a0d86fa3..79b5e6fa57 100644 --- a/crypto/rand/rand_egd.c +++ b/crypto/rand/rand_egd.c @@ -74,7 +74,14 @@ int RAND_egd_bytes(const char *path,int bytes) #include OPENSSL_UNISTD #include #include +#ifndef NO_SYS_UN_H #include +#else +struct sockaddr_un { + short sun_family; /* AF_UNIX */ + char sun_path[108]; /* path name (gag) */ +}; +#endif /* NO_SYS_UN_H */ #include #ifndef offsetof diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index a92541371f..3ce294e4e0 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -194,7 +194,7 @@ err: return (rand_err ? -1 : ret); } -const char *RAND_file_name(char *buf, int size) +const char *RAND_file_name(char *buf, size_t size) { char *s=NULL; char *ret=NULL; @@ -211,7 +211,7 @@ const char *RAND_file_name(char *buf, int size) { if (OPENSSL_issetugid() == 0) s=getenv("HOME"); - if (s != NULL && (strlen(s)+strlen(RFILE)+2 < size)) + if (s != NULL && ((int)(strlen(s)+strlen(RFILE)+2) < size)) { strcpy(buf,s); #ifndef VMS diff --git a/doc/apps/pkcs12.pod b/doc/apps/pkcs12.pod index c4009998b8..7e0307dda0 100644 --- a/doc/apps/pkcs12.pod +++ b/doc/apps/pkcs12.pod @@ -304,6 +304,26 @@ Include some extra certificates: Some would argue that the PKCS#12 standard is one big bug :-) +Versions of OpenSSL before 0.9.6a had a bug in the PKCS#12 key generation +routines. Under rare circumstances this could produce a PKCS#12 file encrypted +with an invalid key. As a result some PKCS#12 files which triggered this bug +from other implementations (MSIE or Netscape) could not be decrypted +by OpenSSL and similarly OpenSSL could produce PKCS#12 files which could +not be decrypted by other implementations. The chances of producing such +a file are relatively small: less than 1 in 256. + +A side effect of fixing this bug is that any old invalidly encrypted PKCS#12 +files cannot no longer be parsed by the fixed version. Under such circumstances +the B utility will report that the MAC is OK but fail with a decryption +error when extracting private keys. + +This problem can be resolved by extracting the private keys and certificates +from the PKCS#12 file using an older version of OpenSSL and recreating the PKCS#12 +file from the keys and certificates using a newer version of OpenSSL. For example: + + old-openssl -in bad.p12 -out keycerts.pem + openssl -in keycerts.pem -export -name "My PKCS#12 file" -out fixed.p12 + =head1 SEE ALSO L diff --git a/doc/crypto/RAND_load_file.pod b/doc/crypto/RAND_load_file.pod index 8dd700ca3d..d8c134e621 100644 --- a/doc/crypto/RAND_load_file.pod +++ b/doc/crypto/RAND_load_file.pod @@ -8,7 +8,7 @@ RAND_load_file, RAND_write_file, RAND_file_name - PRNG seed file #include - const char *RAND_file_name(char *buf, int num); + const char *RAND_file_name(char *buf, size_t num); int RAND_load_file(const char *filename, long max_bytes); diff --git a/doc/crypto/rand.pod b/doc/crypto/rand.pod index 295b681050..9545f0e109 100644 --- a/doc/crypto/rand.pod +++ b/doc/crypto/rand.pod @@ -8,17 +8,17 @@ rand - pseudo-random number generator #include - int RAND_bytes(unsigned char *buf,int num); - int RAND_pseudo_bytes(unsigned char *buf,int num); + int RAND_bytes(unsigned char *buf, int num); + int RAND_pseudo_bytes(unsigned char *buf, int num); - void RAND_seed(const void *buf,int num); - void RAND_add(const void *buf,int num,int entropy); + void RAND_seed(const void *buf, int num); + void RAND_add(const void *buf, int num, int entropy); int RAND_status(void); void RAND_screen(void); - int RAND_load_file(const char *file,long max_bytes); + int RAND_load_file(const char *file, long max_bytes); int RAND_write_file(const char *file); - const char *RAND_file_name(char *file,int num); + const char *RAND_file_name(char *file, size_t num); int RAND_egd(const char *path); diff --git a/ms/16all.bat b/ms/16all.bat index 505aa9f3f9..62ccf78963 100755 --- a/ms/16all.bat +++ b/ms/16all.bat @@ -6,6 +6,8 @@ perl util\mk1mf.pl %OPTS% debug VC-WIN16 >d16.mak perl util\mk1mf.pl %OPTS% VC-WIN16 >16.mak perl util\mk1mf.pl %OPTS% debug dll VC-WIN16 >d16dll.mak perl util\mk1mf.pl %OPTS% dll VC-WIN16 >16dll.mak +perl util\mkdef.pl 16 libeay > ms\libeay32.def +perl util\mkdef.pl 16 ssleay > ms\ssleay32.def nmake -f d16.mak nmake -f 16.mak diff --git a/ms/32all.bat b/ms/32all.bat index b4908fc6ce..09f47059ad 100755 --- a/ms/32all.bat +++ b/ms/32all.bat @@ -6,6 +6,8 @@ perl util\mk1mf.pl %OPTS% debug VC-WIN32 >d32.mak perl util\mk1mf.pl %OPTS% VC-WIN32 >32.mak perl util\mk1mf.pl %OPTS% debug dll VC-WIN32 >d32dll.mak perl util\mk1mf.pl %OPTS% dll VC-WIN32 >32dll.mak +perl util\mkdef.pl 32 libeay > ms\libeay32.def +perl util\mkdef.pl 32 ssleay > ms\ssleay32.def nmake -f d32.mak nmake -f 32.mak diff --git a/util/clean-depend.pl b/util/clean-depend.pl index af676af751..0193e726fe 100755 --- a/util/clean-depend.pl +++ b/util/clean-depend.pl @@ -15,8 +15,8 @@ while() { my ($file,$deps)=/^(.*): (.*)$/; next if !defined $deps; my @deps=split ' ',$deps; - @deps=grep(!/^\/usr\/include/,@deps); - @deps=grep(!/^\/usr\/lib\/gcc-lib/,@deps); + @deps=grep(!/^\//,@deps); + @deps=grep(!/^\\$/,@deps); push @{$files{$file}},@deps; } diff --git a/util/libeay.num b/util/libeay.num index 5e5b96c898..0f421813b7 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -197,7 +197,7 @@ DH_generate_parameters 204 EXIST::FUNCTION:DH DH_new 205 EXIST::FUNCTION:DH DH_size 206 EXIST::FUNCTION:DH DHparams_print 207 EXIST::FUNCTION:DH -DHparams_print_fp 208 EXIST::FUNCTION:DH,FP_API +DHparams_print_fp 208 EXIST::FUNCTION:FP_API,DH DSA_free 209 EXIST::FUNCTION:DSA DSA_generate_key 210 EXIST::FUNCTION:DSA DSA_generate_parameters 211 EXIST::FUNCTION:DSA @@ -301,8 +301,8 @@ EVP_des_ede_cfb 308 EXIST::FUNCTION:DES EVP_des_ede_ofb 309 EXIST::FUNCTION:DES EVP_des_ofb 310 EXIST::FUNCTION:DES EVP_desx_cbc 311 EXIST::FUNCTION:DES -EVP_dss 312 EXIST::FUNCTION:DSA,SHA -EVP_dss1 313 EXIST::FUNCTION:DSA,SHA +EVP_dss 312 EXIST::FUNCTION:SHA,DSA +EVP_dss1 313 EXIST::FUNCTION:SHA,DSA EVP_enc_null 314 EXIST::FUNCTION: EVP_get_cipherbyname 315 EXIST::FUNCTION: EVP_get_digestbyname 316 EXIST::FUNCTION: @@ -478,7 +478,7 @@ RSA_generate_key 485 EXIST::FUNCTION:RSA RSA_new 486 EXIST::FUNCTION:RSA RSA_new_method 487 EXIST::FUNCTION:RSA RSA_print 488 EXIST::FUNCTION:RSA -RSA_print_fp 489 EXIST::FUNCTION:RSA,FP_API +RSA_print_fp 489 EXIST::FUNCTION:FP_API,RSA RSA_private_decrypt 490 EXIST::FUNCTION:RSA RSA_private_encrypt 491 EXIST::FUNCTION:RSA RSA_public_decrypt 492 EXIST::FUNCTION:RSA @@ -742,7 +742,7 @@ d2i_PrivateKey 748 EXIST::FUNCTION: d2i_PublicKey 749 EXIST::FUNCTION: d2i_RSAPrivateKey 750 EXIST::FUNCTION:RSA d2i_RSAPrivateKey_bio 751 EXIST::FUNCTION:RSA -d2i_RSAPrivateKey_fp 752 EXIST::FUNCTION:RSA,FP_API +d2i_RSAPrivateKey_fp 752 EXIST::FUNCTION:FP_API,RSA d2i_RSAPublicKey 753 EXIST::FUNCTION:RSA d2i_X509 754 EXIST::FUNCTION: d2i_X509_ALGOR 755 EXIST::FUNCTION: @@ -844,7 +844,7 @@ i2d_PrivateKey 851 EXIST::FUNCTION: i2d_PublicKey 852 EXIST::FUNCTION: i2d_RSAPrivateKey 853 EXIST::FUNCTION:RSA i2d_RSAPrivateKey_bio 854 EXIST::FUNCTION:RSA -i2d_RSAPrivateKey_fp 855 EXIST::FUNCTION:RSA,FP_API +i2d_RSAPrivateKey_fp 855 EXIST::FUNCTION:FP_API,RSA i2d_RSAPublicKey 856 EXIST::FUNCTION:RSA i2d_X509 857 EXIST::FUNCTION: i2d_X509_ALGOR 858 EXIST::FUNCTION: @@ -933,8 +933,8 @@ d2i_RSAPublicKey_bio 945 EXIST::FUNCTION:RSA i2d_RSAPublicKey_bio 946 EXIST::FUNCTION:RSA PEM_read_RSAPublicKey 947 EXIST:!WIN16:FUNCTION:RSA PEM_write_RSAPublicKey 949 EXIST:!WIN16:FUNCTION:RSA -d2i_RSAPublicKey_fp 952 EXIST::FUNCTION:RSA,FP_API -i2d_RSAPublicKey_fp 954 EXIST::FUNCTION:RSA,FP_API +d2i_RSAPublicKey_fp 952 EXIST::FUNCTION:FP_API,RSA +i2d_RSAPublicKey_fp 954 EXIST::FUNCTION:FP_API,RSA BIO_copy_next_retry 955 EXIST::FUNCTION: RSA_flags 956 EXIST::FUNCTION:RSA X509_STORE_add_crl 957 EXIST::FUNCTION: @@ -1212,7 +1212,7 @@ name_cmp 1239 EXIST::FUNCTION: str_dup 1240 NOEXIST::FUNCTION: i2s_ASN1_ENUMERATED 1241 EXIST::FUNCTION: i2s_ASN1_ENUMERATED_TABLE 1242 EXIST::FUNCTION: -BIO_s_log 1243 EXIST:!WIN32,!WIN16,!macintosh:FUNCTION: +BIO_s_log 1243 EXIST:!WIN16,!WIN32,!macintosh:FUNCTION: BIO_f_reliable 1244 EXIST::FUNCTION: PKCS7_dataFinal 1245 EXIST::FUNCTION: PKCS7_dataDecode 1246 EXIST::FUNCTION: @@ -1535,7 +1535,7 @@ ASN1_STRING_set_default_mask_asc 1960 EXIST:!VMS:FUNCTION: ASN1_STRING_set_def_mask_asc 1960 EXIST:VMS:FUNCTION: PEM_write_bio_RSA_PUBKEY 1961 EXIST::FUNCTION:RSA ASN1_INTEGER_cmp 1963 EXIST::FUNCTION: -d2i_RSA_PUBKEY_fp 1964 EXIST::FUNCTION:RSA,FP_API +d2i_RSA_PUBKEY_fp 1964 EXIST::FUNCTION:FP_API,RSA X509_trust_set_bit_asc 1967 NOEXIST::FUNCTION: PEM_write_bio_DSA_PUBKEY 1968 EXIST::FUNCTION: X509_STORE_CTX_free 1969 EXIST::FUNCTION: @@ -1638,7 +1638,7 @@ ASN1_BIT_STRING_set 2109 EXIST::FUNCTION: X509_TRUST_get_count 2110 EXIST::FUNCTION: ASN1_INTEGER_free 2111 EXIST::FUNCTION: OTHERNAME_free 2112 EXIST::FUNCTION: -i2d_RSA_PUBKEY_fp 2113 EXIST::FUNCTION:RSA,FP_API +i2d_RSA_PUBKEY_fp 2113 EXIST::FUNCTION:FP_API,RSA ASN1_INTEGER_dup 2114 EXIST::FUNCTION: d2i_X509_CERT_AUX 2115 EXIST::FUNCTION: PEM_write_bio_PUBKEY 2117 EXIST::FUNCTION: -- 2.25.1