OpenSSL (iohOpenSSL) é o transporte TLS multiplataforma do sgcWebSockets. Ele roda em todas as plataformas que a biblioteca atende e é o padrão na maioria delas, com a mais ampla cobertura de protocolos e cifras de qualquer backend. Habilite-o definindo TLSOptions.IOHandler como iohOpenSSL e implante as bibliotecas de runtime do OpenSSL junto com o seu aplicativo.
TLS multiplataforma implementado sobre o socket do Indy, disponível em todas as plataformas que o sgcWebSockets atende.
OpenSSL é a implementação TLS multiplataforma que o sgcWebSockets coloca sobre o socket do Indy. Está disponível no Windows, Linux, macOS, iOS e Android, e é o backend padrão na maioria deles. Escolha OpenSSL quando precisar de comportamento TLS idêntico em todas as plataformas ou quando depender de um recurso que só o OpenSSL expõe.
O backend cobre TLS 1.0 a TLS 1.3 com a mais ampla seleção de conjuntos de cifras de qualquer transporte do sgcWebSockets. Você pode confiar em uma autoridade privada ou autoassinada com uma raiz de CA personalizada (RootCertFile), apresentar um certificado de cliente para TLS mútuo e anunciar protocolos de aplicação como http/1.1 por meio de ALPN. Como os quatro backends compartilham a mesma API TLSOptions, o código escrito para OpenSSL passa para um backend nativo mudando apenas a linha do IOHandler.
A contrapartida é a implantação. OpenSSL é uma dependência externa, então você envia as bibliotecas de runtime dele com o seu aplicativo e as mantém atualizadas. No Windows isso significa libssl-3.dll e libcrypto-3.dll, no Linux e no Android os arquivos .so correspondentes, e nas plataformas Apple os arquivos .dylib. Se você quiser TLS nativo sem bibliotecas para implantar, veja o SChannel no Windows ou os backends nativos do Android e da Apple.
Código
Habilitar OpenSSL
Defina TLSOptions.IOHandler como iohOpenSSL e implante as bibliotecas OpenSSL com a sua build.