#![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 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,
RELATIONSHIP_TRANSFORM_URI, RelationshipSelector, Transform, XPATH_FILTER2_TRANSFORM_URI,
XPATH_TRANSFORM_URI, XPathExpression, XPathFilter, XPathFilterOperation, XPathHereSemantics,
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, CallerTrustedSignatureKey, CatalogueCompleteness, CatalogueError,
DsigError, DsigStatus, ExternalResourceUnavailable, FailureReason, HashUseAlgorithm,
HashUseCompleteness, HashUseRole, HashUseState, KeyResolver, LexicalSource, ReferenceCoverage,
ReferenceLocation, ReferenceParent, ReferenceProcessingError, ReferenceResolution,
ReferenceResult, ReferenceSet, ReferencesResult, ReplayError, ReplayMode, ReplayOutcome,
SelectedKeyReceipt, SelectedSignature, SelectedSignatureMethod, 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,
};