use crate::Error;
#[cfg(feature = "rand_core")]
use crate::rand_core::TryCryptoRng;
pub trait PrehashSigner<S> {
fn sign_prehash(&self, prehash: &[u8]) -> Result<S, Error>;
}
#[cfg(feature = "rand_core")]
pub trait RandomizedPrehashSigner<S> {
fn sign_prehash_with_rng<R: TryCryptoRng + ?Sized>(
&self,
rng: &mut R,
prehash: &[u8],
) -> Result<S, Error>;
}
pub trait PrehashVerifier<S> {
fn verify_prehash(&self, prehash: &[u8], signature: &S) -> Result<(), Error>;
}
#[allow(async_fn_in_trait)]
pub trait AsyncPrehashSigner<S> {
async fn sign_prehash_async(&self, prehash: &[u8]) -> Result<S, Error>;
}
#[cfg(feature = "rand_core")]
#[allow(async_fn_in_trait)]
pub trait AsyncRandomizedPrehashSigner<S> {
async fn sign_prehash_with_rng_async<R: TryCryptoRng + ?Sized>(
&self,
rng: &mut R,
prehash: &[u8],
) -> Result<S, Error>;
}