O OpenSSL 3.0 moveu vários algoritmos obsoletos ou inseguros para um módulo interno da biblioteca chamado legacy provider. Ele não é carregado por padrão, então aplicativos (ou seus runtimes de linguagem) que usam OpenSSL para operações criptográficas não conseguem usar esses algoritmos ao carregar certificados, criar message digests...
Se você tentar carregar um certificado p12, por exemplo, receberá um erro. Se quiser carregar um certificado p12 usando o sgcIndy ou o sgcWebSockets, é preciso implantar a biblioteca legacy.dll e ativar algumas propriedades nos componentes.
Atualmente, você pode baixar a legacy.dll com a versão mais recente do openSSL 3.3.
sgcWebSockets
- Defina a propriedade OpenSSL_Options.Legacy.Enabled como True.
- Defina o local da biblioteca Legacy.
- OpenSSL_Options.Legacy.LibPath: here you can configure where is located the legacy library
- oslpNone: esta é a opção padrão; a biblioteca legacy deve estar na mesma pasta onde está o binário ou em um caminho conhecido.
- oslpDefaultFolder: define automaticamente o caminho da biblioteca legacy onde as bibliotecas devem estar para todas as personalidades da IDE.
- oslpCustomFolder: se esta opção for selecionada, defina o caminho completo na propriedade LibPathCustom.
- OpenSSL_Options.Legacy.LibPathCustom: when LibPath = oslpCustomFolder define here the full path where are located the legacy library.
- OpenSSL_Options.Legacy.LibPath: here you can configure where is located the legacy library
sgcIndy
- Defina a propriedade SSLOptions.Legacy como True.
- Antes de iniciar o servidor ou o cliente, defina o caminho onde a biblioteca legacy.dll está localizada. Use a função IdOpenSSLSetOSSLPath e passe o caminho como argumento.
