Trait KeyDerive

Source
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§