@galegoga,
Por favor teste novamente, com a Unit em anexo...
ACBrDFeOpenSSL.pas
Após reler com atenção, notei que faltava uma chamada de limpeza ao ponteiro "ca"
Como posso detectar o vazamento de memória ? No Delphi com "ReportMemoryLeaksOnShutdown := True;" não estou pegando nada... No Lazarus/FPC, também não detecto qualquer vazamento....
Abaixo uma explicação "histórica" sobre essas Units... e porque a resistência de adotar a chamada a "SslCtxCtrl"
O uso de "SslCtxCtrl" só é indicado nas versões mais antigas do OpenSSL, pois não existiam métodos de "alto-nível", para fazer tarefas específicas... Podemos ver essa recomendação no manual do OpenSSL
https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_ctrl.html
A Chamada de SslCtxCtrl, foi um Workaround que implementei, quando tivemos problemas com alguns certificados Veja esse post:
mas notei que essa chamada nunca foi incorporada nos fontes originais da synapse
Aqui estão os fontes da Synapse originais (procure pelo método "LoadPFX")
para OpenSSL inferior a 1.0: https://github.com/geby/synapse/blob/master/ssl_openssl.pas
para OpenSSL 1.1: https://github.com/geby/synapse/blob/master/ssl_openssl11.pas
OpenSSL 3.x: https://github.com/geby/synapse/blob/master/ssl_openssl3.pas
No ACBr, eu tentei criar uma Unit que consegue se adaptar do OpenSSL 0.9 ao 3.x, baseado nos fontes das 3 Units indicadas acima... o resultado dela, está nessa Unit de nosso SVN:
http://svn.code.sf.net/p/acbr/code/trunk2/Fontes/Terceiros/synalist/ssl_openssl.pas