summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-05-13 15:50:08 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-05-13 16:04:03 +0200
commit41f8260e0c8cd04a0d2e5ddce27a48522048385c (patch)
treeb576b63af3d5d3e575f470e7dfb976fcfb650fbe
parent408fb6fede41bd9ba4e773bbb4470fa0f4a53c58 (diff)
openpgp: Make Encryptor::with_passwords polymorphic.
-rw-r--r--openpgp/src/message/mod.rs2
-rw-r--r--openpgp/src/serialize/stream.rs22
2 files changed, 11 insertions, 13 deletions
diff --git a/openpgp/src/message/mod.rs b/openpgp/src/message/mod.rs
index 1fd5ecb2..9c30f74f 100644
--- a/openpgp/src/message/mod.rs
+++ b/openpgp/src/message/mod.rs
@@ -338,7 +338,7 @@ use super::*;
///
/// let mut sink = vec![];
/// let message = Encryptor::with_passwords(
-/// Message::new(&mut sink), vec!["ściśle tajne".into()]).build()?;
+/// Message::new(&mut sink), Some("ściśle tajne")).build()?;
/// let mut w = LiteralWriter::new(message).build()?;
/// w.write_all(b"Hello world.")?;
/// w.finalize()?;
diff --git a/openpgp/src/serialize/stream.rs b/openpgp/src/serialize/stream.rs
index 33fe4dc4..c68c2099 100644
--- a/openpgp/src/serialize/stream.rs
+++ b/openpgp/src/serialize/stream.rs
@@ -2174,18 +2174,20 @@ impl<'a> Encryptor<'a> {
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
/// let message = Encryptor::with_passwords(
- /// message, vec!["совершенно секретно".into()]).build()?;
+ /// message, Some("совершенно секретно")).build()?;
/// let mut w = LiteralWriter::new(message).build()?;
/// w.write_all(b"Hello world.")?;
/// w.finalize()?;
/// # Ok(()) }
/// ```
- pub fn with_passwords(inner: Message<'a>,
- passwords: Vec<Password>) -> Self {
+ pub fn with_passwords<P>(inner: Message<'a>, passwords: P) -> Self
+ where P: IntoIterator,
+ P::Item: Into<Password>,
+ {
Self {
inner: Some(inner.into()),
recipients: Vec::new(),
- passwords,
+ passwords: passwords.into_iter().map(|p| p.into()).collect(),
sym_algo: Default::default(),
aead_algo: Default::default(),
hash: HashAlgorithm::SHA1.context().unwrap(),
@@ -2261,8 +2263,7 @@ impl<'a> Encryptor<'a> {
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
/// let message =
- /// Encryptor::with_passwords(message,
- /// vec!["совершенно секретно".into()])
+ /// Encryptor::with_passwords(message, Some("совершенно секретно"))
/// .add_recipients(recipients)
/// .build()?;
/// let mut message = LiteralWriter::new(message).build()?;
@@ -2382,8 +2383,7 @@ impl<'a> Encryptor<'a> {
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
/// let message =
- /// Encryptor::with_passwords(message,
- /// vec!["совершенно секретно".into()])
+ /// Encryptor::with_passwords(message, Some("совершенно секретно"))
/// .symmetric_algo(SymmetricAlgorithm::AES128)
/// .build()?;
/// let mut message = LiteralWriter::new(message).build()?;
@@ -2414,8 +2414,7 @@ impl<'a> Encryptor<'a> {
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
/// let message =
- /// Encryptor::with_passwords(message,
- /// vec!["совершенно секретно".into()])
+ /// Encryptor::with_passwords(message, Some("совершенно секретно"))
/// .aead_algo(AEADAlgorithm::EAX)
/// .build()?;
/// let mut message = LiteralWriter::new(message).build()?;
@@ -2458,8 +2457,7 @@ impl<'a> Encryptor<'a> {
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
/// let message =
- /// Encryptor::with_passwords(message,
- /// vec!["совершенно секретно".into()])
+ /// Encryptor::with_passwords(message, Some("совершенно секретно"))
/// // Customize the `Encryptor` here.
/// .build()?;
///