[−][src]Enum sequoia_openpgp::packet::key::SecretKeyMaterial
Holds secret key material.
This type allows postponing the decryption of the secret key material until it is actually needed.
If the secret key material is not encrypted with a password, then we encrypt it in memory. This helps protect against heartbleed-style attacks where a buffer over-read allows an attacker to read from the process's address space. This protection is less important for Rust programs, which are memory safe. However, it is essential when Sequoia is used via its FFI.
See crypto::mem::Encrypted
for details.
Variants
Unencrypted(Unencrypted)
Unencrypted secret key. Can be used as-is.
Encrypted(Encrypted)
The secret key is encrypted with a password.
Implementations
impl SecretKeyMaterial
[src]
pub fn decrypt(
self,
pk_algo: PublicKeyAlgorithm,
password: &Password
) -> Result<Self>
[src]
self,
pk_algo: PublicKeyAlgorithm,
password: &Password
) -> Result<Self>
Decrypts the secret key material using password
.
The SecretKeyMaterial
type does not know what kind of key it
contains. So, in order to know how many MPIs to parse, the
public key algorithm needs to be provided explicitly.
This returns an error if the secret key material is not encrypted or the password is incorrect.
pub fn decrypt_in_place(
&mut self,
pk_algo: PublicKeyAlgorithm,
password: &Password
) -> Result<()>
[src]
&mut self,
pk_algo: PublicKeyAlgorithm,
password: &Password
) -> Result<()>
Decrypts the secret key material using password
.
The SecretKeyMaterial
type does not know what kind of key it
contains. So, in order to know how many MPIs to parse, the
public key algorithm needs to be provided explicitly.
This returns an error if the secret key material is not encrypted or the password is incorrect.
pub fn encrypt(self, password: &Password) -> Result<Self>
[src]
Encrypts the secret key material using password
.
This returns an error if the secret key material is encrypted.
See Unencrypted::encrypt
for details.
pub fn encrypt_in_place(&mut self, password: &Password) -> Result<()>
[src]
Encrypts the secret key material using password
.
This returns an error if the secret key material is encrypted.
See Unencrypted::encrypt
for details.
pub fn is_encrypted(&self) -> bool
[src]
Returns whether the secret key material is encrypted.
Trait Implementations
impl Clone for SecretKeyMaterial
[src]
pub fn clone(&self) -> SecretKeyMaterial
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for SecretKeyMaterial
[src]
impl Eq for SecretKeyMaterial
[src]
impl From<Encrypted> for SecretKeyMaterial
[src]
impl From<SecretKeyMaterial> for SecretKeyMaterial
[src]
pub fn from(mpis: SecretKeyMaterial) -> Self
[src]
impl From<Unencrypted> for SecretKeyMaterial
[src]
pub fn from(key: Unencrypted) -> Self
[src]
impl Hash for SecretKeyMaterial
[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 PartialEq<SecretKeyMaterial> for SecretKeyMaterial
[src]
pub fn eq(&self, other: &SecretKeyMaterial) -> bool
[src]
pub fn ne(&self, other: &SecretKeyMaterial) -> bool
[src]
impl StructuralEq for SecretKeyMaterial
[src]
impl StructuralPartialEq for SecretKeyMaterial
[src]
Auto Trait Implementations
impl RefUnwindSafe for SecretKeyMaterial
[src]
impl Send for SecretKeyMaterial
[src]
impl Sync for SecretKeyMaterial
[src]
impl Unpin for SecretKeyMaterial
[src]
impl UnwindSafe for SecretKeyMaterial
[src]
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>,