[−][src]Enum sequoia_openpgp::packet::PKESK
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 (Non-exhaustive)
V3(PKESK3)
PKESK packet version 3.
Implementations
impl PKESK
[src]
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]
&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
impl Clone for PKESK
[src]
impl Debug for PKESK
[src]
impl Deref for PKESK
[src]
type Target = PKESK3
The resulting type after dereferencing.
pub fn deref(&self) -> &Self::Target
[src]
impl DerefMut for PKESK
[src]
impl Eq for PKESK
[src]
impl From<PKESK> for Packet
[src]
impl From<PKESK3> for PKESK
[src]
impl Hash for PKESK
[src]
pub fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl IntoIterator for PKESK
[src]
Implement IntoIterator
so that
cert::insert_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?
pub fn into_iter(self) -> Self::IntoIter
[src]
impl Marshal for PKESK
[src]
pub fn serialize(&self, o: &mut dyn Write) -> Result<()>
[src]
pub fn export(&self, o: &mut dyn Write) -> Result<()>
[src]
impl MarshalInto for PKESK
[src]
pub fn serialized_len(&self) -> usize
[src]
pub fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
[src]
pub fn to_vec(&self) -> Result<Vec<u8>>
[src]
pub fn export_into(&self, buf: &mut [u8]) -> Result<usize>
[src]
pub fn export_to_vec(&self) -> Result<Vec<u8>>
[src]
impl<'a> Parse<'a, PKESK> for PKESK
[src]
pub fn from_reader<R: 'a + Read + Send + Sync>(reader: R) -> Result<Self>
[src]
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<T>
[src]
pub fn from_bytes<D: AsRef<[u8]> + ?Sized + Send + Sync>(
data: &'a D
) -> Result<T>
[src]
data: &'a D
) -> Result<T>
impl PartialEq<PKESK> for PKESK
[src]
impl StructuralEq for PKESK
[src]
impl StructuralPartialEq for PKESK
[src]
Auto Trait Implementations
impl RefUnwindSafe for PKESK
impl Send for PKESK
impl Sync for PKESK
impl Unpin for PKESK
impl UnwindSafe for PKESK
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,