1pub mod edwards;
4pub mod elliptic;
5pub mod known;
6pub mod rsa;
7
8pub trait VerifySignature {
10 fn verifies_signature(&self, signature: &[u8], message: &[u8]) -> bool;
12}
13
14pub trait SignMessage {
16 fn sign(&self, message: &[u8]) -> Vec<u8>;
18}
19
20pub trait ToVerifier {
22 type Key: VerifySignature;
24
25 fn verifying_key(&self) -> Self::Key;
27}
28
29pub trait FromDer: Sized {
31 fn from_der(der: &[u8]) -> Option<Self>;
33
34 fn from_pem(pem: &[u8]) -> Option<Self> {
36 let (_, der) = der::pem::decode_vec(pem).ok()?;
37 Self::from_der(&der)
38 }
39}