summaryrefslogtreecommitdiffstats
path: root/openpgp/benches/common/encrypt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openpgp/benches/common/encrypt.rs')
-rw-r--r--openpgp/benches/common/encrypt.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/openpgp/benches/common/encrypt.rs b/openpgp/benches/common/encrypt.rs
new file mode 100644
index 00000000..1dc0c9f2
--- /dev/null
+++ b/openpgp/benches/common/encrypt.rs
@@ -0,0 +1,42 @@
+use sequoia_openpgp::cert::Cert;
+use sequoia_openpgp::parse::Parse;
+use sequoia_openpgp::policy::StandardPolicy;
+use sequoia_openpgp::serialize::stream::{Encryptor, LiteralWriter, Message};
+
+use std::io::Write;
+
+pub fn encrypt_to_cert(
+ bytes: &[u8],
+ cert: &Cert,
+) -> sequoia_openpgp::Result<Vec<u8>> {
+ let mut sink = vec![];
+ let p = &StandardPolicy::new();
+ let recipients = cert
+ .keys()
+ .with_policy(p, None)
+ .supported()
+ .alive()
+ .revoked(false)
+ .for_transport_encryption();
+ let message =
+ Encryptor::for_recipients(Message::new(&mut sink), recipients)
+ .build()?;
+ let mut w = LiteralWriter::new(message).build()?;
+ w.write_all(bytes)?;
+ w.finalize()?;
+ Ok(sink)
+}
+
+pub fn encrypt_with_password(
+ bytes: &[u8],
+ password: &str,
+) -> sequoia_openpgp::Result<Vec<u8>> {
+ let mut sink = vec![];
+ let message =
+ Encryptor::with_passwords(Message::new(&mut sink), Some(password))
+ .build()?;
+ let mut w = LiteralWriter::new(message).build()?;
+ w.write_all(bytes)?;
+ w.finalize()?;
+ Ok(sink)
+}