[−][src]Struct sequoia_openpgp::serialize::stream::Encryptor
Encrypts a packet stream.
Methods
impl<'a> Encryptor<'a>
[src]
pub fn for_recipient(inner: Stack<'a, Cookie>, recipient: Recipient<'a>) -> Self
[src]
Creates a new encryptor.
The stream will be encrypted using a generated session key, which will be encrypted using the given passwords, and all encryption-capable subkeys of the given Certs.
Unless otherwise specified, the stream is encrypted using
AES256. If aead_algo
is None
, a SEIP
packet is emitted,
otherwise the given AEAD algorithm is used.
Key preferences of the recipients are not honored.
Example
use std::io::Write; extern crate sequoia_openpgp as openpgp; use openpgp::types::KeyFlags; use openpgp::serialize::stream::{ Message, Encryptor, LiteralWriter, }; use openpgp::policy::StandardPolicy; let p = &StandardPolicy::new(); let cert = openpgp::Cert::from_bytes( "-----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFpxtsABCADZcBa1Q3ZLZnju18o0+t8LoQuIIeyeUQ0H45y6xUqyrD5HSkVM ... -----END PGP PUBLIC KEY BLOCK-----" ).unwrap(); // Build a vector of recipients to hand to Encryptor. let recipient = 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()) .nth(0).unwrap(); let mut o = vec![]; let message = Message::new(&mut o); let encryptor = Encryptor::for_recipient(message, recipient) .build().expect("Failed to create encryptor"); let mut w = LiteralWriter::new(encryptor).build()?; w.write_all(b"Hello world.")?; w.finalize()?;
pub fn with_password(inner: Stack<'a, Cookie>, password: Password) -> Self
[src]
Creates a new encryptor.
The stream will be encrypted using a generated session key, which will be encrypted using the given passwords, and all encryption-capable subkeys of the given Certs.
Unless otherwise specified, the stream is encrypted using
AES256. If aead_algo
is None
, a SEIP
packet is emitted,
otherwise the given AEAD algorithm is used.
Key preferences of the recipients are not honored.
Example
use std::io::Write; extern crate sequoia_openpgp as openpgp; use openpgp::types::KeyFlags; use openpgp::serialize::stream::{ Message, Encryptor, LiteralWriter, }; let mut o = vec![]; let message = Message::new(&mut o); let encryptor = Encryptor::with_password(message, "совершенно секретно".into()) .build().expect("Failed to create encryptor"); let mut w = LiteralWriter::new(encryptor).build()?; w.write_all(b"Hello world.")?; w.finalize()?;
pub fn add_recipient(self, recipient: Recipient<'a>) -> Self
[src]
Adds a recipient.
pub fn add_password(self, password: Password) -> Self
[src]
Adds a password.
pub fn sym_algo(self, algo: SymmetricAlgorithm) -> Self
[src]
Sets the symmetric algorithm to use.
pub fn aead_algo(self, algo: AEADAlgorithm) -> Self
[src]
Enables AEAD and sets the AEAD algorithm to use.
pub fn build(self) -> Result<Stack<'a, Cookie>>
[src]
Finalizes the encryptor, returning the writer stack.
Trait Implementations
impl<'a> Debug for Encryptor<'a>
[src]
impl<'a> Drop for Encryptor<'a>
[src]
impl<'a> Write for Encryptor<'a>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_vectored(&mut self, bufs: &[IoSlice]) -> Result<usize, Error>
1.36.0[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Auto Trait Implementations
impl<'a> !RefUnwindSafe for Encryptor<'a>
impl<'a> !Send for Encryptor<'a>
impl<'a> !Sync for Encryptor<'a>
impl<'a> Unpin for Encryptor<'a>
impl<'a> !UnwindSafe for Encryptor<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,