>       My executable loads a DLL (A) which loads a second DLL (B), and that
> second DLL is linked with the OpenSSL libraries, so the libeay32.dll
> and ssleay32.dll are loaded automatically when B loads. However,
> libeay32.dll does not always load  at the right address, and so the
> fingerprint check within FIPS_mode_set fails. I tried changing my
> OpenSSL build procedure (as described in the thread linked above) to
> include /FIXED and /DYNAMICBASE:NO but that did not solve the problem.
> Now, attempting to  load DLL B fails with ERROR_INVALID_ADDRESS.

I had a similar problem with building the 32bit DLL for windows 8.
In my case I had missed that you need to set both
LFLAGS=/nologo /subsystem:console /opt:ref /debug /DYNAMICBASE:NO /FIXED
and
MLFLAGS= /nologo /subsystem:console /opt:ref /debug /dll /DYNAMICBASE:NO /FIXED
in ntdll.mak

A good test to see if it works is to
set OPENSSL_FIPS=1
in cmd and run
openssl.exe md5 openssl.exe
This will give different output for fips check fail, fips not
activated, and fips working as intended.
If it works after a reboot it works for real.

//Anton
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to