pub enum Transform {
Enveloped,
XpathExcludeAllSignatures,
XPath(XPathExpression),
XPathFilter2(Vec<XPathFilter>),
C14n(C14nAlgorithm),
Base64Decode,
Relationship(Vec<RelationshipSelector>),
}Expand description
A single transform in the pipeline.
Variants§
Enveloped
Enveloped signature: removes the <Signature> element subtree
that contains the <Reference> being processed.
Input: NodeSet → Output: NodeSet
XpathExcludeAllSignatures
Narrow XPath compatibility form used by some donor vectors:
not(ancestor-or-self::dsig:Signature).
Unlike Enveloped, this excludes every ds:Signature subtree in the
current document, not only the containing signature.
XPath(XPathExpression)
General XMLDSig XPath 1.0 node filter.
XPathFilter2(Vec<XPathFilter>)
XPath Filter 2.0 ordered subtree set operations.
C14n(C14nAlgorithm)
XML Canonicalization (any supported variant).
Input: NodeSet → Output: Binary
Base64Decode
Decode base64 text into the octets consumed by the next transform or digest.
Node-set input is converted by concatenating included text nodes in document order, as required by XMLDSig section 6.6.2. Binary input is decoded directly.
Input: NodeSet or Binary → Output: Binary
Relationship(Vec<RelationshipSelector>)
Normalize an OPC Relationships part before explicit canonicalization.
This is a reusable algorithm, not validation of an OPC package signature:
Manifest-only placement and per-package part uniqueness belong to that
protocol’s validator, not generic SignedInfo or CipherReference execution.
Both editions require inclusive C14N 1.0, with or without comments.
Selection semantics come from the operation’s typed TransformPolicy.