summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-05-13 17:09:31 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-05-13 17:09:31 +0200
commit16e2c23d76d780457aa4a68e3981d685f3ff80c1 (patch)
treeeb3f8063bc192c2997652445fddb456efabe5ab3
parent8bc173039650ee2f8f20de1e75e68a541b9c6b75 (diff)
openpgp: Convert from ValidKeyAmalgamation for Recipient.
- Simplify examples accordingly.
-rw-r--r--guide/src/chapter_02.md12
-rw-r--r--openpgp/examples/encrypt-for.rs3
-rw-r--r--openpgp/examples/generate-encrypt-decrypt.rs3
-rw-r--r--openpgp/src/serialize/stream.rs27
4 files changed, 23 insertions, 22 deletions
diff --git a/guide/src/chapter_02.md b/guide/src/chapter_02.md
index e3da3d80..64ba07cb 100644
--- a/guide/src/chapter_02.md
+++ b/guide/src/chapter_02.md
@@ -57,8 +57,7 @@ fn main() {
# -> openpgp::Result<()> {
# let recipients =
# recipient.keys().with_policy(policy, None).alive().revoked(false)
-# .for_transport_encryption()
-# .map(|ka| ka.key());
+# .for_transport_encryption();
#
# // Start streaming an OpenPGP message.
# let message = Message::new(sink);
@@ -203,8 +202,7 @@ fn generate() -> openpgp::Result<openpgp::Cert> {
# -> openpgp::Result<()> {
# let recipients =
# recipient.keys().with_policy(policy, None).alive().revoked(false)
-# .for_transport_encryption()
-# .map(|ka| ka.key());
+# .for_transport_encryption();
#
# // Start streaming an OpenPGP message.
# let message = Message::new(sink);
@@ -349,8 +347,7 @@ fn encrypt(policy: &dyn Policy,
-> openpgp::Result<()> {
let recipients =
recipient.keys().with_policy(policy, None).alive().revoked(false)
- .for_transport_encryption()
- .map(|ka| ka.key());
+ .for_transport_encryption();
// Start streaming an OpenPGP message.
let message = Message::new(sink);
@@ -509,8 +506,7 @@ Decrypted data can be read from this using [`io::Read`].
# -> openpgp::Result<()> {
# let recipients =
# recipient.keys().with_policy(policy, None).alive().revoked(false)
-# .for_transport_encryption()
-# .map(|ka| ka.key());
+# .for_transport_encryption();
#
# // Start streaming an OpenPGP message.
# let message = Message::new(sink);
diff --git a/openpgp/examples/encrypt-for.rs b/openpgp/examples/encrypt-for.rs
index a7701770..359101ca 100644
--- a/openpgp/examples/encrypt-for.rs
+++ b/openpgp/examples/encrypt-for.rs
@@ -42,8 +42,7 @@ fn main() {
.flat_map(|cert| {
cert.keys()
.with_policy(p, None).alive().revoked(false).key_flags(&mode)
- })
- .map(|ka| ka.key());
+ });
// Compose a writer stack corresponding to the output format and
// packet structure we want. First, we want the output to be
diff --git a/openpgp/examples/generate-encrypt-decrypt.rs b/openpgp/examples/generate-encrypt-decrypt.rs
index e19c98b0..3960b22e 100644
--- a/openpgp/examples/generate-encrypt-decrypt.rs
+++ b/openpgp/examples/generate-encrypt-decrypt.rs
@@ -49,8 +49,7 @@ fn encrypt(p: &dyn Policy, sink: &mut dyn Write, plaintext: &str,
{
let recipients =
recipient.keys().with_policy(p, None).alive().revoked(false)
- .for_transport_encryption()
- .map(|ka| ka.key());
+ .for_transport_encryption();
// Start streaming an OpenPGP message.
let message = Message::new(sink);
diff --git a/openpgp/src/serialize/stream.rs b/openpgp/src/serialize/stream.rs
index b7b9f608..ef3423bf 100644
--- a/openpgp/src/serialize/stream.rs
+++ b/openpgp/src/serialize/stream.rs
@@ -1800,6 +1800,17 @@ impl<'a, P, R> From<&'a Key<P, R>> for Recipient<'a>
}
}
+impl<'a, P, R, R2> From<ValidKeyAmalgamation<'a, P, R, R2>>
+ for Recipient<'a>
+ where P: key::KeyParts,
+ R: key::KeyRole,
+ R2: Copy,
+{
+ fn from(ka: ValidKeyAmalgamation<'a, P, R, R2>) -> Self {
+ ka.key().into()
+ }
+}
+
impl<'a> Recipient<'a> {
/// Creates a new recipient with an explicit recipient keyid.
///
@@ -1935,7 +1946,7 @@ impl<'a> Recipient<'a> {
/// cert.keys().with_policy(p, None).alive().revoked(false)
/// // Or `for_storage_encryption()`, for data at rest.
/// .for_transport_encryption()
- /// .map(|ka| ka.key().into())
+ /// .map(Into::into)
/// .collect::<Vec<Recipient>>();
///
/// assert_eq!(recipients[0].keyid(),
@@ -2007,7 +2018,7 @@ impl<'a> Recipient<'a> {
/// // Or `for_storage_encryption()`, for data at rest.
/// .for_transport_encryption()
/// .map(|ka| {
- /// let mut r: Recipient = ka.key().into();
+ /// let mut r: Recipient = ka.into();
/// // Set the recipient keyid to the wildcard id.
/// r.set_keyid(KeyID::wildcard());
/// r
@@ -2113,8 +2124,7 @@ impl<'a> Encryptor<'a> {
/// let recipients =
/// cert.keys().with_policy(p, None).alive().revoked(false)
/// // Or `for_storage_encryption()`, for data at rest.
- /// .for_transport_encryption()
- /// .map(|ka| ka.key());
+ /// .for_transport_encryption();
///
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
@@ -2246,8 +2256,7 @@ impl<'a> Encryptor<'a> {
/// let recipients =
/// cert.keys().with_policy(p, None).alive().revoked(false)
/// // Or `for_storage_encryption()`, for data at rest.
- /// .for_transport_encryption()
- /// .map(|ka| ka.key());
+ /// .for_transport_encryption();
///
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
@@ -2330,8 +2339,7 @@ impl<'a> Encryptor<'a> {
/// let recipients =
/// cert.keys().with_policy(p, None).alive().revoked(false)
/// // Or `for_storage_encryption()`, for data at rest.
- /// .for_transport_encryption()
- /// .map(|ka| ka.key());
+ /// .for_transport_encryption();
///
/// # let mut sink = vec![];
/// let message = Message::new(&mut sink);
@@ -3068,8 +3076,7 @@ mod test {
let m = Message::new(&mut msg);
let recipients = tsk
.keys().with_policy(p, None)
- .for_storage_encryption().for_transport_encryption()
- .map(|ka| ka.key());
+ .for_storage_encryption().for_transport_encryption();
let encryptor = Encryptor::for_recipients(m, recipients)
.aead_algo(AEADAlgorithm::EAX)
.build().unwrap();