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:
- Versão padrão: será a mesma das versões anteriores, que requer o Indy instalado na sua IDE.
- 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 |
