@@ -8327,33 +8327,26 @@ This indicates a bug inside LDK. Please report this error at https://github.com/
8327
8327
// TODO: Check if have any stale or missing ChannelMonitor.
8328
8328
let logger = WithContext::from(&self.logger, Some(counterparty_node_id), None, None);
8329
8329
8330
- // `MIN_CYPHERTEXT_LEN` is 16 bytes because the mandatory authentication tag length is 16 bytes.
8331
- const MIN_CYPHERTEXT_LEN: usize = 16;
8332
-
8333
- if msg.data.len() < MIN_CYPHERTEXT_LEN {
8334
- log_debug!(logger, "Invalid YourPeerStorage received from {}", log_pubkey!(counterparty_node_id));
8335
- return Err(MsgHandleErrInternal::from_chan_no_close(ChannelError::Warn(
8336
- "Invalid peer_storage_retrieval message received.".into(),
8337
- ), ChannelId([0; 32])));
8338
- }
8339
-
8340
8330
let our_peerstorage_encryption_key = self.node_signer.get_peer_storage_key();
8341
- let our_peer_storage = OurPeerStorage::new(msg.data).unwrap();
8342
8331
8343
- match our_peer_storage.decrypt_our_peer_storage(our_peerstorage_encryption_key) {
8344
- Ok(decrypted_data) => {
8345
- // Decryption successful.
8346
- if decrypted_data.len() == 0 {
8347
- log_trace!(logger, "Received a peer storage from peer {} with 0 channels.", log_pubkey!(counterparty_node_id));
8348
- }
8349
- }
8332
+ let decrypted_data = match OurPeerStorage::new(msg.data)
8333
+ .and_then(|storage| storage.decrypt_our_peer_storage(our_peerstorage_encryption_key)) {
8334
+ Ok(data) => data,
8350
8335
Err(_) => {
8351
- log_debug!(logger, "Invalid YourPeerStorage received from {}", log_pubkey!(counterparty_node_id));
8352
-
8353
- return Err(MsgHandleErrInternal::from_chan_no_close(ChannelError::Ignore(
8354
- "Invalid peer_storage_retrieval message received.".into(),
8355
- ), ChannelId([0; 32])));
8336
+ log_debug!(
8337
+ logger,
8338
+ "Invalid PeerStorage received from {}",
8339
+ log_pubkey!(counterparty_node_id)
8340
+ );
8341
+ return Err(MsgHandleErrInternal::from_chan_no_close(
8342
+ ChannelError::Ignore("Invalid PeerStorageRetrieval message received.".into()),
8343
+ ChannelId([0; 32]),
8344
+ ));
8356
8345
}
8346
+ };
8347
+
8348
+ if decrypted_data.is_empty() {
8349
+ log_debug!(logger, "Received a peer storage from peer {} with 0 channels.", log_pubkey!(counterparty_node_id));
8357
8350
}
8358
8351
8359
8352
Ok(())
0 commit comments