[][src]Enum sequoia_openpgp::packet::PKESK

pub enum PKESK {
    V3(PKESK3),
    // some variants omitted
}

Holds an asymmetrically encrypted session key.

The session key is used to decrypt the actual ciphertext, which is typically stored in a SEIP or AED packet. See Section 5.1 of RFC 4880 for details.

A PKESK packet is not normally instantiated directly. In most cases, you'll create one as a side-effect of encrypting a message using the streaming serializer, or parsing an encrypted message using the PacketParser.

Note: This enum cannot be exhaustively matched to allow future extensions.

Variants

V3(PKESK3)

PKESK packet version 3.

Methods

impl PKESK[src]

pub fn version(&self) -> u8[src]

Gets the version.

Methods from Deref<Target = PKESK3>

pub fn recipient(&self) -> &KeyID[src]

Gets the recipient.

pub fn set_recipient(&mut self, recipient: KeyID) -> KeyID[src]

Sets the recipient.

pub fn pk_algo(&self) -> PublicKeyAlgorithm[src]

Gets the public key algorithm.

pub fn set_pk_algo(&mut self, algo: PublicKeyAlgorithm) -> PublicKeyAlgorithm[src]

Sets the public key algorithm.

pub fn esk(&self) -> &Ciphertext[src]

Gets the encrypted session key.

pub fn set_esk(&mut self, esk: Ciphertext) -> Ciphertext[src]

Sets the encrypted session key.

pub fn decrypt(
    &self,
    decryptor: &mut dyn Decryptor,
    sym_algo_hint: Option<SymmetricAlgorithm>
) -> Option<(SymmetricAlgorithm, SessionKey)>
[src]

Decrypts the encrypted session key.

If the symmetric algorithm used to encrypt the message is known in advance, it should be given as argument. This allows us to reduce the side-channel leakage of the decryption operation for RSA.

Returns the session key and symmetric algorithm used to encrypt the following payload.

Returns None on errors. This prevents leaking information to an attacker, which could lead to compromise of secret key material with certain algorithms (RSA). See Section 14 of RFC 4880.

Trait Implementations

impl<'a> Parse<'a, PKESK> for PKESK[src]

fn from_file<P: AsRef<Path>>(path: P) -> Result<T>[src]

Reads from the given file. Read more

fn from_bytes<D: AsRef<[u8]> + ?Sized>(data: &'a D) -> Result<T>[src]

Reads from the given slice. Read more

impl Marshal for PKESK[src]

fn export(&self, o: &mut dyn Write) -> Result<()>[src]

Exports a serialized version of the object to o. Read more

impl MarshalInto for PKESK[src]

fn to_vec(&self) -> Result<Vec<u8>>[src]

Serializes the packet to a vector.

fn export_into(&self, buf: &mut [u8]) -> Result<usize>[src]

Exports into the given buffer. Read more

fn export_to_vec(&self) -> Result<Vec<u8>>[src]

Exports to a vector. Read more

impl From<PKESK3> for PKESK[src]

impl From<PKESK> for Packet[src]

impl IntoIterator for PKESK[src]

Implement IntoIterator so that cert::merge_packets(sig) just works.

type Item = PKESK

The type of the elements being iterated over.

type IntoIter = Once<PKESK>

Which kind of iterator are we turning this into?

impl Eq for PKESK[src]

impl PartialEq<PKESK> for PKESK[src]

impl Clone for PKESK[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Deref for PKESK[src]

type Target = PKESK3

The resulting type after dereferencing.

impl Hash for PKESK[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl DerefMut for PKESK[src]

impl Debug for PKESK[src]

Auto Trait Implementations

impl Send for PKESK

impl Sync for PKESK

Blanket Implementations

impl<T> From for T[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> DynClone for T where
    T: Clone
[src]