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§
Sourcefn master_key(&self, seed: &[u8]) -> ExtendedPrivKey
fn master_key(&self, seed: &[u8]) -> ExtendedPrivKey
Derive master key
Sourcefn node_keys(
&self,
seed: &[u8],
secp_ctx: &Secp256k1<All>,
) -> (PublicKey, SecretKey)
fn node_keys( &self, seed: &[u8], secp_ctx: &Secp256k1<All>, ) -> (PublicKey, SecretKey)
Derive node key
Sourcefn 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])
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§
Sourcefn keys_id(
&self,
channel_id: ChannelId,
channel_seed_base: &[u8; 32],
) -> [u8; 32]
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
Sourcefn channels_seed(&self, seed: &[u8]) -> [u8; 32]
fn channels_seed(&self, seed: &[u8]) -> [u8; 32]
A base for channel keys