IndySockets / Indy

Indy - Internet Direct
https://www.indyproject.org
434 stars 147 forks source link

Delphi Athena + Indy10 + Ubuntu 22.04.4 #532

Open arnyziukas opened 2 months ago

arnyziukas commented 2 months ago

Hi,

I have been converting a small project to work in Linux environment.

The issue is loading SSL libraries. Last error says that it fails to load "libcrypto.so" any thoughts/suggestion? I'm relatively new to Linux environment so it might just be me doing something wrong.

Delphi Athena 12.1 Ubuntu 22.04.4

Kind regards, Arnoldas

rlebeau commented 2 months ago

Indy natively supports OpenSSL only up to 1.0.2u (see #183). Chances are that libcrypto.so and libssl.so on your Linux machine are symlinks to a newer OpenSSL version. If so, Indy will fail to load OpenSSL.

You can call IdOpenSSLSetCanLoadSymLinks(false) during your app startup to avoid loading those symlinks. Then Indy will try to load specific versions of the .so files (ie, libcrypto.so.1.0.2u and libssl.so.1.0.2u) until successful, so make sure some version of those files exist on your machine. If needed, you can use IdOpenSSLSetLibPath() to specify the folder where those files exist, if different than your app folder.

Indy will try to load version-specific OpenSSL .so files in this order (including with and without a..z suffixes):

.10
.1.0.2
.1.0.1
.44 // for LibreSSL on MacOSX
.43 // for LibreSSL on MacOSX
.35 // for LibreSSL on MacOSX
.1.0.0
.0.9.9
.0.9.8
.0.9.7
.0.9.6
arnyziukas commented 2 months ago

Hi rlebeau,

Thank you for your response. That explains it, I am pretty sure the machine has OpenSSL 1.1.x .

Any recommendations where I could download just the 1.0.2 binaries for Linux environment? ( saw there's Windows and Android binaries offered in another Repository, but not sure if Android binaries are the same )

Kind regards, Arnoldas

rlebeau commented 2 months ago

Indy's OpenSSL Binaries repo has Android .so files for OpenSSL 1.0.2g and 1.0.2s.

rlebeau commented 2 weeks ago

Did this fix the issue for you?