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

`pub struct PKESK3 { /* fields omitted */ }`

## Expand description

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.

## Implementations

#### pub fn new(

recipient: KeyID,

pk_algo: PublicKeyAlgorithm,

encrypted_session_key: Ciphertext

) -> Result<PKESK3>

#### pub fn new(

recipient: KeyID,

pk_algo: PublicKeyAlgorithm,

encrypted_session_key: Ciphertext

) -> Result<PKESK3>

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,

#### pub fn for_recipient<P, R>(

algo: SymmetricAlgorithm,

session_key: &SessionKey,

recipient: &Key<P, R>

) -> Result<PKESK3> where

P: KeyParts,

R: KeyRole,

Creates a new PKESK3 packet for the given recipent.

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

Sets the recipient.

Gets the public key algorithm.

Sets the public key algorithm.

Gets the encrypted session key.

Sets the encrypted session key.

#### pub fn decrypt(

&self,

decryptor: &mut dyn Decryptor,

sym_algo_hint: Option<SymmetricAlgorithm>

) -> Option<(SymmetricAlgorithm, SessionKey)>

#### pub fn decrypt(

&self,

decryptor: &mut dyn Decryptor,

sym_algo_hint: Option<SymmetricAlgorithm>

) -> Option<(SymmetricAlgorithm, SessionKey)>

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

Reads from the given reader.

## Auto Trait Implementations

### impl RefUnwindSafe for PKESK3

### impl UnwindSafe for PKESK3

## Blanket Implementations

Mutably borrows from an owned value. Read more