MediaWiki REL1_37
Argon2Password Class Reference

Implements Argon2, a modern key derivation algorithm designed to resist GPU cracking and side-channel attacks. More...

Inheritance diagram for Argon2Password:
Collaboration diagram for Argon2Password:

Public Member Functions

 crypt (string $password)
 Hash a password and store the result in this object.The result of the password hash should be put into the internal state of the hash object.
Parameters
string$passwordPassword to hash
Exceptions
PasswordErrorIf an internal error occurs in hashing

 
 needsUpdate ()
 Determine if the hash needs to be updated.
Returns
bool True if needs update, false otherwise

 
 toString ()
 Convert this hash to a string that can be stored in the database.The resulting string should be considered the seralized representation of this hash, i.e., if the return value were recycled back into PasswordFactory::newFromCiphertext, the returned object would be equivalent to this; also, if two objects return the same value from this function, they are considered equivalent.
Returns
string
Exceptions
PasswordErrorif password cannot be serialized to fit a tinyblob.

 
 verify (string $password)
 Checks whether the given password matches the hash stored in this object.
Parameters
string$passwordPassword to check
Returns
bool

 
- Public Member Functions inherited from Password
 __construct (PasswordFactory $factory, array $config, string $hash=null)
 Construct the Password object using a string hash.
 
 getType ()
 Get the type name of the password.
 

Protected Member Functions

 isSupported ()
 Whether current password type is supported on this system.
Returns
bool

 
- Protected Member Functions inherited from Password
 assertIsSafeSize (string $hash)
 Assert that hash will fit in a tinyblob field.
 
 parseHash (?string $hash)
 Perform any parsing necessary on the hash to see if the hash is valid and/or to perform logic for seeing if the hash needs updating.
 

Private Member Functions

 prepareParams ()
 

Additional Inherited Members

- Protected Attributes inherited from Password
array $config
 Array of configuration variables injected from the constructor.
 
PasswordFactory $factory
 Factory that created the object.
 
string null $hash
 String representation of the hash without the type.
 

Detailed Description

Implements Argon2, a modern key derivation algorithm designed to resist GPU cracking and side-channel attacks.

See also
https://en.wikipedia.org/wiki/Argon2

Definition at line 29 of file Argon2Password.php.

Member Function Documentation

◆ crypt()

Argon2Password::crypt ( string  $password)

Hash a password and store the result in this object.The result of the password hash should be put into the internal state of the hash object.

Parameters
string$passwordPassword to hash
Exceptions
PasswordErrorIf an internal error occurs in hashing

Reimplemented from Password.

Definition at line 74 of file Argon2Password.php.

◆ isSupported()

Argon2Password::isSupported ( )
protected

Whether current password type is supported on this system.

Returns
bool

Reimplemented from Password.

Definition at line 42 of file Argon2Password.php.

◆ needsUpdate()

Argon2Password::needsUpdate ( )

Determine if the hash needs to be updated.

Returns
bool True if needs update, false otherwise

Reimplemented from Password.

Definition at line 98 of file Argon2Password.php.

◆ prepareParams()

Argon2Password::prepareParams ( )
private
Returns
mixed[] Array of 2nd and third parmeters to password_hash()

Definition at line 50 of file Argon2Password.php.

◆ toString()

Argon2Password::toString ( )

Convert this hash to a string that can be stored in the database.The resulting string should be considered the seralized representation of this hash, i.e., if the return value were recycled back into PasswordFactory::newFromCiphertext, the returned object would be equivalent to this; also, if two objects return the same value from this function, they are considered equivalent.

Returns
string
Exceptions
PasswordErrorif password cannot be serialized to fit a tinyblob.

Reimplemented from Password.

Definition at line 89 of file Argon2Password.php.

◆ verify()

Argon2Password::verify ( string  $password)

Checks whether the given password matches the hash stored in this object.

Parameters
string$passwordPassword to check
Returns
bool

Reimplemented from Password.

Definition at line 82 of file Argon2Password.php.


The documentation for this class was generated from the following file: