1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use error::Error;
use signature::Signature;
use verifier::Verifier;
pub trait ByteVerifier<S: Signature>: Send + Sync {
fn verify_bytes(&self, msg: &[u8], signature: &S) -> Result<(), Error>;
}
impl<S, T> ByteVerifier<S> for T
where
S: Signature,
T: for<'a> Verifier<&'a [u8], S>,
{
fn verify_bytes(&self, msg: &[u8], signature: &S) -> Result<(), Error> {
self.verify(msg, signature)
}
}
pub fn verify_bytes<S>(verifier: &ByteVerifier<S>, msg: &[u8], sig: &S) -> Result<(), Error>
where
S: Signature,
{
verifier.verify_bytes(msg, sig)
}