[−][src]Struct sequoia_openpgp::packet::skesk::SKESK5
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]
esk_algo: SymmetricAlgorithm,
esk_aead: AEADAlgorithm,
s2k: S2K,
iv: Box<[u8]>,
esk: Box<[u8]>,
digest: Box<[u8]>
) -> Result<Self>
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]
payload_algo: SymmetricAlgorithm,
esk_algo: SymmetricAlgorithm,
esk_aead: AEADAlgorithm,
s2k: S2K,
session_key: &SessionKey,
password: &Password
) -> Result<Self>
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]
&self,
password: &Password
) -> Result<(SymmetricAlgorithm, SessionKey)>
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]
[src]
Gets the AEAD digest.
pub fn set_aead_digest(&mut self, digest: Box<[u8]>) -> Box<[u8]>
[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]
&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(
&self,
password: &Password
) -> Result<(SymmetricAlgorithm, SessionKey)>
[src]
&self,
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 SKESK5
[src]
impl Debug for SKESK5
[src]
impl Deref for SKESK5
[src]
type Target = SKESK4
The resulting type after dereferencing.
pub fn deref(&self) -> &Self::Target
[src]
impl DerefMut for SKESK5
[src]
impl Eq for SKESK5
[src]
impl From<SKESK5> for SKESK
[src]
impl From<SKESK5> for Packet
[src]
impl Hash for SKESK5
[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 Marshal for SKESK5
[src]
pub fn serialize(&self, o: &mut dyn Write) -> Result<()>
[src]
pub fn export(&self, o: &mut dyn Write) -> Result<()>
[src]
impl MarshalInto for SKESK5
[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 PartialEq<SKESK5> 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]
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>,