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

pub struct SKESK5 { /* fields omitted */ }

Holds an symmetrically encrypted session key version 5.

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

This feature is experimental.

Implementations

impl SKESK5[src]

pub fn new(
    esk_algo: SymmetricAlgorithm,
    esk_aead: AEADAlgorithm,
    s2k: S2K,
    iv: Box<[u8]>,
    esk: Box<[u8]>,
    digest: Box<[u8]>
) -> Result<Self>
[src]

Creates a new SKESK version 5 packet.

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

pub fn with_password(
    payload_algo: SymmetricAlgorithm,
    esk_algo: SymmetricAlgorithm,
    esk_aead: AEADAlgorithm,
    s2k: S2K,
    session_key: &SessionKey,
    password: &Password
) -> Result<Self>
[src]

Creates a new SKESK version 5 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 decrypt(
    &self,
    password: &Password
) -> Result<(SymmetricAlgorithm, SessionKey)>
[src]

Derives the key inside this SKESK5 from password.

Returns a tuple containing a placeholder symmetric cipher and the key itself. SKESK5 packets do not contain the symmetric cipher algorithm and instead rely on the AED packet that contains it.

pub fn aead_algo(&self) -> AEADAlgorithm[src]

Gets the AEAD algorithm.

pub fn set_aead_algo(&mut self, algo: AEADAlgorithm) -> AEADAlgorithm[src]

Sets the AEAD algorithm.

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

Gets the AEAD initialization vector.

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_aead_iv(&mut self, iv: Box<[u8]>) -> Option<Box<[u8]>>[src]

Sets the AEAD initialization vector.

pub fn aead_digest(&self) -> &[u8]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

Gets the AEAD digest.

pub fn set_aead_digest(&mut self, digest: Box<[u8]>) -> Box<[u8]>

Notable traits for Box<R, Global>

impl<R> Read for Box<R, Global> where
    R: Read + ?Sized
impl<W> Write for Box<W, Global> where
    W: Write + ?Sized
impl<F, A> Future for Box<F, A> where
    A: Allocator + 'static,
    F: Future + Unpin + ?Sized
type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
    I: Iterator + ?Sized,
    A: Allocator
type Item = <I as Iterator>::Item;
[src]

Sets the AEAD digest.

Methods from Deref<Target = SKESK4>

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

Gets the symmetric encryption algorithm.

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

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(
    &self,
    password: &Password
) -> Result<(SymmetricAlgorithm, SessionKey)>
[src]

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 SKESK5[src]

fn clone(&self) -> SKESK5[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for SKESK5[src]

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

Formats the value using the given formatter. Read more

impl Deref for SKESK5[src]

type Target = SKESK4

The resulting type after dereferencing.

fn deref(&self) -> &Self::Target[src]

Dereferences the value.

impl DerefMut for SKESK5[src]

fn deref_mut(&mut self) -> &mut Self::Target[src]

Mutably dereferences the value.

impl From<SKESK5> for SKESK[src]

fn from(p: SKESK5) -> Self[src]

Performs the conversion.

impl From<SKESK5> for Packet[src]

fn from(s: SKESK5) -> Self[src]

Performs the conversion.

impl Hash for SKESK5[src]

fn hash<H: Hasher>(&self, state: &mut H)[src]

Feeds this value into the given Hasher. Read more

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

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

impl Marshal for SKESK5[src]

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

Writes a serialized version of the object to o.

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

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

impl MarshalInto for SKESK5[src]

fn serialized_len(&self) -> usize[src]

Computes the maximal length of the serialized representation. Read more

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

Serializes into the given buffer. Read more

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

Serializes the packet to a vector.

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

Exports into the given buffer. Read more

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

Exports to a vector. Read more

impl PartialEq<SKESK5> for SKESK5[src]

fn eq(&self, other: &SKESK5) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl Eq for SKESK5[src]

Auto Trait Implementations

impl RefUnwindSafe for SKESK5

impl Send for SKESK5

impl Sync for SKESK5

impl Unpin for SKESK5

impl UnwindSafe for SKESK5

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> DynClone for T where
    T: Clone
[src]

pub fn __clone_box(&self, Private) -> *mut ()[src]

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

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.