#[non_exhaustive]
pub enum SKESK {
    V4(SKESK4),
    V5(SKESK5),
}
Expand description

Holds a symmetrically 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.3 of RFC 4880 for details.

An SKESK 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)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

V4(SKESK4)

SKESK packet version 4.

§

V5(SKESK5)

SKESK packet version 5.

This feature is experimental.

Implementations§

source§

impl SKESK

source

pub fn decrypt( &self, password: &Password ) -> Result<(SymmetricAlgorithm, SessionKey)>

Derives the key inside this SKESK from password. Returns a tuple of the symmetric cipher to use with the key and the key itself.

source§

impl SKESK

source

pub fn version(&self) -> u8

Gets the version.

Trait Implementations§

source§

impl Any<SKESK> for Packet

source§

fn downcast(self) -> Result<SKESK, Packet>

Attempts to downcast to T, returning the packet if it fails. Read more
source§

fn downcast_ref(&self) -> Option<&SKESK>

Attempts to downcast to &T, returning None if it fails. Read more
source§

fn downcast_mut(&mut self) -> Option<&mut SKESK>

Attempts to downcast to &mut T, returning None if it fails. Read more
source§

impl Clone for SKESK

source§

fn clone(&self) -> SKESK

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SKESK

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<SKESK> for Packet

source§

fn from(p: SKESK) -> Self

Converts to this type from the input type.
source§

impl From<SKESK4> for SKESK

source§

fn from(p: SKESK4) -> Self

Converts to this type from the input type.
source§

impl From<SKESK5> for SKESK

source§

fn from(p: SKESK5) -> Self

Converts to this type from the input type.
source§

impl Hash for SKESK

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl IntoIterator for SKESK

Implement IntoIterator so that cert::insert_packets(sig) just works.

§

type Item = SKESK

The type of the elements being iterated over.
§

type IntoIter = Once<SKESK>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Marshal for SKESK

source§

fn serialize(&self, o: &mut dyn Write) -> Result<()>

Writes a serialized version of the object to o.
source§

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

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

impl MarshalInto for SKESK

source§

fn serialized_len(&self) -> usize

Computes the maximal length of the serialized representation. Read more
source§

fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>

Serializes into the given buffer. Read more
source§

fn to_vec(&self) -> Result<Vec<u8>>

Serializes the packet to a vector.
source§

fn export_into(&self, buf: &mut [u8]) -> Result<usize>

Exports into the given buffer. Read more
source§

fn export_to_vec(&self) -> Result<Vec<u8>>

Exports to a vector. Read more
source§

impl<'a> Parse<'a, SKESK> for SKESK

source§

fn from_reader<R: 'a + Read + Send + Sync>(reader: R) -> Result<Self>

Reads from the given reader.
source§

fn from_bytes<D: AsRef<[u8]> + ?Sized + Send + Sync>( data: &'a D ) -> Result<Self>

Reads from the given slice. Read more
source§

fn from_file<P: AsRef<Path>>(path: P) -> Result<T>

Reads from the given file. Read more
source§

impl PartialEq<SKESK> for SKESK

source§

fn eq(&self, other: &SKESK) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for SKESK

source§

impl StructuralEq for SKESK

source§

impl StructuralPartialEq for SKESK

Auto Trait Implementations§

§

impl RefUnwindSafe for SKESK

§

impl Send for SKESK

§

impl Sync for SKESK

§

impl Unpin for SKESK

§

impl UnwindSafe for SKESK

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.