Skip to main content

Module transforms

Module transforms 

Source
Expand description

Transform pipeline for XMLDSig <Reference> processing.

Implements XMLDSig §6.6: each <Reference> specifies a chain of transforms applied sequentially to produce bytes for digest computation.

The pipeline is a simple Vec<Transform> iterated front-to-back — a dramatic simplification of xmlsec1’s bidirectional push/pop doubly-linked list with auto-inserted type adapters.

§Supported transforms

TransformDirectionPriority
Enveloped signatureNodeSet → NodeSetP0 (SAML)
Inclusive C14N 1.0/1.1NodeSet → BinaryP0
Exclusive C14N 1.0NodeSet → BinaryP0
Base64 decodeNodeSet/Binary → BinaryP1
XPath 1.0NodeSet → NodeSetP1
XPath Filter 2.0NodeSet → NodeSetP1

Structs§

XPathExpression
An XPath 1.0 expression and the namespace bindings in scope where it was declared.
XPathFilter
One expression and set operation in an XPath Filter 2.0 transform.

Enums§

Transform
A single transform in the pipeline.
XPathFilterOperation
Set operation applied by one XPath Filter 2.0 step.
XPathHereSemantics
Node returned by the XMLDSig XPath here() extension function.

Constants§

BASE64_TRANSFORM_URI
The algorithm URI for the Base64 decode transform.
DEFAULT_IMPLICIT_C14N_URI
The implicit default canonicalization URI applied when no explicit C14N transform is present in a <Reference>.
ENVELOPED_SIGNATURE_URI
The algorithm URI for the enveloped signature transform.
MAX_TRANSFORMS_PER_REFERENCE
Maximum transforms accepted for one reference.
XPATH_FILTER2_TRANSFORM_URI
The algorithm URI for the XPath Filter 2.0 transform.
XPATH_TRANSFORM_URI
The algorithm URI for the XPath 1.0 transform.

Functions§

execute_transforms
Execute a chain of transforms for a single <Reference>.
parse_transforms
Parse a <Transforms> element into a Vec<Transform>.