pub trait Signer { fn gen() -> Self; fn sign(&self, msg: &[u8]) -> S; } pub trait Verifier { fn verify(&self, sig: &S, msg: &[u8]) -> bool; }