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

DigestMethod no protocolo: o algoritmo do resumo da referência

<DigestMethod>nfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:DigestMethod

Revisã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

Fontes oficiais

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.