pub trait Signer: Sized {
type Error: From<SendError>;
type Future: Future<Output = (Self, Result<CryptoVec, Self::Error>)> + Send;
// Required method
fn auth_publickey_sign(
self,
key: &PublicKey,
to_sign: CryptoVec
) -> Self::Future;
}