Skip to main content

process_reference

Function process_reference 

Source
pub fn process_reference(
    reference: &Reference,
    resolver: &UriReferenceResolver<'_>,
    signature_node: Node<'_, '_>,
    ref_index: usize,
    store_pre_digest: bool,
) -> Result<ReferenceResult, ReferenceProcessingError>
Expand description

Process a single <Reference>: dereference URI → apply transforms → compute digest → compare with stored <DigestValue>.

§Arguments

  • reference: The parsed <Reference> element.
  • resolver: URI resolver for the document.
  • signature_node: The <Signature> element (for enveloped-signature transform).
  • ref_index: Zero-based index of this reference in <SignedInfo>.
  • store_pre_digest: If true, store the pre-digest bytes in the result.

§Errors

Returns Err for processing failures (URI dereference, transform errors). Digest mismatch is NOT an error — it produces Ok(ReferenceResult { status: Invalid(ReferenceDigestMismatch { .. }) }).