OpenSSL 1.1 Indy

· Recursos

Atualmente, o Indy só suporta a versão 1.0.2 do OpenSSL e vários clientes nos perguntaram sobre suporte para OpenSSL 1.1. Embora o OpenSSL 1.0.2 ainda seja utilizável agora porque suporta TLS 1.2, que é a versão padrão do protocolo, a equipe do OpenSSL vai parar de suportar a API 1.0 no final deste ano; isso significa que nenhuma atualização adicional será lançada e nenhuma correção será aplicada a essa biblioteca, o que é uma má notícia para a biblioteca Indy.

Após muito trabalho interno lançamos uma nova versão da biblioteca sgcWebSockets que suporta a API OpenSSL 1.1

suportado a partir do sgcWebSockets 4.3.2

Portanto, atualmente existem 2 versões: 

  1. Versão padrão: será a mesma das versões anteriores, que requer o Indy instalado na sua IDE.
  2. Versão Indy: é uma versão Indy customizada, com suporte à API OpenSSL 1.1 e que não requer que o Indy esteja instalado. Os arquivos do Indy foram renomeados, então você pode manter sua própria biblioteca Indy enquanto compila o sgcWebSockets com nossas fontes Indy customizadas.

Para ativar o OpenSSL 1.1, basta acessar OpenSSL_Options e selecionar qual API você quer usar: oslAPI_1_0 ou oslAPI_1_1. Exemplo para o cliente:

oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := '127.0.0.1';
oclient.Port := 443;
oClient.TLS := True;
oClient.TLSOptions.OpenSSL_Options.APIVersion := oslAPI_1_1;
oClient.Active := True; 

Depois disso, você pode implantar suas bibliotecas OpenSSL 1.1 em vez do OpenSSL 1.0.2 que o Indy usa por padrão. Dependendo do seu sistema operacional, você precisa ou não implantar as bibliotecas openSSL. 

Plataforma ​API 1.0 API 1.1 Linkagem estática / dinâmica
​Windows (32 bits e 64 bits) ​libeay32.dll and ssleay32.dll ​libcrypto-1_1.dll and libssl-1_1.dll ​Dinâmica
​OSX​libcrypto.dylib, libssl.dylib​libcrypto.1.1.dylib, libssl.1.1.dylib​Dinâmica
​Dispositivo iOS (32 bits e 64 bits)​libcrypto.a and libssl.a​libcrypto.a and libssl.a​Estática
​Simulador iOS​libcrypto.dylib, libssl.dylib​libcrypto.1.1.dylib, libssl.1.1.dylib​Dinâmica
​Dispositivo Android​libcrypto.so, libssl.so​libcrypto.so, libssl.so​Dinâmica