summaryrefslogtreecommitdiffstats
path: root/openpgp/examples/generate-encrypt-decrypt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openpgp/examples/generate-encrypt-decrypt.rs')
-rw-r--r--openpgp/examples/generate-encrypt-decrypt.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/openpgp/examples/generate-encrypt-decrypt.rs b/openpgp/examples/generate-encrypt-decrypt.rs
index 301a4340..c0c4c4ed 100644
--- a/openpgp/examples/generate-encrypt-decrypt.rs
+++ b/openpgp/examples/generate-encrypt-decrypt.rs
@@ -6,6 +6,7 @@ extern crate sequoia_openpgp as openpgp;
use crate::openpgp::crypto::SessionKey;
use crate::openpgp::constants::SymmetricAlgorithm;
use crate::openpgp::serialize::stream::*;
+use crate::openpgp::packet::KeyFlags;
use crate::openpgp::parse::stream::*;
const MESSAGE: &'static str = "дружба";
@@ -40,14 +41,22 @@ fn generate() -> openpgp::Result<openpgp::TPK> {
/// Encrypts the given message.
fn encrypt(sink: &mut Write, plaintext: &str, recipient: &openpgp::TPK)
-> openpgp::Result<()> {
+ // Build a vector of recipients to hand to Encryptor.
+ let recipients =
+ recipient.keys_valid()
+ .key_flags(KeyFlags::default()
+ .set_encrypt_at_rest(true)
+ .set_encrypt_for_transport(true))
+ .map(|(_, _, key)| key.into())
+ .collect::<Vec<_>>();
+
// Start streaming an OpenPGP message.
let message = Message::new(sink);
// We want to encrypt a literal data packet.
let encryptor = Encryptor::new(message,
&[], // No symmetric encryption.
- &[recipient],
- EncryptionMode::ForTransport,
+ &recipients,
None, None)?;
// Emit a literal data packet.