Update from 1.0.0-stable.

This commit is contained in:
Dr. Stephen Henson 2009-04-26 22:18:22 +00:00
parent 127186bf57
commit d4f0339c66
19 changed files with 94 additions and 25 deletions

View File

@ -484,11 +484,11 @@ my %table=(
# Visual C targets # Visual C targets
# #
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64 # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ias:win32", "VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ias:win32",
"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o::ml64:win32", "VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:x86_64cpuid.o:bn_asm.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o:::wp-x86_64.o::ml64:win32",
# x86 Win32 target defaults to ANSI API, if you want UNICODE, complement # x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
# 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE' # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
"VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", "VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
# Unified CE target # Unified CE target
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
@ -918,7 +918,8 @@ if (defined($disabled{"tls1"}))
$disabled{"tlsext"} = "forced"; $disabled{"tlsext"} = "forced";
} }
if (defined($disabled{"ec"})) if (defined($disabled{"ec"}) || defined($disabled{"dsa"})
|| defined($disabled{"dh"}))
{ {
$disabled{"gost"} = "forced"; $disabled{"gost"} = "forced";
} }

View File

@ -27,7 +27,7 @@
- Netwide Assembler, a.k.a. NASM, available from http://nasm.sourceforge.net/ - Netwide Assembler, a.k.a. NASM, available from http://nasm.sourceforge.net/
is required if you intend to utilize assembler modules. Note that NASM is required if you intend to utilize assembler modules. Note that NASM
is the only supported assembler. is now the only supported assembler.
If you are compiling from a tarball or a CVS snapshot then the Win32 files If you are compiling from a tarball or a CVS snapshot then the Win32 files
may well be not up to date. This may mean that some "tweaking" is required to may well be not up to date. This may mean that some "tweaking" is required to
@ -43,7 +43,7 @@
Firstly you should run Configure: Firstly you should run Configure:
> perl Configure VC-WIN32 --prefix=c:/some/openssl/dir > perl Configure VC-WIN32 --prefix=c:\some\openssl\dir
Where the prefix argument specifies where OpenSSL will be installed to. Where the prefix argument specifies where OpenSSL will be installed to.
@ -56,6 +56,7 @@
- If you don't want to use the assembly language files at all then run: - If you don't want to use the assembly language files at all then run:
> perl Configure VC-WIN32 no-asm --prefix=c:/some/openssl/dir
> ms\do_ms > ms\do_ms
If you get errors about things not having numbers assigned then check the If you get errors about things not having numbers assigned then check the

View File

@ -921,11 +921,13 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
&pkey, NULL, NULL)) &pkey, NULL, NULL))
goto end; goto end;
} }
#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DSA)
else if (format == FORMAT_MSBLOB) else if (format == FORMAT_MSBLOB)
pkey = b2i_PrivateKey_bio(key); pkey = b2i_PrivateKey_bio(key);
else if (format == FORMAT_PVK) else if (format == FORMAT_PVK)
pkey = b2i_PVK_bio(key, (pem_password_cb *)password_callback, pkey = b2i_PVK_bio(key, (pem_password_cb *)password_callback,
&cb_data); &cb_data);
#endif
else else
{ {
BIO_printf(err,"bad input format specified for key file\n"); BIO_printf(err,"bad input format specified for key file\n");
@ -989,6 +991,7 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
{ {
pkey=d2i_PUBKEY_bio(key, NULL); pkey=d2i_PUBKEY_bio(key, NULL);
} }
#ifndef OPENSSL_NO_RSA
else if (format == FORMAT_ASN1RSA) else if (format == FORMAT_ASN1RSA)
{ {
RSA *rsa; RSA *rsa;
@ -1018,7 +1021,7 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
else else
pkey = NULL; pkey = NULL;
} }
#endif
else if (format == FORMAT_PEM) else if (format == FORMAT_PEM)
{ {
pkey=PEM_read_bio_PUBKEY(key,NULL, pkey=PEM_read_bio_PUBKEY(key,NULL,
@ -1028,8 +1031,10 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC) else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC)
pkey = load_netscape_key(err, key, file, key_descrip, format); pkey = load_netscape_key(err, key, file, key_descrip, format);
#endif #endif
#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DSA)
else if (format == FORMAT_MSBLOB) else if (format == FORMAT_MSBLOB)
pkey = b2i_PublicKey_bio(key); pkey = b2i_PublicKey_bio(key);
#endif
else else
{ {
BIO_printf(err,"bad input format specified for key file\n"); BIO_printf(err,"bad input format specified for key file\n");

View File

@ -349,4 +349,10 @@ end:
apps_shutdown(); apps_shutdown();
OPENSSL_EXIT(ret); OPENSSL_EXIT(ret);
} }
#else /* !OPENSSL_NO_DH */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -554,4 +554,10 @@ static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
return 1; return 1;
} }
#else /* !OPENSSL_NO_DH */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -334,6 +334,7 @@ bad:
i=PEM_write_bio_DSA_PUBKEY(out,dsa); i=PEM_write_bio_DSA_PUBKEY(out,dsa);
else i=PEM_write_bio_DSAPrivateKey(out,dsa,enc, else i=PEM_write_bio_DSAPrivateKey(out,dsa,enc,
NULL,0,NULL, passout); NULL,0,NULL, passout);
#ifndef OPENSSL_NO_RSA
} else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) { } else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) {
EVP_PKEY *pk; EVP_PKEY *pk;
pk = EVP_PKEY_new(); pk = EVP_PKEY_new();
@ -345,6 +346,7 @@ bad:
else else
i = i2b_PrivateKey_bio(out, pk); i = i2b_PrivateKey_bio(out, pk);
EVP_PKEY_free(pk); EVP_PKEY_free(pk);
#endif
} else { } else {
BIO_printf(bio_err,"bad output format specified for outfile\n"); BIO_printf(bio_err,"bad output format specified for outfile\n");
goto end; goto end;
@ -365,4 +367,10 @@ end:
apps_shutdown(); apps_shutdown();
OPENSSL_EXIT(ret); OPENSSL_EXIT(ret);
} }
#else /* !OPENSSL_NO_DSA */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -475,4 +475,10 @@ static int MS_CALLBACK dsa_cb(int p, int n, BN_GENCB *cb)
#endif #endif
return 1; return 1;
} }
#else /* !OPENSSL_NO_DSA */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -235,4 +235,10 @@ static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
#endif #endif
return 1; return 1;
} }
#else /* !OPENSSL_NO_DH */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -279,4 +279,10 @@ end:
apps_shutdown(); apps_shutdown();
OPENSSL_EXIT(ret); OPENSSL_EXIT(ret);
} }
#else /* !OPENSSL_NO_DSA */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -1715,7 +1715,7 @@ static EVP_PKEY_CTX *set_keygen_ctx(BIO *err, const char *gstr, int *pkey_type,
ERR_print_errors(err); ERR_print_errors(err);
return NULL; return NULL;
} }
#ifndef OPENSSL_NO_RSA
if ((*pkey_type == EVP_PKEY_RSA) && (keylen != -1)) if ((*pkey_type == EVP_PKEY_RSA) && (keylen != -1))
{ {
if (EVP_PKEY_CTX_set_rsa_keygen_bits(gctx, keylen) <= 0) if (EVP_PKEY_CTX_set_rsa_keygen_bits(gctx, keylen) <= 0)
@ -1726,6 +1726,7 @@ static EVP_PKEY_CTX *set_keygen_ctx(BIO *err, const char *gstr, int *pkey_type,
return NULL; return NULL;
} }
} }
#endif
return gctx; return gctx;
} }

View File

@ -409,6 +409,7 @@ bad:
} }
else i=PEM_write_bio_RSAPrivateKey(out,rsa, else i=PEM_write_bio_RSAPrivateKey(out,rsa,
enc,NULL,0,NULL,passout); enc,NULL,0,NULL,passout);
#ifndef OPENSSL_NO_DSA
} else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) { } else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) {
EVP_PKEY *pk; EVP_PKEY *pk;
pk = EVP_PKEY_new(); pk = EVP_PKEY_new();
@ -420,6 +421,7 @@ bad:
else else
i = i2b_PrivateKey_bio(out, pk); i = i2b_PrivateKey_bio(out, pk);
EVP_PKEY_free(pk); EVP_PKEY_free(pk);
#endif
} else { } else {
BIO_printf(bio_err,"bad output format specified for outfile\n"); BIO_printf(bio_err,"bad output format specified for outfile\n");
goto end; goto end;

View File

@ -342,4 +342,10 @@ static void usage()
} }
#else /* !OPENSSL_NO_RSA */
# if PEDANTIC
static void *dummy=&dummy;
# endif
#endif #endif

View File

@ -61,7 +61,9 @@
#include <stdio.h> #include <stdio.h>
#include <errno.h> #include <errno.h>
#ifdef OPENSSL_SYS_VMS
#include <sys/time.h> #include <sys/time.h>
#endif
#define USE_SOCKETS #define USE_SOCKETS
#include "cryptlib.h" #include "cryptlib.h"

View File

@ -77,9 +77,15 @@ extern const EVP_PKEY_METHOD ec_pkey_meth, hmac_pkey_meth;
static const EVP_PKEY_METHOD *standard_methods[] = static const EVP_PKEY_METHOD *standard_methods[] =
{ {
#ifndef OPENSSL_NO_RSA
&rsa_pkey_meth, &rsa_pkey_meth,
#endif
#ifndef OPENSSL_NO_DH
&dh_pkey_meth, &dh_pkey_meth,
#endif
#ifndef OPENSSL_NO_DSA
&dsa_pkey_meth, &dsa_pkey_meth,
#endif
#ifndef OPENSSL_NO_EC #ifndef OPENSSL_NO_EC
&ec_pkey_meth, &ec_pkey_meth,
#endif #endif

View File

@ -63,6 +63,7 @@
#include <openssl/pem.h> #include <openssl/pem.h>
#include <openssl/rand.h> #include <openssl/rand.h>
#include <openssl/bn.h> #include <openssl/bn.h>
#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DSA)
#include <openssl/dsa.h> #include <openssl/dsa.h>
#include <openssl/rsa.h> #include <openssl/rsa.h>
@ -933,3 +934,4 @@ int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel,
} }
return -1; return -1;
} }
#endif

View File

@ -56,12 +56,12 @@
#include <string.h> #include <string.h>
#include <openssl/crypto.h> #include <openssl/crypto.h>
#include <openssl/buffer.h> #include <openssl/buffer.h>
#include <openssl/rsa.h>
#include <openssl/bn.h> #include <openssl/bn.h>
#ifdef OPENSSL_SYS_WIN32 #ifdef OPENSSL_SYS_WIN32
#ifndef OPENSSL_NO_CAPIENG #ifndef OPENSSL_NO_CAPIENG
#include <openssl/rsa.h>
#include <windows.h> #include <windows.h>

View File

@ -85,7 +85,9 @@
#include <openssl/crypto.h> #include <openssl/crypto.h>
#include <openssl/buffer.h> #include <openssl/buffer.h>
#include <openssl/engine.h> #include <openssl/engine.h>
#ifndef OPENSSL_NO_RSA
#include <openssl/rsa.h> #include <openssl/rsa.h>
#endif
#include <openssl/bn.h> #include <openssl/bn.h>
#ifndef OPENSSL_NO_HW #ifndef OPENSSL_NO_HW

View File

@ -95,14 +95,14 @@ static int ubsec_finish(ENGINE *e);
static int ubsec_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void)); static int ubsec_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void));
static int ubsec_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, static int ubsec_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
const BIGNUM *m, BN_CTX *ctx); const BIGNUM *m, BN_CTX *ctx);
#ifndef OPENSSL_NO_RSA
static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
const BIGNUM *q, const BIGNUM *dp, const BIGNUM *q, const BIGNUM *dp,
const BIGNUM *dq, const BIGNUM *qinv, BN_CTX *ctx); const BIGNUM *dq, const BIGNUM *qinv, BN_CTX *ctx);
#ifndef OPENSSL_NO_RSA
static int ubsec_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); static int ubsec_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx);
#endif
static int ubsec_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, static int ubsec_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx);
#endif
#ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
#ifdef NOT_USED #ifdef NOT_USED
static int ubsec_dsa_mod_exp(DSA *dsa, BIGNUM *rr, BIGNUM *a1, static int ubsec_dsa_mod_exp(DSA *dsa, BIGNUM *rr, BIGNUM *a1,
@ -302,10 +302,10 @@ static t_UBSEC_diffie_hellman_generate_ioctl
*p_UBSEC_diffie_hellman_generate_ioctl = NULL; *p_UBSEC_diffie_hellman_generate_ioctl = NULL;
static t_UBSEC_diffie_hellman_agree_ioctl *p_UBSEC_diffie_hellman_agree_ioctl = NULL; static t_UBSEC_diffie_hellman_agree_ioctl *p_UBSEC_diffie_hellman_agree_ioctl = NULL;
#endif #endif
/* #ifndef OPENSSL_NO_RSA */
static t_UBSEC_rsa_mod_exp_ioctl *p_UBSEC_rsa_mod_exp_ioctl = NULL; static t_UBSEC_rsa_mod_exp_ioctl *p_UBSEC_rsa_mod_exp_ioctl = NULL;
#ifndef OPENSSL_NO_RSA
static t_UBSEC_rsa_mod_exp_crt_ioctl *p_UBSEC_rsa_mod_exp_crt_ioctl = NULL; static t_UBSEC_rsa_mod_exp_crt_ioctl *p_UBSEC_rsa_mod_exp_crt_ioctl = NULL;
/* #endif */ #endif
#ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
static t_UBSEC_dsa_sign_ioctl *p_UBSEC_dsa_sign_ioctl = NULL; static t_UBSEC_dsa_sign_ioctl *p_UBSEC_dsa_sign_ioctl = NULL;
static t_UBSEC_dsa_verify_ioctl *p_UBSEC_dsa_verify_ioctl = NULL; static t_UBSEC_dsa_verify_ioctl *p_UBSEC_dsa_verify_ioctl = NULL;
@ -624,7 +624,6 @@ static int ubsec_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
err: err:
return to_return; return to_return;
} }
#endif
static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
const BIGNUM *q, const BIGNUM *dp, const BIGNUM *q, const BIGNUM *dp,
@ -672,6 +671,7 @@ static int ubsec_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
r->top = (BN_num_bits(p) + BN_num_bits(q) + BN_BITS2 - 1)/BN_BITS2; r->top = (BN_num_bits(p) + BN_num_bits(q) + BN_BITS2 - 1)/BN_BITS2;
return 1; return 1;
} }
#endif
#ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
#ifdef NOT_USED #ifdef NOT_USED
@ -704,6 +704,8 @@ static int ubsec_mod_exp_dsa(DSA *dsa, BIGNUM *r, BIGNUM *a,
#endif #endif
#endif #endif
#ifndef OPENSSL_NO_RSA
/* /*
* This function is aliased to mod_exp (with the mont stuff dropped). * This function is aliased to mod_exp (with the mont stuff dropped).
*/ */
@ -712,7 +714,6 @@ static int ubsec_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
{ {
int ret = 0; int ret = 0;
#ifndef OPENSSL_NO_RSA
/* Do in software if the key is too large for the hardware. */ /* Do in software if the key is too large for the hardware. */
if (BN_num_bits(m) > max_key_len) if (BN_num_bits(m) > max_key_len)
{ {
@ -720,13 +721,13 @@ static int ubsec_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
ret = (*meth->bn_mod_exp)(r, a, p, m, ctx, m_ctx); ret = (*meth->bn_mod_exp)(r, a, p, m, ctx, m_ctx);
} }
else else
#endif
{ {
ret = ubsec_mod_exp(r, a, p, m, ctx); ret = ubsec_mod_exp(r, a, p, m, ctx);
} }
return ret; return ret;
} }
#endif
#ifndef OPENSSL_NO_DH #ifndef OPENSSL_NO_DH
/* This function is aliased to mod_exp (with the dh and mont dropped). */ /* This function is aliased to mod_exp (with the dh and mont dropped). */

View File

@ -1,9 +1,11 @@
perl util\mkfiles.pl >MINFO perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak if x%OSVERSION% == x goto skipce
perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak
perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak
perl util\mkdef.pl 32 libeay > ms\libeay32.def :skipce
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def