Allow(unused_imports) on prelude imports
[rust-lightning] / lightning / src / blinded_path / utils.rs
index 9b1ce50b10ebefa61943680694c5ce5852d20d43..7e43f31453637a6fdea2309d4713f2b34567693f 100644 (file)
@@ -18,11 +18,13 @@ use bitcoin::secp256k1::ecdh::SharedSecret;
 use super::{BlindedHop, BlindedPath};
 use crate::ln::msgs::DecodeError;
 use crate::ln::onion_utils;
-use crate::onion_message::Destination;
-use crate::util::chacha20poly1305rfc::ChaChaPolyWriteAdapter;
-use crate::util::ser::{Readable, VecWriter, Writeable};
+use crate::onion_message::messenger::Destination;
+use crate::crypto::streams::ChaChaPolyWriteAdapter;
+use crate::util::ser::{Readable, Writeable};
 
 use crate::io;
+
+#[allow(unused_imports)]
 use crate::prelude::*;
 
 // TODO: DRY with onion_utils::construct_onion_keys_callback
@@ -49,7 +51,7 @@ where
                                let hop_pk_blinding_factor = {
                                        let mut hmac = HmacEngine::<Sha256>::new(b"blinded_node_id");
                                        hmac.input(encrypted_data_ss.as_ref());
-                                       Hmac::from_engine(hmac).into_inner()
+                                       Hmac::from_engine(hmac).to_byte_array()
                                };
                                $pk.mul_tweak(secp_ctx, &Scalar::from_be_bytes(hop_pk_blinding_factor).unwrap())?
                        };
@@ -70,7 +72,7 @@ where
                                let mut sha = Sha256::engine();
                                sha.input(&msg_blinding_point.serialize()[..]);
                                sha.input(encrypted_data_ss.as_ref());
-                               Sha256::from_engine(sha).into_inner()
+                               Sha256::from_engine(sha).to_byte_array()
                        };
 
                        msg_blinding_point_priv = msg_blinding_point_priv.mul_tweak(&Scalar::from_be_bytes(msg_blinding_point_blinding_factor).unwrap())?;
@@ -80,7 +82,7 @@ where
                                let mut sha = Sha256::engine();
                                sha.input(&onion_packet_pubkey.serialize()[..]);
                                sha.input(onion_packet_ss.as_ref());
-                               Sha256::from_engine(sha).into_inner()
+                               Sha256::from_engine(sha).to_byte_array()
                        };
                        onion_packet_pubkey_priv = onion_packet_pubkey_priv.mul_tweak(&Scalar::from_be_bytes(onion_packet_pubkey_blinding_factor).unwrap())?;
                        onion_packet_pubkey = PublicKey::from_secret_key(secp_ctx, &onion_packet_pubkey_priv);
@@ -111,11 +113,11 @@ pub(super) fn construct_blinded_hops<'a, T, I1, I2>(
 ) -> Result<Vec<BlindedHop>, secp256k1::Error>
 where
        T: secp256k1::Signing + secp256k1::Verification,
-       I1: ExactSizeIterator<Item=&'a PublicKey>,
+       I1: Iterator<Item=&'a PublicKey>,
        I2: Iterator,
        I2::Item: Writeable
 {
-       let mut blinded_hops = Vec::with_capacity(unblinded_pks.len());
+       let mut blinded_hops = Vec::with_capacity(unblinded_pks.size_hint().0);
        construct_keys_callback(
                secp_ctx, unblinded_pks, None, session_priv,
                |blinded_node_id, _, _, encrypted_payload_rho, _, _| {
@@ -128,11 +130,9 @@ where
 }
 
 /// Encrypt TLV payload to be used as a [`crate::blinded_path::BlindedHop::encrypted_payload`].
-fn encrypt_payload<P: Writeable>(payload: P, encrypted_tlvs_ss: [u8; 32]) -> Vec<u8> {
-       let mut writer = VecWriter(Vec::new());
-       let write_adapter = ChaChaPolyWriteAdapter::new(encrypted_tlvs_ss, &payload);
-       write_adapter.write(&mut writer).expect("In-memory writes cannot fail");
-       writer.0
+fn encrypt_payload<P: Writeable>(payload: P, encrypted_tlvs_rho: [u8; 32]) -> Vec<u8> {
+       let write_adapter = ChaChaPolyWriteAdapter::new(encrypted_tlvs_rho, &payload);
+       write_adapter.encode()
 }
 
 /// Blinded path encrypted payloads may be padded to ensure they are equal length.