If you're not using SSleay on WinNT - no need to read further.
I've put out at http://www.opengroup.org/~agray/dev/ two Winzip files that contain
Workspace and corresonding project files for SSLeay-0.9.0 and also 0.8.1.
Andrew Gray
The Open Group Research Institute
The README:
4/19/98 1515GMT
Developer Studio Workspace and Project files for SSLeay-0.9.0 (and 0.8.1)
Installation:
1. Extract SSLeay-0.9.0.tar.gz (or 0.8.1.tar.gz) as you normally would.
2. Extract VCSSLeay.zip from the same location targetting the same
directory. This will create another directory named "msvc" at the top
of the SSLeay directory tree. CD into that directory and double click
on the vcssleay.dsw file. This will open up a Microsoft Developer Studio
Workspace containing 49 projects. Dependancies are built into the
workspace - i.e. libeay32.dll will be built automatically before asn1parse.
Executables are built independently and ssleay.exe is not built ( see below).
3. Open a command prompt and run "perl Configure VC-WIN32" as per the
instructions in the $SSLeay-0.9.0_ROOT/MICROSOFT file.
4. Set your active configuration for each project to debug. It's best
to do a "batch build" first. Click on the debug version of each project
by marking each project's build setting as debug in Menu:Build/Batch Build...
There is no need to copy header files around. Have a look through the
project settings tabs to see how the resolution is done. You might also
want to go there if you want the browse info files built for function browsing.
Things that typically cause errors:
1.Make sure that ALL Microsoft SDKs are removed from your default include path in
Menu:Tools/Options/Directories. The Only path that I have in mine is
c:\Program Files\DevStudio\VC\INCLUDE
2.Not Running configure in step 3.
What is implemented:
D:\SSLeay-0.9.0\msvc>ls -l
D:\SSLeay-0.9.0\msvc\*.*
d---- 0 Sat Apr 18 10:07:26 1998 [asn1parse]
d---- 0 Sat Apr 18 10:07:26 1998 [bftest]
d---- 0 Sat Apr 18 10:07:26 1998 [bntest]
d---- 0 Sat Apr 18 10:07:26 1998 [ca]
d---- 0 Sat Apr 18 10:07:27 1998 [casttest]
d---- 0 Sat Apr 18 10:07:27 1998 [ciphers]
d---- 0 Sat Apr 18 10:07:28 1998 [crl2pkcs7]
d---- 0 Sat Apr 18 10:07:27 1998 [crl]
d---- 0 Sat Apr 18 10:07:28 1998 [destest]
d---- 0 Sat Apr 18 10:07:28 1998 [dgst]
d---- 0 Sat Apr 18 10:07:28 1998 [dh]
d---- 0 Sat Apr 18 10:07:29 1998 [dhtest]
d---- 0 Sat Apr 18 10:07:29 1998 [dsa]
d---- 0 Sat Apr 18 10:07:29 1998 [dsaparam]
d---- 0 Sat Apr 18 10:07:30 1998 [dsatest]
d---- 0 Sat Apr 18 10:07:30 1998 [enc]
d---- 0 Sat Apr 18 10:07:30 1998 [errstr]
d---- 0 Sat Apr 18 10:07:31 1998 [exptest]
d---- 0 Sat Apr 18 10:07:31 1998 [gendh]
d---- 0 Sat Apr 18 10:07:31 1998 [gendsa]
d---- 0 Sat Apr 18 10:07:31 1998 [genrsa]
d---- 0 Sat Apr 18 12:26:19 1998 [hmactest]
d---- 0 Sat Apr 18 10:07:32 1998 [ideatest]
d---- 0 Sat Apr 18 10:07:34 1998 [libeay32]
d---- 0 Sat Apr 18 12:26:19 1998 [md2]
d---- 0 Sat Apr 18 10:07:34 1998 [md2test]
d---- 0 Sat Apr 18 12:26:19 1998 [md5]
d---- 0 Sat Apr 18 10:07:35 1998 [md5test]
d---- 0 Sat Apr 18 10:07:35 1998 [mdc2test]
d---- 0 Sat Apr 18 10:07:35 1998 [pkcs7]
d---- 0 Sat Apr 18 10:07:36 1998 [randtest]
d---- 0 Sat Apr 18 10:07:36 1998 [rc2test]
d---- 0 Sat Apr 18 10:07:36 1998 [rc4test]
d---- 0 Sat Apr 18 10:07:37 1998 [req]
d---- 0 Sat Apr 18 10:07:37 1998 [rsa]
d---- 0 Sat Apr 18 10:07:37 1998 [s_client]
d---- 0 Sat Apr 18 10:07:38 1998 [s_server]
d---- 0 Sat Apr 18 10:07:38 1998 [s_time]
d---- 0 Sat Apr 18 10:07:38 1998 [sess_id]
d---- 0 Sat Apr 18 12:26:18 1998 [sha1]
d---- 0 Sat Apr 18 10:07:39 1998 [sha1test]
d---- 0 Sat Apr 18 10:07:39 1998 [sha]
d---- 0 Sat Apr 18 10:07:40 1998 [shatest]
d---- 0 Sat Apr 18 10:07:40 1998 [speed]
d---- 0 Sat Apr 18 10:07:25 1998 [ssleay32]
d---- 0 Sat Apr 18 10:07:40 1998 [ssltest]
d---- 0 Sat Apr 18 10:07:41 1998 [verify]
d---- 0 Sat Apr 18 10:07:41 1998 [version]
d---- 0 Sat Apr 18 10:07:42 1998 [x509]
--a-- 16535 Sat Apr 18 10:07:42 1998 VCSSLeay.dsw
Other things:
This has been built using NT4 sp3, VC++ 5 with patch3
The default c runtime for all debug workspaces is Debug Multithreaded dll. For
the Release build it is Multithreaded dll. If you change it - What ever you
do don't mix it across projects - that is make sure its consistent across everything...
I dump everything into SSLeay_root/out for the debug build. It goes into
SSLeay_root/Release for the release build. If either directory doesn't exist, it
will be created on the first build. This can be changed in the Project Settings tab.
In a cursory run through - all the tests listed above succeed. You'll have to twiddle
the default ssleay.cnf file for testing for stuff like req, ca , etc, but they all
seem to work.
For the debug build, I've added WIN32_LEAN_AND_MEAN to all debug project settings
except for a couple smaller ones (eg. crl2pkcs7) where _fmode is needed (stdlib.h) in
order to speed things up. Additionally NOCRYPT is defined for everything to prevent
the inclusion of wincrypt.h. Take a look through windows.h to see what else you can
get rid of. This speeds up the debug build which for me on a 100mhz 96 mb RAM machine
takes 15 minutes including full debug and browse info for the entire 49 projects.
There are some known problems with some of the browse info generation in some of the
projects - primarily the executables that need apps.c, but all of the executables'
builds succeed.
I've left the precompiled header flags on - even though they consistently get
regenerated, it does tend to speed things up (I think).
Very few of the actual encryption executables are included as projects - i.e. the
des-ede3 executable since i've never really figured out how to build the ssleay
monolith executable in a developer studio environment (conflicting mains) so if you
do know, let me know. But no matter, enc.exe is included ( and has been thoroughly
tested).
I think I've removed all of the references to aspects of the library that I've done
on my own, but if you find remnants, let me know - ldap, berkeleydb, and any
EC_ (eliptic curve) stuff.
Things left to do:
1. Figure out how to do the ssleay executable.
2. Assembler routines for crypto stuff inside dev studio - (I need to upgrade MASM)
3. Fix browse info problems due to inclusion of apps.c in several executables.
4. RSAREF glue stuff - Ive never really had a need since most of what I'm doing is
either edh_dss or elliptic curve based.
Why I did this:
I originally did this to make debugging some netscape web server api client
certificate parsing modules easier before they really provided a documented api or
even an entry point. I had really only a need for libeay (crypt32.dll in the
0.6.x days) so that's all I did. Then I was faced with exporting a subset of the
win NT library (066) consisting only of the asn1 and x509 routines to France and
needed to rip all references to cryptographic routines out - this made it
extremely easy. Next, when I was forced to start writing some of my own d2i
and i2d functions for attribute certificates on NT and actually debugging stuff
as it comes off the wire I finished it off since I needed s_client and s_server.
I routinely left a working copy in a directory in afs which was under my public_html
directory for easy access from off site and as it happened, it was indexed by some
search engine(s) and I started to get the random note on its use.
Oh yea- this stuff is hereby put into the public domain but if you use it dont forget
that all the source files which it wraps are Erics and Tims:
* 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.
* 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 ([EMAIL PROTECTED])"
And if you end up really using it alot, buy me a beer if you ever run into me :-)
For obvious reasons, SSleay code cannot be included. If you're in the states, help
change
this and write your congressman/congresswoman. Since pro is the opposite of con,
what's
the opposite of progress???
Andrew W. Gray
The Open Group Research Institute
[EMAIL PROTECTED]
P.S. I dont consider that this falls under any export controls, although that
may change if Big Brother visits on monday morning.
+-------------------------------------------------------------------------+
| Administrative requests should be sent to [EMAIL PROTECTED] |
| List service provided by Open Software Associates, http://www.osa.com/ |
+-------------------------------------------------------------------------+