I am having trouble loading the OpenSSL FIPS DLLs (2.0.5, using OpenSSL 1.0.1e) 
in my 32-bit Windows application. Most of the time I get a "fingerprint does 
not match" error from FIPS_mode_set but now and again, with no code changes, it 
succeeds. I have a feeling it has to do with "rebasing" and where the DLL is 
loaded into memory.

Running dumpbin on libeay32.dll shows an image base of "FB00000" which I 
believe is correct. My application executable loads a DLL which loads a second 
DLL, and that second DLL is the one that loads the FIPS DLLs. My DLLs are built 
with /FIXED:NO and /BASE: with a specific address. I have made no changes to 
the OpenSSL build procedure.

My problem is that I don't understand rebasing well enough to know if I need to 
build my DLLs differently, or if I need to tweak the OpenSSL build procedure.

I was seeing a similar problem on 64-bit Windows for a while but that error 
just "magically" went away and I haven't seen it since. I'm worried that the 
64-bit problem is still there and I'm just getting lucky.

Thanks for any pointers
Graeme Perrow

Reply via email to