Fix the Win32 compile environment and add various changes so it will now compile
under Win32 (9X and NT) again. Note: some signed/unsigned changes recently checked in were killing the Win32 compile.
This commit is contained in:
parent
726bae3f0f
commit
06c6849124
7
CHANGES
7
CHANGES
@ -5,6 +5,13 @@
|
|||||||
|
|
||||||
Changes between 0.9.1c and 0.9.2
|
Changes between 0.9.1c and 0.9.2
|
||||||
|
|
||||||
|
*) Get the Win32 compile working again. Modify mkdef.pl so it can handle
|
||||||
|
functions that return function pointers and has support for NT specific
|
||||||
|
stuff. Fix mk1mf.pl and VC-32.pl to support NT differences also. Various
|
||||||
|
#ifdef WIN32 and WINNTs sprinkled about the place and some changes from
|
||||||
|
unsigned to signed types: this was killing the Win32 compile.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
*) Add new certificate file to stack functions, SSL_add_cert_file_to_stack()
|
*) Add new certificate file to stack functions, SSL_add_cert_file_to_stack()
|
||||||
and SSL_add_cert_dir_to_stack(). These largely supplant
|
and SSL_add_cert_dir_to_stack(). These largely supplant
|
||||||
SSL_load_client_CA_file(), and can be used to add multiple certs easily to
|
SSL_load_client_CA_file(), and can be used to add multiple certs easily to
|
||||||
|
@ -4,6 +4,10 @@ Heres a few comments about building OpenSSL in Windows environments. Most of
|
|||||||
this is tested on Win32 but it may also work in Win 3.1 with some modification.
|
this is tested on Win32 but it may also work in Win 3.1 with some modification.
|
||||||
See the end of this file for Eric's original comments.
|
See the end of this file for Eric's original comments.
|
||||||
|
|
||||||
|
Note: the default Win32 environment is to leave out any Windows NT specific
|
||||||
|
features: (currently only BIO_s_log()) if you want NT specific features see
|
||||||
|
the "Tweaks" section later.
|
||||||
|
|
||||||
You will need perl for Win32 (which can be got from various sources) and Visual
|
You will need perl for Win32 (which can be got from various sources) and Visual
|
||||||
C++.
|
C++.
|
||||||
|
|
||||||
@ -73,6 +77,11 @@ There are various changes you can make to the Win32 compile environment. If you
|
|||||||
have the MASM assembler 'ml' then you can try the assembly language code. To
|
have the MASM assembler 'ml' then you can try the assembly language code. To
|
||||||
do this remove the 'no-asm' part from do_ms.bat.
|
do this remove the 'no-asm' part from do_ms.bat.
|
||||||
|
|
||||||
|
If you want to enable the NT specific features of OpenSSL (currently only
|
||||||
|
the logging BIO) follow the instructions above but call the batch file
|
||||||
|
do_nt.bat instead of do_ms.bat. If you do this then you will no longer be able
|
||||||
|
to run the OpenSSL binaries under Windows 95 or 98.
|
||||||
|
|
||||||
You can also build a static version of the library using the Makefile ms\nt.mak
|
You can also build a static version of the library using the Makefile ms\nt.mak
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
@ -62,6 +62,8 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if !defined(WIN32) || defined(WINNT)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
@ -242,3 +244,4 @@ static int xcloselog(BIO* bp)
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -547,7 +547,7 @@ static void block_in(BIO* b)
|
|||||||
{
|
{
|
||||||
BIO_OK_CTX *ctx;
|
BIO_OK_CTX *ctx;
|
||||||
EVP_MD_CTX *md;
|
EVP_MD_CTX *md;
|
||||||
unsigned long tl= 0;
|
long tl= 0;
|
||||||
unsigned char tmp[EVP_MAX_MD_SIZE];
|
unsigned char tmp[EVP_MAX_MD_SIZE];
|
||||||
|
|
||||||
ctx=(BIO_OK_CTX *)b->ptr;
|
ctx=(BIO_OK_CTX *)b->ptr;
|
||||||
|
@ -715,7 +715,7 @@ PKCS7_SIGNER_INFO *si;
|
|||||||
if ((sk != NULL) && (sk_num(sk) != 0))
|
if ((sk != NULL) && (sk_num(sk) != 0))
|
||||||
{
|
{
|
||||||
unsigned char md_dat[EVP_MAX_MD_SIZE];
|
unsigned char md_dat[EVP_MAX_MD_SIZE];
|
||||||
unsigned int md_len;
|
int md_len;
|
||||||
ASN1_OCTET_STRING *message_digest;
|
ASN1_OCTET_STRING *message_digest;
|
||||||
|
|
||||||
EVP_DigestFinal(&mdc_tmp,md_dat,&md_len);
|
EVP_DigestFinal(&mdc_tmp,md_dat,&md_len);
|
||||||
|
@ -419,6 +419,8 @@ int PKCS7_add_crl();
|
|||||||
int PKCS7_content_new();
|
int PKCS7_content_new();
|
||||||
int PKCS7_dataVerify();
|
int PKCS7_dataVerify();
|
||||||
BIO *PKCS7_dataInit();
|
BIO *PKCS7_dataInit();
|
||||||
|
int PKCS7_dataFinal();
|
||||||
|
BIO *PKCS7_dataDecode();
|
||||||
PKCS7_SIGNER_INFO *PKCS7_add_signature();
|
PKCS7_SIGNER_INFO *PKCS7_add_signature();
|
||||||
X509 *PKCS7_cert_from_signer_info();
|
X509 *PKCS7_cert_from_signer_info();
|
||||||
STACK *PKCS7_get_signer_info();
|
STACK *PKCS7_get_signer_info();
|
||||||
|
7
ms/do_nt.bat
Executable file
7
ms/do_nt.bat
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
perl util\mkfiles.pl >MINFO
|
||||||
|
perl util\mk1mf.pl VC-NT no-asm >ms\nt.mak
|
||||||
|
perl util\mk1mf.pl VC-NT dll no-asm >ms\ntdll.mak
|
||||||
|
|
||||||
|
perl util\mkdef.pl NT libeay > ms\libeay32.def
|
||||||
|
perl util\mkdef.pl NT ssleay > ms\ssleay32.def
|
@ -58,7 +58,9 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#ifndef WIN32
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
#endif
|
||||||
#include "objects.h"
|
#include "objects.h"
|
||||||
#include "bio.h"
|
#include "bio.h"
|
||||||
#include "pem.h"
|
#include "pem.h"
|
||||||
@ -381,7 +383,7 @@ int SSL_add_cert_file_to_stack(STACK *stack,const char *file)
|
|||||||
|
|
||||||
in=BIO_new(BIO_s_file_internal());
|
in=BIO_new(BIO_s_file_internal());
|
||||||
|
|
||||||
if (ret == NULL || in == NULL)
|
if (in == NULL)
|
||||||
{
|
{
|
||||||
SSLerr(SSL_F_SSL_ADD_CERT_FILE_TO_STACK,ERR_R_MALLOC_FAILURE);
|
SSLerr(SSL_F_SSL_ADD_CERT_FILE_TO_STACK,ERR_R_MALLOC_FAILURE);
|
||||||
goto err;
|
goto err;
|
||||||
@ -429,6 +431,8 @@ err:
|
|||||||
* certs may have been added to \c stack.
|
* certs may have been added to \c stack.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
|
||||||
int SSL_add_cert_dir_to_stack(STACK *stack,const char *dir)
|
int SSL_add_cert_dir_to_stack(STACK *stack,const char *dir)
|
||||||
{
|
{
|
||||||
DIR *d=opendir(dir);
|
DIR *d=opendir(dir);
|
||||||
@ -458,3 +462,5 @@ int SSL_add_cert_dir_to_stack(STACK *stack,const char *dir)
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -1214,3 +1214,7 @@ name_cmp 1239
|
|||||||
str_dup 1240
|
str_dup 1240
|
||||||
i2s_ASN1_ENUMERATED 1241
|
i2s_ASN1_ENUMERATED 1241
|
||||||
i2s_ASN1_ENUMERATED_TABLE 1242
|
i2s_ASN1_ENUMERATED_TABLE 1242
|
||||||
|
BIO_s_log 1243
|
||||||
|
BIO_f_reliable 1244
|
||||||
|
PKCS7_dataFinal 1245
|
||||||
|
PKCS7_dataDecode 1246
|
||||||
|
@ -7,12 +7,13 @@
|
|||||||
|
|
||||||
$INSTALLTOP="/usr/local/ssl";
|
$INSTALLTOP="/usr/local/ssl";
|
||||||
|
|
||||||
$ssl_version="0.8.2";
|
$ssl_version="0.9.2";
|
||||||
|
|
||||||
$infile="MINFO";
|
$infile="MINFO";
|
||||||
|
|
||||||
%ops=(
|
%ops=(
|
||||||
"VC-WIN32", "Microsoft Visual C++ 4.[01] - Windows NT [34].x",
|
"VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X",
|
||||||
|
"VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY",
|
||||||
"VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286",
|
"VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286",
|
||||||
"VC-WIN16", "Alias for VC-W31-32",
|
"VC-WIN16", "Alias for VC-W31-32",
|
||||||
"VC-W31-32", "Microsoft Visual C++ 1.52 - Windows 3.1 - 386+",
|
"VC-W31-32", "Microsoft Visual C++ 1.52 - Windows 3.1 - 386+",
|
||||||
@ -126,6 +127,8 @@ $bin_dir=(defined($VARS{'BIN'}))?$VARS{'BIN'}:'';
|
|||||||
|
|
||||||
# $bin_dir.=$o causes a core dump on my sparc :-(
|
# $bin_dir.=$o causes a core dump on my sparc :-(
|
||||||
|
|
||||||
|
$NT=0;
|
||||||
|
|
||||||
push(@INC,"util/pl","pl");
|
push(@INC,"util/pl","pl");
|
||||||
if ($platform eq "VC-MSDOS")
|
if ($platform eq "VC-MSDOS")
|
||||||
{
|
{
|
||||||
@ -147,6 +150,7 @@ elsif (($platform eq "VC-W31-32") || ($platform eq "VC-WIN16"))
|
|||||||
}
|
}
|
||||||
elsif (($platform eq "VC-WIN32") || ($platform eq "VC-NT"))
|
elsif (($platform eq "VC-WIN32") || ($platform eq "VC-NT"))
|
||||||
{
|
{
|
||||||
|
$NT = 1 if $platform eq "VC-NT";
|
||||||
require 'VC-32.pl';
|
require 'VC-32.pl';
|
||||||
}
|
}
|
||||||
elsif ($platform eq "BC-NT")
|
elsif ($platform eq "BC-NT")
|
||||||
|
@ -9,11 +9,16 @@
|
|||||||
$crypto_num="util/libeay.num";
|
$crypto_num="util/libeay.num";
|
||||||
$ssl_num= "util/ssleay.num";
|
$ssl_num= "util/ssleay.num";
|
||||||
|
|
||||||
$NT=1;
|
$W32=1;
|
||||||
|
$NT=0;
|
||||||
foreach (@ARGV)
|
foreach (@ARGV)
|
||||||
{
|
{
|
||||||
$NT=1 if $_ eq "32";
|
$W32=1 if $_ eq "32";
|
||||||
$NT=0 if $_ eq "16";
|
$W32=0 if $_ eq "16";
|
||||||
|
if($_ eq "NT") {
|
||||||
|
$W32 = 1;
|
||||||
|
$NT = 1;
|
||||||
|
}
|
||||||
$do_ssl=1 if $_ eq "ssleay";
|
$do_ssl=1 if $_ eq "ssleay";
|
||||||
$do_ssl=1 if $_ eq "ssl";
|
$do_ssl=1 if $_ eq "ssl";
|
||||||
$do_crypto=1 if $_ eq "libeay";
|
$do_crypto=1 if $_ eq "libeay";
|
||||||
@ -167,7 +172,7 @@ sub do_defs
|
|||||||
$tag{$t}= -$tag{$t};
|
$tag{$t}= -$tag{$t};
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
#printf STDERR "$_\n%2d %2d %2d %2d %2d $NT\n",
|
#printf STDERR "$_\n%2d %2d %2d %2d %2d $W32\n",
|
||||||
#$tag{'NOPROTO'},$tag{'FreeBSD'},$tag{'WIN16'},$tag{'PERL5'},$tag{'NO_FP_API'};
|
#$tag{'NOPROTO'},$tag{'FreeBSD'},$tag{'WIN16'},$tag{'PERL5'},$tag{'NO_FP_API'};
|
||||||
|
|
||||||
$t=undef;
|
$t=undef;
|
||||||
@ -175,14 +180,14 @@ sub do_defs
|
|||||||
{ $t=&do_extern($name,$_); }
|
{ $t=&do_extern($name,$_); }
|
||||||
elsif ( ($tag{'NOPROTO'} == 1) &&
|
elsif ( ($tag{'NOPROTO'} == 1) &&
|
||||||
($tag{'FreeBSD'} != 1) &&
|
($tag{'FreeBSD'} != 1) &&
|
||||||
(($NT && ($tag{'WIN16'} != 1)) ||
|
(($W32 && ($tag{'WIN16'} != 1)) ||
|
||||||
(!$NT && ($tag{'WIN16'} != -1))) &&
|
(!$W32 && ($tag{'WIN16'} != -1))) &&
|
||||||
($tag{'PERL5'} != 1) &&
|
($tag{'PERL5'} != 1) &&
|
||||||
# ($tag{'_WINDLL'} != -1) &&
|
# ($tag{'_WINDLL'} != -1) &&
|
||||||
((!$NT && $tag{'_WINDLL'} != -1) ||
|
((!$W32 && $tag{'_WINDLL'} != -1) ||
|
||||||
($NT && $tag{'_WINDLL'} != 1)) &&
|
($W32 && $tag{'_WINDLL'} != 1)) &&
|
||||||
((($tag{'NO_FP_API'} != 1) && $NT) ||
|
((($tag{'NO_FP_API'} != 1) && $W32) ||
|
||||||
(($tag{'NO_FP_API'} != -1) && !$NT)))
|
(($tag{'NO_FP_API'} != -1) && !$W32)))
|
||||||
{ $t=&do_line($name,$_); }
|
{ $t=&do_line($name,$_); }
|
||||||
else
|
else
|
||||||
{ $t=undef; }
|
{ $t=undef; }
|
||||||
@ -216,24 +221,31 @@ sub do_line
|
|||||||
{ return($1); }
|
{ return($1); }
|
||||||
elsif (/(SSL_get_info_callback)/)
|
elsif (/(SSL_get_info_callback)/)
|
||||||
{ return($1); }
|
{ return($1); }
|
||||||
elsif ((!$NT) && /(ERR_load_CRYPTO_strings)/)
|
elsif ((!$W32) && /(ERR_load_CRYPTO_strings)/)
|
||||||
{ return("ERR_load_CRYPTOlib_strings"); }
|
{ return("ERR_load_CRYPTOlib_strings"); }
|
||||||
elsif (!$NT && /BIO_s_file/)
|
elsif (!$W32 && /BIO_s_file/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
elsif (!$NT && /BIO_new_file/)
|
elsif (!$W32 && /BIO_new_file/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
elsif (!$NT && /BIO_new_fp/)
|
elsif (!$W32 && /BIO_new_fp/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
elsif ($NT && /BIO_s_file_internal/)
|
elsif ($W32 && /BIO_s_file_internal/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
elsif ($NT && /BIO_new_file_internal/)
|
elsif ($W32 && /BIO_new_file_internal/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
elsif ($NT && /BIO_new_fp_internal/)
|
elsif ($W32 && /BIO_new_fp_internal/)
|
||||||
|
{ return(undef); }
|
||||||
|
elsif (/SSL_add_cert_dir_to_stack/)
|
||||||
|
{ return(undef); }
|
||||||
|
elsif (!$NT && /BIO_s_log/)
|
||||||
{ return(undef); }
|
{ return(undef); }
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/\s\**(\S+)\s*\(/;
|
/\s\**(\S+)\s*\(/;
|
||||||
return($1);
|
$_ = $1;
|
||||||
|
tr/()*//d;
|
||||||
|
#print STDERR "$1 : $_\n";
|
||||||
|
return($_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,7 +263,7 @@ sub print_def_file
|
|||||||
local(*OUT,$name,*nums,@functions)=@_;
|
local(*OUT,$name,*nums,@functions)=@_;
|
||||||
local($n)=1;
|
local($n)=1;
|
||||||
|
|
||||||
if ($NT)
|
if ($W32)
|
||||||
{ $name.="32"; }
|
{ $name.="32"; }
|
||||||
else
|
else
|
||||||
{ $name.="16"; }
|
{ $name.="16"; }
|
||||||
@ -267,7 +279,7 @@ DESCRIPTION 'OpenSSL $name - http://www.openssl.org/'
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if (!$NT)
|
if (!$W32)
|
||||||
{
|
{
|
||||||
print <<"EOF";
|
print <<"EOF";
|
||||||
CODE PRELOAD MOVEABLE
|
CODE PRELOAD MOVEABLE
|
||||||
@ -298,7 +310,7 @@ EOF
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$n=$nums{$func};
|
$n=$nums{$func};
|
||||||
printf OUT " %s%-40s@%d\n",($NT)?"":"_",$func,$n;
|
printf OUT " %s%-40s@%d\n",($W32)?"":"_",$func,$n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf OUT "\n";
|
printf OUT "\n";
|
||||||
|
@ -26,6 +26,7 @@ if ($debug)
|
|||||||
$lflags.=" /debug";
|
$lflags.=" /debug";
|
||||||
$mlflags.=' /debug';
|
$mlflags.=' /debug';
|
||||||
}
|
}
|
||||||
|
$cflags .= " -DWINNT" if $NT == 1;
|
||||||
|
|
||||||
$obj='.obj';
|
$obj='.obj';
|
||||||
$ofile="/Fo";
|
$ofile="/Fo";
|
||||||
|
@ -164,3 +164,6 @@ SSL_CTX_set_cert_store 181
|
|||||||
SSL_want 182
|
SSL_want 182
|
||||||
SSL_library_init 183
|
SSL_library_init 183
|
||||||
SSL_COMP_add_compression_method 184
|
SSL_COMP_add_compression_method 184
|
||||||
|
SSL_add_cert_file_to_stack 185
|
||||||
|
SSL_set_tmp_rsa_callback 186
|
||||||
|
SSL_set_tmp_dh_callback 187
|
||||||
|
Loading…
x
Reference in New Issue
Block a user