Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2493 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite.

Preciso assinar arquivos XML (do SPED e-Financeira) com chave SHA-2 (imagino que seja SHA256) 

Tentei criar um componente baseado no ACBrDFe, mas o prazo está apertado, e foi mais fácil criar o XML "na mão".

Estou tentando utilizar as funções da unit ACBrDFeCapicom para assinar o XML, mas não estou tendo sucesso.

Exemplo:

textoXML:= String com o conteúdo do arquivo

xmlAssinado := Assinar( textoXML , 'evtCadDeclarante' , 'id' );

Esta provavelmente não é a forma correta. 

Alguém teria um exemplo de como chamar a função, se é que isto é possível ?

Grato.

 

Edson.

 

Postado

Boa tarde Juliomar !

Era exatamente isto que eu precisava... Estava me matando tentando criar um componente baseado no ACBrCTe... mas ele é bem complexo.

Este ACBrBlocoX tem a estrutura bem parecida com o que pede o SPED e-Financeira.

O duro é que vou ter que gerar apenas arquivos vazios, somente a abertura e encerramento, sem movimento.

Um trabalhão lascado, pra nada.

A Receita Federal não tem mais plantão de dúvidas para pessoa jurídica, somente para pessoa física. Não responde os e-mails, ninguém nas agências orienta o contribuinte sobre SPED e-financeira (eles nem sabem do que se trata).

Só sabem cobrar multa por atraso na entrega.

Se tudo der certo, vou criar um componente "ACBrEFinanceira", e depois envio para análise.

Muito obrigado.

Edson.

 

Postado

Boa noite.

Estou tentando assinar um arquivo XML com digest SHA256, mas está ocorrendo erro:

The DigestMethod Algorithm "http://www.w3.org/2001/04/xmlenc#sha256" is not supported.

Criei as funções Assinar256, SignatureElement256, AdicionarSignatureElement256 em ACBrDFeSSL, para não alterar as funções atuais,

aí tento assinar com:     FXMLAssinado := ACBrEFinanceira1.SSL.Assinar256(FXMLOriginal , 'eFinanceira',  'evtCadDeclarante');

e o erro é disparado.

Será que o Delphi não assina com SHA256 ? 

A Receita Federal disponibilizou um programa assinador escrito em C#. Instalei o Visual Studio e testei, assina corretamente.

 

function TDFeSSLClass.SignatureElement256(const URI: String; AddX509Data: Boolean;
  IdSignature: String; Digest:TSSLDgst): String;
begin
  {(*}
  Result :=
  '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"' + IdSignature + '>' +
    '<SignedInfo>' +
      '<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
      '<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig-more#rsa-sha256"/>' +   //ALTERACAO PARA SHA256
      '<Reference URI="' + IfThen(URI = '', '', '#' + URI) + '">' +
        '<Transforms>' +
          '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />' +
          '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
        '</Transforms>' +
        '<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />'+             // ALTERACAO PARA SHA256
        '<DigestValue></DigestValue>' +
      '</Reference>' +
    '</SignedInfo>' +
    '<SignatureValue></SignatureValue>' +
    '<KeyInfo>' +
    IfThen(AddX509Data,
      '<X509Data>' +
        '<X509Certificate></X509Certificate>' +
      '</X509Data>',
      '')+
    '</KeyInfo>'+
  '</Signature>';
  {*)}
end;

 

CadDeclaranteLote-ASSINADO.xml

  • 1 ano depois...
Postado
Em 16/05/2016 at 22:42, Edson.pol disse:

Boa noite.

Estou tentando assinar um arquivo XML com digest SHA256, mas está ocorrendo erro:

The DigestMethod Algorithm "http://www.w3.org/2001/04/xmlenc#sha256" is not supported.

Criei as funções Assinar256, SignatureElement256, AdicionarSignatureElement256 em ACBrDFeSSL, para não alterar as funções atuais,

aí tento assinar com:     FXMLAssinado := ACBrEFinanceira1.SSL.Assinar256(FXMLOriginal , 'eFinanceira',  'evtCadDeclarante');

e o erro é disparado.

Será que o Delphi não assina com SHA256 ? 

A Receita Federal disponibilizou um programa assinador escrito em C#. Instalei o Visual Studio e testei, assina corretamente.

 


function TDFeSSLClass.SignatureElement256(const URI: String; AddX509Data: Boolean;
  IdSignature: String; Digest:TSSLDgst): String;
begin
  {(*}
  Result :=
  '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"' + IdSignature + '>' +
    '<SignedInfo>' +
      '<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
      '<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig-more#rsa-sha256"/>' +   //ALTERACAO PARA SHA256
      '<Reference URI="' + IfThen(URI = '', '', '#' + URI) + '">' +
        '<Transforms>' +
          '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />' +
          '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
        '</Transforms>' +
        '<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />'+             // ALTERACAO PARA SHA256
        '<DigestValue></DigestValue>' +
      '</Reference>' +
    '</SignedInfo>' +
    '<SignatureValue></SignatureValue>' +
    '<KeyInfo>' +
    IfThen(AddX509Data,
      '<X509Data>' +
        '<X509Certificate></X509Certificate>' +
      '</X509Data>',
      '')+
    '</KeyInfo>'+
  '</Signature>';
  {*)}
end;

 

CadDeclaranteLote-ASSINADO.xml

Amigo, você conseguiu resolver seu problema ? estou com o mesmo ...

Postado

Boa tarde André.

Fui dispensado da entrega do SPED-eFinanceira, então não dei prosseguimento nos testes.

O meu problema esbarrou no Delphi 7, que não tem suporte a SHA256.

Pelas pesquisas que fiz, existem alguns componentes pagos que conseguem assinar.

[]´s

Edson.

  • 4 meses depois ...
Postado
Em 25/07/2017 at 11:37, André Longhi disse:

Amigo, você conseguiu resolver seu problema ? estou com o mesmo ...

Boa tarde André, conseguiu resolver esse caso?

Estou usando delphi 7 e também tive o problema.

  • 4 semanas depois ...
Postado

Alguém conseguiu resolver o problema:

 

The DigestMethod Algorithm "http://www.w3.org/2001/04/xmlenc#sha256" is not supported.

 

Uso o Delphi Xe7

 

Grato.

Em 25/07/2017 at 11:37, André Longhi disse:

Amigo, você conseguiu resolver seu problema ? estou com o mesmo ...

 

  • 4 semanas depois ...
  • Este tópico foi criado há 2493 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.