[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()
|
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 let Some(cipher_pos) = messages.iter().position(|m| {
|
||||||
if m.status != CachedMessageStatus::CipherWaitingTx {
|
if m.status != CachedMessageStatus::CipherWaitingTx {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m.try_decrypt_with_shared_secret(shared_secret.to_byte_array())
|
let res = m.try_decrypt_with_shared_secret(shared_secret.to_byte_array());
|
||||||
.is_ok()
|
if res.is_ok() {
|
||||||
|
plaintext = res.unwrap();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}) {
|
}) {
|
||||||
let message = messages.get_mut(cipher_pos).unwrap();
|
let message = messages.get_mut(cipher_pos).unwrap();
|
||||||
|
|
||||||
let (outpoint, output) = utxo_created.into_iter().next().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.commited_in = Some(outpoint.clone());
|
||||||
message.shared_secret = Some(shared_secret.to_byte_array().to_lower_hex_string());
|
message.shared_secret = Some(shared_secret.to_byte_array().to_lower_hex_string());
|
||||||
message.commitment = Some(commitment_str);
|
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.plaintext = Some(cipher_msg.message);
|
||||||
message.sender = Some(cipher_msg.sender);
|
message.sender = Some(cipher_msg.sender);
|
||||||
message.recipient = Some(sp_wallet.get_client().get_receiving_address());
|
message.recipient = Some(sp_wallet.get_client().get_receiving_address());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user