X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fonion_message%2Fblinded_path.rs;h=946e5e7cf8d74472e9fa56a719f2a8dd5e426ba5;hb=96c8507fbf55b3ecc2009d2da5966ae9e391b310;hp=49949bc0d5895fdf2b123f59e9f44e7c647c24b4;hpb=e1208bfd66908818604da97e924899d6843078da;p=rust-lightning diff --git a/lightning/src/onion_message/blinded_path.rs b/lightning/src/onion_message/blinded_path.rs index 49949bc0..946e5e7c 100644 --- a/lightning/src/onion_message/blinded_path.rs +++ b/lightning/src/onion_message/blinded_path.rs @@ -13,7 +13,7 @@ use bitcoin::hashes::{Hash, HashEngine}; use bitcoin::hashes::sha256::Hash as Sha256; use bitcoin::secp256k1::{self, PublicKey, Scalar, Secp256k1, SecretKey}; -use crate::chain::keysinterface::{KeysInterface, NodeSigner, Recipient}; +use crate::chain::keysinterface::{EntropySource, NodeSigner, Recipient}; use super::packet::ControlTlvs; use super::utils; use crate::ln::msgs::DecodeError; @@ -63,11 +63,11 @@ impl BlindedPath { /// /// Errors if less than two hops are provided or if `node_pk`(s) are invalid. // TODO: make all payloads the same size with padding + add dummy hops - pub fn new - (node_pks: &[PublicKey], keys_manager: &K, secp_ctx: &Secp256k1) -> Result + pub fn new + (node_pks: &[PublicKey], entropy_source: &ES, secp_ctx: &Secp256k1) -> Result { if node_pks.len() < 2 { return Err(()) } - let blinding_secret_bytes = keys_manager.get_secure_random_bytes(); + let blinding_secret_bytes = entropy_source.get_secure_random_bytes(); let blinding_secret = SecretKey::from_slice(&blinding_secret_bytes[..]).expect("RNG is busted"); let introduction_node_id = node_pks[0]; @@ -79,11 +79,11 @@ impl BlindedPath { } // Advance the blinded path by one hop, so make the second hop into the new introduction node. - pub(super) fn advance_by_one - (&mut self, keys_manager: &K, secp_ctx: &Secp256k1) -> Result<(), ()> - where K::Target: KeysInterface + pub(super) fn advance_by_one + (&mut self, node_signer: &NS, secp_ctx: &Secp256k1) -> Result<(), ()> + where NS::Target: NodeSigner { - let control_tlvs_ss = keys_manager.ecdh(Recipient::Node, &self.blinding_point, None)?; + let control_tlvs_ss = node_signer.ecdh(Recipient::Node, &self.blinding_point, None)?; let rho = onion_utils::gen_rho_from_shared_secret(&control_tlvs_ss.secret_bytes()); let encrypted_control_tlvs = self.blinded_hops.remove(0).encrypted_payload; let mut s = Cursor::new(&encrypted_control_tlvs);