views:

810

answers:

3

My application depends on OpenSSL libraries (through Qt networking modules; you can't compile it into Qt statically, because of legal issues)

There's this project - Win32 OpenSSL

Seems like all I need is to copy the two dlls into System32 and register them.

copy ssleay32.dll %WINDIR%\System32\ssleay32.dll
copy libeay32.dll %WINDIR%\System32\libeay32.dll
regsvr32.exe /s %WINDIR%\System32\ssleay32.dll
regsvr32.exe /s %WINDIR%\System32\libeay32.dll

And indeed, that has worked on a couple of machines in the office (my app began working correctly with https after the operation). Those have lot's of stuff installed on them, so it may interfere.

Still it does not work on a clean virtual machine under VMWare.

Though when I install Tortoise SVN under it (which ships with OpenSSL too) everything gets fine. What is the proper way of installing openssl into system?

note: Qt networking module has it's own certificate authorities list.

A: 

Maybe there are further dependencies that these two DLLs have that SVN has installed for you...

Trying using depends to see which DLLs the OpenSSL DLLs use, and make sure those are installed on your clean VMware.

Assaf Lavie
Indeed, you were right - ssleay.dll depends on msvcr90.dll which is some microsoft runtime library, part of MS Redistributables.
Maleev
The problem now is that I don't know how to properly install that library. Trying to register it with regsvr32.exe produces an error (R6034 - smth about manifest). But that's a whole another question...
Maleev
You can download from MS the redistributable package for VC9...
Assaf Lavie
yes, that's what I did eventually (though it should've been pretty evident from the start). Running it in quiet mode from installer works fine.
Maleev
Except that the version of this package specifically recommended for win32 openssl 0.9.8k has an installer bug - does not clean up temporary files after install.
Maleev
A: 

You are most likely dependent upon libsasl.dll, which ships with tortoise-svn!

Candid
A: 

Just put the DLLs in your app's installation folder. There is nothing to register (and you cannot use regsvr32 anyway, as OpenSSL does not implement ActiveX/COM servers, which is what regsvr32 is meant for).

Remy Lebeau - TeamB