Indy admite certificados RSA y certificados EC cuando usa las librerías openSSL, pero por defecto los certificados EC pueden crearse con curvas distintas y las librerías openSSL solo están configuradas con algunas de estas curvas. Por tanto, si estás usando un certificado EC que no está incluido por defecto en las librerías openSSL, el certificado no funcionará correctamente.
Para evitar este problema, ahora los servidores Indy incluyen una nueva propiedad llamada CurveList donde puedes establecer los nombres de las curvas compatibles.
La propiedad CurveList también es compatible con nuestra librería gratuita sgcIndy.
Ejemplo
Para configurar un certificado EC que use la curva brainpoolP256r1, establece las siguientes curvas antes de iniciar la conexión (esto aplica a los componentes servidor y cliente).
// client component TsgcWebSocketClient1.TLSOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1'; // server component TsgcWebSocketHTTPServer1.SSLOptions.OpenSSL_Options.CurveList := 'P-521:P-384:P-256:brainpoolP256r1';
De esta forma, el cliente admitirá las curvas estándar (como la curva secp256r1) y, adicionalmente, la curva brainpoolP256r1.
