Skip to content

Commit 92fc9ea

Browse files
authored
feat: Encrypt MDNs #5168 (#5175)
This PR stops MDNs from being forced to be sent unencrypted. If no encryption is possible (by `should_encrypt`), the fix #5152 still applies. close #5168
1 parent de7ac2a commit 92fc9ea

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

src/mimefactory.rs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ impl<'a> MimeFactory<'a> {
351351
.unwrap_or_default()
352352
}
353353
}
354-
Loaded::Mdn { .. } => true,
354+
Loaded::Mdn { .. } => false,
355355
}
356356
}
357357

@@ -1571,6 +1571,7 @@ mod tests {
15711571
use crate::mimeparser::MimeMessage;
15721572
use crate::receive_imf::receive_imf;
15731573
use crate::test_utils::{get_chat_msg, TestContext, TestContextManager};
1574+
15741575
#[test]
15751576
fn test_render_email_address() {
15761577
let display_name = "ä space";
@@ -1826,6 +1827,37 @@ mod tests {
18261827
assert_eq!("Re: Hello, Bob", mf.subject_str(&t).await.unwrap());
18271828
}
18281829

1830+
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
1831+
async fn test_mdn_create_encrypted() -> Result<()> {
1832+
let mut tcm = TestContextManager::new();
1833+
let alice = tcm.alice().await;
1834+
let bob = tcm.bob().await;
1835+
bob.set_config_bool(Config::MdnsEnabled, true).await?;
1836+
1837+
let mut msg = Message::new(Viewtype::Text);
1838+
msg.param.set_int(Param::SkipAutocrypt, 1);
1839+
let chat_alice = alice.create_chat(&bob).await.id;
1840+
let sent = alice.send_msg(chat_alice, &mut msg).await;
1841+
1842+
let rcvd = bob.recv_msg(&sent).await;
1843+
message::markseen_msgs(&bob, vec![rcvd.id]).await?;
1844+
let mimefactory = MimeFactory::from_mdn(&bob, &rcvd, vec![]).await?;
1845+
let rendered_msg = mimefactory.render(&bob).await?;
1846+
1847+
assert!(!rendered_msg.is_encrypted);
1848+
1849+
let rcvd = tcm.send_recv(&alice, &bob, "Heyho").await;
1850+
message::markseen_msgs(&bob, vec![rcvd.id]).await?;
1851+
1852+
let mimefactory = MimeFactory::from_mdn(&bob, &rcvd, vec![]).await?;
1853+
let rendered_msg = mimefactory.render(&bob).await?;
1854+
1855+
// When encrypted, the MDN should be encrypted as well
1856+
assert!(rendered_msg.is_encrypted);
1857+
1858+
Ok(())
1859+
}
1860+
18291861
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
18301862
async fn test_subject_in_group() -> Result<()> {
18311863
async fn send_msg_get_subject(

0 commit comments

Comments
 (0)