pub trait KeyManager {
type Error: Error;
fn add_known_key(&mut self, key: PublicKey) -> Result<(), Self::Error>;
fn sign_with_child_key(
&self,
idx: &[u8],
tx_hash: &Hash
) -> Result<IndexedSignatureShare, Self::Error>;
fn sign(
&self,
msg_hash: &Hash
) -> Result<IndexedSignatureShare, Self::Error>;
fn public_key_set(&self) -> Result<PublicKeySet, Self::Error>;
fn verify(
&self,
msg_hash: &Hash,
key: &PublicKey,
signature: &Signature
) -> Result<(), Self::Error>;
fn verify_known_key(&self, key: &PublicKey) -> Result<(), Self::Error>;
}