[][src]Struct sequoia_openpgp::packet::skesk::SKESK4

pub struct SKESK4 { /* fields omitted */ }

Holds an symmetrically encrypted session key version 4.

Holds an symmetrically encrypted session key. The session key is needed to decrypt the actual ciphertext. See Section 5.3 of RFC 4880 for details.


impl SKESK4[src]

pub fn new(
    esk_algo: SymmetricAlgorithm,
    s2k: S2K,
    esk: Option<Box<[u8]>>
) -> Result<SKESK4>

Creates a new SKESK version 4 packet.

The given symmetric algorithm is the one used to encrypt the session key.

pub fn with_password(
    payload_algo: SymmetricAlgorithm,
    esk_algo: SymmetricAlgorithm,
    s2k: S2K,
    session_key: &SessionKey,
    password: &Password
) -> Result<SKESK4>

Creates a new SKESK4 packet with the given password.

This function takes two SymmetricAlgorithm arguments: The first, payload_algo, is the algorithm used to encrypt the message's payload (i.e. the one used in the SEIP or AED packet), and the second, esk_algo, is used to encrypt the session key. Usually, one should use the same algorithm, but if they differ, the esk_algo should be at least as strong as the payload_algo as not to weaken the security of the payload encryption.

pub fn symmetric_algo(&self) -> SymmetricAlgorithm[src]

Gets the symmetric encryption algorithm.

pub fn set_symmetric_algo(
    &mut self,
    algo: SymmetricAlgorithm
) -> SymmetricAlgorithm

Sets the symmetric encryption algorithm.

pub fn s2k(&self) -> &S2K[src]

Gets the key derivation method.

pub fn set_s2k(&mut self, s2k: S2K) -> S2K[src]

Sets the key derivation method.

pub fn esk(&self) -> Result<Option<&[u8]>>[src]

Gets the encrypted session key.

If the S2K mechanism is not supported by Sequoia, this function will fail. Note that the information is not lost, but stored in the packet. If the packet is serialized again, it is written out.

pub fn set_esk(&mut self, esk: Option<Box<[u8]>>) -> Option<Box<[u8]>>[src]

Sets the encrypted session key.

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

Derives the key inside this SKESK4 from password.

Returns a tuple of the symmetric cipher to use with the key and the key itself.

Trait Implementations

impl Clone for SKESK4[src]

impl Debug for SKESK4[src]

impl Eq for SKESK4[src]

impl From<SKESK4> for SKESK[src]

impl From<SKESK4> for Packet[src]

impl Hash for SKESK4[src]

impl Marshal for SKESK4[src]

impl MarshalInto for SKESK4[src]

impl PartialEq<SKESK4> for SKESK4[src]

Auto Trait Implementations

impl RefUnwindSafe for SKESK4

impl Send for SKESK4

impl Sync for SKESK4

impl Unpin for SKESK4

impl UnwindSafe for SKESK4

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> DynClone for T where
    T: Clone

impl<T> From<T> for T[src]

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

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.