On Sun, Apr 15, 2012, Vimol Kshetrimayum wrote: > Andy Polyakov <appro <at> openssl.org> writes: > > > > > > I tested this on the x86 version of the DLL and I imagine it will fix > > > the x64 DLL as well (they both reported the same error). It looks > > > like this setting will need to be added for VS2010. > > > > As mentioned [in another reply], I was under impression that x64 code is > > always position-independent, i.e. I'd expect x64 to work even if > > relocated. Oh well... Closer look revealed that .text segment, code > > itself, *is* indeed position-independent, but not .rdata, which is also > > fingerprinted. In order for this to work it is implied that compiler > > moves relocatable data from .rdata segment. Unix compiler actually do > > that, but apparently not Windows A. > > ______________________________________________________________________ > > OpenSSL Project http://www.openssl.org > > Development Mailing List openssl-dev <at> openssl.org > > Automated List Manager majordomo <at> openssl.org > > > > > > > I am facing same issue when I built x64 version of FIPS object module > (1.2.3)and > openSSL 0.9.8.u on Windows 7 with Visual Studio 2010. > > As suggested in this thread, I have edited the openssl-0.9.8u\ms\ntdll.mak > and > added /FIXED flag in LFLAGS as below. > > LFLAGS=/FIXED /nologo /subsystem:console /opt:ref > > Now, out32dll/fips_test_suite.exe running successfully after compiling with > /FIXED linker option. > > However, my sample application which is linking dynamically with libeay32.dll > is > returning same finger print mismatch error.Sample application also links with > /FIXED linker option. > > dumpbin shows no randomization code in "DLL characteristics" for both > libeay32.dll and sample application. > > Here is the link lines for libeay32.dll: > ---------------------------------------------------- > perl util\fipslink.pl /FIXED /nologo /subsystem:console /opt:ref /dll /map > /base:0xFB00000 /out:out32dll\libeay32.dll /def:ms/LIBEAY32.def > @C:\Users\VIMOL_~1\AppData\Local\Temp\nm9209.tmp > ---------------------------------------------------- > > Value of DLL characteristics from dumpbin: > ---------------------------------------------------- > 100 DLL characteristics > NX compatible > ---------------------------------------------------- > > Is the above value of link line and DLL characteristics correct? Or did I miss > anything? Or is OS forcefully loading the libeay32.DLL at randomized address? > >
Try adding: /fixed explicitly to the linker rule for libeay32.dll, it is the section beginning: $(O_CRYPTO): ... Alternatively you can add it to the MLFLAGS line in the makefile but that will affect ssleay32.dll too. If that doesn't work try /dynamicbase:no /fixed Steve. -- Dr Stephen N. Henson. OpenSSL project core developer. Commercial tech support now available see: http://www.openssl.org ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org