By Guest on Tuesday, 04 April 2023
Posted in General
Replies 3
Likes 0
Views 1.2K
Votes 0
Compiler: C++ Builder 10.2 Tokyo
Issue: After installing sgcIndy for my compiler I can not use .*bpl files. If I want to use IndyIPServer250.blp I see error:
can not find entry point for procedure @Idcustomhttpserver@TIdCustomHTTPServer@$bctr$qqrp25System@Classes@TComponent in library IndyIPServer250.bpl

OpenSSL version 1.1.x is supported only to September 2023. Do you plan to release free sgcIndy for later versions? Does OpenSSL current version supports ed448 private/public keys?

Anyway thank you kindly for serving Delphi community with this library.

General note for the community and Developer: watch out for writing serious long-standing server code using C++ Builder. Throwing & catching Delphi exceptions in C++ leaks memory even in Alexandria.
Hello,

The IndyIPServer250 package most probably is compiled using the default Indy version that comes with CBuilder, in order to use with sgcIndy, this package should be recompiled with the new version.

sgcIndy supports openSSL 1.1.1 and 3.0.0, so futures releases will be supported too. I've not implemented nothing about ed448.

Kind Regards,
Sergio
·
1 year ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello,

Reinstallation of sgcIndy solved mentioned issue.

according to:
https://www.openssl.org/docs/man3.1/man3/SSL_CTX_set_verify.html

there is a new flag concerning verification:
SSL_VERIFY_POST_HANDSHAKE

Please add it to TIdSSLVerifyMode enumeration in file Protocols\IdSSLOpelSSL.pas, and update TranslateInternalVerifyToSSL function

Proposed solution based on standard Indy code (i do not have sgcIndy source code):

TIdSSLVerifyMode = (sslvrfPeer, sslvrfFailIfNoPeerCert, sslvrfClientOnce, sslvrfVerifyPostHandshake);

function TranslateInternalVerifyToSSL(Mode: TIdSSLVerifyModeSet): Integer;
{$IFDEF USE_INLINE} inline; {$ENDIF}
begin
Result := SSL_VERIFY_NONE;
if sslvrfPeer in Mode then begin
Result := Result or SSL_VERIFY_PEER;
end;
if sslvrfFailIfNoPeerCert in Mode then begin
Result:= Result or SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
end;
if sslvrfClientOnce in Mode then begin
Result:= Result or SSL_VERIFY_CLIENT_ONCE;
end;
if sslvrfVerifyPostHandshake in Mode then begin
Result:= Result or SSL_VERIFY_POST_HANDSHAKE;
end;
end;

Kind Regards
·
1 year ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello,

I've updated the sgcIndy library with this new verify flag, will be available on the next release. Thanks for the feedback.

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