Ir para conteúdo
  • Cadastre-se

dev botao

Certificado A1: DadosPFX não são válidos


Ver Solução Respondido por everson.turossi,
  • Este tópico foi criado há 1848 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá a todos!

Procurei em vários tópicos, mas não encontrei alguém que estivesse salvando o certificado no banco de dados em um campo Blob e depois carregando para a propriedade DadosPFX do ACBrNFe.

Eu carrego o arquivo assim: 

function LerCertificado(pCaminho: string): AnsiString;
var
  FS: TFileStream;
begin
  FS := TFileStream.Create(pCaminho, fmOpenRead);
  try
    Result := ReadStrFromStream(FS, FS.Size);
  finally
    FS.Free;
  end;
end;

e salvo o Result no banco de dados em um campo Blob.

Depois carrego assim:

vACBrNFe.Configuracoes.Certificados.NumeroSerie := cdsCertifserie.AsString;
vACBrNFe.Configuracoes.Certificados.DadosPFX := cdsCertifDADOS_PFX.AsString;
vACBrNFe.Configuracoes.Certificados.Senha := cdsCertifSENHA.AsString;

As configurações de SSLLib e demais tentei com OpenSSL e WinCrypt, ambas apresentaram o mesmo erro.

Alguém já faz dessa forma salvando o certificado no banco de dados?

Agradeço desde já!

Link para o comentário
Compartilhar em outros sites

  • Solution

Eu cheguei a ler em algum tópico onde era aconselhado converter o conteúdo do certificado pra Base64 e guardar no banco de dados. Tenta da seguinte forma:

// Armazenar 
cdsCertifDADOS_PFX.AsAnsiString := EncodeBase64(LerCertificado('...')); // uses synacode 

// Ler 
vACBrNFe.Configuracoes.Certificados.DadosPFX := DecodeBase64(cdsCertifDADOS_PFX.AsAnsiString);

 

  • Curtir 3
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

12 minutos atrás, everson.turossi disse:

Eu cheguei a ler em algum tópico onde era aconselhado converter o conteúdo do certificado pra Base64 e guardar no banco de dados. Tenta da seguinte forma:


// Armazenar 
cdsCertifDADOS_PFX.AsAnsiString := EncodeBase64(LerCertificado('...')); // uses synacode 

// Ler 
vACBrNFe.Configuracoes.Certificados.DadosPFX := DecodeBase64(cdsCertifDADOS_PFX.AsAnsiString);

 

Funcionou perfeitamente, meu amigo! Muito obrigado!

 

Abraço!

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1848 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

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.

The popup will be closed in 10 segundos...