By Guest on Sunday, 24 March 2024
Posted in General
Replies 4
Likes 0
Views 254
Votes 0
Hi,

I am evaluating if sgcIndy would solve our problem of being stuck with TLS 1.2 and OpenSSL 1.0 library. It looks promising and seems like made to solve exactly that problem. However, If I run the TCPClient/TCPServer Demos and select OpenSSL 3.0 and TLS 1.3 I can see in Wireshark that TLS1.0 is being used.

I've tried to recreate my own demo with forced values to OpenSSL API 3.0 and TLS 1.3 by changing the TIdServerIOHandlerSSLOpenSSL as well as setting the global variable OPENSSL_API_VERSION := opSSL_3_0;

I also removed all other *.dll files except for libssl-3.dll and libcrypto-3.dll from the bin folder.

As a result upon starting the application I get an Assertion failure error pointing to IdSSLOpenSSL.pas, line 3087.

Assertion_failure.png


Any change I am doing something wrong?
Hello,

The latest sgcIndy version has an error while selecting the openSSL API, the next release will fix this issue, it will be available soon, so I'll get back to you when it's released.
If you can provide the sample and which delphi version are you using I'll test here the Assertion failure.

Kind Regards,
Sergio
·
1 month ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Thank you Sergio for quick response!

I am using Delphi 11.

When I wanted to make an example project based on your TCP Server/Client example, it turns out that it suddenly worked. Then I analyzed what I did differently in my app and noticed one difference:

IdServerIOHandlerSSLOpenSSL1.Init; // Assertion failed error shows up if this code is used
IdTCPServer1.Active := True;


I guess setting this global variable does the magic of initalization already.

OPENSSL_API_VERSION := opSSL_3_0;


Attached is the updated demo TCP project to force using OpenSSL 3.0 and TLS 1.3 with the appropriate binaries needed.

There is a slight access violation when I want to close the client. Not sure if you can replicate it.

Best,
+adnan
·
1 month ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello,

The Assertion failure is because the call to the init method, this is not needed.
The exception is raised in a callback function of the indy library. The next version will fix this issue.
Thanks for the feedback.

Kind Regards,
Sergio
·
1 month ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi,

You can download the latest version of sgcIndy for Delphi 11 from:

https://www.esegece.com/download/samples/sgcIndy_2024_3_D11.zip

Kind Regards,
Sergio
·
1 month ago
·
0 Likes
·
0 Votes
·
0 Comments
·
View Full Post