[bug] false negative when decrypting message
This commit is contained in:
parent
b875b64a0a
commit
184d4af31f
@ -463,25 +463,27 @@ fn handle_recover_transaction(
|
||||
shared_secret.to_byte_array().to_lower_hex_string()
|
||||
);
|
||||
|
||||
let mut plaintext: Vec<u8> = vec![];
|
||||
if let Some(cipher_pos) = messages.iter().position(|m| {
|
||||
if m.status != CachedMessageStatus::CipherWaitingTx {
|
||||
return false;
|
||||
}
|
||||
m.try_decrypt_with_shared_secret(shared_secret.to_byte_array())
|
||||
.is_ok()
|
||||
let res = m.try_decrypt_with_shared_secret(shared_secret.to_byte_array());
|
||||
if res.is_ok() {
|
||||
plaintext = res.unwrap();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}) {
|
||||
let message = messages.get_mut(cipher_pos).unwrap();
|
||||
|
||||
let (outpoint, output) = utxo_created.into_iter().next().unwrap();
|
||||
|
||||
let cipher_msg: CipherMessage = serde_json::from_slice(&plaintext)?;
|
||||
message.commited_in = Some(outpoint.clone());
|
||||
message.shared_secret = Some(shared_secret.to_byte_array().to_lower_hex_string());
|
||||
message.commitment = Some(commitment_str);
|
||||
|
||||
let plaintext = message
|
||||
.try_decrypt_with_shared_secret(shared_secret.to_byte_array())
|
||||
.unwrap();
|
||||
let cipher_msg: CipherMessage = serde_json::from_slice(&plaintext)?;
|
||||
message.plaintext = Some(cipher_msg.message);
|
||||
message.sender = Some(cipher_msg.sender);
|
||||
message.recipient = Some(sp_wallet.get_client().get_receiving_address());
|
||||
|
Loading…
x
Reference in New Issue
Block a user