Sure I prefer to use Linux or Solaris where all versions of OpenSSL compile
effortlessly but I mostly have to use NT 4.0 for work. To get access to my
key protected info, I've tried to compile OpenSSL 0.9.5a (and earlier
versions) with both CygWin32 & Mingw32. This has always been a nightmare.
After heaps of patching I get CygWin to compile, "make test" passes but
straight file encryption (e.g. opensssl enc -e/d -in ... -out....) fails
because of issues with cr/lf handling.
After lots of time hacking the code, it strikes me that the makefile.one
approach for CygWin is wrong. After all, CygWin provides a good bash shell
and Unix-like enviornment under Windows. Most of the compilation/execution
problems occur because fo the many "ifdef WIN32/MSDOS/WINDOWS" and similar.
Surely it makes more sense to use the CygWin provided Unix compatible calls?
A Unix-like clean compile turned out to be simple to achieve with a few
edits to e_os.h to prevent MS defines , followed by
$./configure no-threads CygWin32
$make links
$.... edit crypto/buildinf.h to delete the #error line
$make all
Only two problems occur that I see:
crypto/asn1/a_utctm.c doesn't find "gmtime", I've kludged this in my version
as I'm not a C programmer and I don't use this function, any suggestions
welcome.
Also Make install doesn't handle the .exe extension on openssl - I install
manually.
I've attached a diff file and would really appreciate comments of those who
are wiser than I am.
Also is /dev/random & /dev/urandom reliable on CygWin 1.1.1 under NT 4.0?
John Jarvie
openssl-SNAP-20000521.patch