#![doc = include_str!("../../docs/xmldsig.md")]
pub mod builder;
pub mod digest;
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 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 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,
};
pub use transforms::{
BASE64_TRANSFORM_URI, DEFAULT_IMPLICIT_C14N_URI, ENVELOPED_SIGNATURE_URI, Transform,
XPATH_FILTER2_TRANSFORM_URI, XPATH_TRANSFORM_URI, XPathExpression, XPathFilter,
XPathFilterOperation, XPathHereSemantics, execute_transforms, parse_transforms,
};
pub use trust::{KeyTrustEvidence, ResolvedVerificationKey, TrustedPublicKey, X509TrustEvidence};
pub use types::{NodeSet, TransformData, TransformError};
pub use verify::{
CallerTrustedSignatureKey, DsigError, DsigStatus, FailureReason, KeyResolver,
ReferenceCoverage, ReferenceProcessingError, ReferenceResult, ReferenceSet, ReferencesResult,
SignatureEvidence, SignatureRequirement, SignatureSelection, UriTypeSet, VerificationRequest,
VerifyContext, VerifyEvidence, VerifyResult, VerifyingKey,
materialize_signing_key_info_references, materialize_verification_key_info_references,
process_all_references, process_reference, verify_signature_with_pem_key,
};
pub use x509::{X509ChainError, X509ChainOptions, verify_x509_certificate_chain};