Algorithm de SignatureMethod no protocolo: a URI RSA-SHA1
@AlgorithmnfeProc › protNFe › ds:Signature › ds:SignedInfo › ds:SignatureMethod › @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 SignatureMethod identifica o método da assinatura de SignedInfo no protocolo da SEFAZ. Seu caminho é /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:SignatureMethod/@Algorithm. No schema fiscal PL_010f_v1.04 ele é obrigatório, anyURI e fixado em http://www.w3.org/2000/09/xmldsig#rsa-sha1.
Como interpretar rsa-sha1
A URI descreve uma assinatura RSA com SHA-1 segundo XMLDSig. Ela não contém a chave pública, o certificado nem a assinatura. KeyInfo/X509Data/X509Certificate transporta a informação de certificado da assinatura, enquanto SignatureValue guarda os bytes do resultado.
DigestMethod/@Algorithm tem a URI sha1 e calcula o resumo da referência. CanonicalizationMethod/@Algorithm tem a URI de normalização C14N. Compartilhar SHA-1 em duas operações não torna essas operações intercambiáveis: a referência resume seu objeto; SignatureMethod atua sobre SignedInfo canonicalizado.
Fragmento para conferência exata
Trecho sintético parcial, sem assinatura ou documento fiscal válido:
<SignatureMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
Confira a URI integral e o atributo com sua grafia exata. Não substitua por sha1, por rsa-sha256 ou por uma URI com https por ajuste de texto. O uso de anyURI não remove a restrição de valor fixo.
O que a URI não prova
Um retorno pode declarar o algoritmo esperado e ainda conter uma assinatura inválida, um alvo incorreto ou um certificado sem confiança. A validação do XSD confirma a declaração, não a execução bem-sucedida das operações. A confiança também não vem do certificado usado para a conexão de transmissão: são papéis separados.
Exemplo: a biblioteca reconheceu rsa-sha1, mas verificou SignatureValue usando o certificado da empresa que enviou a nota, embora o contexto seja a resposta da SEFAZ. O método reconhecido não corrige a identidade errada do signatário. Confira a assinatura efetivamente examinada, o certificado correspondente e sua confiança.
Como tratar incompatibilidade sem alterar o retorno
Separe método não suportado, política criptográfica da biblioteca, assinatura divergente e cadeia não confiável. Registre versão da biblioteca, pacote fiscal, URI e erro. Investigue a compatibilidade do verificador e preserve o XML original; não troque algoritmo ou certificado por tentativa, não desative confiança e não reinsira SignatureValue.
PR90 deixa a assinatura do protocolo a critério da UF. Uma resposta sem essa assinatura não recebe este atributo por iniciativa do emissor. A presença do atributo não substitui cStat/xMotivo nem comprova situação atual da nota.
Leituras relacionadas
- SignatureMethod — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:SignatureMethod
- Algorithm — /nfeProc/protNFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:DigestMethod/@Algorithm
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:SignatureMethod/@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#rsa-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.