Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OpenSSL binaries for Linux needed or not?
#3
(10-24-2018, 06:45 AM)BosseB Wrote: I installed the IndyLaz package for Indy10 via OnlinePackageManager in Lazarus and it seems like it accepts all of my Indy calls during compile.
But this Delphi project relied on two dlls (libeay32.dll and ssleay32.dll) for SSL to operate on Windows.
Do I need to put some corresponding Linux binaries into my project directory

Yes, you need the corresponding .SO files for Linux.

(10-24-2018, 06:45 AM)BosseB Wrote: and if so where can I get them?

They might already be installed in your Linux distro. If so, then simply call Indy's IdOpenSSLSetLibPath() function at runtime to tell Indy where they are located. Otherwise, you will have to compile them yourself, or find a 3rd party download for them. Indy does not provide pre-compiled .SO files for Linux at this time.

(10-24-2018, 06:45 AM)BosseB Wrote: Or is the fact that I installed OpenSSL into Ubuntu enough for Indy10 to be able to use SSL?

It can, provided that installation is for OpenSSL 1.0.2 or earlier (Indy does not support OpenSSL 1.1.0+ yet), and you point Indy to the folder with the .SO files.

(10-24-2018, 06:45 AM)BosseB Wrote: It turns out that the SSL connection apparently needs something extra in Linux...
I am getting the following exception when connecting to the mail server to retrieve email using POP3:

[Image: SSL_FileNotFound.png]

I don't know what that is exactly, but it is not related to Indy. Probably something in how OpenSSL itself is loaded.

(10-24-2018, 06:45 AM)BosseB Wrote: Followed by this when I click No twice:

[Image: SSL_Error_Linux.png]

"EOF was observed that violates the protocol" is an OpenSSL error message, so OpenSSL is actually being loaded. It means the remote peer closed the socket connection while OpenSSL was still processing the SSL/TLS handshake, usually because the remote peer did not like something in the handshake and just closed the connection without sending a TLS alert back to your client first.

EIdOSSLConnectError() is an Indy exception class that is raised when OpenSSL fails to establish an outgoing handshake with the remote peer.

(10-24-2018, 10:58 AM)BosseB Wrote: So the problem seems to be with this strange file "dl-error-skeleton.c" that cannot be located...
Is that supposed to be part of Indy10?

No. It is actually part of the GNU C compiler/linker instead.

The same error, but relating to MySQL instead, was reported in the Lazarus forum earlier this year:

https://forum.lazarus.freepascal.org/ind...ic=40771.0

Reply


Messages In This Thread
RE: OpenSSL binaries for Linux needed or not? - by rlebeau - 10-24-2018, 06:24 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)