diff --git a/CHANGES b/CHANGES index e73a95b1a5..16443a3f59 100644 --- a/CHANGES +++ b/CHANGES @@ -7,7 +7,7 @@ *) Removed the aged BC-32 config and all its supporting scripts [Richard Levitte] - *) Removed support for Ultrix as a platform. + *) Removed support for Ultrix, Netware, and OS/2. [Rich Salz] *) Add support for HKDF. diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 1d943862f4..5a3a5faa93 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1489,57 +1489,6 @@ sub vc_wince_info { inherit_from => [ "Cygwin-x86" ] }, -#### 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" => { - inherit_from => [ "BASE_Windows" ], - cc => "mwccnlm", - build_scheme => add("netware", { separator => undef }), - }, - "netware-clib-bsdsock" => { - inherit_from => [ "BASE_Windows" ], - cc => "mwccnlm", - build_scheme => add("netware", { separator => undef }), - }, - "netware-clib-gcc" => { - inherit_from => [ "BASE_unix" ], - cc => "i586-netware-gcc", - cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall", - }, - "netware-clib-bsdsock-gcc" => { - inherit_from => [ "BASE_unix" ], - cc => "i586-netware-gcc", - cflags => "-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYS_NETWARE -O2 -Wall", - }, - # netware-libc => LibC/NKS support - "netware-libc" => { - inherit_from => [ "BASE_Windows" ], - cc => "mwccnlm", - bn_ops => "BN_LLONG", - build_scheme => add("netware", { separator => undef }), - }, - "netware-libc-bsdsock" => { - inherit_from => [ "BASE_Windows" ], - cc => "mwccnlm", - bn_ops => "BN_LLONG", - build_scheme => add("netware", { separator => undef }), - }, - "netware-libc-gcc" => { - inherit_from => [ "BASE_unix" ], - cc => "i586-netware-gcc", - cflags => "-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall", - bn_ops => "BN_LLONG", - }, - "netware-libc-bsdsock-gcc" => { - inherit_from => [ "BASE_unix" ], - cc => "i586-netware-gcc", - cflags => "-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYS_NETWARE -DTERMIO -O2 -Wall", - bn_ops => "BN_LLONG", - }, - #### DJGPP "DJGPP" => { inherit_from => [ asm("x86_asm") ], @@ -1653,12 +1602,6 @@ sub vc_wince_info { shared_cflag => "-fPIC", }, -##### OS/2 EMX - "OS2-EMX" => { - inherit_from => [ "BASE_unix" ], - cc => "gcc", - }, - ##### VxWorks for various targets "vxworks-ppc60x" => { inherit_from => [ "BASE_unix" ], diff --git a/Configure b/Configure index 0972cfe456..4145e39878 100755 --- a/Configure +++ b/Configure @@ -860,7 +860,6 @@ my %target = resolve_config($target); $target{exe_extension}=""; $target{exe_extension}=".exe" if ($config{target} eq "DJGPP" || $config{target} =~ /^(?:Cygwin|mingw)/); -$target{exe_extension}=".nlm" if ($config{target} =~ /netware/); $target{exe_extension}=".pm" if ($config{target} =~ /vos/); ($target{shared_extension_simple}=$target{shared_extension}) @@ -1869,16 +1868,15 @@ my %builders = ( build_Makefile(); # create the ms/version32.rc file if needed - if ($platform ne "netware") { - my ($v1, $v2, $v3, $v4); - if ($config{version_num} =~ /^0x([0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{1})L$/i) { - $v1=hex $1; - $v2=hex $2; - $v3=hex $3; - $v4=hex $4; - } - open (OUT,">ms/version32.rc") || die "Can't open ms/version32.rc"; - print OUT <<"EOF"; + my ($v1, $v2, $v3, $v4); + if ($config{version_num} =~ /^0x([0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{1})L$/i) { + $v1=hex $1; + $v2=hex $2; + $v3=hex $3; + $v4=hex $4; + } + open (OUT,">ms/version32.rc") || die "Can't open ms/version32.rc"; + print OUT <<"EOF"; #include LANGUAGE 0x09,0x01 @@ -1927,8 +1925,7 @@ BEGIN END END EOF - close(OUT); - } + close(OUT); }, ); diff --git a/INSTALL b/INSTALL index 2377449dbb..51887f1ab1 100644 --- a/INSTALL +++ b/INSTALL @@ -2,12 +2,10 @@ OPENSSL INSTALLATION -------------------- - [Installation on DOS (with djgpp), MacOS (before MacOS X) - and NetWare is described in INSTALL.DJGPP, INSTALL.MacOS - and INSTALL.NW. - - This document describes installation on the main supported operating - systems, currently the Linux/Unix family, OpenVMS and Windows.] + [This document describes installation on the main supported operating + systems, currently the Linux/Unix family, OpenVMS and Windows. + Installation on DOS (with djgpp), MacOS (before MacOS X) + is described in INSTALL.DJGPP or INSTALL.MacOS, respectively.] To install OpenSSL, you will need: diff --git a/INSTALL.NW b/INSTALL.NW deleted file mode 100644 index 29eb8075b3..0000000000 --- a/INSTALL.NW +++ /dev/null @@ -1,454 +0,0 @@ - -INSTALLATION ON THE NETWARE PLATFORM ------------------------------------- - -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 have not been tested. They may require some -modifications. - - -Supported NetWare Platforms - NetWare 5.x, NetWare 6.x: -------------------------------------------------------- -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 -using Novell Kernal Services (NKS) which is designed to leverage -multi-processor environments. - -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 (NetWare 5.1 SP8 is known to work). - -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) - - 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 - assembler. Work has been completed to support two assemblers, Metrowerks - and NASM. However, during development, a bug was found in the Metrowerks - assembler which generates incorrect code. Until this problem is fixed, - the Metrowerks assembler cannot be used. - - mwasmnlm.exe - Metrowerks x86 assembler - part of CodeWarrior tools. - (version 2.2 Built Aug 23, 1999 - not useable due to code - generation bug) - - nasmw.exe - Netwide Assembler NASM - version 0.98 was used in development and testing - -* Make Tool - required: - In order to build you will need a make tool. Two make tools are - supported, GNU make (gmake.exe) or Microsoft nmake.exe. - - 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) - - CLIB - BUILDS: - - WinSock2 Developer Components for NetWare: - For initial development, the October 27, 2000 version was used. - However, future versions should also work. - - NOTE: The WinSock2 components include headers & import files for - NetWare, but you will also need the winsock2.h and supporting - headers (pshpack4.h, poppack.h, qos.h) delivered in the - Microsoft SDK. Note: The winsock2.h support headers may change - with various versions of winsock2.h. Check the dependencies - section on the NDK WinSock2 download page for the latest - information on dependencies. These components are unsupported by - Novell. They are provided as a courtesy, but it is strongly - suggested that all development be done using LIBC, not CLIB. - - As of June 2005, the WinSock2 components are available at: - http://forgeftp.novell.com//ws2comp/ - - - NLM and NetWare libraries for C (including CLIB and XPlat): - If you are going to build a CLIB version of OpenSSL, you will - need the CLIB headers and imports. The March, 2001 NDK release or - later is recommended. - - Earlier versions should work but haven't been tested. In recent - versions the import files have been consolidated and function - names moved. This means you may run into link problems - (undefined symbols) when using earlier versions. The functions - are available in earlier versions, but you will have to modifiy - the make files to include additional import files (see - openssl\util\pl\netware.pl). - - - 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 - later is required. - - 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. - - -BUILDING: ---------- -Before building, you will need to set a few environment variables. You can -set them manually or you can modify the "netware\set_env.bat" file. - -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 [compiler] - - 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. - - INCLUDE - The location of the NDK include files. - - 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. - - CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.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 - - -In order to build, you need to run the Perl scripts to configure the build -process and generate a make file. There is a batch file, -"netware\build.bat", to automate the process. - -Build.bat runs the build configuration scripts and generates a make file. -If an assembly option is specified, it also runs the scripts to generate -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-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 - - assembly opts - "nw-mwasm" - use Metrowerks assembler - "nw-nasm" - use NASM assembler - "no-asm" - don't use assembly - - configure opts- all unrecognized arguments are passed to the - 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, add mdc2 support: - netware\build.bat netware-libc nw-nasm enable-mdc2 - - 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 - - -You can also run the build scripts manually if you do not want to use the -build.bat file. Run the following scripts in the "\openssl" -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). - - perl util\mkfiles.pl >MINFO - generates a listing of source files (used by mk1mf) - - perl util\mk1mf.pl no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock >netware\nlm.mak - generates the makefile for NetWare - - gmake -f netware\nlm.mak - build with the make tool (nmake.exe also works) - -NOTE: If you are building using the assembly option, you must also run the -various Perl scripts to generate the assembly files. See build.bat -for an example of running the various assembly scripts. You must use the -"no-asm" option to build without assembly. The configure and mk1mf scripts -also have various other options. See the scripts for more information. - - -The output from the build is placed in the following directories: - - CLIB Debug build: - out_nw_clib.dbg - static libs & test nlm(s) - tmp_nw_clib.dbg - temporary build files - outinc_nw_clib - necessary include files - - CLIB Non-debug build: - out_nw_clib - static libs & test nlm(s) - tmp_nw_clib - temporary build files - outinc_nw_clib - necesary include files - - 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: - out_nw_libc - static libs & test nlm(s) - tmp_nw_libc - temporary build files - outinc_nw_libc - necesary include files - - -TESTING: --------- -The build process creates the OpenSSL static libs ( crypto.lib, ssl.lib, -rsaglue.lib ) and several test programs. You should copy the test programs -to your NetWare server and run the tests. - -The batch file "netware\cpy_tests.bat" will copy all the necessary files -to your server for testing. In order to run the batch file, you need a -drive mapped to your target server. It will create an "OpenSSL" directory -on the drive and copy the test files to it. CAUTION: If a directory with the -name of "OpenSSL" already exists, it will be deleted. - -To run cpy_tests.bat: - - netware\cpy_tests [output directory] [NetWare drive] - - output directory - "out_nw_clib.dbg", "out_nw_libc", etc. - 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: - - -The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server -should be used to execute the tests. Before running the script, make sure -your SEARCH PATH includes the "OpenSSL" directory. For example, if you -copied the files to the "sys:" volume you use the command: - - SEARCH ADD SYS:\OPENSSL - - -To run do_tests.pl type (at the console prompt): - - perl \openssl\do_tests.pl [options] - - options: - -p - pause after executing each test - -The do_tests.pl script generates a log file "\openssl\test_out\tests.log" -which should be reviewed for errors. Any errors will be denoted by the word -"ERROR" in the log. - -DEVELOPING WITH THE OPENSSL SDK: --------------------------------- -Now that everything is built and tested, you are ready to use the OpenSSL -libraries in your development. - -There is no real installation procedure, just copy the static libs and -headers to your build location. The libs (crypto.lib & ssl.lib) are -located in the appropriate "out_nw_XXXX" directory -(out_nw_clib, out_nw_libc, etc). - -The headers are located in the appropriate "outinc_nw_XXX" directory -(outinc_nw_clib, outinc_nw_libc). - -One suggestion is to create the following directory -structure for the OpenSSL SDK: - - \openssl - |- bin - | |- openssl.nlm - | |- (other tests you want) - | - |- lib - | | - crypto.lib - | | - ssl.lib - | - |- include - | | - openssl - | | | - (all the headers in "outinc_nw\openssl") - - -The program "openssl.nlm" can be very useful. It has dozens of -options and you may want to keep it handy for debugging, testing, etc. - -When building your apps using OpenSSL, define "NETWARE". It is needed by -some of the OpenSSL headers. One way to do this is with a compile option, -for example "-DNETWARE". - - - -NOTES: ------- - -Resource leaks in Tests ------------------------- -Some OpenSSL tests do not clean up resources and NetWare reports -the resource leaks when the tests unload. If this really bugs you, -you can stop the messages by setting the developer option off at the console -prompt (set developer option = off). Or better yet, fix the tests to -clean up the resources! - - -Multi-threaded Development ---------------------------- -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-x.x.x\crypto\threads\mttest.c" -is a multi-threaded test program and demonstrates the locking functions. - - -What is openssl2.nlm? ---------------------- -The openssl program has numerous options and can be used for many different -things. Many of the options operate in an interactive mode requiring the -user to enter data. Because of this, a default screen is created for the -program. However, when running the test script it is not desirable to -have a separate screen. Therefore, the build also creates openssl2.nlm. -Openssl2.nlm is functionally identical but uses the console screen. -Openssl2 can be used when a non-interactive mode is desired. - -NOTE: There are may other possibilities (command line options, etc) -which could have been used to address the screen issue. The openssl2.nlm -option was chosen because it impacted only the build not the code. - - -Why only static libraries? --------------------------- -Globals, globals, and more globals. The OpenSSL code uses many global -variables that are allocated and initialized when used for the first time. - -On NetWare, most applications (at least historically) run in the kernel. -When running in the kernel, there is one instance of global variables. -For regular application type NLM(s) this isn't a problem because they are -the only ones using the globals. However, for a library NLM (an NLM which -exposes functions and has no threads of execution), the globals cause -problems. Applications could inadvertently step on each other if they -change some globals. Even worse, the first application that triggers a -global to be allocated and initialized has the allocated memory charged to -itself. Now when that application unloads, NetWare will clean up all the -applicaton's memory. The global pointer variables inside OpenSSL now -point to freed memory. An abend waiting to happen! - -To work correctly in the kernel, library NLM(s) that use globals need to -provide a set of globals (instance data) for each application. Another -option is to require the library only be loaded in a protected address -space along with the application using it. - -Modifying the OpenSSL code to provide a set of globals (instance data) for -each application isn't technically difficult, but due to the large number -globals it would require substantial code changes and it wasn't done. Hence, -the build currently only builds static libraries which are then linked -into each application. - -NOTE: If you are building a library NLM that uses the OpenSSL static -libraries, you will still have to deal with the global variable issue. -This is because when you link in the OpenSSL code you bring in all the -globals. One possible solution for the global pointer variables is to -register memory functions with OpenSSL which allocate memory and charge it -to your library NLM (see the function CRYPTO_set_mem_functions). However, -be aware that now all memory allocated by OpenSSL is charged to your NLM. - - -CodeWarrior Tools and W2K ---------------------------- -There have been problems reported with the CodeWarrior Linker -(mwldnlm.exe) in the PDK 2.1 for NetWare when running on Windows 2000. The -problems cause the link step to fail. The only work around is to obtain an -updated linker from Metrowerks. It is expected Metrowerks will release -PDK 3.0 (in beta testing at this time - May, 2001) in the near future which -will fix these problems. - - -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_xxxx.mak vclean) and retry. - - -"Undefined Symbol" Linker errors --------------------------------- -There have been linker errors reported when doing a CLIB build. The problems -occur because some versions of the CLIB SDK import files inadvertently -left out some symbols. One symbol in particular is "_lrotl". The missing -functions are actually delivered in the binaries, but they were left out of -the import files. The issues should be fixed in the September 2001 release -of the NDK. If you experience the problems you can temporarily -work around it by manually adding the missing symbols to your version of -"clib.imp". - diff --git a/INSTALL.OS2 b/INSTALL.OS2 deleted file mode 100644 index 530316db18..0000000000 --- a/INSTALL.OS2 +++ /dev/null @@ -1,31 +0,0 @@ - - Installation on OS/2 - -------------------- - - You need to have the following tools installed: - - * EMX GCC - * PERL - * GNU make - - - To build the makefile, run - - > os2\os2-emx - - This will configure OpenSSL and create OS2-EMX.mak which you then use to - build the OpenSSL libraries & programs by running - - > make -f os2-emx.mak - - If that finishes successfully you will find the libraries and programs in the - "out" directory. - - Alternatively, you can make a dynamic build that puts the library code into - crypto.dll and ssl.dll by running - - > make -f os2-emx-dll.mak - - This will build the above mentioned dlls and a matching pair of import - libraries in the "out_dll" directory along with the set of test programs - and the openssl application. diff --git a/Netware/build.bat b/Netware/build.bat deleted file mode 100644 index 3125c2a487..0000000000 --- a/Netware/build.bat +++ /dev/null @@ -1,235 +0,0 @@ -@echo off - -rem ======================================================================== -rem Batch file to automate building OpenSSL for NetWare. -rem -rem usage: -rem build [target] [debug opts] [assembly opts] [configure opts] -rem -rem target - "netware-clib" - CLib NetWare build (WinSock 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 -rem assembly opts - "nw-mwasm" - use Metrowerks assembler -rem - "nw-nasm" - use NASM assembler -rem - "no-asm" - don't use assembly -rem -rem configure opts- all unrecognized arguments are passed to the -rem perl configure script -rem -rem If no arguments are specified the default is to build non-debug with -rem no assembly. NOTE: there is no default BLD_TARGET. -rem - - - -rem No assembly is the default - Uncomment section below to change -rem the assembler default -set ASM_MODE= -set ASSEMBLER= -set NO_ASM=no-asm - -rem Uncomment to default to the Metrowerks assembler -rem set ASM_MODE=nw-mwasm -rem set ASSEMBLER=Metrowerks -rem set NO_ASM= - -rem Uncomment to default to the NASM assembler -rem set ASM_MODE=nw-nasm -rem set ASSEMBLER=NASM -rem set NO_ASM= - -rem No default Bld target -set BLD_TARGET=no_target -rem set BLD_TARGET=netware-clib -rem set BLD_TARGET=netware-libc - - -rem Default to build non-debug -set DEBUG= - -rem Uncomment to default to debug build -rem set DEBUG=debug - - -set CONFIG_OPTS= -set ARG_PROCESSED=NO - - -rem Process command line args -:opts -if "a%1" == "a" goto endopt -if "%1" == "no-asm" set NO_ASM=no-asm -if "%1" == "no-asm" set ARG_PROCESSED=YES -if "%1" == "debug" set DEBUG=debug -if "%1" == "debug" set ARG_PROCESSED=YES -if "%1" == "nw-nasm" set ASM_MODE=nw-nasm -if "%1" == "nw-nasm" set ASSEMBLER=NASM -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 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 -if "%1" == "netware-libc-bsdsock" set ARG_PROCESSED=YES - -rem If we didn't recognize the argument, consider it an option for config -if "%ARG_PROCESSED%" == "NO" set CONFIG_OPTS=%CONFIG_OPTS% %1 -if "%ARG_PROCESSED%" == "YES" set ARG_PROCESSED=NO - -shift -goto opts -:endopt - -rem make sure a valid BLD_TARGET was specified -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 -if "%DEBUG%" == "debug" set NLM_MAKE=%NLM_MAKE%_dbg.mak - -if "%NO_ASM%" == "no-asm" set ASM_MODE= -if "%NO_ASM%" == "no-asm" set ASSEMBLER= -if "%NO_ASM%" == "no-asm" set CONFIG_OPTS=%CONFIG_OPTS% no-asm -if "%NO_ASM%" == "no-asm" goto do_config - - -rem ================================================== -echo Generating x86 for %ASSEMBLER% assembler - -echo Bignum -cd crypto\bn\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 -cd crypto\des\asm -perl des-586.pl %ASM_MODE% > d-nw.asm -cd ..\..\.. - -echo "crypt(3)" - -cd crypto\des\asm -perl crypt586.pl %ASM_MODE% > y-nw.asm -cd ..\..\.. - -echo Blowfish - -cd crypto\bf\asm -perl bf-586.pl %ASM_MODE% > b-nw.asm -cd ..\..\.. - -echo CAST5 -cd crypto\cast\asm -perl cast-586.pl %ASM_MODE% > c-nw.asm -cd ..\..\.. - -echo RC4 -cd crypto\rc4\asm -perl rc4-586.pl %ASM_MODE% > r4-nw.asm -cd ..\..\.. - -echo MD5 -cd crypto\md5\asm -perl md5-586.pl %ASM_MODE% > m5-nw.asm -cd ..\..\.. - -echo SHA1 -cd crypto\sha\asm -perl sha1-586.pl %ASM_MODE% > s1-nw.asm -perl sha256-586.pl %ASM_MODE% > sha256-nw.asm -perl sha512-586.pl %ASM_MODE% > sha512-nw.asm -cd ..\..\.. - -echo RIPEMD160 -cd crypto\ripemd\asm -perl rmd-586.pl %ASM_MODE% > rm-nw.asm -cd ..\..\.. - -echo RC5\32 -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 - -echo . -echo configure options: %CONFIG_OPTS% %BLD_TARGET% -echo . -perl configure %CONFIG_OPTS% %BLD_TARGET% - -perl util\mkfiles.pl >MINFO - -echo . -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: make -f %NLM_MAKE%) -goto end - -rem =============================================================== -rem -:no_target -echo . -echo . No build target specified!!! -echo . -echo . usage: build [target] [debug opts] [assembly opts] [configure opts] -echo . -echo . target - "netware-clib" - CLib NetWare build (WinSock 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 . -echo . assembly opts - "nw-mwasm" - use Metrowerks assembler -echo . "nw-nasm" - use NASM assembler -echo . "no-asm" - don't use assembly -echo . -echo . configure opts- all unrecognized arguments are passed to the -echo . perl configure script -echo . -echo . If no debug or assembly opts are specified the default is to build -echo . non-debug without assembly -echo . - - -:end diff --git a/Netware/cpy_tests.bat b/Netware/cpy_tests.bat deleted file mode 100644 index 1583f28067..0000000000 --- a/Netware/cpy_tests.bat +++ /dev/null @@ -1,113 +0,0 @@ -@echo off - -rem Batch file to copy OpenSSL stuff to a NetWare server for testing - -rem This batch file will create an "opensssl" directory at the root of the -rem specified NetWare drive and copy the required files to run the tests. -rem It should be run from inside the "openssl\netware" subdirectory. - -rem Usage: -rem cpy_tests.bat -rem - out_nw.dbg | out_nw -rem - any mapped drive letter -rem -rem example ( copy from debug build to m: dirve ): -rem cpy_tests.bat out_nw.dbg m: -rem -rem CAUTION: If a directory named OpenSSL exists on the target drive -rem it will be deleted first. - - -if "%1" == "" goto usage -if "%2" == "" goto usage - -rem Assume running in \openssl directory unless cpy_tests.bat exists then -rem it must be the \openssl\netware directory -set loc=. -if exist cpy_tests.bat set loc=.. - -rem make sure the local build subdirectory specified is valid -if not exist %loc%\%1\NUL goto invalid_dir - -rem make sure target drive is valid -if not exist %2\NUL goto invalid_drive - -rem If an OpenSSL directory exists on the target drive, remove it -if exist %2\openssl\NUL goto remove_openssl -goto do_copy - -:remove_openssl -echo . -echo OpenSSL directory exists on %2 - it will be removed! -pause -rmdir %2\openssl /s /q - -:do_copy -rem make an "openssl" directory and others at the root of the NetWare drive -mkdir %2\openssl -mkdir %2\openssl\test_out -mkdir %2\openssl\apps -mkdir %2\openssl\certs -mkdir %2\openssl\test - - -rem copy the test nlms -copy %loc%\%1\*.nlm %2\openssl\ - -rem copy the test perl script -copy %loc%\netware\do_tests.pl %2\openssl\ - -rem copy the certs directory stuff -xcopy %loc%\certs\*.* %2\openssl\certs\ /s - -rem copy the test directory stuff -copy %loc%\test\CAss.cnf %2\openssl\test\ -copy %loc%\test\Uss.cnf %2\openssl\test\ -copy %loc%\test\pkcs7.pem %2\openssl\test\ -copy %loc%\test\pkcs7-1.pem %2\openssl\test\ -copy %loc%\test\testcrl.pem %2\openssl\test\ -copy %loc%\test\testp7.pem %2\openssl\test\ -copy %loc%\test\testreq2.pem %2\openssl\test\ -copy %loc%\test\testrsa.pem %2\openssl\test\ -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\ -copy %loc%\apps\server.pem %2\openssl\apps\ -copy %loc%\apps\openssl.cnf %2\openssl\apps\ - -echo . -echo Tests copied -echo Run the test script at the console by typing: -echo "Perl \openssl\do_tests.pl" -echo . -echo Make sure the Search path includes the OpenSSL subdirectory - -goto end - -:invalid_dir -echo. -echo Invalid build directory specified: %1 -echo. -goto usage - -:invalid_drive -echo. -echo Invalid drive: %2 -echo. -goto usage - -:usage -echo. -echo usage: cpy_tests.bat [test subdirectory] [NetWare drive] -echo [test subdirectory] - out_nw_clib.dbg, out_nw_libc.dbg, etc. -echo [NetWare drive] - any mapped drive letter -echo. -echo example: cpy_test out_nw_clib.dbg M: -echo (copy from clib debug build area to M: drive) - -:end diff --git a/Netware/do_tests.pl b/Netware/do_tests.pl deleted file mode 100644 index f8909a43cc..0000000000 --- a/Netware/do_tests.pl +++ /dev/null @@ -1,592 +0,0 @@ -# perl script to run OpenSSL tests - - -my $base_path = "\\openssl"; - -my $output_path = "$base_path\\test_out"; -my $cert_path = "$base_path\\certs"; -my $test_path = "$base_path\\test"; -my $app_path = "$base_path\\apps"; - -my $tmp_cert = "$output_path\\cert.tmp"; -my $OpenSSL_config = "$app_path\\openssl.cnf"; -my $log_file = "$output_path\\tests.log"; - -my $pause = 0; - - -# process the command line args to see if they wanted us to pause -# between executing each command -foreach $i (@ARGV) -{ - if ($i =~ /^-p$/) - { $pause=1; } -} - - - -main(); - - -############################################################################ -sub main() -{ - # delete all the output files in the output directory - unlink <$output_path\\*.*>; - - # 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(); - ssl_tests(); - - close(OUT); - - print("\nCompleted running tests.\n\n"); - print("Check log file for errors: $log_file\n"); -} - -############################################################################ -sub algorithm_tests -{ - my $i; - my $outFile; - 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"); - - print( OUT "\n========================================================\n"); - print( OUT "CRYPTO ALGORITHM TESTS:\n\n"); - - foreach $i (@tests) - { - if (-e "$base_path\\$i.nlm") - { - $outFile = "$output_path\\$i.out"; - system("$i (CLIB_OPT)/>$outFile"); - log_desc("Test: $i\.nlm:"); - log_output("", $outFile ); - } - else - { - log_desc("Test: $i\.nlm: file not found"); - } - } -} - -############################################################################ -sub encryption_tests -{ - my $i; - my $outFile; - my @enc_tests = ( "enc", "rc4", "des-cfb", "des-ede-cfb", "des-ede3-cfb", - "des-ofb", "des-ede-ofb", "des-ede3-ofb", - "des-ecb", "des-ede", "des-ede3", "des-cbc", - "des-ede-cbc", "des-ede3-cbc", "idea-ecb", "idea-cfb", - "idea-ofb", "idea-cbc", "rc2-ecb", "rc2-cfb", - "rc2-ofb", "rc2-cbc", "bf-ecb", "bf-cfb", - "bf-ofb", "bf-cbc" ); - - my $input = "$base_path\\do_tests.pl"; - my $cipher = "$output_path\\cipher.out"; - my $clear = "$output_path\\clear.out"; - - print( "\nRUNNING ENCRYPTION & DECRYPTION TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "FILE ENCRYPTION & DECRYPTION TESTS:\n\n"); - - foreach $i (@enc_tests) - { - log_desc("Testing: $i"); - - # do encryption - $outFile = "$output_path\\enc.out"; - 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 (CLIB_OPT)/>$outFile"); - log_output("Decrypting: $cipher --> $clear", $outFile); - - # compare files - $x = compare_files( $input, $clear, 1); - if ( $x == 0 ) - { - print( "\rSUCCESS - files match: $input, $clear\n"); - print( OUT "SUCCESS - files match: $input, $clear\n"); - } - else - { - print( "\rERROR: files don't match\n"); - print( OUT "ERROR: files don't match\n"); - } - - do_wait(); - - # Now do the same encryption but use Base64 - - # do encryption B64 - $outFile = "$output_path\\B64enc.out"; - 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 (CLIB_OPT)/>$outFile"); - log_output("Decrypting(B64): $cipher --> $clear", $outFile); - - # compare files - $x = compare_files( $input, $clear, 1); - if ( $x == 0 ) - { - print( "\rSUCCESS - files match: $input, $clear\n"); - print( OUT "SUCCESS - files match: $input, $clear\n"); - } - else - { - print( "\rERROR: files don't match\n"); - print( OUT "ERROR: files don't match\n"); - } - - do_wait(); - - } # end foreach - - # delete the temporary files - unlink($cipher); - unlink($clear); -} - - -############################################################################ -sub pem_tests -{ - my $i; - my $tmp_out; - my $outFile = "$output_path\\pem.out"; - - my %pem_tests = ( - "crl" => "testcrl.pem", - "pkcs7" => "testp7.pem", - "req" => "testreq2.pem", - "rsa" => "testrsa.pem", - "x509" => "testx509.pem", - "x509" => "v3-cert1.pem", - "sess_id" => "testsid.pem" ); - - - print( "\nRUNNING PEM TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "PEM TESTS:\n\n"); - - foreach $i (keys(%pem_tests)) - { - log_desc( "Testing: $i"); - - my $input = "$test_path\\$pem_tests{$i}"; - - $tmp_out = "$output_path\\$pem_tests{$i}"; - - if ($i ne "req" ) - { - 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 (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( "\rSUCCESS - files match: $input, $tmp_out\n"); - print( OUT "SUCCESS - files match: $input, $tmp_out\n"); - } - else - { - print( "\rERROR: files don't match\n"); - print( OUT "ERROR: files don't match\n"); - } - do_wait(); - - } # end foreach -} - - -############################################################################ -sub verify_tests -{ - my $i; - my $outFile = "$output_path\\verify.out"; - - $cert_path =~ s/\\/\//g; - my @cert_files = <$cert_path/*.pem>; - - print( "\nRUNNING VERIFY TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "VERIFY TESTS:\n\n"); - - make_tmp_cert_file(); - - foreach $i (@cert_files) - { - system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile"); - log_desc("Verifying cert: $i"); - log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile); - } -} - - -############################################################################ -sub ssl_tests -{ - my $outFile = "$output_path\\ssl_tst.out"; - my($CAcert) = "$output_path\\certCA.ss"; - my($Ukey) = "$output_path\\keyU.ss"; - my($Ucert) = "$output_path\\certU.ss"; - my($ssltest)= "ssltest -key $Ukey -cert $Ucert -c_key $Ukey -c_cert $Ucert -CAfile $CAcert"; - - print( "\nRUNNING SSL TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "SSL TESTS:\n\n"); - - system("ssltest -ssl3 (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3:"); - log_output("ssltest -ssl3", $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 (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3 with client authentication:"); - log_output("$ssltest -ssl3 -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 (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3:"); - log_output("ssltest", $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 (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3 with client authentication:"); - log_output("$ssltest -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 -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 -ssl3 (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3 via BIO pair:"); - log_output("ssltest -bio_pair -ssl3", $outFile); - - system("$ssltest -bio_pair -ssl3 -server_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3 with server authentication via BIO pair:"); - log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile); - - system("$ssltest -bio_pair -ssl3 -client_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3 with client authentication via BIO pair:"); - log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile); - - system("$ssltest -bio_pair -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv3 with both client and server authentication via BIO pair:"); - log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile); - - system("ssltest -bio_pair (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3 via BIO pair:"); - log_output("ssltest -bio_pair", $outFile); - - system("$ssltest -bio_pair -server_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:"); - log_output("$ssltest -bio_pair -server_auth", $outFile); - - system("$ssltest -bio_pair -client_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:"); - log_output("$ssltest -bio_pair -client_auth", $outFile); - - system("$ssltest -bio_pair -server_auth -client_auth (CLIB_OPT)/>$outFile"); - log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:"); - log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile); -} - - -############################################################################ -sub ca_tests -{ - my $outFile = "$output_path\\ca_tst.out"; - - my($CAkey) = "$output_path\\keyCA.ss"; - my($CAcert) = "$output_path\\certCA.ss"; - my($CAserial) = "$output_path\\certCA.srl"; - my($CAreq) = "$output_path\\reqCA.ss"; - my($CAreq2) = "$output_path\\req2CA.ss"; - - my($CAconf) = "$test_path\\CAss.cnf"; - - my($Uconf) = "$test_path\\Uss.cnf"; - - my($Ukey) = "$output_path\\keyU.ss"; - my($Ureq) = "$output_path\\reqU.ss"; - my($Ucert) = "$output_path\\certU.ss"; - - print( "\nRUNNING CA TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "CA TESTS:\n"); - - system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new (CLIB_OPT)/>$outFile"); - log_desc("Make a certificate request using req:"); - log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile); - - system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey (CLIB_OPT)/>$outFile"); - log_desc("Convert the certificate request into a self signed certificate using x509:"); - log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile); - - system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 (CLIB_OPT)/>$outFile"); - log_desc("Convert a certificate into a certificate request using 'x509':"); - log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile); - - system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout (CLIB_OPT)/>$outFile"); - log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile); - - system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout (CLIB_OPT)/>$outFile"); - log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile); - - system("openssl2 verify -CAfile $CAcert $CAcert (CLIB_OPT)/>$outFile"); - log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile); - - system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new (CLIB_OPT)/>$outFile"); - log_desc("Make another certificate request using req:"); - log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile); - - system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial (CLIB_OPT)/>$outFile"); - log_desc("Sign certificate request with the just created CA via x509:"); - log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile); - - system("openssl2 verify -CAfile $CAcert $Ucert (CLIB_OPT)/>$outFile"); - log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile); - - system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert (CLIB_OPT)/>$outFile"); - log_desc("Certificate details"); - log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile); - - print(OUT "--\n"); - print(OUT "The generated CA certificate is $CAcert\n"); - print(OUT "The generated CA private key is $CAkey\n"); - print(OUT "The current CA signing serial number is in $CAserial\n"); - - print(OUT "The generated user certificate is $Ucert\n"); - print(OUT "The generated user private key is $Ukey\n"); - print(OUT "--\n"); -} - -############################################################################ -sub evp_tests -{ - my $i = 'evp_test'; - - print( "\nRUNNING EVP TESTS:\n\n"); - - print( OUT "\n========================================================\n"); - print( OUT "EVP TESTS:\n\n"); - - if (-e "$base_path\\$i.nlm") - { - my $outFile = "$output_path\\$i.out"; - system("$i $test_path\\evptests.txt (CLIB_OPT)/>$outFile"); - log_desc("Test: $i\.nlm:"); - log_output("", $outFile ); - } - else - { - log_desc("Test: $i\.nlm: file not found"); - } -} - -############################################################################ -sub log_output( $ $ ) -{ - my( $desc, $file ) = @_; - my($error) = 0; - my($key); - my($msg); - - if ($desc) - { - print("\r$desc\n"); - print(OUT "$desc\n"); - } - - # loop waiting for test program to complete - while ( stat($file) == 0) - { print(". "); sleep(1); } - - - # copy test output to log file - open(IN, "<$file"); - while () - { - print(OUT $_); - if ( $_ =~ /ERROR/ ) - { - $error = 1; - } - } - # close and delete the temporary test output file - close(IN); - unlink($file); - - if ( $error == 0 ) - { - $msg = "Test Succeeded"; - } - else - { - $msg = "Test Failed"; - } - - print(OUT "$msg\n"); - - if ($pause) - { - print("$msg - press ENTER to continue..."); - $key = getc; - print("\n"); - } - - # Several of the testing scripts run a loop loading the - # same NLM with different options. - # On slow NetWare machines there appears to be some delay in the - # OS actually unloading the test nlms and the OS complains about. - # the NLM already being loaded. This additional pause is to - # to help provide a little more time for unloading before trying to - # load again. - sleep(1); -} - - -############################################################################ -sub log_desc( $ ) -{ - my( $desc ) = @_; - - print("\n"); - print("$desc\n"); - - print(OUT "\n"); - print(OUT "$desc\n"); - print(OUT "======================================\n"); -} - -############################################################################ -sub compare_files( $ $ $ ) -{ - my( $file1, $file2, $binary ) = @_; - my( $n1, $n2, $b1, $b2 ); - my($ret) = 1; - - open(IN0, $file1) || die "\nunable to open $file1\n"; - open(IN1, $file2) || die "\nunable to open $file2\n"; - - if ($binary) - { - binmode IN0; - binmode IN1; - } - - for (;;) - { - $n1 = read(IN0, $b1, 512); - $n2 = read(IN1, $b2, 512); - - if ($n1 != $n2) {last;} - if ($b1 != $b2) {last;} - - if ($n1 == 0) - { - $ret = 0; - last; - } - } - close(IN0); - close(IN1); - return($ret); -} - -############################################################################ -sub do_wait() -{ - my($key); - - if ($pause) - { - print("Press ENTER to continue..."); - $key = getc; - print("\n"); - } -} - - -############################################################################ -sub make_tmp_cert_file() -{ - my @cert_files = <$cert_path/*.pem>; - - # delete the file if it already exists - unlink($tmp_cert); - - open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n"; - - print("building temporary cert file\n"); - - # create a temporary cert file that contains all the certs - foreach $i (@cert_files) - { - open( IN_CERT, $i ) || die "\nunable to open $i\n"; - - for(;;) - { - $n = sysread(IN_CERT, $data, 1024); - - if ($n == 0) - { - close(IN_CERT); - last; - }; - - syswrite(TMP_CERT, $data, $n); - } - } - - close( TMP_CERT ); -} diff --git a/Netware/globals.txt b/Netware/globals.txt deleted file mode 100644 index 7d1bd7ed0f..0000000000 --- a/Netware/globals.txt +++ /dev/null @@ -1,254 +0,0 @@ -An initial review of the OpenSSL code was done to determine how many -global variables where present. The idea was to determine the amount of -work required to pull the globals into an instance data structure in -order to build a Library NLM for NetWare. This file contains the results -of the review. Each file is listed along with the globals in the file. -The initial review was done very quickly so this list is probably -not a comprehensive list. - - -cryptlib.c -=========================================== - -static STACK *app_locks=NULL; - -static STACK_OF(CRYPTO_dynlock) *dyn_locks=NULL; - -static void (MS_FAR *locking_callback)(int mode,int type, - const char *file,int line)=NULL; -static int (MS_FAR *add_lock_callback)(int *pointer,int amount, - int type,const char *file,int line)=NULL; -static unsigned long (MS_FAR *id_callback)(void)=NULL; -static struct CRYPTO_dynlock_value *(MS_FAR *dynlock_create_callback) - (const char *file,int line)=NULL; -static void (MS_FAR *dynlock_lock_callback)(int mode, - struct CRYPTO_dynlock_value *l, const char *file,int line)=NULL; -static void (MS_FAR *dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l, - const char *file,int line)=NULL; - - -mem.c -=========================================== -static int allow_customize = 1; /* we provide flexible functions for */ -static int allow_customize_debug = 1;/* exchanging memory-related functions at - -/* may be changed as long as `allow_customize' is set */ -static void *(*malloc_locked_func)(size_t) = malloc; -static void (*free_locked_func)(void *) = free; -static void *(*malloc_func)(size_t) = malloc; -static void *(*realloc_func)(void *, size_t)= realloc; -static void (*free_func)(void *) = free; - -/* use default functions from mem_dbg.c */ -static void (*malloc_debug_func)(void *,int,const char *,int,int) - = CRYPTO_dbg_malloc; -static void (*realloc_debug_func)(void *,void *,int,const char *,int,int) - = CRYPTO_dbg_realloc; -static void (*free_debug_func)(void *,int) = CRYPTO_dbg_free; -static void (*set_debug_options_func)(long) = CRYPTO_dbg_set_options; -static long (*get_debug_options_func)(void) = CRYPTO_dbg_get_options; - - -mem_dbg.c -=========================================== -static int mh_mode=CRYPTO_MEM_CHECK_OFF; -static unsigned long order = 0; /* number of memory requests */ -static LHASH *mh=NULL; /* hash-table of memory requests (address as key) */ - -static LHASH *amih=NULL; /* hash-table with those app_mem_info_st's */ -static long options = /* extra information to be recorded */ -static unsigned long disabling_thread = 0; - - -err.c -=========================================== -static LHASH *error_hash=NULL; -static LHASH *thread_hash=NULL; - -several files have routines with static "init" to track if error strings - have been loaded ( may not want separate error strings for each process ) - The "init" variable can't be left "global" because the error has is a ptr - that is malloc'ed. The malloc'ed error has is dependant on the "init" - vars. - - files: - pem_err.c - cpt_err.c - pk12err.c - asn1_err.c - bio_err.c - bn_err.c - buf_err.c - comp_err.c - conf_err.c - cpt_err.c - dh_err.c - dsa_err.c - dso_err.c - evp_err.c - obj_err.c - pkcs7err.c - rand_err.c - rsa_err.c - rsar_err.c - ssl_err.c - x509_err.c - v3err.c - err.c - -These file have similar "init" globals but they are for other stuff not -error strings: - - bn_lib.c - ecc_enc.c - s23_clnt.c - s23_meth.c - s23_srvr.c - s2_clnt.c - s2_lib.c - s2_meth.c - s2_srvr.c - s3_clnt.c - s3_lib.c - s3_srvr.c - t1_clnt.c - t1_meth.c - t1_srvr.c - -rand_lib.c -=========================================== -static RAND_METHOD *rand_meth= &rand_ssleay_meth; - -md_rand.c -=========================================== -static int state_num=0,state_index=0; -static unsigned char state[STATE_SIZE+MD_DIGEST_LENGTH]; -static unsigned char md[MD_DIGEST_LENGTH]; -static long md_count[2]={0,0}; -static double entropy=0; -static int initialized=0; - -/* This should be set to 1 only when ssleay_rand_add() is called inside - an already locked state, so it doesn't try to lock and thereby cause - a hang. And it should always be reset back to 0 before unlocking. */ -static int add_do_not_lock=0; - -obj_dat.c -============================================ -static int new_nid=NUM_NID; -static LHASH *added=NULL; - -b_sock.c -=========================================== -static unsigned long BIO_ghbn_hits=0L; -static unsigned long BIO_ghbn_miss=0L; -static struct ghbn_cache_st - { - char name[129]; - struct hostent *ent; - unsigned long order; - } ghbn_cache[GHBN_NUM]; - -static int wsa_init_done=0; - - -bio_lib.c -=========================================== -static STACK_OF(CRYPTO_EX_DATA_FUNCS) *bio_meth=NULL; -static int bio_meth_num=0; - - -bn_lib.c -======================================== -static int bn_limit_bits=0; -static int bn_limit_num=8; /* (1< - -double app_tminterval(int stop, int usertime) -{ - static clock_t tmstart; - static int warning = 1; - double ret = 0; - - if (usertime && warning) { - BIO_printf(bio_err, "To get meaningful results, run " - "this program on idle system.\n"); - warning = 0; - } - - if (stop == TM_START) - tmstart = clock(); - else - ret = (clock() - tmstart) / (double)CLOCKS_PER_SEC; - - return (ret); -} - - #elif defined(OPENSSL_SYSTEM_VXWORKS) # include diff --git a/apps/apps.h b/apps/apps.h index 3d146b10d8..e7ea46181c 100644 --- a/apps/apps.h +++ b/apps/apps.h @@ -128,9 +128,7 @@ # include # endif # include -# ifndef OPENSSL_SYS_NETWARE -# include -# endif +# include # if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINCE) # define openssl_fdset(a,b) FD_SET((unsigned int)a, b) diff --git a/apps/ca.c b/apps/ca.c index 4cd4aa1bcb..3062d7e054 100644 --- a/apps/ca.c +++ b/apps/ca.c @@ -81,7 +81,7 @@ # else # include # endif -# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_NETWARE) +# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS) # include # endif #endif diff --git a/apps/opt.c b/apps/opt.c index 3525b969c6..f4eba2dca0 100644 --- a/apps/opt.c +++ b/apps/opt.c @@ -78,7 +78,7 @@ static char prog[40]; /* * Return the simple name of the program; removing various platform gunk. */ -#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_WIN32) char *opt_progname(const char *argv0) { size_t i, n; @@ -97,11 +97,6 @@ char *opt_progname(const char *argv0) if (n > 4 && (strcmp(&p[n - 4], ".exe") == 0 || strcmp(&p[n - 4], ".EXE") == 0)) n -= 4; -#if defined(OPENSSL_SYS_NETWARE) - if (n > 4 && - (strcmp(&p[n - 4], ".nlm") == 0 || strcmp(&p[n - 4], ".NLM") == 0)) - n -= 4; -#endif /* Copy over the name, in lowercase. */ if (n > sizeof prog - 1) diff --git a/apps/s_apps.h b/apps/s_apps.h index c000aa13d2..b029635912 100644 --- a/apps/s_apps.h +++ b/apps/s_apps.h @@ -107,10 +107,6 @@ * Hudson (tjh@cryptsoft.com). * */ -/* conflicts with winsock2 stuff on netware */ -#if !defined(OPENSSL_SYS_NETWARE) -# include -#endif #include #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) diff --git a/apps/s_client.c b/apps/s_client.c index 20ede4b188..9f8a3c9181 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -906,7 +906,7 @@ int s_client_main(int argc, char **argv) ENGINE *ssl_client_engine = NULL; #endif ENGINE *e = NULL; -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) struct timeval tv; #endif char *servername = NULL; @@ -2210,7 +2210,7 @@ int s_client_main(int argc, char **argv) ssl_pending = read_ssl && SSL_has_pending(con); if (!ssl_pending) { -#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE) +#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) if (tty_on) { if (read_tty) openssl_fdset(fileno(stdin), &readfds); @@ -2268,17 +2268,6 @@ int s_client_main(int argc, char **argv) i = select(width, (void *)&readfds, (void *)&writefds, NULL, timeoutp); } -#elif defined(OPENSSL_SYS_NETWARE) - if (!write_tty) { - if (read_tty) { - tv.tv_sec = 1; - tv.tv_usec = 0; - i = select(width, (void *)&readfds, (void *)&writefds, - NULL, &tv); - } else - i = select(width, (void *)&readfds, (void *)&writefds, - NULL, timeoutp); - } #else i = select(width, (void *)&readfds, (void *)&writefds, NULL, timeoutp); @@ -2360,7 +2349,7 @@ int s_client_main(int argc, char **argv) goto shut; } } -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) /* Assume Windows/DOS/BeOS can always write */ else if (!ssl_pending && write_tty) #else @@ -2455,8 +2444,6 @@ int s_client_main(int argc, char **argv) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) # endif -#elif defined (OPENSSL_SYS_NETWARE) - else if (_kbhit()) #else else if (FD_ISSET(fileno(stdin), &readfds)) #endif diff --git a/apps/s_server.c b/apps/s_server.c index e77f2f4fa7..e660eecaa1 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -147,11 +147,6 @@ #include -/* conflicts with winsock2 stuff on netware */ -#if !defined(OPENSSL_SYS_NETWARE) -# include -#endif - /* * With IPv6, it looks like Digital has mixed up the proper order of * recursive header file inclusion, resulting in the compiler complaining @@ -2112,7 +2107,7 @@ static int sv_body(int s, int stype, unsigned char *context) SSL *con = NULL; BIO *sbio; struct timeval timeout; -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) struct timeval tv; #else struct timeval *timeoutp; @@ -2228,7 +2223,7 @@ static int sv_body(int s, int stype, unsigned char *context) if (!read_from_sslcon) { FD_ZERO(&readfds); -#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE) +#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) openssl_fdset(fileno(stdin), &readfds); #endif openssl_fdset(s, &readfds); @@ -2239,7 +2234,7 @@ static int sv_body(int s, int stype, unsigned char *context) * if you do have a cast then you can either go for (int *) or * (void *). */ -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) /* * Under DOS (non-djgpp) and Windows we can't select on stdin: * only on sockets. As a workaround we timeout the select every @@ -2793,9 +2788,7 @@ static int www_body(int s, int stype, unsigned char *context) continue; } #endif -#if defined(OPENSSL_SYS_NETWARE) - delay(1000); -#elif !defined(OPENSSL_SYS_MSDOS) +#if !defined(OPENSSL_SYS_MSDOS) sleep(1); #endif continue; @@ -3186,9 +3179,7 @@ static int rev_body(int s, int stype, unsigned char *context) continue; } #endif -#if defined(OPENSSL_SYS_NETWARE) - delay(1000); -#elif !defined(OPENSSL_SYS_MSDOS) +#if !defined(OPENSSL_SYS_MSDOS) sleep(1); #endif continue; diff --git a/apps/speed.c b/apps/speed.c index b6843ec38e..230ed62e04 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -91,10 +91,6 @@ # include OPENSSL_UNISTD #endif -#ifndef OPENSSL_SYS_NETWARE -# include -#endif - #if defined(_WIN32) # include #endif @@ -165,7 +161,7 @@ #include #ifndef HAVE_FORK -# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE) +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) # define HAVE_FORK 0 # else # define HAVE_FORK 1 diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index 50bd27dabd..046de99190 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -72,7 +72,7 @@ NETDB_DEFINE_CONTEXT # else # define MAX_LISTEN 32 # endif -# if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)) +# if defined(OPENSSL_SYS_WINDOWS) static int wsa_init_done = 0; # endif @@ -202,23 +202,6 @@ int BIO_sock_init(void) return (-1); # endif -# if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK) - WORD wVerReq; - WSADATA wsaData; - int err; - - if (!wsa_init_done) { - wsa_init_done = 1; - wVerReq = MAKEWORD(2, 0); - err = WSAStartup(wVerReq, &wsaData); - if (err != 0) { - SYSerr(SYS_F_WSASTARTUP, err); - BIOerr(BIO_F_BIO_SOCK_INIT, BIO_R_WSASTARTUP); - return (-1); - } - } -# endif - return (1); } @@ -229,11 +212,6 @@ void BIO_sock_cleanup(void) wsa_init_done = 0; WSACleanup(); } -# elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK) - if (wsa_init_done) { - wsa_init_done = 0; - WSACleanup(); - } # endif } diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index 2689a283b8..d53d52bd14 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -87,10 +87,6 @@ # include "bio_lcl.h" # include -# if defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_CLIB) -# include -# endif - # if !defined(OPENSSL_NO_STDIO) static int file_write(BIO *h, const char *buf, int num); @@ -331,13 +327,6 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) _setmode(fd, _O_TEXT); else _setmode(fd, _O_BINARY); -# elif defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_CLIB) - int fd = fileno((FILE *)ptr); - /* Under CLib there are differences in file modes */ - if (num & BIO_FP_TEXT) - setmode(fd, O_TEXT); - else - setmode(fd, O_BINARY); # elif defined(OPENSSL_SYS_MSDOS) int fd = fileno((FILE *)ptr); /* Set correct text/binary mode */ @@ -351,7 +340,7 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) } else _setmode(fd, _O_BINARY); } -# elif defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_WIN32_CYGWIN) +# elif defined(OPENSSL_SYS_WIN32_CYGWIN) int fd = fileno((FILE *)ptr); if (num & BIO_FP_TEXT) setmode(fd, O_TEXT); @@ -379,13 +368,7 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) ret = 0; break; } -# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_WIN32_CYGWIN) - if (!(num & BIO_FP_TEXT)) - strcat(p, "b"); - else - strcat(p, "t"); -# endif -# if defined(OPENSSL_SYS_NETWARE) +# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32_CYGWIN) if (!(num & BIO_FP_TEXT)) strcat(p, "b"); else diff --git a/crypto/bio/bss_sock.c b/crypto/bio/bss_sock.c index 428c514e31..8d87c8c338 100644 --- a/crypto/bio/bss_sock.c +++ b/crypto/bio/bss_sock.c @@ -222,7 +222,7 @@ int BIO_sock_should_retry(int i) int BIO_sock_non_fatal_error(int err) { switch (err) { -# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE) +# if defined(OPENSSL_SYS_WINDOWS) # if defined(WSAEWOULDBLOCK) case WSAEWOULDBLOCK: # endif diff --git a/crypto/o_time.c b/crypto/o_time.c index 59d759f4ea..75aa2e56a2 100644 --- a/crypto/o_time.c +++ b/crypto/o_time.c @@ -83,7 +83,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) { struct tm *ts = NULL; -#if defined(OPENSSL_THREADS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_OS2) && (!defined(OPENSSL_SYS_VMS) || defined(gmtime_r)) && !defined(OPENSSL_SYS_MACOSX) +#if defined(OPENSSL_THREADS) && !defined(OPENSSL_SYS_WIN32) && (!defined(OPENSSL_SYS_VMS) || defined(gmtime_r)) && !defined(OPENSSL_SYS_MACOSX) /* * should return &data, but doesn't on some systems, so we don't even * look at the return value diff --git a/crypto/pkcs7/bio_pk7.c b/crypto/pkcs7/bio_pk7.c index d0e5d61c70..6014b12407 100644 --- a/crypto/pkcs7/bio_pk7.c +++ b/crypto/pkcs7/bio_pk7.c @@ -56,7 +56,7 @@ #include #include -#if !defined(OPENSSL_SYS_NETWARE) && !defined(OPENSSL_SYS_VXWORKS) +#if !defined(OPENSSL_SYS_VXWORKS) # include #endif #include diff --git a/crypto/rand/Makefile.in b/crypto/rand/Makefile.in index 8796faf895..095f0f002f 100644 --- a/crypto/rand/Makefile.in +++ b/crypto/rand/Makefile.in @@ -16,9 +16,9 @@ GENERAL=Makefile LIB=$(TOP)/libcrypto.a LIBSRC=md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \ - rand_win.c rand_unix.c rand_os2.c rand_nw.c + rand_win.c rand_unix.c LIBOBJ=md_rand.o randfile.o rand_lib.o rand_err.o rand_egd.o \ - rand_win.o rand_unix.o rand_os2.o rand_nw.o + rand_win.o rand_unix.o SRC= $(LIBSRC) diff --git a/crypto/rand/build.info b/crypto/rand/build.info index b0712b25b7..3ad50e2590 100644 --- a/crypto/rand/build.info +++ b/crypto/rand/build.info @@ -1,4 +1,4 @@ LIBS=../../libcrypto SOURCE[../../libcrypto]=\ md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \ - rand_win.c rand_unix.c rand_vms.c rand_os2.c rand_nw.c + rand_win.c rand_unix.c rand_vms.c diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c index 6f13717b5a..47a575235a 100644 --- a/crypto/rand/rand_egd.c +++ b/crypto/rand/rand_egd.c @@ -99,7 +99,7 @@ NON_EMPTY_TRANSLATION_UNIT * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_UEFI) +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_UEFI) int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) { return (-1); diff --git a/crypto/rand/rand_nw.c b/crypto/rand/rand_nw.c deleted file mode 100644 index e49498ec24..0000000000 --- a/crypto/rand/rand_nw.c +++ /dev/null @@ -1,178 +0,0 @@ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include "internal/cryptlib.h" -#include -#include "rand_lcl.h" - -#if defined (OPENSSL_SYS_NETWARE) - -# if defined(NETWARE_LIBC) -# include -# else -# include -# endif - -extern int GetProcessSwitchCount(void); -# if !defined(NETWARE_LIBC) || (CURRENT_NDK_THRESHOLD < 509220000) -extern void *RunningProcess; /* declare here same as found in newer NDKs */ -extern unsigned long GetSuperHighResolutionTimer(void); -# endif - - /* - * the FAQ indicates we need to provide at least 20 bytes (160 bits) of - * seed - */ -int RAND_poll(void) -{ - unsigned long l; - unsigned long tsc; - int i; - - /* - * There are several options to gather miscellaneous data but for now we - * will loop checking the time stamp counter (rdtsc) and the - * SuperHighResolutionTimer. Each iteration will collect 8 bytes of data - * but it is treated as only 1 byte of entropy. The call to - * ThreadSwitchWithDelay() will introduce additional variability into the - * data returned by rdtsc. Applications can argument the seed material - * by adding additional stuff with RAND_add() and should probably do so. - */ - l = GetProcessSwitchCount(); - RAND_add(&l, sizeof(l), 1); - - /* need to cast the void* to unsigned long here */ - l = (unsigned long)RunningProcess; - RAND_add(&l, sizeof(l), 1); - - for (i = 2; i < ENTROPY_NEEDED; i++) { -# ifdef __MWERKS__ - asm { - rdtsc mov tsc, eax} -# elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) - asm volatile ("rdtsc":"=a" (tsc)::"edx"); -# endif - - RAND_add(&tsc, sizeof(tsc), 1); - - l = GetSuperHighResolutionTimer(); - RAND_add(&l, sizeof(l), 0); - -# if defined(NETWARE_LIBC) - NXThreadYield(); -# else /* NETWARE_CLIB */ - ThreadSwitchWithDelay(); -# endif - } - - return 1; -} - -#endif diff --git a/crypto/rand/rand_os2.c b/crypto/rand/rand_os2.c deleted file mode 100644 index b3700553ef..0000000000 --- a/crypto/rand/rand_os2.c +++ /dev/null @@ -1,169 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include "internal/cryptlib.h" -#include -#include "rand_lcl.h" - -#ifdef OPENSSL_SYS_OS2 - -# define INCL_DOSPROCESS -# define INCL_DOSPROFILE -# define INCL_DOSMISC -# define INCL_DOSMODULEMGR -# include - -# define CMD_KI_RDCNT (0x63) - -typedef struct _CPUUTIL { - ULONG ulTimeLow; /* Low 32 bits of time stamp */ - ULONG ulTimeHigh; /* High 32 bits of time stamp */ - ULONG ulIdleLow; /* Low 32 bits of idle time */ - ULONG ulIdleHigh; /* High 32 bits of idle time */ - ULONG ulBusyLow; /* Low 32 bits of busy time */ - ULONG ulBusyHigh; /* High 32 bits of busy time */ - ULONG ulIntrLow; /* Low 32 bits of interrupt time */ - ULONG ulIntrHigh; /* High 32 bits of interrupt time */ -} CPUUTIL; - -# ifndef __KLIBC__ -APIRET APIENTRY(*DosPerfSysCall) (ULONG ulCommand, ULONG ulParm1, - ULONG ulParm2, ULONG ulParm3) = NULL; -APIRET APIENTRY(*DosQuerySysState) (ULONG func, ULONG arg1, ULONG pid, - ULONG _res_, PVOID buf, ULONG bufsz) = - NULL; -# endif -HMODULE hDoscalls = 0; - -int RAND_poll(void) -{ - char failed_module[20]; - QWORD qwTime; - ULONG SysVars[QSV_FOREGROUND_PROCESS]; - - if (hDoscalls == 0) { - ULONG rc = - DosLoadModule(failed_module, sizeof(failed_module), "DOSCALLS", - &hDoscalls); - -# ifndef __KLIBC__ - if (rc == 0) { - rc = DosQueryProcAddr(hDoscalls, 976, NULL, - (PFN *) & DosPerfSysCall); - - if (rc) - DosPerfSysCall = NULL; - - rc = DosQueryProcAddr(hDoscalls, 368, NULL, - (PFN *) & DosQuerySysState); - - if (rc) - DosQuerySysState = NULL; - } -# endif - } - - /* Sample the hi-res timer, runs at around 1.1 MHz */ - DosTmrQueryTime(&qwTime); - RAND_add(&qwTime, sizeof(qwTime), 2); - - /* - * Sample a bunch of system variables, includes various process & memory - * statistics - */ - DosQuerySysInfo(1, QSV_FOREGROUND_PROCESS, SysVars, sizeof(SysVars)); - RAND_add(SysVars, sizeof(SysVars), 4); - - /* - * If available, sample CPU registers that count at CPU MHz Only fairly - * new CPUs (PPro & K6 onwards) & OS/2 versions support this - */ - if (DosPerfSysCall) { - CPUUTIL util; - - if (DosPerfSysCall(CMD_KI_RDCNT, (ULONG) & util, 0, 0) == 0) { - RAND_add(&util, sizeof(util), 10); - } else { -# ifndef __KLIBC__ - DosPerfSysCall = NULL; -# endif - } - } - - /* - * DosQuerySysState() gives us a huge quantity of process, thread, memory - * & handle stats - */ - if (DosQuerySysState) { - char *buffer = OPENSSL_malloc(256 * 1024); - - if (buffer == NULL) - return 0; - - if (DosQuerySysState(0x1F, 0, 0, 0, buffer, 256 * 1024) == 0) { - /* - * First 4 bytes in buffer is a pointer to the thread count there - * should be at least 1 byte of entropy per thread - */ - RAND_add(buffer, 256 * 1024, **(ULONG **) buffer); - } - - OPENSSL_free(buffer); - return 1; - } - - return 0; -} - -#endif /* OPENSSL_SYS_OS2 */ diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c index 87a436d8ee..1aff4440fd 100644 --- a/crypto/rand/rand_unix.c +++ b/crypto/rand/rand_unix.c @@ -115,7 +115,7 @@ #include #include "rand_lcl.h" -#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_UEFI)) +#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)) # include # include @@ -414,9 +414,7 @@ int RAND_poll(void) #endif /* !(defined(OPENSSL_SYS_WINDOWS) || * defined(OPENSSL_SYS_WIN32) || * defined(OPENSSL_SYS_VMS) || - * defined(OPENSSL_SYS_OS2) || - * defined(OPENSSL_SYS_VXWORKS) || - * defined(OPENSSL_SYS_NETWARE)) */ + * defined(OPENSSL_SYS_VXWORKS) */ #if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) int RAND_poll(void) diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 9a4870803e..295449f3df 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -194,14 +194,13 @@ # define TERMIO # undef SGTTY /* - * We know that VMS, MSDOS, VXWORKS, NETWARE use entirely other mechanisms. + * We know that VMS, MSDOS, VXWORKS, use entirely other mechanisms. * MAC_OS_GUSI_SOURCE should probably go away, but that needs to be confirmed. */ # elif !defined(OPENSSL_SYS_VMS) \ && !defined(OPENSSL_SYS_MSDOS) \ && !defined(MAC_OS_GUSI_SOURCE) \ && !defined(OPENSSL_SYS_VXWORKS) \ - && !defined(OPENSSL_SYS_NETWARE) # define TERMIOS # undef TERMIO # undef SGTTY @@ -253,7 +252,7 @@ struct IOSB { }; #endif -#if defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE) +#if defined(MAC_OS_GUSI_SOURCE) /* * This one needs work. As a matter of fact the code is unoperational * and this is only a trick to get it compiled. @@ -465,7 +464,7 @@ static int open_console(UI *ui) CRYPTO_THREAD_write_lock(ui->lock); is_a_tty = 1; -#if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) +#if defined(OPENSSL_SYS_VXWORKS) tty_in = stdin; tty_out = stderr; #else diff --git a/crypto/uid.c b/crypto/uid.c index 6c3cd114a6..2093947cfc 100644 --- a/crypto/uid.c +++ b/crypto/uid.c @@ -64,7 +64,7 @@ int OPENSSL_issetugid(void) return issetugid(); } -#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) +#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) int OPENSSL_issetugid(void) { diff --git a/e_os.h b/e_os.h index 02c1ffd7a2..212a524a15 100644 --- a/e_os.h +++ b/e_os.h @@ -173,25 +173,6 @@ extern "C" { # define closesocket(s) close(s) # define readsocket(s,b,n) read((s),(b),(n)) # define writesocket(s,b,n) write((s),(char *)(b),(n)) -# elif defined(OPENSSL_SYS_NETWARE) -# if defined(NETWARE_BSDSOCK) -# define get_last_socket_error() errno -# define clear_socket_error() errno=0 -# define closesocket(s) close(s) -# define ioctlsocket(a,b,c) ioctl(a,b,c) -# if defined(NETWARE_LIBC) -# define readsocket(s,b,n) recv((s),(b),(n),0) -# define writesocket(s,b,n) send((s),(b),(n),0) -# else -# define readsocket(s,b,n) recv((s),(char*)(b),(n),0) -# define writesocket(s,b,n) send((s),(char*)(b),(n),0) -# endif -# else -# define get_last_socket_error() WSAGetLastError() -# define clear_socket_error() WSASetLastError(0) -# define readsocket(s,b,n) recv((s),(b),(n),0) -# define writesocket(s,b,n) send((s),(b),(n),0) -# endif # else # define get_last_socket_error() errno # define clear_socket_error() errno=0 @@ -399,27 +380,6 @@ extern FILE *_imp___iob; # define NO_SYS_PARAM_H # define NO_SYS_UN_H -# elif defined(OPENSSL_SYS_NETWARE) -# include -# include -# define NO_SYS_TYPES_H -# undef DEVRANDOM -# ifdef NETWARE_CLIB -# define getpid GetThreadID -extern int GetThreadID(void); -/* # include */ -extern int kbhit(void); -# else -# include -# endif -# define NO_SYSLOG -# define _setmode setmode -# define _kbhit kbhit -# define _O_TEXT O_TEXT -# define _O_BINARY O_BINARY -# define LIST_SEPARATOR_CHAR ';' -# define EXIT(n) { if (n) printf("ERROR: %d\n", (int)n); exit(n); } - # else /* !defined VMS */ # ifdef OPENSSL_UNISTD @@ -479,26 +439,6 @@ struct servent *PASCAL getservbyname(const char *, const char *); # else # endif -# elif defined(OPENSSL_SYS_NETWARE) - /* - * NetWare uses the WinSock2 interfaces by default, but can be - * configured for BSD - */ -# if defined(NETWARE_BSDSOCK) -# include -# include -# include -# include -# if defined(NETWARE_CLIB) -# include -# else -# include -# endif -# define INVALID_SOCKET (int)(~0) -# else -# include -# endif - # else # ifndef NO_SYS_PARAM_H @@ -594,21 +534,6 @@ struct servent *PASCAL getservbyname(const char *, const char *); # define strcasecmp OPENSSL_strcasecmp # define strncasecmp OPENSSL_strncasecmp # define OPENSSL_IMPLEMENTS_strncasecmp -# elif defined(OPENSSL_SYS_OS2) && defined(__EMX__) -# define strcasecmp stricmp -# define strncasecmp strnicmp -# elif defined(OPENSSL_SYS_NETWARE) -# include -# if defined(NETWARE_CLIB) -# define strcasecmp stricmp -# define strncasecmp strnicmp -# endif /* NETWARE_CLIB */ -# endif - -# if defined(OPENSSL_SYS_OS2) && defined(__EMX__) -# include -# include -# define NO_SYSLOG # endif /* vxworks */ diff --git a/include/openssl/bio.h b/include/openssl/bio.h index ae59948389..06e1cbf792 100644 --- a/include/openssl/bio.h +++ b/include/openssl/bio.h @@ -672,9 +672,7 @@ BIO_METHOD *BIO_s_socket(void); BIO_METHOD *BIO_s_connect(void); BIO_METHOD *BIO_s_accept(void); BIO_METHOD *BIO_s_fd(void); -# ifndef OPENSSL_SYS_OS2 BIO_METHOD *BIO_s_log(void); -# endif BIO_METHOD *BIO_s_bio(void); BIO_METHOD *BIO_s_null(void); BIO_METHOD *BIO_f_null(void); diff --git a/include/openssl/e_os2.h b/include/openssl/e_os2.h index 15b3400f71..bbd6116f86 100644 --- a/include/openssl/e_os2.h +++ b/include/openssl/e_os2.h @@ -69,12 +69,6 @@ extern "C" { # define OPENSSL_SYS_UNIX -/* ---------------------- NetWare ----------------------------------------- */ -# if defined(NETWARE) && !defined(OPENSSL_SYS_NETWARE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_NETWARE -# endif - /* --------------------- Microsoft operating systems ---------------------- */ /* @@ -163,12 +157,6 @@ extern "C" { # endif # endif -/* -------------------------------- OS/2 ---------------------------------- */ -# if defined(__EMX__) || defined(__OS2__) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_OS2 -# endif - /* -------------------------------- Unix ---------------------------------- */ # ifdef OPENSSL_SYS_UNIX # if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) diff --git a/include/openssl/symhacks.h b/include/openssl/symhacks.h index 394f91434e..99a2de5f41 100644 --- a/include/openssl/symhacks.h +++ b/include/openssl/symhacks.h @@ -58,7 +58,7 @@ # include /* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_VMS) +# if defined(OPENSSL_SYS_VMS) # undef ERR_load_CRYPTO_strings # define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings # undef OCSP_crlID_new diff --git a/os2/OS2-EMX.cmd b/os2/OS2-EMX.cmd deleted file mode 100644 index 5924b50b6d..0000000000 --- a/os2/OS2-EMX.cmd +++ /dev/null @@ -1,102 +0,0 @@ -@echo off - -perl Configure OS2-EMX -perl util\mkfiles.pl > MINFO - -@rem create make file -perl util\mk1mf.pl OS2-EMX > OS2-EMX.mak -perl util\mk1mf.pl dll OS2-EMX > OS2-EMX-DLL.mak - -echo Generating export definition files -perl util\mkdef.pl crypto OS2 > os2\crypto.def -perl util\mkdef.pl ssl OS2 > os2\ssl.def - -echo Generating x86 for GNU assember - -echo Bignum -cd crypto\bn\asm -rem perl x86.pl a.out > bn-os2.asm -perl bn-586.pl a.out > bn-os2.asm -perl co-586.pl a.out > co-os2.asm -cd ..\..\.. - -echo DES -cd crypto\des\asm -perl des-586.pl a.out > d-os2.asm -cd ..\..\.. - -echo crypt(3) -cd crypto\des\asm -perl crypt586.pl a.out > y-os2.asm -cd ..\..\.. - -echo Blowfish -cd crypto\bf\asm -perl bf-586.pl a.out > b-os2.asm -cd ..\..\.. - -echo CAST5 -cd crypto\cast\asm -perl cast-586.pl a.out > c-os2.asm -cd ..\..\.. - -echo RC4 -cd crypto\rc4\asm -perl rc4-586.pl a.out > r4-os2.asm -cd ..\..\.. - -echo MD5 -cd crypto\md5\asm -perl md5-586.pl a.out > m5-os2.asm -cd ..\..\.. - -echo SHA1 -cd crypto\sha\asm -perl sha1-586.pl a.out > s1-os2.asm -cd ..\..\.. - -echo RIPEMD160 -cd crypto\ripemd\asm -perl rmd-586.pl a.out > rm-os2.asm -cd ..\..\.. - -echo RC5\32 -cd crypto\rc5\asm -perl rc5-586.pl a.out > r5-os2.asm -cd ..\..\.. - -cd os2 - -if exist noname\backward_ssl.def goto nomkdir -mkdir noname -:nomkdir - -perl backwardify.pl crypto.def >backward_crypto.def -perl backwardify.pl ssl.def >backward_ssl.def -perl backwardify.pl -noname crypto.def >noname\backward_crypto.def -perl backwardify.pl -noname ssl.def >noname\backward_ssl.def - -echo Creating backward compatibility forwarder dlls: -echo crypto.dll -gcc -Zomf -Zdll -Zcrtdll -o crypto.dll backward_crypto.def 2>&1 | grep -v L4085 -echo ssl.dll -gcc -Zomf -Zdll -Zcrtdll -o ssl.dll backward_ssl.def 2>&1 | grep -v L4085 - -echo Creating smaller backward compatibility forwarder dlls: -echo These DLLs are not good for runtime resolution of symbols. -echo noname\crypto.dll -gcc -Zomf -Zdll -Zcrtdll -o noname/crypto.dll noname/backward_crypto.def 2>&1 | grep -v L4085 -echo noname\ssl.dll -gcc -Zomf -Zdll -Zcrtdll -o noname/ssl.dll noname/backward_ssl.def 2>&1 | grep -v L4085 - -echo Compressing forwarders (it is ok if lxlite is not found): -lxlite *.dll noname/*.dll - -cd .. - -echo Now run: -echo For static build: -echo make -f OS2-EMX.mak -echo For dynamic build: -echo make -f OS2-EMX-DLL.mak -echo then rename crypto.dll to cryptssl.dll, ssl.dll to open_ssl.dll diff --git a/os2/backwardify.pl b/os2/backwardify.pl deleted file mode 100644 index 272423c8fa..0000000000 --- a/os2/backwardify.pl +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -w -use strict; - -# Use as $0 -# Use as $0 -noname - -my $did_library; -my $did_description; -my $do_exports; -my @imports; -my $noname = (@ARGV and $ARGV[0] eq '-noname' and shift); -while (<>) { - unless ($did_library) { - s/\b(cryptssl)\b/crypto/ and $did_library = $1 if /^LIBRARY\s+cryptssl\b/; - s/\b(open_ssl)\b/ssl/ and $did_library = $1 if /^LIBRARY\s+open_ssl\b/; - } - unless ($did_description) { - s&^(DESCRIPTION\s+(['"])).*&${1}\@#www.openssl.org/:#\@forwarder DLL for pre-0.9.7c+ OpenSSL to the new dll naming scheme$2& and $did_description++; - } - if ($do_exports) {{ - last unless /\S/; - warn, last unless /^ \s* ( \w+ ) \s+ \@(\d+)\s*$/x; - push @imports, [$1, $2]; - s/$/ NONAME/ if $noname; - }} - $do_exports++ if not $do_exports and /^EXPORTS/; - print $_; -} -print "IMPORTS\n"; -for my $imp (@imports) { - print "\t$imp->[0]=$did_library.$imp->[1]\n"; -} diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c index f2daaf2fd2..8f399d07e9 100644 --- a/ssl/d1_lib.c +++ b/ssl/d1_lib.c @@ -64,8 +64,6 @@ #if defined(OPENSSL_SYS_VMS) # include -#elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) -# include #elif defined(OPENSSL_SYS_VXWORKS) # include #elif !defined(OPENSSL_SYS_WIN32) diff --git a/test/bftest.c b/test/bftest.c index 657ae90c34..b5e6c5144d 100644 --- a/test/bftest.c +++ b/test/bftest.c @@ -288,10 +288,6 @@ int main(int argc, char *argv[]) else ret = test(); -# ifdef OPENSSL_SYS_NETWARE - if (ret) - printf("ERROR: %d\n", ret); -# endif EXIT(ret); } diff --git a/test/destest.c b/test/destest.c index 5e4552c8a6..a544f41526 100644 --- a/test/destest.c +++ b/test/destest.c @@ -718,10 +718,6 @@ int main(int argc, char *argv[]) printf("fast crypt error, %s should be yA1Rp/1hZXIJk\n", str); err = 1; } -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif printf("\n"); return (err); } diff --git a/test/dhtest.c b/test/dhtest.c index 224b1fdee8..5940aa78b2 100644 --- a/test/dhtest.c +++ b/test/dhtest.c @@ -202,10 +202,6 @@ int main(int argc, char *argv[]) DH_free(a); BN_GENCB_free(_cb); BIO_free(out); -# ifdef OPENSSL_SYS_NETWARE - if (ret) - printf("ERROR: %d\n", ret); -# endif EXIT(ret); } diff --git a/test/dsatest.c b/test/dsatest.c index b53ee471df..27996ac85e 100644 --- a/test/dsatest.c +++ b/test/dsatest.c @@ -217,10 +217,6 @@ int main(int argc, char **argv) #endif BIO_free(bio_err); bio_err = NULL; -# ifdef OPENSSL_SYS_NETWARE - if (!ret) - printf("ERROR\n"); -# endif EXIT(!ret); } diff --git a/test/exptest.c b/test/exptest.c index bc023ef67e..68802683b7 100644 --- a/test/exptest.c +++ b/test/exptest.c @@ -312,8 +312,5 @@ int main(int argc, char *argv[]) EXIT(0); err: ERR_print_errors(out); -#ifdef OPENSSL_SYS_NETWARE - printf("ERROR\n"); -#endif EXIT(1); } diff --git a/test/ideatest.c b/test/ideatest.c index 7418a17fa1..d7c9eedcbe 100644 --- a/test/ideatest.c +++ b/test/ideatest.c @@ -167,10 +167,6 @@ int main(int argc, char *argv[]) } else printf("ok\n"); -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif EXIT(err); } diff --git a/test/md2test.c b/test/md2test.c index b416735251..ccf46593d0 100644 --- a/test/md2test.c +++ b/test/md2test.c @@ -121,10 +121,6 @@ int main(int argc, char *argv[]) R++; P++; } -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif EXIT(err); return err; } diff --git a/test/md5test.c b/test/md5test.c index 35aebf626e..2c75890014 100644 --- a/test/md5test.c +++ b/test/md5test.c @@ -117,10 +117,6 @@ int main(int argc, char *argv[]) P++; } -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif EXIT(err); } diff --git a/test/mdc2test.c b/test/mdc2test.c index d1fe049ab6..2177a0ef6d 100644 --- a/test/mdc2test.c +++ b/test/mdc2test.c @@ -135,10 +135,6 @@ int main(int argc, char *argv[]) printf("pad2 - ok\n"); EVP_MD_CTX_free(c); -# ifdef OPENSSL_SYS_NETWARE - if (ret) - printf("ERROR: %d\n", ret); -# endif EXIT(ret); } #endif diff --git a/test/randtest.c b/test/randtest.c index 69f3fd4b8e..dc0e84d7a9 100644 --- a/test/randtest.c +++ b/test/randtest.c @@ -189,9 +189,5 @@ int main(int argc, char **argv) printf("test 4 done\n"); err: err = ((err) ? 1 : 0); -#ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -#endif EXIT(err); } diff --git a/test/rc2test.c b/test/rc2test.c index 5cfbac9d62..3890cf0d39 100644 --- a/test/rc2test.c +++ b/test/rc2test.c @@ -141,10 +141,6 @@ int main(int argc, char *argv[]) if (err == 0) printf("ecb RC2 ok\n"); -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif EXIT(err); } diff --git a/test/rc4test.c b/test/rc4test.c index 7de091c3bd..271fcf1580 100644 --- a/test/rc4test.c +++ b/test/rc4test.c @@ -218,10 +218,6 @@ int main(int argc, char *argv[]) } else printf("ok\n"); } -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif EXIT(err); } #endif diff --git a/test/rsa_test.c b/test/rsa_test.c index 770c376380..d5d73e02aa 100644 --- a/test/rsa_test.c +++ b/test/rsa_test.c @@ -329,10 +329,6 @@ int main(int argc, char *argv[]) err = 1; #endif -# ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -# endif return err; } #endif diff --git a/test/sha1test.c b/test/sha1test.c index 903d786ba6..ada37d11d6 100644 --- a/test/sha1test.c +++ b/test/sha1test.c @@ -131,10 +131,6 @@ int main(int argc, char *argv[]) } else printf("test 3 ok\n"); -#ifdef OPENSSL_SYS_NETWARE - if (err) - printf("ERROR: %d\n", err); -#endif EVP_MD_CTX_free(c); EXIT(err); return (0); diff --git a/util/libcrypto.num b/util/libcrypto.num index 7a86ac8106..8383e52c91 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -288,7 +288,7 @@ TS_REQ_free 282 1_1_0 EXIST::FUNCTION: PEM_read_DHparams 283 1_1_0 EXIST::FUNCTION:DH RSA_private_decrypt 284 1_1_0 EXIST::FUNCTION:RSA X509V3_EXT_get_nid 285 1_1_0 EXIST::FUNCTION: -BIO_s_log 286 1_1_0 EXIST:!OS2,!WIN32,!macintosh:FUNCTION: +BIO_s_log 286 1_1_0 EXIST:!WIN32,!macintosh:FUNCTION: EC_POINT_set_to_infinity 287 1_1_0 EXIST::FUNCTION:EC EVP_des_ede_ofb 288 1_1_0 EXIST::FUNCTION:DES ECDH_KDF_X9_62 289 1_1_0 EXIST::FUNCTION:EC @@ -1719,8 +1719,8 @@ X509_ATTRIBUTE_create_by_NID 1669 1_1_0 EXIST::FUNCTION: TS_VERIFY_CTX_free 1670 1_1_0 EXIST::FUNCTION: EC_KEY_up_ref 1671 1_1_0 EXIST::FUNCTION:EC EC_GROUP_get_basis_type 1672 1_1_0 EXIST::FUNCTION:EC -OCSP_crlID_new 1673 1_1_0 EXIST:!OS2,!VMS:FUNCTION: -OCSP_crlID2_new 1673 1_1_0 EXIST:OS2,VMS:FUNCTION: +OCSP_crlID_new 1673 1_1_0 EXIST:!VMS:FUNCTION: +OCSP_crlID2_new 1673 1_1_0 EXIST:VMS:FUNCTION: PEM_write_PKCS7 1674 1_1_0 EXIST::FUNCTION: PKCS7_add_signer 1675 1_1_0 EXIST::FUNCTION: X509_SIG_it 1676 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: @@ -2176,8 +2176,8 @@ ENGINE_load_public_key 2109 1_1_0 EXIST::FUNCTION:ENGINE ASIdOrRange_it 2110 1_1_0 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779 ASIdOrRange_it 2110 1_1_0 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779 DHparams_print_fp 2111 1_1_0 EXIST::FUNCTION:DH,STDIO -ERR_load_CRYPTO_strings 2112 1_1_0 EXIST:!OS2,!VMS:FUNCTION: -ERR_load_CRYPTOlib_strings 2112 1_1_0 EXIST:OS2,VMS:FUNCTION: +ERR_load_CRYPTO_strings 2112 1_1_0 EXIST:!VMS:FUNCTION: +ERR_load_CRYPTOlib_strings 2112 1_1_0 EXIST:VMS:FUNCTION: X509_REQ_set_version 2113 1_1_0 EXIST::FUNCTION: d2i_ASN1_GENERALSTRING 2114 1_1_0 EXIST::FUNCTION: i2d_ASIdentifiers 2115 1_1_0 EXIST::FUNCTION:RFC3779 diff --git a/util/mk1mf.pl b/util/mk1mf.pl index 55a8ddddd8..69bc89530e 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -108,11 +108,6 @@ $infile="MINFO"; "Mingw32-files", "Create files with DOS copy ...", "linux-elf","Linux elf", "FreeBSD","FreeBSD distribution", - "OS2-EMX", "EMX GCC OS/2", - "netware-clib", "CodeWarrior for NetWare - CLib - with WinSock Sockets", - "netware-clib-bsdsock", "CodeWarrior for NetWare - CLib - with BSD Sockets", - "netware-libc", "CodeWarrior for NetWare - LibC - with WinSock Sockets", - "netware-libc-bsdsock", "CodeWarrior for NetWare - LibC - with BSD Sockets", "default","cc under unix", "auto", "auto detect from top level Makefile", "copy", "copy from top level Makefile" @@ -149,8 +144,6 @@ and [options] can be one of no-autoalginit - Don't auto load algorithms in libcrypto no-autoerrinit - Don't auto load error strings for libcrypto or libssl nasm - Use NASM for x86 asm - nw-nasm - Use NASM x86 asm for NetWare - nw-mwasm - Use Metrowerks x86 asm for NetWare gaswin - Use GNU as with Mingw32 no-socks - No socket code no-err - No error strings @@ -233,18 +226,6 @@ elsif ($platform eq "linux-elf") require "linux.pl"; $unix=1; } -elsif ($platform eq "OS2-EMX") - { - $wc=1; - require 'OS2-EMX.pl'; - } -elsif (($platform eq "netware-clib") || ($platform eq "netware-libc") || - ($platform eq "netware-clib-bsdsock") || ($platform eq "netware-libc-bsdsock")) - { - $LIBC=1 if $platform eq "netware-libc" || $platform eq "netware-libc-bsdsock"; - $BSDSOCK=1 if ($platform eq "netware-libc-bsdsock") || ($platform eq "netware-clib-bsdsock"); - require 'netware.pl'; - } else { require "unix.pl"; @@ -1377,8 +1358,6 @@ sub read_options "no-dh" => \$no_dh, "no-asm" => \$no_asm, "nasm" => \$nasm, - "nw-nasm" => \$nw_nasm, - "nw-mwasm" => \$nw_mwasm, "gaswin" => \$gaswin, "no-ssl3" => \$no_ssl3, "no-ssl3-method" => 0, diff --git a/util/mkdef.pl b/util/mkdef.pl index 4578c9afc2..ec1907890f 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -61,7 +61,6 @@ my $VMSNonVAX=0; my $VMS=0; my $W32=0; my $NT=0; -my $OS2=0; my $linux=0; # Set this to make typesafe STACK definitions appear in DEF my $safe_stack_def = 0; @@ -155,7 +154,6 @@ foreach (@ARGV, split(/ /, $config{options})) $linux=1; } $VMS=$VMSNonVAX=1 if $_ eq "VMS"; - $OS2=1 if $_ eq "OS2"; if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic" || $_ eq "enable-zlib-dynamic") { $zlib = 1; @@ -212,11 +210,11 @@ if (!$libname) { } # If no platform is given, assume WIN32 -if ($W32 + $VMS + $OS2 + $linux == 0) { +if ($W32 + $VMS + $linux == 0) { $W32 = 1; } die "Please, only one platform at a time" - if ($W32 + $VMS + $OS2 + $linux > 1); + if ($W32 + $VMS + $linux > 1); if (!$do_ssl && !$do_crypto) { @@ -1113,7 +1111,6 @@ sub is_valid if ($keyword eq "VMS" && $VMS) { return 1; } if ($keyword eq "WIN32" && $W32) { return 1; } if ($keyword eq "WINNT" && $NT) { return 1; } - if ($keyword eq "OS2" && $OS2) { return 1; } # Special platforms: # EXPORT_VAR_AS_FUNCTION means that global variables # will be represented as functions. This currently @@ -1202,22 +1199,8 @@ sub print_def_file if ($W32) { $libname.="32"; } - elsif ($OS2) - { # DLL names should not clash on the whole system. - # However, they should not have any particular relationship - # to the name of the static library. Chose descriptive names - # (must be at most 8 chars). - my %translate = (ssl => 'open_ssl', crypto => 'cryptssl'); - $libname = $translate{$name} || $name; - $liboptions = <) { - if (/^#define[\s\t]+OPENSSL_VERSION_NUMBER[\s\t]+0x(\d)(\d{2})(\d{2})(\d{2})/) - { - # die "OpenSSL version detected: $1.$2.$3.$4\n"; - #$nlmvernum = "$1,$2,$3"; - $nlmvernum = "$1,".($2*10+$3).",".($4*1); - #$nlmverstr = "$1.".($2*1).".".($3*1).($4?(chr(96+$4)):""); - break; - } -} -close(IN) or die "Couldn't close $version_header: $!"; - -$readme_file = "README"; -open(IN, $readme_file) or die "Couldn't open $readme_file: $!"; -while () { - if (/^[\s\t]+OpenSSL[\s\t]+(\d)\.(\d{1,2})\.(\d{1,2})([a-z])(.*)/) - { - #$nlmvernum = "$1,$2,$3"; - #$nlmvernum = "$1,".($2*10+$3).",".($4*1); - $nlmverstr = "$1.$2.$3$4$5"; - } - elsif (/^[\s\t]+(Copyright \(c\) \d{4}\-\d{4} The OpenSSL Project)$/) - { - $nlmcpystr = $1; - } - break if ($nlmvernum && $nlmcpystr); -} -close(IN) or die "Couldn't close $readme_file: $!"; - -# Define stacksize here -$nlmstack = "32768"; - -# some default settings here in case we failed to find them in README -$nlmvernum = "1,0,0" if (!$nlmvernum); -$nlmverstr = "OpenSSL" if (!$nlmverstr); -$nlmcpystr = "Copyright (c) 1998-now The OpenSSL Project" if (!$nlmcpystr); - -# die "OpenSSL copyright: $nlmcpystr\nOpenSSL verstring: $nlmverstr\nOpenSSL vernumber: $nlmvernum\n"; - -# The import files and other misc imports needed to link -@misc_imports = ("GetProcessSwitchCount", "RunningProcess", - "GetSuperHighResolutionTimer"); -if ($LIBC) -{ - @import_files = ("libc.imp"); - @module_files = ("libc"); - $libarch = "LIBC"; -} -else -{ - # clib build - @import_files = ("clib.imp"); - push(@import_files, "socklib.imp") if ($BSDSOCK); - @module_files = ("clib"); - # push(@misc_imports, "_rt_modu64%16", "_rt_divu64%16"); - $libarch = "CLIB"; -} -if ($BSDSOCK) -{ - $libarch .= "-BSD"; -} -else -{ - $libarch .= "-WS2"; - push(@import_files, "ws2nlm.imp"); -} - -# The "IMPORTS" environment variable must be set and point to the location -# where import files (*.imp) can be found. -# Example: set IMPORTS=c:\ndk\nwsdk\imports -$import_path = $ENV{"IMPORTS"} || die ("IMPORTS environment variable not set\n"); - - -# The "PRELUDE" environment variable must be set and point to the location -# and name of the prelude source to link with ( nwpre.obj is recommended ). -# Example: set PRELUDE=c:\codewar\novell support\metrowerks support\libraries\runtime\nwpre.obj -$prelude = $ENV{"PRELUDE"} || die ("PRELUDE environment variable not set\n"); - -# The "INCLUDES" environment variable must be set and point to the location -# where import files (*.imp) can be found. -$include_path = $ENV{"INCLUDE"} || die ("INCLUDES environment variable not set\n"); -$include_path =~ s/\\/\//g; -$include_path = join(" -I", split(/;/, $include_path)); - -# check for gcc compiler -$gnuc = $ENV{"GNUC"}; - -#$ssl= "libssl32"; -#$crypto="libcrypto32"; - -if ($gnuc) -{ - # C compiler - $cc='gcc'; - # Linker - $link='nlmconv'; - # librarian - $mklib='ar'; - $o='/'; - # cp command - $cp='cp -af'; - # rm command - $rm='rm -f'; - # mv command - $mv='mv -f'; - # mkdir command - $mkdir='gmkdir'; - #$ranlib='ranlib'; -} -else -{ - # C compiler - $cc='mwccnlm'; - # Linker - $link='mwldnlm'; - # librarian - $mklib='mwldnlm'; - # Path separator - $o='\\'; - # cp command - $cp='copy >nul:'; - # rm command - $rm='del /f /q'; - # mv command - $mv='move /y'; -} - -# assembler -if ($nw_nasm) -{ - $asm=(`nasm -v 2>NUL` gt `nasmw -v 2>NUL`?"nasm":"nasmw"); - if ($gnuc) - { - $asm.=" -s -f elf"; - } - else - { - $asm.=" -s -f coff -d __coff__"; - } - $afile="-o "; - $asm.=" -g" if $debug; -} -elsif ($nw_mwasm) -{ - $asm="mwasmnlm -maxerrors 20"; - $afile="-o "; - $asm.=" -g" if $debug; -} -elsif ($nw_masm) -{ -# masm assembly settings - it should be possible to use masm but haven't -# got it working. -# $asm='ml /Cp /coff /c /Cx'; -# $asm.=" /Zi" if $debug; -# $afile='/Fo'; - die("Support for masm assembler not yet functional\n"); -} -else -{ - $asm=""; - $afile=""; -} - - - -if ($gnuc) -{ - # compile flags for GNUC - # additional flags based upon debug | non-debug - if ($debug) - { - $cflags="-g -DDEBUG"; - } - else - { - $cflags="-O2"; - } - $cflags.=" -nostdinc -I$include_path \\ - -fno-builtin -fpcc-struct-return -fno-strict-aliasing \\ - -funsigned-char -Wall -Wno-unused -Wno-uninitialized"; - - # link flags - $lflags="-T"; -} -else -{ - # compile flags for CodeWarrior - # additional flags based upon debug | non-debug - if ($debug) - { - $cflags="-opt off -g -sym internal -DDEBUG"; - } - else - { - # CodeWarrior compiler has a problem with optimizations for floating - # points - no optimizations until further investigation - # $cflags="-opt all"; - } - - # NOTES: Several c files in the crypto subdirectory include headers from - # their local directories. Metrowerks wouldn't find these h files - # without adding individual include directives as compile flags - # or modifying the c files. Instead of adding individual include - # paths for each subdirectory a recursive include directive - # is used ( -ir crypto ). - # - # A similar issue exists for the engines and apps subdirectories. - # - # Turned off the "possible" warnings ( -w nopossible ). Metrowerks - # complained a lot about various stuff. May want to turn back - # on for further development. - $cflags.=" -nostdinc -ir crypto -ir ssl -ir engines -ir apps -I$include_path \\ - -msgstyle gcc -align 4 -processor pentium -char unsigned \\ - -w on -w nolargeargs -w nopossible -w nounusedarg -w nounusedexpr \\ - -w noimplicitconv -relax_pointers -nosyspath -maxerrors 20"; - - # link flags - $lflags="-msgstyle gcc -zerobss -nostdlib -sym internal -commandfile"; -} - -# common defines -$cflags.=" -DL_ENDIAN -DOPENSSL_SYS_NETWARE -U_WIN32"; - -# If LibC build add in NKS_LIBC define and set the entry/exit -# routines - The default entry/exit routines are for CLib and don't exist -# in LibC -if ($LIBC) -{ - $cflags.=" -DNETWARE_LIBC"; - $nlmstart = "_LibCPrelude"; - $nlmexit = "_LibCPostlude"; - @nlm_flags = ("pseudopreemption", "flag_on 64"); -} -else -{ - $cflags.=" -DNETWARE_CLIB"; - $nlmstart = "_Prelude"; - $nlmexit = "_Stop"; -} - -# If BSD Socket support is requested, set a define for the compiler -if ($BSDSOCK) -{ - $cflags.=" -DNETWARE_BSDSOCK"; - if (!$LIBC) - { - $cflags.=" -DNETDB_USE_INTERNET"; - } -} - - -# linking stuff -# for the output directories use the mk1mf.pl values with "_nw" appended -if ($shlib) -{ - if ($LIBC) - { - $out_def.="_nw_libc_nlm"; - $tmp_def.="_nw_libc_nlm"; - $inc_def.="_nw_libc_nlm"; - } - else # NETWARE_CLIB - { - $out_def.="_nw_clib_nlm"; - $tmp_def.="_nw_clib_nlm"; - $inc_def.="_nw_clib_nlm"; - } -} -else -{ - if ($gnuc) # GNUC Tools - { - $libp=".a"; - $shlibp=".a"; - $lib_flags="-cr"; - } - else # CodeWarrior - { - $libp=".lib"; - $shlibp=".lib"; - $lib_flags="-nodefaults -type library -o"; - } - if ($LIBC) - { - $out_def.="_nw_libc"; - $tmp_def.="_nw_libc"; - $inc_def.="_nw_libc"; - } - else # NETWARE_CLIB - { - $out_def.="_nw_clib"; - $tmp_def.="_nw_clib"; - $inc_def.="_nw_clib"; - } -} - -# used by mk1mf.pl -$obj='.o'; -$ofile='-o '; -$efile=''; -$exep='.nlm'; -$ex_libs=''; - -if (!$no_asm) -{ - $bn_asm_obj="\$(OBJ_D)${o}bn-nw${obj}"; - $bn_asm_src="crypto${o}bn${o}asm${o}bn-nw.asm"; - $bnco_asm_obj="\$(OBJ_D)${o}co-nw${obj}"; - $bnco_asm_src="crypto${o}bn${o}asm${o}co-nw.asm"; - $aes_asm_obj="\$(OBJ_D)${o}a-nw${obj}"; - $aes_asm_src="crypto${o}aes${o}asm${o}a-nw.asm"; - $des_enc_obj="\$(OBJ_D)${o}d-nw${obj} \$(OBJ_D)${o}y-nw${obj}"; - $des_enc_src="crypto${o}des${o}asm${o}d-nw.asm crypto${o}des${o}asm${o}y-nw.asm"; - $bf_enc_obj="\$(OBJ_D)${o}b-nw${obj}"; - $bf_enc_src="crypto${o}bf${o}asm${o}b-nw.asm"; - $cast_enc_obj="\$(OBJ_D)${o}c-nw${obj}"; - $cast_enc_src="crypto${o}cast${o}asm${o}c-nw.asm"; - $rc4_enc_obj="\$(OBJ_D)${o}r4-nw${obj}"; - $rc4_enc_src="crypto${o}rc4${o}asm${o}r4-nw.asm"; - $rc5_enc_obj="\$(OBJ_D)${o}r5-nw${obj}"; - $rc5_enc_src="crypto${o}rc5${o}asm${o}r5-nw.asm"; - $md5_asm_obj="\$(OBJ_D)${o}m5-nw${obj}"; - $md5_asm_src="crypto${o}md5${o}asm${o}m5-nw.asm"; - $sha1_asm_obj="\$(OBJ_D)${o}s1-nw${obj} \$(OBJ_D)${o}sha256-nw${obj} \$(OBJ_D)${o}sha512-nw${obj}"; - $sha1_asm_src="crypto${o}sha${o}asm${o}s1-nw.asm crypto${o}sha${o}asm${o}sha256-nw.asm crypto${o}sha${o}asm${o}sha512-nw.asm"; - $rmd160_asm_obj="\$(OBJ_D)${o}rm-nw${obj}"; - $rmd160_asm_src="crypto${o}ripemd${o}asm${o}rm-nw.asm"; - $whirlpool_asm_obj="\$(OBJ_D)${o}wp-nw${obj}"; - $whirlpool_asm_src="crypto${o}whrlpool${o}asm${o}wp-nw.asm"; - $cpuid_asm_obj="\$(OBJ_D)${o}x86cpuid-nw${obj}"; - $cpuid_asm_src="crypto${o}x86cpuid-nw.asm"; - $cflags.=" -DOPENSSL_CPUID_OBJ -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DMD5_ASM -DWHIRLPOOL_ASM"; - $cflags.=" -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM"; - $cflags.=" -DAES_ASM -DRMD160_ASM"; -} -else -{ - $bn_asm_obj=''; - $bn_asm_src=''; - $bnco_asm_obj=''; - $bnco_asm_src=''; - $aes_asm_obj=''; - $aes_asm_src=''; - $des_enc_obj=''; - $des_enc_src=''; - $bf_enc_obj=''; - $bf_enc_src=''; - $cast_enc_obj=''; - $cast_enc_src=''; - $rc4_enc_obj=''; - $rc4_enc_src=''; - $rc5_enc_obj=''; - $rc5_enc_src=''; - $md5_asm_obj=''; - $md5_asm_src=''; - $sha1_asm_obj=''; - $sha1_asm_src=''; - $rmd160_asm_obj=''; - $rmd160_asm_src=''; - $whirlpool_asm_obj=''; - $whirlpool_asm_src=''; - $cpuid_asm_obj=''; - $cpuid_asm_src=''; -} - -# create the *.def linker command files in \openssl\netware\ directory -sub do_def_file -{ - # strip off the leading path - my($target) = bname(shift); - my($i); - - if ($target =~ /(.*).nlm/) - { - $target = $1; - } - - # special case for openssl - the mk1mf.pl defines E_EXE = openssl - if ($target =~ /E_EXE/) - { - $target =~ s/\$\(E_EXE\)/openssl/; - } - - # Note: originally tried to use full path ( \openssl\netware\$target.def ) - # Metrowerks linker choked on this with an assertion failure. bug??? - # - my($def_file) = "netware${o}$target.def"; - - open(DEF_OUT, ">$def_file") || die("unable to open file $def_file\n"); - - print( DEF_OUT "# command file generated by netware.pl for NLM target.\n" ); - print( DEF_OUT "# do not edit this file - all your changes will be lost!!\n" ); - print( DEF_OUT "#\n"); - print( DEF_OUT "DESCRIPTION \"$target ($libarch) - OpenSSL $nlmverstr\"\n"); - print( DEF_OUT "COPYRIGHT \"$nlmcpystr\"\n"); - print( DEF_OUT "VERSION $nlmvernum\n"); - print( DEF_OUT "STACK $nlmstack\n"); - print( DEF_OUT "START $nlmstart\n"); - print( DEF_OUT "EXIT $nlmexit\n"); - - # special case for openssl - if ($target eq "openssl") - { - print( DEF_OUT "SCREENNAME \"OpenSSL $nlmverstr\"\n"); - } - else - { - print( DEF_OUT "SCREENNAME \"DEFAULT\"\n"); - } - - foreach $i (@misc_imports) - { - print( DEF_OUT "IMPORT $i\n"); - } - - foreach $i (@import_files) - { - print( DEF_OUT "IMPORT \@$import_path${o}$i\n"); - } - - foreach $i (@module_files) - { - print( DEF_OUT "MODULE $i\n"); - } - - foreach $i (@nlm_flags) - { - print( DEF_OUT "$i\n"); - } - - if ($gnuc) - { - if ($target =~ /openssl/) - { - print( DEF_OUT "INPUT ${tmp_def}${o}openssl${obj}\n"); - print( DEF_OUT "INPUT ${tmp_def}${o}openssl${libp}\n"); - } - else - { - print( DEF_OUT "INPUT ${tmp_def}${o}${target}${obj}\n"); - } - print( DEF_OUT "INPUT $prelude\n"); - print( DEF_OUT "INPUT ${out_def}${o}${ssl}${libp} ${out_def}${o}${crypto}${libp}\n"); - print( DEF_OUT "OUTPUT $target.nlm\n"); - } - - close(DEF_OUT); - return($def_file); -} - -sub do_lib_rule -{ - my($objs,$target,$name,$shlib)=@_; - my($ret); - - $ret.="$target: $objs\n"; - if (!$shlib) - { - $ret.="\t\@echo Building Lib: $name\n"; - $ret.="\t\$(MKLIB) $lib_flags $target $objs\n"; - $ret.="\t\@echo .\n" - } - else - { - die( "Building as NLM not currently supported!" ); - } - - $ret.="\n"; - return($ret); -} - -sub do_link_rule -{ - my($target,$files,$dep_libs,$libs)=@_; - my($ret); - my($def_file) = do_def_file($target); - - $ret.="$target: $files $dep_libs\n"; - - # NOTE: When building the test nlms no screen name is given - # which causes the console screen to be used. By using the console - # screen there is no "" message which - # requires user interaction. The test script ( do_tests.pl ) needs - # to be able to run the tests without requiring user interaction. - # - # However, the sample program "openssl.nlm" is used by the tests and is - # a interactive sample so a screen is desired when not be run by the - # tests. To solve the problem, two versions of the program are built: - # openssl2 - no screen used by tests - # openssl - default screen - use for normal interactive modes - # - - # special case for openssl - the mk1mf.pl defines E_EXE = openssl - if ($target =~ /E_EXE/) - { - my($target2) = $target; - - $target2 =~ s/\(E_EXE\)/\(E_EXE\)2/; - - # openssl2 - my($def_file2) = do_def_file($target2); - - if ($gnuc) - { - $ret.="\t\$(MKLIB) $lib_flags \$(TMP_D)${o}\$(E_EXE).a \$(filter-out \$(TMP_D)${o}\$(E_EXE)${obj},$files)\n"; - $ret.="\t\$(LINK_CMD) \$(LFLAGS) $def_file2\n"; - $ret.="\t\@$mv \$(E_EXE)2.nlm \$(TEST_D)\n"; - } - else - { - $ret.="\t\$(LINK_CMD) \$(LFLAGS) $def_file2 $files \"$prelude\" $libs -o $target2\n"; - } - } - if ($gnuc) - { - $ret.="\t\$(LINK_CMD) \$(LFLAGS) $def_file\n"; - $ret.="\t\@$mv \$(\@F) \$(TEST_D)\n"; - } - else - { - $ret.="\t\$(LINK_CMD) \$(LFLAGS) $def_file $files \"$prelude\" $libs -o $target\n"; - } - - $ret.="\n"; - return($ret); - -} - -1;