Isso ocorre porque TACBrEAD.FreeOpenSSL é executado depois que é destruído algum form. E quando necessário o uso da 'libeay32.dll' não é inicializado a procedure TACBrEAD.InitOpenSSL novamente.
Para resolver o problema é só alterar a variável fsInicializado e a procedure conforme abaixo
Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.
Erro Ao Assinar Arquivo Gerado Pelo Sintegra
em ACBrSintegra/ACBrPAF
Postado
Eu tive o mesmo problema.
Isso ocorre porque TACBrEAD.FreeOpenSSL é executado depois que é destruído algum form. E quando necessário o uso da 'libeay32.dll' não é inicializado a procedure TACBrEAD.InitOpenSSL novamente.
Para resolver o problema é só alterar a variável fsInicializado e a procedure conforme abaixo
TACBrEAD = class(TComponent)
private
fsOnGetChavePrivada: TACBrEADGetChave;
fsOnGetChavePublica : TACBrEADGetChave ;
fsOnProgress: TACBrEADOnProgress;
fsKey : pEVP_PKEY ;
fsIsXMLeECFc : Boolean ;
fsBufferSize: Integer;
class var fsInicializado : Boolean;
procedure TACBrEAD.FreeOpenSSL;
begin
LiberarChave;
{$IFDEF USE_libeay32}
EVP_cleanup();
{$ELSE}
EVPcleanup();
{$ENDIF}
fsInicializado := False;
end;