O Indy suporta certificados RSA e EC ao usar as bibliotecas openSSL, mas, por padrão, os certificados EC podem ser criados com curvas diferentes e as bibliotecas openSSL são configuradas apenas com algumas dessas curvas. Então, se você estiver usando um certificado EC que não está incluído por padrão nas bibliotecas openSSL, o certificado não funcionará corretamente.
Para evitar esse problema, agora os servidores Indy incluem uma nova propriedade chamada CurveList onde você pode definir os nomes das curvas suportadas.
A propriedade CurveList também é suportada por nossa biblioteca gratuita sgcIndy.
Exemplo
Para configurar um certificado EC que está usando a curva brainpoolP256r1, defina as seguintes curvas antes de iniciar a conexão (isso se aplica aos componentes servidor e cliente).
// componente cliente TsgcWebSocketClient1.TLSOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1'; // componente servidor TsgcWebSocketHTTPServer1.SSLOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1';
Dessa forma, o cliente suportará as curvas padrão (como a curva secp256r1) e adicionalmente a curva brainpoolP256r1.
