Struct Params

Source
pub struct Params<const S: usize>{
    pub argon_type: Algorithm,
    pub version: u32,
    pub memory_cost: u32,
    pub time_cost: u32,
    pub parallelism: u32,
    pub output_len: usize,
    pub salt: Salt<S>,
    pub ad: Option<Zeroizing<Vec<u8>>>,
    pub secret: Option<Zeroizing<Vec<u8>>>,
}
Expand description

Parameters for the Argon2 password hashing function

Argon2 is configurable with several parameters that affect its memory and time cost. This struct encapsulates all the parameters needed to control the behavior of the algorithm.

Fields§

§argon_type: Algorithm

The Argon2 variant to use (Argon2d, Argon2i, or Argon2id)

§version: u32

The Argon2 version (should be 0x13 for v1.3)

§memory_cost: u32

Memory usage in kibibytes (KiB)

§time_cost: u32

Number of iterations (time cost parameter)

§parallelism: u32

Degree of parallelism (number of threads)

§output_len: usize

Length of the output hash in bytes

§salt: Salt<S>

Salt value for this hash operation

§ad: Option<Zeroizing<Vec<u8>>>

Optional associated data that will be included in the hash calculation

§secret: Option<Zeroizing<Vec<u8>>>

Optional secret value that can be used as an additional input

Trait Implementations§

Source§

impl<const S: usize> Clone for Params<S>

Source§

fn clone(&self) -> Params<S>

Returns a duplicate 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<const S: usize> Default for Params<S>

Source§

fn default() -> Self

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

impl<const S: usize> Zeroize for Params<S>

Source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.

Auto Trait Implementations§

§

impl<const S: usize> Freeze for Params<S>

§

impl<const S: usize> RefUnwindSafe for Params<S>

§

impl<const S: usize> Send for Params<S>

§

impl<const S: usize> Sync for Params<S>

§

impl<const S: usize> Unpin for Params<S>

§

impl<const S: usize> UnwindSafe for Params<S>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V