#![doc = include_str!("../../docs/xmldsig.md")]
pub mod builder;
pub mod digest;
pub mod keys;
pub mod mutation;
pub mod parse;
pub mod sign;
pub mod signature;
pub mod transforms;
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, KeyResolutionError,
KeyResolverConfig, VerificationKey,
};
pub use parse::{
KeyInfo, KeyInfoSource, KeyValueInfo, ParseError, Reference, RetrievalMethodTransforms,
SignatureAlgorithm, 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 types::{NodeSet, TransformData, TransformError};
pub use verify::{
DsigError, DsigStatus, FailureReason, KeyResolver, ReferenceProcessingError, ReferenceResult,
ReferenceSet, ReferencesResult, SignatureSelection, UriTypeSet, VerifyContext, 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};