Struct sequoia_openpgp::packet::skesk::SKESK4
source · pub struct SKESK4 { /* private fields */ }
Expand description
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.
Implementations§
source§impl SKESK4
impl SKESK4
sourcepub fn new(
esk_algo: SymmetricAlgorithm,
s2k: S2K,
esk: Option<Box<[u8]>>,
) -> Result<SKESK4>
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.
sourcepub fn with_password(
payload_algo: SymmetricAlgorithm,
esk_algo: SymmetricAlgorithm,
s2k: S2K,
session_key: &SessionKey,
password: &Password,
) -> Result<SKESK4>
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.
sourcepub fn symmetric_algo(&self) -> SymmetricAlgorithm
pub fn symmetric_algo(&self) -> SymmetricAlgorithm
Gets the symmetric encryption algorithm.
sourcepub fn set_symmetric_algo(
&mut self,
algo: SymmetricAlgorithm,
) -> SymmetricAlgorithm
pub fn set_symmetric_algo( &mut self, algo: SymmetricAlgorithm, ) -> SymmetricAlgorithm
Sets the symmetric encryption algorithm.
sourcepub fn esk(&self) -> Result<Option<&[u8]>>
pub fn esk(&self) -> Result<Option<&[u8]>>
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.
sourcepub fn set_esk(&mut self, esk: Option<Box<[u8]>>) -> Option<Box<[u8]>>
pub fn set_esk(&mut self, esk: Option<Box<[u8]>>) -> Option<Box<[u8]>>
Sets the encrypted session key.
sourcepub fn decrypt(
&self,
password: &Password,
) -> Result<(SymmetricAlgorithm, SessionKey)>
pub fn decrypt( &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§
source§impl MarshalInto for SKESK4
impl MarshalInto for SKESK4
source§fn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
source§fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
fn serialize_into(&self, buf: &mut [u8]) -> Result<usize>
source§impl PartialEq for SKESK4
impl PartialEq for SKESK4
impl Eq for SKESK4
Auto Trait Implementations§
impl Freeze for SKESK4
impl RefUnwindSafe for SKESK4
impl Send for SKESK4
impl Sync for SKESK4
impl Unpin for SKESK4
impl UnwindSafe for SKESK4
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)