DigestMethod no protocolo: o algoritmo do resumo da referência
<DigestMethod>nfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:DigestMethodRevisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
DigestMethod, em /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod, identifica o algoritmo usado para produzir o resumo do objeto referenciado pela assinatura da SEFAZ. Ele não contém o resumo e não é o método que verifica SignatureValue.
O que é obrigatório no grupo
Dentro de Reference, o elemento aparece uma vez, depois de Transforms e antes de DigestValue. Seu atributo Algorithm é obrigatório e fixado no schema XMLDSig fiscal de PL_010f_v1.04 em http://www.w3.org/2000/09/xmldsig#sha1. A declaração geral de XMLDSig admite outros algoritmos; o pacote fiscal estudado restringe este contexto.
O digest resulta do objeto resolvido pela URI após suas transformações. No protocolo, o leiaute identifica infProt como o grupo a assinar. DigestMethod de uma assinatura sob NFe pode ter a mesma URI, mas opera sobre outro conteúdo.
Fragmento do método
O fragmento sintético mostra somente a declaração estrutural, sem hash calculado ou assinatura:
<DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
O resumo propriamente dito estará no elemento irmão DigestValue, codificado em base64. Já infProt/digVal informa o digest da NF-e processada, não deve ser usado automaticamente como o DigestValue desta Reference.
Como conferir um resumo divergente
Registre, para cada assinatura, a URI do alvo, a lista de transformações, o método e o valor do digest. Decodifique o valor base64 e compare bytes ao resumo calculado sobre o alvo correto. SHA-1 produz 20 bytes; a codificação base64 usual ocupa 28 caracteres. Hexadecimal desses mesmos bytes é outra representação e não deve ser comparado como se fosse o texto base64.
Exemplo de causa técnica: a biblioteca calculou SHA-1 do arquivo inteiro, enquanto a referência aponta para infProt transformado. Usar o mesmo algoritmo não torna as entradas equivalentes. Corrija a seleção de entrada no verificador e repita a comparação no original.
Se a URI declarada divergir do valor do pacote, investigue schema, versão e origem. Não substitua o algoritmo em uma resposta assinada por tentativa. Um digest coincidente verifica a integridade da referência; a autoria e a confiança dependem também de SignatureValue e do certificado.
Leituras relacionadas
- Algorithm — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod/@Algorithm
- DigestValue — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestValue
Fontes oficiais
- Schema XMLDSig NF-e/NFC-e — PL_010f_v1.04: SignatureValueType, SignedInfoType, ReferenceType, TransformsType e TTransformURI.
- NT 2025.002 RTC — 1.52: seção 5.1, p. 11; PR03–PR90, p. 13.
- XML Signature Syntax and Processing — 1.1: seções 3.2, 4.3, 4.4 e 6: processamento, referências, IDs e algoritmos.
Referência técnica para integração
- XPath completo
/nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod- 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.