diff --git a/signature-crate/src/digest/mod.rs b/signature-crate/src/digest/mod.rs new file mode 100644 index 00000000..406623be --- /dev/null +++ b/signature-crate/src/digest/mod.rs @@ -0,0 +1,11 @@ +//! Support for using hash functions that impl the `Digest` trait in order +//! to hash the input message in order to compute a signature. + +mod signer; +mod verifier; + +/// Re-export the `Digest` trait from the `digest` crate, as it's the main +/// trait this module depends on. +pub use ::digest::Digest; + +pub use self::{signer::Signer, verifier::Verifier}; diff --git a/signature-crate/src/sign/digest.rs b/signature-crate/src/digest/signer.rs similarity index 82% rename from signature-crate/src/sign/digest.rs rename to signature-crate/src/digest/signer.rs index e4f21c2b..008493f9 100644 --- a/signature-crate/src/sign/digest.rs +++ b/signature-crate/src/digest/signer.rs @@ -4,11 +4,10 @@ //! For use signature algorithms that support an Initialize-Update-Finalize //! (IUF) API, such as ECDSA or Ed25519ph. -use crate::{error::Error, Signature}; -use digest::Digest; +use crate::{digest::Digest, error::Error, Signature}; /// Sign the given prehashed message `Digest` using `Self`. -pub trait SignDigest: Send + Sync +pub trait Signer where D: Digest, S: Signature, diff --git a/signature-crate/src/verify/digest.rs b/signature-crate/src/digest/verifier.rs similarity index 82% rename from signature-crate/src/verify/digest.rs rename to signature-crate/src/digest/verifier.rs index c577e700..865b422b 100644 --- a/signature-crate/src/verify/digest.rs +++ b/signature-crate/src/digest/verifier.rs @@ -4,12 +4,11 @@ //! For use signature algorithms that support an Initialize-Update-Finalize //! (IUF) API, such as ECDSA or Ed25519ph. -use crate::{error::Error, Signature}; -use digest::Digest; +use crate::{digest::Digest, error::Error, Signature}; /// Verify the provided signature for the given prehashed message `Digest` /// is authentic. -pub trait VerifyDigest: Send + Sync +pub trait Verifier where D: Digest, S: Signature, diff --git a/signature-crate/src/lib.rs b/signature-crate/src/lib.rs index 14d15ddf..03c3e8e6 100644 --- a/signature-crate/src/lib.rs +++ b/signature-crate/src/lib.rs @@ -14,17 +14,16 @@ unused_qualifications )] -#[cfg(feature = "digest")] -pub extern crate digest; - #[cfg(any(feature = "std", test))] #[macro_use] extern crate std; +#[cfg(feature = "digest")] +mod digest; mod error; mod prelude; -pub mod sign; mod signature; -pub mod verify; +pub mod signer; +pub mod verifier; -pub use crate::{error::Error, sign::Sign, signature::Signature, verify::Verify}; +pub use crate::{error::Error, signature::Signature, signer::Signer, verifier::Verifier}; diff --git a/signature-crate/src/sign/mod.rs b/signature-crate/src/signer.rs similarity index 68% rename from signature-crate/src/sign/mod.rs rename to signature-crate/src/signer.rs index 1acc7c84..700f135d 100644 --- a/signature-crate/src/sign/mod.rs +++ b/signature-crate/src/signer.rs @@ -1,15 +1,10 @@ //! Traits for generating digital signatures -#[cfg(feature = "digest")] -pub(crate) mod digest; - -#[cfg(feature = "digest")] -pub use self::digest::SignDigest; use crate::{error::Error, Signature}; /// Sign the provided message bytestring using `Self` (e.g. a cryptographic key /// or connection to an HSM), returning a digital signature. -pub trait Sign: Send + Sync { +pub trait Signer { /// Sign the given message and return a digital signature fn sign(&self, msg: &[u8]) -> Result; } diff --git a/signature-crate/src/verify/mod.rs b/signature-crate/src/verifier.rs similarity index 72% rename from signature-crate/src/verify/mod.rs rename to signature-crate/src/verifier.rs index d8c4b0e2..2f5f6c31 100644 --- a/signature-crate/src/verify/mod.rs +++ b/signature-crate/src/verifier.rs @@ -1,14 +1,9 @@ //! Trait for verifying digital signatures -#[cfg(feature = "digest")] -pub(crate) mod digest; - -#[cfg(feature = "digest")] -pub use self::digest::VerifyDigest; use crate::{error::Error, Signature}; /// Verify the provided message bytestring using `Self` (e.g. a public key) -pub trait Verify: Send + Sync { +pub trait Verifier { /// Use `Self` to verify that the provided signature for a given message /// bytestring is authentic. ///