Algorithm de DigestMethod: SHA-1 na referência do protocolo
@AlgorithmnfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:DigestMethod › @AlgorithmRevisão editorial em 15 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
Algorithm de DigestMethod, em /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod/@Algorithm, identifica o método de resumo da referência. No pacote PL_010f_v1.04 ele é obrigatório, do tipo anyURI, e tem valor fixo http://www.w3.org/2000/09/xmldsig#sha1.
Por que anyURI não libera outros algoritmos
O tipo lexical permite representar uma URI, mas o valor fixo limita o conteúdo aceito nesse schema. sha1 abreviado, rsa-sha1 ou uma URI SHA-256 não são substitutos do valor declarado. Não altere o atributo em um protocolo recebido para satisfazer um teste.
A URI é um identificador de método, não o endereço de um serviço que calcula o hash. O verificador usa uma implementação local confiável e selecionada para o perfil; não deve buscar código ou dados em endereço remoto indicado por uma resposta desconhecida.
Representação do atributo
Fragmento sintético parcial, que não contém resumo nem assinatura operacional:
<DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
A grafia de Algorithm e a URI inteira importam. O valor do hash é outra informação: está em DigestValue, em base64. Uma sequência hexadecimal de 40 caracteres pode representar um SHA-1 em outra codificação, mas não deve ser colocada ali por ser visualmente familiar.
Exemplos de diagnóstico sem troca por tentativa
Se uma biblioteca informa algoritmo não suportado, confira a URI declarada, o suporte da biblioteca e o perfil fiscal carregado. Se informa digest divergente, a URI pode estar correta: compare o objeto selecionado pela Reference, as transformações e os bytes resultantes. Trocar o algoritmo não resolve uma seleção de alvo errada.
Num segundo cenário, a biblioteca devolve o digest em hexadecimal e o XML o contém em base64. A comparação de textos falha, embora os bytes possam coincidir. Normalize a representação apenas na memória do verificador e compare os bytes; preserve o XML original.
SignatureMethod/@Algorithm possui a URI rsa-sha1 para uma operação diferente, a assinatura de SignedInfo. CanonicalizationMethod/@Algorithm identifica normalização XML. Essas três funções precisam ser registradas separadamente no diagnóstico. Aprovação estrutural não equivale à verificação criptográfica nem à autorização fiscal.
Leituras relacionadas
- DigestMethod — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod
- Algorithm — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm
Fontes oficiais
- Schema XMLDSig NF-e/NFC-e — PL_010f_v1.04: SignatureValueType, SignedInfoType, ReferenceType, TransformsType e TTransformURI.
- 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/@Algorithm- Namespace
Não informado- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- anyURI
- Preenchimento no catálogo
- Condicional
- Valor fixo no XSD
- http://www.w3.org/2000/09/xmldsig#sha1
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.