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

Algorithm em Transform da NF-e: enveloped-signature e C14N

@AlgorithmnfeProc › NFe › ds:Signature › ds:SignedInfo › ds:Reference › ds:Transforms › ds:Transform › @Algorithm

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

Transform/@Algorithm identifica a etapa executada sobre os dados de Reference. O tipo fiscal TTransformURI permite somente as URIs de enveloped-signature e de Canonical XML 1.0.

Caminho desta página: /nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms/ds:Transform/@Algorithm. O alias ds neste XPath representa o namespace http://www.w3.org/2000/09/xmldsig#; ele permite localizar o elemento, mas não exige esse prefixo na serialização fiscal.

Quais são os valores e como se combinam?

Os dois valores são http://www.w3.org/2000/09/xmldsig#enveloped-signature e http://www.w3.org/TR/2001/REC-xml-c14n-20010315. O atributo é obrigatório em cada Transform. O grupo contém duas transformações, e a restrição unique_Transf_Alg exige valores distintos.

Fragmento parcial sintético que declara C14N em uma etapa; o grupo completo exige também enveloped:

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

Uma URI para Exclusive C14N, XPath ou Base64 não integra essa enumeração fiscal, mesmo que a biblioteca XMLDSig geral a suporte.

Declaração XSD do contexto.

A URI é dado, destino ou procedimento?

Aqui ela identifica um procedimento. Não é o endereço do infNFe, que fica em Reference/@URI, e não é o valor do resumo. A implementação deve reconhecer o algoritmo e executá-lo localmente, sem buscar um procedimento arbitrário na internet.

Enveloped trata a assinatura no conjunto de entrada; C14N prepara uma representação canônica. A mesma URI de C14N também aparece em CanonicalizationMethod, mas nesse outro local o objeto é SignedInfo. O atributo precisa ser interpretado com seus ancestrais.

XMLDSig: processamento e elementos.

Como investigar uma configuração que gera outro literal?

Compare a saída efetiva com a enumeração, inclusive caixa, protocolo http e sufixos. Exemplo: a aplicação grava C14N como nome curto. Isso não é a URI exigida. Se grava duas vezes enveloped, cada elemento isolado pode parecer reconhecível, mas o grupo viola unicidade.

Não corrija só o texto do atributo no arquivo assinado; isso muda SignedInfo sem refazer os cálculos. Ajuste a configuração do gerador e teste estrutura e criptografia separadamente. Preserve o original e confira a autorização por evidência própria.

MOC: perfil de assinatura, pp. 53–56.

Fontes e contexto

Schema específico XMLDSig da NF-e — PL_010f_v1.04 / xmldsig-core-schema_v1.01.xsd; MOC — Visão Geral — 7.0; XML Signature Syntax and Processing — 1.1, Recommendation 11/04/2013.

Referência técnica para integração

XPath completo
/nfeProc/NFe/ds:Signature/ds:SignedInfo/ds:Reference/ds:Transforms/ds:Transform/@Algorithm
Namespace
Não informado
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
ds:TTransformURI · anyURI
Preenchimento no catálogo
Obrigatório

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.

enumeration
http://www.w3.org/2000/09/xmldsig#enveloped-signature
enumeration
http://www.w3.org/TR/2001/REC-xml-c14n-20010315