diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2008-01-03 22:43:04 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2008-01-03 22:43:04 +0000 |
commit | eef0c1f34c7b7d6a38e02f3294eb509aef081749 (patch) | |
tree | fb49441433ca3bf20230eeeca5a6e423a9888174 | |
parent | 82a243132723ac27a81d689722e94e05e18992a0 (diff) |
Netware support.
Submitted by: Guenter Knauf <eflash@gmx.net>
-rw-r--r-- | CHANGES | 20 | ||||
-rwxr-xr-x | Configure | 20 | ||||
-rw-r--r-- | INSTALL.NW | 130 | ||||
-rw-r--r-- | Netware/build.bat | 38 | ||||
-rw-r--r-- | Netware/cpy_tests.bat | 1 | ||||
-rw-r--r-- | Netware/do_tests.pl | 172 | ||||
-rw-r--r-- | Netware/set_env.bat | 74 | ||||
-rw-r--r-- | apps/apps.c | 2 | ||||
-rw-r--r-- | apps/ocsp.c | 20 | ||||
-rw-r--r-- | crypto/bio/b_sock.c | 22 | ||||
-rw-r--r-- | crypto/bio/bss_dgram.c | 6 | ||||
-rw-r--r-- | crypto/bio/bss_file.c | 8 | ||||
-rw-r--r-- | crypto/perlasm/x86nasm.pl | 2 | ||||
-rw-r--r-- | crypto/pkcs7/bio_pk7.c | 2 | ||||
-rw-r--r-- | crypto/rand/rand_nw.c | 11 | ||||
-rw-r--r-- | e_os.h | 33 | ||||
-rw-r--r-- | engines/e_aep.c | 5 | ||||
-rw-r--r-- | engines/e_padlock.c | 3 | ||||
-rwxr-xr-x | util/mk1mf.pl | 17 | ||||
-rwxr-xr-x | util/mkfiles.pl | 1 | ||||
-rw-r--r-- | util/pl/netware.pl | 379 |
21 files changed, 669 insertions, 297 deletions
@@ -4,6 +4,26 @@ Changes between 0.9.8g and 0.9.9 [xx XXX xxxx] + *) Netware support: + + - fixed wrong usage of ioctlsocket() when build for LIBC BSD sockets + - fixed do_tests.pl to run the test suite with CLIB builds too (CLIB_OPT) + - added some more tests to do_tests.pl + - fixed RunningProcess usage so that it works with newer LIBC NDKs too + - removed usage of BN_LLONG for CLIB builds to avoid runtime dependency + - added new Configure targets netware-clib-bsdsock, netware-clib-gcc, + netware-clib-bsdsock-gcc, netware-libc-bsdsock-gcc + - various changes to netware.pl to enable gcc-cross builds on Win32 + platform + - changed crypto/bio/b_sock.c to work with macro functions (CLIB BSD) + - various changes to fix missing prototype warnings + - fixed x86nasm.pl to create correct asm files for NASM COFF output + - added AES, WHIRLPOOL and CPUID assembler code to build files + - added missing AES assembler make rules to mk1mf.pl + - fixed order of includes in apps/ocsp.c so that e_os.h settings apply + [Guenter Knauf <eflash@gmx.net>] + + *) Implement remaining functionality needed to support GOST ciphersuites. Interop testing has been performed using CryptoPro implementations. [Victor B. Wagner <vitus@cryptocom.ru>] @@ -496,15 +496,20 @@ my %table=( "Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", "debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", -# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools +# NetWare from David Ward (dsward@novell.com) +# requires either MetroWerks NLM development tools, or gcc / nlmconv +# NetWare defaults socket bio to WinSock sockets. However, +# the builds can be configured to use BSD sockets instead. # netware-clib => legacy CLib c-runtime support -"netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", +"netware-clib", "mwccnlm::::::${x86_gcc_opts}::", +"netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::", +"netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", +"netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", # netware-libc => LibC/NKS support -# NetWare defaults socket bio to WinSock sockets. However, the LibC build can be -# configured to use BSD sockets instead. "netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::", +"netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::", # DJGPP "DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:", @@ -549,7 +554,9 @@ my %table=( my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A VC-NT VC-CE VC-WIN32 - BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock); + BC-32 OS2-EMX + netware-clib netware-clib-bsdsock + netware-libc netware-libc-bsdsock); my $idx = 0; my $idx_cc = $idx++; @@ -952,6 +959,7 @@ foreach (sort (keys %disabled)) my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds; $exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw"); +$exe_ext=".nlm" if ($target =~ /netware/); $exe_ext=".pm" if ($target =~ /vos/); $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq ""); $prefix=$openssldir if $prefix eq ""; @@ -1669,7 +1677,7 @@ EOF } # create the ms/version32.rc file if needed -if ($IsMK1MF) { +if ($IsMK1MF && ($target !~ /^netware/)) { my ($v1, $v2, $v3, $v4); if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) { $v1=hex $1; diff --git a/INSTALL.NW b/INSTALL.NW index 92715cbbf3..609a7309e1 100644 --- a/INSTALL.NW +++ b/INSTALL.NW @@ -8,58 +8,62 @@ Notes about building OpenSSL for NetWare. BUILD PLATFORM: --------------- The build scripts (batch files, perl scripts, etc) have been developed and -tested on W2K. The scripts should run fine on other Windows -platforms (NT, Win9x, WinXP) but they haven't been tested. They may require -some modifications. +tested on W2K. The scripts should run fine on other Windows platforms +(NT, Win9x, WinXP) but they have not been tested. They may require some +modifications. Supported NetWare Platforms - NetWare 5.x, NetWare 6.x: ------------------------------------------- -OpenSSL uses the WinSock interfaces introduced in NetWare 5. Therefore, -previous versions of NetWare, 4.x and 3.x, are not supported. +------------------------------------------------------- +OpenSSL can either use the WinSock interfaces introduced in NetWare 5, +or the BSD socket interface. Previous versions of NetWare, 4.x and 3.x, +are only supported if OpenSSL is build for CLIB and BSD sockets; +WinSock builds only support NetWare 5 and up. On NetWare there are two c-runtime libraries. There is the legacy CLIB -interfaces and the newer LibC interfaces. Being ANSI-C libraries, the -functionality in CLIB and LibC is similar but the LibC interfaces are built +interfaces and the newer LIBC interfaces. Being ANSI-C libraries, the +functionality in CLIB and LIBC is similar but the LIBC interfaces are built using Novell Kernal Services (NKS) which is designed to leverage multi-processor environments. -The NetWare port of OpenSSL can configured to build using CLIB or LibC. The -CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LibC +The NetWare port of OpenSSL can be configured to build using CLIB or LIBC. +The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LIBC build was developed and tested using the NetWare 6.0 FCS. -The necessary LibC functionality ships with NetWare 6. However, earlier -NetWare 5.x versions will require updates in order to run the OpenSSL LibC -build. +The necessary LIBC functionality ships with NetWare 6. However, earlier +NetWare 5.x versions will require updates in order to run the OpenSSL LIBC +build (NetWare 5.1 SP8 is known to work). -As of June 2005, the LibC build can be configured to use BSD sockets instead +As of June 2005, the LIBC build can be configured to use BSD sockets instead of WinSock sockets. Call Configure (usually through netware\build.bat) using a target of "netware-libc-bsdsock" instead of "netware-libc". +As of June 2007, support for CLIB and BSD sockets is also now available +using a target of "netware-clib-bsdsock" instead of "netware-clib"; +also gcc builds are now supported on both Linux and Win32 (post 0.9.8e). REQUIRED TOOLS: --------------- Based upon the configuration and build options used, some or all of the following tools may be required: - * Perl for Win32 - required (http://www.activestate.com/ActivePerl) Used to run the various perl scripts on the build platform. - * Perl 5.8.0 for NetWare v3.20 (or later) - required (http://developer.novell.com) Used to run the test script on NetWare after building. +* Compiler / Linker - required: + Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare (commercial): + Provides command line tools used for building. + Tools: + mwccnlm.exe - C/C++ Compiler for NetWare + mwldnlm.exe - Linker for NetWare + mwasmnlm.exe - x86 assembler for NetWare (if using assembly option) -* Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare - required: - Provides command line tools used for building. - - Tools: - mwccnlm.exe - C/C++ Compiler for NetWare - mwldnlm.exe - Linker for NetWare - mwasmnlm.exe - x86 assembler for NetWare (if using assembly option) - + gcc / nlmconv Cross-Compiler, available from Novell Forge (free): + http://forge.novell.com/modules/xfmod/project/?aunixnw * Assemblers - optional: If you intend to build using the assembly options you will need an @@ -79,11 +83,11 @@ following tools may be required: In order to build you will need a make tool. Two make tools are supported, GNU make (gmake.exe) or Microsoft nmake.exe. - gmake.exe - GNU make for Windows (version 3.75 used for development) - http://www.gnu.org/software/make/make.html + make.exe - GNU make for Windows (version 3.75 used for development) + http://gnuwin32.sourceforge.net/packages/make.htm nmake.exe - Microsoft make (Version 6.00.8168.0 used for development) - + http://support.microsoft.com/kb/132084/EN-US/ * Novell Developer Kit (NDK) - required: (http://developer.novell.com) @@ -123,14 +127,14 @@ following tools may be required: LIBC - BUILDS: - Libraries for C (LibC) - LibC headers and import files - If you are going to build a LibC version of OpenSSL, you will - need the LibC headers and imports. The March 14, 2002 NDK release or + Libraries for C (LIBC) - LIBC headers and import files + If you are going to build a LIBC version of OpenSSL, you will + need the LIBC headers and imports. The March 14, 2002 NDK release or later is required. - NOTE: The LibC SDK includes the necessary WinSock2 support. It - It is not necessary to download the WinSock2 Developer when building - for LibC. The LibC SDK also includes the appropriate BSD socket support + NOTE: The LIBC SDK includes the necessary WinSock2 support. + It is not necessary to download the WinSock2 NDK when building for + LIBC. The LIBC SDK also includes the appropriate BSD socket support if configuring to use BSD sockets. @@ -143,33 +147,36 @@ The set_env.bat file is a template you can use to set up the path and environment variables you will need to build. Modify the various lines to point to YOUR tools and run set_env.bat. - netware\set_env.bat [target] + netware\set_env.bat <target> [compiler] + + target - "netware-clib" - CLIB NetWare build + - "netware-libc" - LIBC NetWare build - target - "netware-clib" - CLib NetWare build - - "netware-libc" - LibC NetWare build + compiler - "gnuc" - GNU GCC Compiler + - "codewarrior" - MetroWerks CodeWarrior (default) If you don't use set_env.bat, you will need to set up the following environment variables: - path - Set path to point to the tools you will use. + PATH - Set PATH to point to the tools you will use. - MWCIncludes - The location of the NDK include files. + INCLUDE - The location of the NDK include files. - CLIB ex: set MWCIncludes=c:\ndk\nwsdk\include\nlm - LibC ex: set MWCIncludes=c:\ndk\libc\include + CLIB ex: set INCLUDE=c:\ndk\nwsdk\include\nlm + LIBC ex: set INCLUDE=c:\ndk\libc\include PRELUDE - The absolute path of the prelude object to link with. For a CLIB build it is recommended you use the "clibpre.o" files shipped - with the Metrowerks PDK for NetWare. For a LibC build you should - use the "libcpre.o" file delivered with the LibC NDK components. + with the Metrowerks PDK for NetWare. For a LIBC build you should + use the "libcpre.o" file delivered with the LIBC NDK components. CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o - LibC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o + LIBC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o IMPORTS - The locaton of the NDK import files. CLIB ex: set IMPORTS=c:\ndk\nwsdk\imports - LibC ex: set IMPORTS=c:\ndk\libc\imports + LIBC ex: set IMPORTS=c:\ndk\libc\imports In order to build, you need to run the Perl scripts to configure the build @@ -182,9 +189,10 @@ the assembly code. Always run build.bat from the "openssl" directory. netware\build [target] [debug opts] [assembly opts] [configure opts] - target - "netware-clib" - CLib NetWare build (WinSock Sockets) - - "netware-libc" - LibC NetWare build (WinSock Sockets) - - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) + target - "netware-clib" - CLIB NetWare build (WinSock Sockets) + - "netware-clib-bsdsock" - CLIB NetWare build (BSD Sockets) + - "netware-libc" - LIBC NetWare build (WinSock Sockets) + - "netware-libc-bsdsock" - LIBC NetWare build (BSD Sockets) debug opts - "debug" - build debug @@ -193,25 +201,27 @@ the assembly code. Always run build.bat from the "openssl" directory. "no-asm" - don't use assembly configure opts- all unrecognized arguments are passed to the - perl configure script + perl 'configure' script. See that script for + internal documentation regarding options that + are available. examples: CLIB build, debug, without assembly: netware\build.bat netware-clib debug no-asm - LibC build, non-debug, using NASM assembly: - netware\build.bat netware-libc nw-nasm + LIBC build, non-debug, using NASM assembly, add mdc2 support: + netware\build.bat netware-libc nw-nasm enable-mdc2 - LibC build, BSD sockets, non-debug, without assembly: + LIBC build, BSD sockets, non-debug, without assembly: netware\build.bat netware-libc-bsdsock no-asm Running build.bat generates a make file to be processed by your make tool (gmake or nmake): CLIB ex: gmake -f netware\nlm_clib_dbg.mak - LibC ex: gmake -f netware\nlm_libc.mak - LibC ex: gmake -f netware\nlm_libc_bsdsock.mak + LIBC ex: gmake -f netware\nlm_libc.mak + LIBC ex: gmake -f netware\nlm_libc_bsdsock.mak You can also run the build scripts manually if you do not want to use the @@ -220,7 +230,7 @@ subdirectory (in the order listed below): perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock] configures no assembly build for specified netware environment - (CLIB or LibC). + (CLIB or LIBC). perl util\mkfiles.pl >MINFO generates a listing of source files (used by mk1mf) @@ -250,12 +260,12 @@ The output from the build is placed in the following directories: tmp_nw_clib - temporary build files outinc_nw_clib - necesary include files - LibC Debug build: + LIBC Debug build: out_nw_libc.dbg - static libs & test nlm(s) tmp_nw_libc.dbg - temporary build files outinc_nw_libc - necessary include files - LibC Non-debug build: + LIBC Non-debug build: out_nw_libc - static libs & test nlm(s) tmp_nw_libc - temporary build files outinc_nw_libc - necesary include files @@ -281,7 +291,7 @@ To run cpy_tests.bat: NetWare drive - drive letter of mapped drive CLIB ex: netware\cpy_tests out_nw_clib m: - LibC ex: netware\cpy_tests out_nw_libc m: + LIBC ex: netware\cpy_tests out_nw_libc m: The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server @@ -356,9 +366,9 @@ clean up the resources! Multi-threaded Development --------------------------- -The NetWare version of OpenSSL is thread-safe however, multi-threaded +The NetWare version of OpenSSL is thread-safe, however multi-threaded applications must provide the necessary locking function callbacks. This -is described in doc\threads.doc. The file "openssl\crypto\threads\mttest.c" +is described in doc\threads.doc. The file "openssl-x.x.x\crypto\threads\mttest.c" is a multi-threaded test program and demonstrates the locking functions. @@ -428,7 +438,7 @@ Makefile "vclean" ------------------ The generated makefile has a "vclean" target which cleans up the build directories. If you have been building successfully and suddenly -experience problems, use "vclean" (gmake -f netware\nlm.mak vclean) and retry. +experience problems, use "vclean" (gmake -f netware\nlm_xxxx.mak vclean) and retry. "Undefined Symbol" Linker errors diff --git a/Netware/build.bat b/Netware/build.bat index 50ee7d51d0..b146dd9f2b 100644 --- a/Netware/build.bat +++ b/Netware/build.bat @@ -7,8 +7,9 @@ rem usage: rem build [target] [debug opts] [assembly opts] [configure opts] rem rem target - "netware-clib" - CLib NetWare build (WinSock Sockets) -rem - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) -rem - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) +rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) +rem - "netware-libc" - LibC NetWare build (WinSock Sockets) +rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) rem rem debug opts - "debug" - build debug rem @@ -71,10 +72,12 @@ if "%1" == "nw-nasm" set NO_ASM= if "%1" == "nw-nasm" set ARG_PROCESSED=YES if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks -if "%1" == "nw-mwasm" set NO_ASM= +if "%1" == "nw-mwasm" set NO_ASM= if "%1" == "nw-mwasm" set ARG_PROCESSED=YES if "%1" == "netware-clib" set BLD_TARGET=netware-clib if "%1" == "netware-clib" set ARG_PROCESSED=YES +if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock +if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES if "%1" == "netware-libc" set BLD_TARGET=netware-libc if "%1" == "netware-libc" set ARG_PROCESSED=YES if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock @@ -94,6 +97,7 @@ if "%BLD_TARGET%" == "no_target" goto no_target rem build the nlm make file name which includes target and debug info set NLM_MAKE= if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib +if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak @@ -110,7 +114,14 @@ echo Generating x86 for %ASSEMBLER% assembler echo Bignum cd crypto\bn\asm -perl x86.pl %ASM_MODE% > bn-nw.asm +rem perl x86.pl %ASM_MODE% > bn-nw.asm +perl bn-586.pl %ASM_MODE% > bn-nw.asm +perl co-586.pl %ASM_MODE% > co-nw.asm +cd ..\..\.. + +echo AES +cd crypto\aes\asm +perl aes-586.pl %ASM_MODE% > a-nw.asm cd ..\..\.. echo DES @@ -160,6 +171,16 @@ cd crypto\rc5\asm perl rc5-586.pl %ASM_MODE% > r5-nw.asm cd ..\..\.. +echo WHIRLPOOL +cd crypto\whrlpool\asm +perl wp-mmx.pl %ASM_MODE% > wp-nw.asm +cd ..\..\.. + +echo CPUID +cd crypto +perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm +cd ..\ + rem =============================================================== rem :do_config @@ -176,8 +197,10 @@ echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% echo . perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE% +make -f %NLM_MAKE% vclean +echo . echo The makefile "%NLM_MAKE%" has been created use your maketool to -echo build (ex: gmake -f %NLM_MAKE%) +echo build (ex: make -f %NLM_MAKE%) goto end rem =============================================================== @@ -189,8 +212,9 @@ echo . echo . usage: build [target] [debug opts] [assembly opts] [configure opts] echo . echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets) -echo . - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) -echo . - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) +echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) +echo . - "netware-libc" - LibC NetWare build (WinSock Sockets) +echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) echo . echo . debug opts - "debug" - build debug echo . diff --git a/Netware/cpy_tests.bat b/Netware/cpy_tests.bat index c2f07c00c7..1583f28067 100644 --- a/Netware/cpy_tests.bat +++ b/Netware/cpy_tests.bat @@ -73,6 +73,7 @@ copy %loc%\test\testsid.pem %2\openssl\test\ copy %loc%\test\testx509.pem %2\openssl\test\ copy %loc%\test\v3-cert1.pem %2\openssl\test\ copy %loc%\test\v3-cert2.pem %2\openssl\test\ +copy %loc%\crypto\evp\evptests.txt %2\openssl\test\ rem copy the apps directory stuff copy %loc%\apps\client.pem %2\openssl\apps\ diff --git a/Netware/do_tests.pl b/Netware/do_tests.pl index 0be0838a13..ac482dbe2b 100644 --- a/Netware/do_tests.pl +++ b/Netware/do_tests.pl @@ -34,12 +34,17 @@ sub main() # delete all the output files in the output directory unlink <$output_path\\*.*>; - # open the main log file + # open the main log file open(OUT, ">$log_file") || die "unable to open $log_file\n"; - + print( OUT "========================================================\n"); + my $outFile = "$output_path\\version.out"; + system("openssl2 version (CLIB_OPT)/>$outFile"); + log_output("CHECKING FOR OPENSSL VERSION:", $outFile); + algorithm_tests(); encryption_tests(); + evp_tests(); pem_tests(); verify_tests(); ca_tests(); @@ -56,9 +61,10 @@ sub algorithm_tests { my $i; my $outFile; - my @tests = ( rsa_test, destest, ideatest, bftest, shatest, sha1test, - md5test, dsatest, md2test, mdc2test, rc2test, rc4test, randtest, - dhtest, exptest ); + my @tests = ( rsa_test, destest, ideatest, bftest, bntest, shatest, sha1test, + sha256t, sha512t, dsatest, md2test, md4test, md5test, mdc2test, + rc2test, rc4test, rc5test, randtest, rmdtest, dhtest, ecdhtest, + ecdsatest, ectest, exptest, casttest, hmactest ); print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n"); @@ -68,16 +74,16 @@ sub algorithm_tests foreach $i (@tests) { if (-e "$base_path\\$i.nlm") - { + { $outFile = "$output_path\\$i.out"; - system("$i > $outFile"); + system("$i (CLIB_OPT)/>$outFile"); log_desc("Test: $i\.nlm:"); log_output("", $outFile ); - } - else - { + } + else + { log_desc("Test: $i\.nlm: file not found"); - } + } } } @@ -109,24 +115,24 @@ sub encryption_tests # do encryption $outFile = "$output_path\\enc.out"; - system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher > $outFile" ); + system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile" ); log_output("Encrypting: $input --> $cipher", $outFile); # do decryption $outFile = "$output_path\\dec.out"; - system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear > $outFile"); + system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); log_output("Decrypting: $cipher --> $clear", $outFile); # compare files $x = compare_files( $input, $clear, 1); if ( $x == 0 ) { - print( "SUCCESS - files match: $input, $clear\n"); + print( "\rSUCCESS - files match: $input, $clear\n"); print( OUT "SUCCESS - files match: $input, $clear\n"); } else { - print( "ERROR: files don't match\n"); + print( "\rERROR: files don't match\n"); print( OUT "ERROR: files don't match\n"); } @@ -136,24 +142,24 @@ sub encryption_tests # do encryption B64 $outFile = "$output_path\\B64enc.out"; - system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher > $outFile"); + system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile"); log_output("Encrypting(B64): $cipher --> $clear", $outFile); # do decryption B64 $outFile = "$output_path\\B64dec.out"; - system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear > $outFile"); + system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); log_output("Decrypting(B64): $cipher --> $clear", $outFile); # compare files $x = compare_files( $input, $clear, 1); if ( $x == 0 ) { - print( "SUCCESS - files match: $input, $clear\n"); + print( "\rSUCCESS - files match: $input, $clear\n"); print( OUT "SUCCESS - files match: $input, $clear\n"); } else { - print( "ERROR: files don't match\n"); + print( "\rERROR: files don't match\n"); print( OUT "ERROR: files don't match\n"); } @@ -199,24 +205,24 @@ sub pem_tests if ($i ne "req" ) { - system("openssl2 $i -in $input -out $tmp_out > $outFile"); + system("openssl2 $i -in $input -out $tmp_out (CLIB_OPT)/>$outFile"); log_output( "openssl2 $i -in $input -out $tmp_out", $outFile); } else { - system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config > $outFile"); + system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config (CLIB_OPT)/>$outFile"); log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile ); } $x = compare_files( $input, $tmp_out); if ( $x == 0 ) { - print( "SUCCESS - files match: $input, $tmp_out\n"); + print( "\rSUCCESS - files match: $input, $tmp_out\n"); print( OUT "SUCCESS - files match: $input, $tmp_out\n"); } else { - print( "ERROR: files don't match\n"); + print( "\rERROR: files don't match\n"); print( OUT "ERROR: files don't match\n"); } do_wait(); @@ -231,7 +237,8 @@ sub verify_tests my $i; my $outFile = "$output_path\\verify.out"; - my @cert_files = <$cert_path\\*.pem>; + $cert_path =~ s/\\/\//g; + my @cert_files = <$cert_path/*.pem>; print( "\nRUNNING VERIFY TESTS:\n\n"); @@ -242,7 +249,7 @@ sub verify_tests foreach $i (@cert_files) { - system("openssl2 verify -CAfile $tmp_cert $i >$outFile"); + system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile"); log_desc("Verifying cert: $i"); log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile); } @@ -263,103 +270,103 @@ sub ssl_tests print( OUT "\n========================================================\n"); print( OUT "SSL TESTS:\n\n"); - system("ssltest -ssl2 >$outFile"); + system("ssltest -ssl2 (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2:"); log_output("ssltest -ssl2", $outFile); - system("$ssltest -ssl2 -server_auth >$outFile"); + system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with server authentication:"); log_output("$ssltest -ssl2 -server_auth", $outFile); - system("$ssltest -ssl2 -client_auth >$outFile"); + system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with client authentication:"); log_output("$ssltest -ssl2 -client_auth", $outFile); - system("$ssltest -ssl2 -server_auth -client_auth >$outFile"); + system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with both client and server authentication:"); log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile); - system("ssltest -ssl3 >$outFile"); + system("ssltest -ssl3 (CLIB_OPT)/>$outFile"); log_desc("Testing sslv3:"); log_output("ssltest -ssl3", $outFile); - system("$ssltest -ssl3 -server_auth >$outFile"); + system("$ssltest -ssl3 -server_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv3 with server authentication:"); log_output("$ssltest -ssl3 -server_auth", $outFile); - system("$ssltest -ssl3 -client_auth >$outFile"); + system("$ssltest -ssl3 -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv3 with client authentication:"); log_output("$ssltest -ssl3 -client_auth", $outFile); - system("$ssltest -ssl3 -server_auth -client_auth >$outFile"); + system("$ssltest -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv3 with both client and server authentication:"); log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile); - system("ssltest >$outFile"); + system("ssltest (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2/sslv3:"); log_output("ssltest", $outFile); - system("$ssltest -server_auth >$outFile"); + system("$ssltest -server_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2/sslv3 with server authentication:"); log_output("$ssltest -server_auth", $outFile); - system("$ssltest -client_auth >$outFile"); + system("$ssltest -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2/sslv3 with client authentication:"); log_output("$ssltest -client_auth ", $outFile); - system("$ssltest -server_auth -client_auth >$outFile"); + system("$ssltest -server_auth -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2/sslv3 with both client and server authentication:"); log_output("$ssltest -server_auth -client_auth", $outFile); - system("ssltest -bio_pair -ssl2 >$outFile"); + system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 via BIO pair:"); log_output("ssltest -bio_pair -ssl2", $outFile); - system("ssltest -bio_pair -dhe1024dsa -v >$outFile"); + system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:"); log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile); - system("$ssltest -bio_pair -ssl2 -server_auth >$outFile"); + system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with server authentication via BIO pair:"); log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile); - system("$ssltest -bio_pair -ssl2 -client_auth >$outFile"); + system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with client authentication via BIO pair:"); log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile); - system("$ssltest -bio_pair -ssl2 -server_auth -client_auth >$outFile"); + system("$ssltest -bio_pair -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); log_desc("Testing sslv2 with both client and server authentication via BIO pair:"); log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile); - system("ssltest -bio_pair -ssl3 >$outFile"); + system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile"); log_desc("Testing sslv3 via |