Olá pessoal.
Me chamaram com dúvidas, então seguem alguns esclarecimentos pra quem procurar o tópico:
AcbrExtrato1.Banco.ArquivoCertificado, o arquivo da chave pública tem que estar na extensão .pem;
AcbrExtrato1.Banco.ArquivoChavePrivada, o arquivo da chave privada tem que estar na extensão .key;
Para extrair com ACBR:
function ExtrairChavesCertificado(aPfx: string; aSenha: string; var aChavePub: string;
var aChavePri: string): Boolean;
var
ACBrOpenSSLUtils1: TACBrOpenSSLUtils;
begin
ACBrOpenSSLUtils1 := TACBrOpenSSLUtils.Create(nil);
try
if FilesExists(aPfx) then
ACBrOpenSSLUtils1.LoadPFXFromFile(aPfx, aSenha)
else
ACBrOpenSSLUtils1.LoadPFXFromStr(aPfx, aSenha);
if aChavePri.Contains(':\') then
WriteToFile(aChavePri, ACBrOpenSSLUtils1.PrivateKeyAsString, True)
else
aChavePri := ACBrOpenSSLUtils1.PrivateKeyAsString;
if aChavePub.Contains(':\') then
WriteToFile(aChavePub, ACBrOpenSSLUtils1.CertificateAsString, True)
else
aChavePub := ACBrOpenSSLUtils1.CertificateAsString;
Result := aChavePri.Length > 0;
finally
ACBrOpenSSLUtils1.Free;
end;
end;
//para chamar:
ExtrairChavesCertificado("CaminhoArquivoPFX", "SenhaDoCertificado", "CainhoSalvarChavePublica.pem"
"CaminhoSalvarChavePrivada.key");