Enum ssh_key::Kdf

source ·
#[non_exhaustive]
pub enum Kdf { None, Bcrypt { salt: Vec<u8>, rounds: u32, }, }
Expand description

Key Derivation Functions (KDF).

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

None

No KDF.

§

Bcrypt

Fields

§salt: Vec<u8>

Salt

§rounds: u32

Rounds

Available on crate feature alloc only.

bcrypt-pbkdf options.

Implementations§

source§

impl Kdf

source

pub fn new(algorithm: KdfAlg, rng: &mut impl CryptoRngCore) -> Result<Self>

Available on crate feature encryption only.

Initialize KDF configuration for the given algorithm.

source

pub fn algorithm(&self) -> KdfAlg

Get the KDF algorithm.

source

pub fn derive( &self, password: impl AsRef<[u8]>, output: &mut [u8] ) -> Result<()>

Available on crate feature encryption only.

Derive an encryption key from the given password.

source

pub fn derive_key_and_iv( &self, cipher: Cipher, password: impl AsRef<[u8]> ) -> Result<(Zeroizing<Vec<u8>>, Vec<u8>)>

Available on crate feature encryption only.

Derive key and IV for the given Cipher.

Returns two byte vectors containing the key and IV respectively.

source

pub fn is_none(&self) -> bool

Is the KDF configured as none?

source

pub fn is_some(&self) -> bool

Is the KDF configured as anything other than none?

source

pub fn is_bcrypt(&self) -> bool

Available on crate feature alloc only.

Is the KDF configured as bcrypt (i.e. bcrypt-pbkdf)?

Trait Implementations§

source§

impl Clone for Kdf

source§

fn clone(&self) -> Kdf

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Kdf

source§

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

Formats the value using the given formatter. Read more
source§

impl Decode for Kdf

§

type Error = Error

Type returned in the event of a decoding error.
source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Attempt to decode a value of this type using the provided Reader.
source§

impl Default for Kdf

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Encode for Kdf

source§

fn encoded_len(&self) -> Result<usize>

Get the length of this type encoded in bytes, prior to Base64 encoding.
source§

fn encode(&self, writer: &mut impl Writer) -> Result<()>

Encode this value using the provided Writer.
source§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a uint32 length prefix.
source§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix set to Encode::encoded_len.
source§

impl PartialEq for Kdf

source§

fn eq(&self, other: &Kdf) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Kdf

source§

impl StructuralEq for Kdf

source§

impl StructuralPartialEq for Kdf

Auto Trait Implementations§

§

impl RefUnwindSafe for Kdf

§

impl Send for Kdf

§

impl Sync for Kdf

§

impl Unpin for Kdf

§

impl UnwindSafe for Kdf

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

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

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

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V