[][src]Struct sequoia_openpgp::packet::pkesk::PKESK3

pub struct PKESK3 { /* fields omitted */ }

Holds an asymmetrically encrypted session key.

The session key is needed to decrypt the actual ciphertext. See Section 5.1 of RFC 4880 for details.

Methods

impl PKESK3[src]

pub fn new(
    recipient: KeyID,
    pk_algo: PublicKeyAlgorithm,
    encrypted_session_key: Ciphertext
) -> Result<PKESK3>
[src]

Creates a new PKESK3 packet.

pub fn for_recipient<P, R>(
    algo: SymmetricAlgorithm,
    session_key: &SessionKey,
    recipient: &Key<P, R>
) -> Result<PKESK3> where
    P: KeyParts,
    R: KeyRole
[src]

Creates a new PKESK3 packet for the given recipent.

The given symmetric algorithm must match the algorithm that is used to encrypt the payload.

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>
) -> Result<(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.

Trait Implementations

impl Serialize for PKESK3[src]

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

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

impl SerializeInto for PKESK3[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<'a> Parse<'a, PKESK3> for PKESK3[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 From<PKESK3> for PKESK[src]

impl From<PKESK3> for Packet[src]

impl Eq for PKESK3[src]

impl PartialEq<PKESK3> for PKESK3[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl Clone for PKESK3[src]

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

Performs copy-assignment from source. Read more

impl Hash for PKESK3[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 Debug for PKESK3[src]

impl Arbitrary for PKESK3[src]

fn shrink(&self) -> Box<dyn Iterator<Item = Self> + 'static>

Auto Trait Implementations

impl Send for PKESK3

impl Sync for PKESK3

Blanket Implementations

impl<T> From for T[src]

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<V, T> VZip for T where
    V: MultiLane<T>,