Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Suplemento, assinatura e protocolo

CanonicalizationMethod no protocolo: normalização de SignedInfo

<CanonicalizationMethod>nfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:CanonicalizationMethod

Revisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

CanonicalizationMethod define como SignedInfo será transformado em uma representação padronizada para a verificação da assinatura do protocolo. Seu caminho é /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:CanonicalizationMethod. Ele não normaliza automaticamente toda a NF-e nem torna qualquer alteração posterior inofensiva.

Qual método o pacote fiscal declara?

No XSD XMLDSig de PL_010f_v1.04, o elemento é obrigatório dentro de SignedInfo e seu atributo Algorithm é obrigatório, com valor fixo http://www.w3.org/TR/2001/REC-xml-c14n-20010315. Trata-se do identificador de Canonical XML 1.0 sem comentários. Essa URI identifica o algoritmo: a aplicação não precisa baixar uma página da internet para cada verificação.

O perfil fiscal é mais restrito que a família geral XMLDSig. O fato de uma biblioteca conhecer outras canonicalizações não permite trocar o método de uma resposta da SEFAZ por aquele que parecer mais moderno.

Por que não é o mesmo que Transforms?

O método aqui estudado atua sobre SignedInfo antes da verificação de SignatureValue. Já Reference/Transforms atua sobre o objeto referenciado antes de calcular seu DigestValue. Pode haver a mesma URI C14N nos dois lugares, mas as entradas e as finalidades são distintas.

Canonicalização padroniza aspectos da representação XML; não recupera dados alterados e não é sinônimo de remover espaços livremente. Espaços em texto e o contexto de namespaces podem importar. Uma assinatura não deve ser testada depois de reconstruir arbitrariamente o documento.

Fragmento e investigação

Este fragmento sintético representa somente a declaração do método; não é uma assinatura nem um protocolo completo:

<CanonicalizationMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

O namespace identifica o elemento XMLDSig; Algorithm é atributo sem prefixo. O trecho não produz hash ou assinatura.

Se o método declarado não for reconhecido, compare a URI integral, incluindo maiúsculas, caminho e sufixos, com o pacote utilizado. Se o método for reconhecido e a assinatura falhar, compare o XML original com o armazenado e examine a canonicalização de SignedInfo, não apenas o digest da referência. Registre os dois resultados separadamente. Preserve o retorno e investigue a integração; não troque o atributo em uma resposta já assinada. A aprovação no XSD confirma somente estrutura e valor declarado.

Leituras relacionadas

Fontes oficiais

Referência técnica para integração

XPath completo
/nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:CanonicalizationMethod
Namespace
http://www.w3.org/2000/09/xmldsig#
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
inline:complexType
Preenchimento no catálogo
Condicional

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.