Reputation: 326
Using Delphy 10.4: I am trying to start a IdTCPServer with IdServerIOHandlerSSLOpenSSL. Under Linux, I get a "EIdOSSLCouldNotLoadSSLLibrary; Could not load SSL library." Under Windows, this works fine.
In the SSL directory, I now have both the Windows DLL's, and the .so files which I generated by compiling the "openssl-1.1.1j" .
So the SSL directory contains libeay32.dll, ssleay32.dll, libcrypto.so, libssl.so.
Why does it not accept it under Linux?
Upvotes: 2
Views: 1232
Reputation: 598134
First, you can't use Windows DLLs on Linux. You need Linux binaries, and on Linux TIdSSLIOHandlerSocketOpenSSL
will be looking for libssl.so.x.x.x[l]
and libcrypto.so.x.x.x[l]
(where x.x.x
is the version 1.0.2
or lower, and [l]
is an optional letter a..z
, or libssl.so
/libcrypto.so
symlinks that map to such versions).
Second, TIdSSLIOHandlerSocketOpenSSL
, and by extension TIdServerIOHandlerSSLOpenSSL
, does not support OpenSSL 1.1.x, only OpenSSL 1.0.2 and earlier, as you can see above.
To use OpenSSL 1.1.x, you need to use a different IOHandler
. One is currently in a pull request awaiting review, and so has not been merged into Indy's main code yet, but you can try it and see if it works for you:
#299 Added new OpenSSL IO Handler for OpenSSL 1.1.1
Upvotes: 7