Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Bom dia,

Ao tentar enviar uma NFS-e para a prefeitura de Goiânia, no momento de assinar o documento, está ocorrendo um erro no método function "TDFeSSLXmlSignXmlSec.XmlSecSign(const ConteudoXML: AnsiString; SignatureNode,
  SelectionNamespaces, InfElement: AnsiString): AnsiString" , no seguinte trecho de código:

    SignResult := xmlSecDSigCtxSign(FdsigCtx, SignNode);
    if (SignResult < 0) then
    begin
      xmlsecMsg := xmlSecErrorsGetMsg(2);
      raise EACBrDFeException.CreateFmt(cErrDSigSign + sLineBreak + xmlsecMsg, [SignResult]);
    end;

A mensagem é "Erro -1: Falha ao assinar o Documento strdup function failed"

Consigo carregar as informações do cerficado normalmente no método SSL.CarregarCertificado

  • Membros Pro
Postado

Bom dia Italo,

Sim, no exemplo ocorre o mesmo erro. A única coisa que ajustei no demo foi mudar a biblioteca pra libOpenSSL e setei o caminho do PFX e a senha.

  • 3 semanas depois ...
  • Membros Pro
Postado

Italo,

Mesmo precisando usar OpenSSL?? Eu já tinha testado com Capicom e funciona normalmente. Porém, no meu caso, precisar assinar usando a property DadosPFX.

  • Membros Pro
Postado

ConteudoXML: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE test [<!ATTLIST InfDeclaracaoPrestacaoServico Id ID #IMPLIED>]><Rps xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd"><InfDeclaracaoPrestacaoServico><Rps Id="rps817UNICA"><IdentificacaoRps><Numero>123</Numero><Serie>SERIE</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2017-10-17T19:18:58</DataEmissao><Status>1</Status></Rps><Servico><Valores><ValorServicos>1.00</ValorServicos><Aliquota>2.7900</Aliquota></Valores><CodigoTributacaoMunicipio>620910000</CodigoTributacaoMunicipio><Discriminacao>SERVIÇO</Discriminacao><CodigoMunicipio>25300</CodigoMunicipio></Servico><Prestador><CpfCnpj><Cnpj>18349907000126</Cnpj></CpfCnpj><InscricaoMunicipal>3544206</InscricaoMunicipal></Prestador><Tomador><IdentificacaoTomador><CpfCnpj><Cnpj>37400348000186</Cnpj></CpfCnpj></IdentificacaoTomador><RazaoSocial>TOMADOR</RazaoSocial><Endereco><Endereco>ENDEREÇO</Endereco><Numero></Numero><Bairro>Jardim Presidente</Bairro><CodigoMunicipio>25300</CodigoMunicipio><Uf>GO</Uf><Cep>74353230</Cep></Endereco></Tomador></InfDeclaracaoPrestacaoServico><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#rps817UNICA"><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/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></Rps>

SignatureNode:

SelectionNamespaces:

InfElement: InfDeclaracaoPrestacaoServico

  • Consultores
Postado

Bom dia Weverton,

Por não conhecer a fundo o funcionamento da assinatura digital, acredito que o problema do OpenSSL não realizar a assinatura é devido a ausência do atributo "Id" na tag <InfDeclaracaoPrestacaoServico> tag esta usada para realizar a assinatura.

Note que o atributo "Id" se encontra na tag <Rps>.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Bom dia Italo,

Veja como fica o XML quando usa CAPICOM, que funciona normalmente:

<?xml version="1.0" encoding="UTF-8"?><Rps xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd"><InfDeclaracaoPrestacaoServico><Rps Id="rps817UNICA"><IdentificacaoRps><Numero>123</Numero><Serie>SERIE</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2017-10-19T08:11:02</DataEmissao><Status>1</Status></Rps><Servico><Valores><ValorServicos>1.00</ValorServicos><Aliquota>2.7900</Aliquota></Valores><CodigoTributacaoMunicipio>620910000</CodigoTributacaoMunicipio><Discriminacao>SERVIÇO</Discriminacao><CodigoMunicipio>25300</CodigoMunicipio></Servico><Prestador><CpfCnpj><Cnpj>18300900000126</Cnpj></CpfCnpj><InscricaoMunicipal>3544539</InscricaoMunicipal></Prestador><Tomador><IdentificacaoTomador><CpfCnpj><Cnpj>12345678000123</Cnpj></CpfCnpj></IdentificacaoTomador><RazaoSocial>TOMADOR</RazaoSocial><Endereco><Endereco>ENDEREÇO</Endereco><Numero>55</Numero><Bairro>Jardim Presidente</Bairro><CodigoMunicipio>25300</CodigoMunicipio><Uf>GO</Uf><Cep>74353230</Cep></Endereco></Tomador></InfDeclaracaoPrestacaoServico><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#rps817UNICA"><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/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo></KeyInfo></Signature></Rps>

Notei que, nesse caso, não é inserida a parte "<!DOCTYPE test [<!ATTLIST InfDeclaracaoPrestacaoServico Id ID #IMPLIED>]>" no começo do XML. Comentei o trecho de código que gera essa linha no OpenSSL, porém o continua dando o mesmo erro.

  • Fundadores
Postado

Verifique se seus fontes estão corretamente atualizados com o SVN... na dúvida, apague e baixe novamente...

Verifique se você está usando a versão correta da XMLSec... veja o tópico abaixo

Você pode usar o DadosPFX com libWinCrypt.. é o mesmo funcionamento de libOpenSSL

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 2587 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.