pub struct Argon2<'key> {
pub(crate) algorithm: Algorithm,
pub(crate) version: Version,
pub(crate) params: Params,
pub(crate) secret: Option<&'key [u8]>,
pub(crate) cpu_feat_avx2: InitToken,
}Expand description
Fields§
§algorithm: AlgorithmAlgorithm to use
version: VersionVersion number
params: ParamsAlgorithm parameters
secret: Option<&'key [u8]>Key array
cpu_feat_avx2: InitTokenImplementations§
Source§impl<'key> Argon2<'key>
impl<'key> Argon2<'key>
Sourcepub fn new(algorithm: Algorithm, version: Version, params: Params) -> Self
pub fn new(algorithm: Algorithm, version: Version, params: Params) -> Self
Create a new Argon2 context.
Sourcepub fn new_with_secret(
secret: &'key [u8],
algorithm: Algorithm,
version: Version,
params: Params,
) -> Result<Self>
pub fn new_with_secret( secret: &'key [u8], algorithm: Algorithm, version: Version, params: Params, ) -> Result<Self>
Create a new Argon2 context.
Sourcepub fn hash_password_into(
&self,
pwd: &[u8],
salt: &[u8],
out: &mut [u8],
) -> Result<()>
pub fn hash_password_into( &self, pwd: &[u8], salt: &[u8], out: &mut [u8], ) -> Result<()>
Hash a password and associated parameters into the provided output buffer.
Sourcepub fn hash_password_into_with_memory(
&self,
pwd: &[u8],
salt: &[u8],
out: &mut [u8],
memory_blocks: impl AsMut<[Block]>,
) -> Result<()>
pub fn hash_password_into_with_memory( &self, pwd: &[u8], salt: &[u8], out: &mut [u8], memory_blocks: impl AsMut<[Block]>, ) -> Result<()>
Hash a password and associated parameters into the provided output buffer.
This method takes an explicit memory_blocks parameter which allows
the caller to provide the backing storage for the algorithm’s state:
- Users with the
allocfeature enabled can useArgon2::hash_password_intoto have it allocated for them. no_stdusers on “heapless” targets can use an array of theBlocktype to stack allocate this buffer.
Sourcepub fn fill_memory(
&self,
pwd: &[u8],
salt: &[u8],
memory_blocks: impl AsMut<[Block]>,
) -> Result<()>
pub fn fill_memory( &self, pwd: &[u8], salt: &[u8], memory_blocks: impl AsMut<[Block]>, ) -> Result<()>
Use a password and associated parameters only to fill the given memory blocks.
This method omits the calculation of a hash and can be used when only the filled memory is required. It is not necessary to call this method before calling any of the hashing functions.
pub(crate) fn fill_blocks( &self, memory_blocks: &mut [Block], initial_hash: Output<Blake2b512>, ) -> Result<()>
pub(crate) fn compress(&self, rhs: &Block, lhs: &Block) -> Block
pub(crate) fn finalize( &self, memory_blocks: &[Block], out: &mut [u8], ) -> Result<()>
pub(crate) fn update_address_block( &self, address_block: &mut Block, input_block: &mut Block, zero_block: &Block, )
Sourcepub(crate) fn initial_hash(
&self,
pwd: &[u8],
salt: &[u8],
out: &[u8],
) -> Output<Blake2b512>
pub(crate) fn initial_hash( &self, pwd: &[u8], salt: &[u8], out: &[u8], ) -> Output<Blake2b512>
Hashes all the inputs into blockhash[PREHASH_DIGEST_LEN].
pub(crate) const fn verify_inputs(pwd: &[u8], salt: &[u8]) -> Result<()>
Trait Implementations§
Source§impl PasswordHasher for Argon2<'_>
Available on crate features alloc and password-hash only.
impl PasswordHasher for Argon2<'_>
Available on crate features
alloc and password-hash only.Source§fn hash_password<'a>(
&self,
password: &[u8],
salt: impl Into<Salt<'a>>,
) -> Result<PasswordHash<'a>>
fn hash_password<'a>( &self, password: &[u8], salt: impl Into<Salt<'a>>, ) -> Result<PasswordHash<'a>>
Simple API for computing a
PasswordHash from a password and
salt value. Read moreSource§fn hash_password_customized<'a>(
&self,
password: &[u8],
alg_id: Option<Ident<'a>>,
version: Option<Decimal>,
params: Params,
salt: impl Into<Salt<'a>>,
) -> Result<PasswordHash<'a>>
fn hash_password_customized<'a>( &self, password: &[u8], alg_id: Option<Ident<'a>>, version: Option<Decimal>, params: Params, salt: impl Into<Salt<'a>>, ) -> Result<PasswordHash<'a>>
Compute a
PasswordHash from the provided password using an
explicit set of customized algorithm parameters as opposed to the
defaults. Read moreAuto Trait Implementations§
impl<'key> Freeze for Argon2<'key>
impl<'key> RefUnwindSafe for Argon2<'key>
impl<'key> Send for Argon2<'key>
impl<'key> Sync for Argon2<'key>
impl<'key> Unpin for Argon2<'key>
impl<'key> UnwindSafe for Argon2<'key>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> PasswordVerifier for Twhere
T: PasswordHasher,
impl<T> PasswordVerifier for Twhere
T: PasswordHasher,
Source§fn verify_password(
&self,
password: &[u8],
hash: &PasswordHash<'_>,
) -> Result<(), Error>
fn verify_password( &self, password: &[u8], hash: &PasswordHash<'_>, ) -> Result<(), Error>
Compute this password hashing function against the provided password
using the parameters from the provided password hash and see if the
computed output matches.