pub trait KeyDerive {
    // Required methods
    fn master_key(&self, seed: &[u8]) -> ExtendedPrivKey;
    fn node_keys(
        &self,
        seed: &[u8],
        secp_ctx: &Secp256k1<All>
    ) -> (PublicKey, SecretKey);
    fn channel_keys(
        &self,
        seed: &[u8],
        keys_id: &[u8; 32],
        basepoint_index: u32,
        master_key: &ExtendedPrivKey,
        secp_ctx: &Secp256k1<All>
    ) -> (SecretKey, SecretKey, SecretKey, SecretKey, SecretKey, [u8; 32]);

    // Provided methods
    fn keys_id(
        &self,
        channel_id: ChannelId,
        channel_seed_base: &[u8; 32]
    ) -> [u8; 32] { ... }
    fn channels_seed(&self, seed: &[u8]) -> [u8; 32] { ... }
}
Expand description

Derive keys for nodes and channels

Required Methods§

source

fn master_key(&self, seed: &[u8]) -> ExtendedPrivKey

Derive master key

source

fn node_keys( &self, seed: &[u8], secp_ctx: &Secp256k1<All> ) -> (PublicKey, SecretKey)

Derive node key

source

fn channel_keys( &self, seed: &[u8], keys_id: &[u8; 32], basepoint_index: u32, master_key: &ExtendedPrivKey, secp_ctx: &Secp256k1<All> ) -> (SecretKey, SecretKey, SecretKey, SecretKey, SecretKey, [u8; 32])

Derive channel keys. funding_key, revocation_base_key, htlc_base_key, payment_key, delayed_payment_base_key, commitment_seed

Provided Methods§

source

fn keys_id( &self, channel_id: ChannelId, channel_seed_base: &[u8; 32] ) -> [u8; 32]

Derive LDK keys_id from the channel_id and a seed base The seed_base

source

fn channels_seed(&self, seed: &[u8]) -> [u8; 32]

A base for channel keys

Implementors§