| 501 | use pgp::packet::PublicKeyEncryptedSessionKey; |
| 502 | |
| 503 | async fn decrypt_bytes( |
| 504 | bytes: Vec<u8>, |
| 505 | private_keys_for_decryption: &[SignedSecretKey], |
| 506 | auth_tokens_for_decryption: &[String], |
| 507 | ) -> Result<pgp::composed::Message<'static>> { |
| 508 | let t = &TestContext::new().await; |
| 509 | t.set_config(Config::ConfiguredAddr, Some("alice@example.org")) |
| 510 | .await |
| 511 | .expect("Failed to configure address"); |
| 512 | |
| 513 | for secret in auth_tokens_for_decryption { |
| 514 | token::save(t, token::Namespace::Auth, None, secret, 0).await?; |
| 515 | } |
| 516 | let [secret_key] = private_keys_for_decryption else { |
| 517 | panic!("Only one private key is allowed anymore"); |
| 518 | }; |
| 519 | store_self_keypair(t, secret_key).await?; |
| 520 | |
| 521 | let mime_message = wrap_encrypted_part(bytes.try_into().unwrap()); |
| 522 | let rendered = render_outer_message(vec![], mime_message); |
| 523 | let parsed = mailparse::parse_mail(rendered.as_bytes())?; |
| 524 | let (decrypted, _fp) = decrypt::decrypt(t, &parsed).await?.unwrap(); |
| 525 | Ok(decrypted) |
| 526 | } |
| 527 | |
| 528 | async fn pk_decrypt_and_validate<'a>( |
| 529 | ctext: &'a [u8], |