Struct sequoia_openpgp::packet::pkesk::PKESK3 [−][src]
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.
Implementations
impl PKESK3
[src]
impl PKESK3
[src]pub fn new(
recipient: KeyID,
pk_algo: PublicKeyAlgorithm,
encrypted_session_key: Ciphertext
) -> Result<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]
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 set_recipient(&mut self, recipient: KeyID) -> KeyID
[src]
pub fn set_recipient(&mut self, recipient: KeyID) -> KeyID
[src]Sets the recipient.
pub fn pk_algo(&self) -> PublicKeyAlgorithm
[src]
pub fn pk_algo(&self) -> PublicKeyAlgorithm
[src]Gets the public key algorithm.
pub fn set_pk_algo(&mut self, algo: PublicKeyAlgorithm) -> PublicKeyAlgorithm
[src]
pub fn set_pk_algo(&mut self, algo: PublicKeyAlgorithm) -> PublicKeyAlgorithm
[src]Sets the public key algorithm.
pub fn esk(&self) -> &Ciphertext
[src]
pub fn esk(&self) -> &Ciphertext
[src]Gets the encrypted session key.
pub fn set_esk(&mut self, esk: Ciphertext) -> Ciphertext
[src]
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]
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 MarshalInto for PKESK3
[src]
impl MarshalInto for PKESK3
[src]impl<'a> Parse<'a, PKESK3> for PKESK3
[src]
impl<'a> Parse<'a, PKESK3> for PKESK3
[src]impl Eq for PKESK3
[src]
impl StructuralEq for PKESK3
[src]
impl StructuralPartialEq for PKESK3
[src]
Auto Trait Implementations
impl RefUnwindSafe for PKESK3
impl Send for PKESK3
impl Sync for PKESK3
impl Unpin for PKESK3
impl UnwindSafe for PKESK3
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more