#![doc = include_str!("../../docs/xmldsig.md")]
pub mod builder;
pub mod digest;
pub mod extension;
pub mod keys;
mod modern;
#[cfg(feature = "experimental-pq")]
pub(crate) mod post_quantum;
mod pq_algorithm;
#[cfg(feature = "experimental-pq")]
pub use post_quantum::PostQuantumSigningKey;
pub use pq_algorithm::PqAlgorithm;
pub mod mutation;
pub mod parse;
pub(crate) mod pkix;
pub mod sign;
pub mod signature;
pub mod transforms;
pub mod trust;
pub mod types;
pub mod uri;
pub mod verify;
pub(crate) mod whitespace;
pub mod x509;
mod xpath;
pub use builder::{ReferenceBuilder, SignatureBuilder, SignatureBuilderError};
pub use digest::{DigestAlgorithm, compute_digest, compute_digest_with_provider, constant_time_eq};
pub use keys::{
DefaultKeyResolver, HmacSha1VerificationKey, HmacVerificationKey, InspectedKeyCandidateBudget,
KeyResolutionError, KeyResolverConfig, VerificationKey,
};
pub use modern::EdDsaSigningKey;
pub use parse::{
KeyInfo, KeyInfoSource, KeyValueInfo, ParseError, Reference, RetrievalMethodTransforms,
RsaPssParameters, SignatureAlgorithm, SignatureContext, SignedInfo, X509DataInfo,
find_signature_node, parse_key_info, parse_reference, parse_signed_info,
x509_certificate_matches_selectors,
};
pub use pkix::CertificatePathVerifier;
pub use sign::{
ComputedReferenceDigest, DerEncodedKeyValueInfoWriter, DsaSigningKey, EcdsaP256SigningKey,
EcdsaP384SigningKey, EcdsaP521SigningKey, HmacSigningKey, KeyInfoWriteError, KeyInfoWriter,
KeyValueInfoWriter, RsaSigningKey, SignContext, SignatureTemplateSelection, SigningDigestError,
SigningError, SigningKey, SigningKeyError, SigningPublicKeyInfo, X509CertificateKeyInfoWriter,
X509DigestKeyInfoWriter, compute_reference_digest_values, fill_reference_digest_values,
validate_signing_key,
};
pub use signature::{
SignatureVerificationError, verify_dsa_signature_spki, verify_ecdsa_signature_pem,
verify_ecdsa_signature_pem_with_encoding, verify_ecdsa_signature_spki,
verify_ecdsa_signature_spki_with_encoding, verify_rsa_signature_pem, verify_rsa_signature_spki,
};
#[cfg(feature = "xslt")]
pub use transforms::XsltStylesheet;
pub use transforms::{
BASE64_TRANSFORM_URI, DEFAULT_IMPLICIT_C14N_URI, ENVELOPED_SIGNATURE_URI,
RELATIONSHIP_TRANSFORM_URI, RelationshipSelector, Transform, XPATH_FILTER2_TRANSFORM_URI,
XPATH_TRANSFORM_URI, XPathExpression, XPathFilter, XPathFilterOperation, XPathHereSemantics,
XSLT_TRANSFORM_URI, execute_transforms, execute_transforms_with_policy, parse_transforms,
};
pub use trust::{KeyTrustEvidence, ResolvedVerificationKey, TrustedPublicKey, X509TrustEvidence};
pub use types::{NodeSet, TransformData, TransformError};
pub use verify::{
AuthenticatedReference, BareNameTarget, CallerTrustedSignatureKey, CatalogueCompleteness,
CatalogueError, DigestMethodResolution, DsigError, DsigStatus, ExternalResourceUnavailable,
FailureReason, HashUseAlgorithm, HashUseCompleteness, HashUseRole, HashUseState, KeyResolver,
LexicalSource, ReferenceCoverage, ReferenceLocation, ReferenceParent, ReferenceProcessingError,
ReferenceResolution, ReferenceResult, ReferenceSet, ReferencesResult, ReplayError, ReplayMode,
ReplayOutcome, SelectedKeyReceipt, SelectedSignature, SelectedSignatureMethod, SessionDigest,
SignatureEvidence, SignatureHashUse, SignatureKeyInfoMetadata, SignatureRequirement,
SignatureSelection, UriTypeSet, VerificationRequest, VerifiedSession, VerifyContext,
VerifyEvidence, VerifyResult, VerifyingKey, has_same_document_encapsulation,
inspect_pinned_verification_key_info, inspect_signing_key_info, inspect_verification_key_info,
materialize_signing_key_info_references, materialize_verification_key_info_references,
process_all_references, process_reference, verify_signature_with_pem_key,
with_verified_request,
};
pub use x509::{
X509ChainError, X509ChainOptions, verify_x509_certificate_chain,
verify_x509_certificate_chain_with_resources,
};