Wednesday, 21 April 2021
  3 Replies
  1.1K Visits
  Subscribe
Hi Sergio,

Thought you might be interested in my couple days of struggle.

SSL on ARM using the supplied indy for lazarus was not functioning, excepting with "Could not load SSL Libraries". Raspbian comes packaged with libraries for 1.1 so I downloaded 1.0.2 and symlinked these in /lib/ with libssl.so and libcryto.so. This was still causing issues, the libraries were being loaded (I could see memory address being allocated) but still failing.

Ultimately I tracked this down to 3 functions failing to load, around line 21314 of IdSSLOpenSSLHeaders.pas:

@SSLv3_method := LoadFunction(fn_SSLv3_method);
@SSLv3_server_method := LoadFunction(fn_SSLv3_server_method);
@SSLv3_client_method := LoadFunction(fn_SSLv3_client_method);


Commented out these have stopped the exception, a connection is established to the server correctly and messages are being sent. Ultimately I believe this is due to the bundled version of Indy for Lazarus is quite old, expecting DLL versions of 0.9.9 or lower (line 18277 of IdSSLOpenSSLHeaders.pas). I haven't had a lot of time to test this since the connection has been established, but so far nothing untoward.

If you've run into this before, or have an updated version of Indy for Lazarus that works with SGC it would be tip top, otherwise this is here mostly for posterity to save the next person 2 days of headaches.