Struct sequoia_openpgp::packet::pkesk::PKESK3
source · pub struct PKESK3 { /* private fields */ }
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§
source§impl PKESK3
impl PKESK3
sourcepub 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.
sourcepub fn for_recipient<P, R>(
algo: SymmetricAlgorithm,
session_key: &SessionKey,
recipient: &Key<P, R>,
) -> Result<PKESK3>
pub fn for_recipient<P, R>( algo: SymmetricAlgorithm, session_key: &SessionKey, recipient: &Key<P, R>, ) -> Result<PKESK3>
Creates a new PKESK3 packet for the given recipient.
The given symmetric algorithm must match the algorithm that is used to encrypt the payload.
sourcepub fn set_recipient(&mut self, recipient: KeyID) -> KeyID
pub fn set_recipient(&mut self, recipient: KeyID) -> KeyID
Sets the recipient.
sourcepub fn pk_algo(&self) -> PublicKeyAlgorithm
pub fn pk_algo(&self) -> PublicKeyAlgorithm
Gets the public key algorithm.
sourcepub fn set_pk_algo(&mut self, algo: PublicKeyAlgorithm) -> PublicKeyAlgorithm
pub fn set_pk_algo(&mut self, algo: PublicKeyAlgorithm) -> PublicKeyAlgorithm
Sets the public key algorithm.
sourcepub fn esk(&self) -> &Ciphertext
pub fn esk(&self) -> &Ciphertext
Gets the encrypted session key.
sourcepub fn set_esk(&mut self, esk: Ciphertext) -> Ciphertext
pub fn set_esk(&mut self, esk: Ciphertext) -> Ciphertext
Sets the encrypted session key.
sourcepub 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§
source§impl MarshalInto for PKESK3
impl MarshalInto for PKESK3
source§fn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
source§fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
source§impl<'a> Parse<'a, PKESK3> for PKESK3
impl<'a> Parse<'a, PKESK3> for PKESK3
source§fn from_buffered_reader<R>(reader: R) -> Result<Self>where
R: BufferedReader<Cookie> + 'a,
fn from_buffered_reader<R>(reader: R) -> Result<Self>where
R: BufferedReader<Cookie> + 'a,
source§fn from_reader<R: 'a + Read + Send + Sync>(reader: R) -> Result<Self>
fn from_reader<R: 'a + Read + Send + Sync>(reader: R) -> Result<Self>
source§impl PartialEq for PKESK3
impl PartialEq for PKESK3
impl Eq for PKESK3
impl StructuralPartialEq for PKESK3
Auto Trait Implementations§
impl Freeze for PKESK3
impl RefUnwindSafe for PKESK3
impl Send for PKESK3
impl Sync for PKESK3
impl Unpin for PKESK3
impl UnwindSafe for PKESK3
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)