1
2
3
4
5
6
7
8
9
10
11
use super::{Chain, Key, Segment};

pub trait PrivateKey<T> {
    type SecretKey;

    fn secret_key(&self) -> crate::Result<Self::SecretKey>;

    fn child_key(&self, segment: Segment) -> crate::Result<Key>;

    fn derive(&self, chain: &Chain) -> crate::Result<Key>;
}