Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Assinatura A3 e A1 Instalado na máquina


Paulo Aguiar Junior
Go to solution Solved by Rafael Dias,
  • Este tópico foi criado há 1544 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde,

Depois de muito tempo trabalhando em cima, conseguimos aqui na empresa corrigir o problema da assinatura com o certificado A3, e o A1 instalado na máquina para o e-Social (sha-256).

Fizemos diversos testes, enviamos e recebemos os recibos normalmente...

Segue a unit para análise, testes, e se for o caso ser versionada no componente.

É só substituir a unit na pasta: \Fontes\ACBrDFe

Valeu!

ACBrDFeXsLibXml2.pas

  • Like 3
Link to comment
Share on other sites

7 minutos atrás, Joceandro Perin disse:

Bom dia, como vocês estão usando as configurações pra poder usar os dois tipos?

Joceando, bom dia!

Estou utilizando assim:

Nesse momento aqui já foi validado se ele associou o certificado cadastrado a empresa e tal...

Dessa forma estou enviando com A1 PFX, A1 instalado e A3.

//Quando usuário cadastrou o certificado pelo PFX

if dmESocial.qryCertificadoDigital.FieldByName('DS_CAMINHOPFX').AsString <> '' then
begin
    dmESocial.ACBreSocial.Configuracoes.Geral.SSLLib     := libOpenSSL;
    dmESocial.ACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinHttp;

    dmESocial.ACBreSocial.Configuracoes.Certificados.ArquivoPFX  := dmESocial.qryCertificadoDigital.FieldByName('DS_CAMINHOPFX').AsString;
   
end
else
begin

  //Assinando com o A3
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLLib        := libCustom;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLHttpLib    := httpWinHttp;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLCryptLib   := cryWinCrypt;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;

  dmESocial.ACBreSocial.Configuracoes.Certificados.NumeroSerie := dmESocial.qryCertificadoDigital.FieldByName('NR_SERIE').AsString;

end;

dmESocial.ACBreSocial.Configuracoes.Certificados.Senha       := TMetodos.fncCriptografia(Descriptografar, dmESocial.qryCertificadoDigital.FieldByName('DS_SENHA').AsString);

Edited by Paulo Aguiar Junior
Link to comment
Share on other sites

10 minutos atrás, Paulo Aguiar Junior disse:

Joceando, bom dia!

Estou utilizando assim:

Nesse momento aqui já foi validado se ele associou o certificado cadastrado a empresa e tal...

Dessa forma estou enviando com A1 PFX, A1 instalado e A3.

//Quando usuário cadastrou o certificado pelo PFX

if dmESocial.qryCertificadoDigital.FieldByName('DS_CAMINHOPFX').AsString <> '' then
begin
    dmESocial.ACBreSocial.Configuracoes.Geral.SSLLib     := libOpenSSL;
    dmESocial.ACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinHttp;

    dmESocial.ACBreSocial.Configuracoes.Certificados.ArquivoPFX  := dmESocial.qryCertificadoDigital.FieldByName('DS_CAMINHOPFX').AsString;
   
end
else
begin

  //Assinando com o A3
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLLib        := libCustom;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLHttpLib    := httpWinHttp;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLCryptLib   := cryWinCrypt;
  dmESocial.ACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;

  dmESocial.ACBreSocial.Configuracoes.Certificados.NumeroSerie := dmESocial.qryCertificadoDigital.FieldByName('NR_SERIE').AsString;

end;

dmESocial.ACBreSocial.Configuracoes.Certificados.Senha       := TMetodos.fncCriptografia(Descriptografar, dmESocial.qryCertificadoDigital.FieldByName('DS_SENHA').AsString);

Bom dia Paulo, obrigado por postar um exemplo, vou seguir desta forma e ver se consigo assinar com A1 e A3, no momento só estou conseguindo usando o A1 com PFX, de outra forma não dá certo, talvez por causa das configurações que estou usando..

  • Thanks 1
Link to comment
Share on other sites

23 minutos atrás, Joceandro Perin disse:

Bom dia Paulo, obrigado por postar um exemplo, vou seguir desta forma e ver se consigo assinar com A1 e A3, no momento só estou conseguindo usando o A1 com PFX, de outra forma não dá certo, talvez por causa das configurações que estou usando..

Joceando, não estava funcionando mesmo nem o A3 nem o A1 instalado mesmo...

A gente fez a correção aqui na empresa, e enviamos, e o Rafael implementou de acordo com o padrão aqui do ACBr e anexou aqui.

Testei e está funcionando certinho também, provavelmente jájá eles versionam...

Valeu!

Link to comment
Share on other sites

10 minutos atrás, Paulo Aguiar Junior disse:

Joceando, não estava funcionando mesmo nem o A3 nem o A1 instalado mesmo...

A gente fez a correção aqui na empresa, e enviamos, e o Rafael implementou de acordo com o padrão aqui do ACBr e anexou aqui.

Testei e está funcionando certinho também, provavelmente jájá eles versionam...

Valeu!

Ahh, entendi.. Legal, vou aguardar o versionamento então pra fazer os testes também.. Obrigado..

Link to comment
Share on other sites

Com pfx estou conseguido funcionar e para usar sem o pfx o devo configurar.

 

Assim Funcionar com PFX

        ACBreSocial.Configuracoes.Geral.SSLLib := libOpenSSL;
        ACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinHttp;
        ACBreSocial.Configuracoes.Certificados.ArquivoPFX  := edtCertificadoDiretorio.Text;
        ACBreSocial.Configuracoes.Certificados.Senha       := eCertificadoSenha.Text;
        ACBreSocial1.Configuracoes.Certificados.NumeroSerie := '';

 

Se usar assim da erro na assinatura 256

          ACBreSocial1.Configuracoes.Geral.SSLLib        := libCustom;
          ACBreSocial1.Configuracoes.Geral.SSLHttpLib    := httpWinHttp;
          ACBreSocial1.Configuracoes.Geral.SSLCryptLib   := cryWinCrypt;

          ACBreSocial1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;

          AACBreSocial.Configuracoes.Certificados.ArquivoPFX  := '';
          AACBreSocial.Configuracoes.Certificados.Senha       := '';


          ACBreSocial1.Configuracoes.Certificados.NumeroSerie := eCertificadoNoSerie.Text;

  o erro é o Provedor de criptografia não suporta dgstSHA256

ps. so usei os fontes que ja estão no cvs

 

 

Edited by EdmarFrazao
Link to comment
Share on other sites

  • Solution

Units alteradas e enviadas ao SVN.

Agradecimento ao @Paulo Aguiar Junior que graças as mods dele eu achei na documentação o problema que tinha na nossa unit anterior.

Segundo o padrão de assinatura quando a URI é vazia deve-se usar todo o xml para gerar o hash de assinatura.

  • Like 3
  • Thanks 3
Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to comment
Share on other sites

  • Este tópico foi criado há 1544 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.