PHP Class Neos\Flow\Security\Cryptography\HashService

Show file Open project: neos/flow-development-collection Class Usage Examples

Protected Properties

Property Type Description
$cache Neos\Cache\Frontend\StringFrontend
$encryptionKey string A private, unique key used for encryption tasks
$objectManager Neos\Flow\ObjectManagement\ObjectManagerInterface
$passwordHashingStrategies array
$strategySettings array

Public Methods

Method Description
appendHmac ( string $string ) : string Appends a hash (HMAC) to a given string and returns the result
generateHmac ( string $string ) : string Generate a hash (HMAC) for a given string
hashPassword ( string $password, string $strategyIdentifier = 'default' ) : string Hash a password using the configured password hashing strategy
injectSettings ( array $settings ) : void Injects the settings of the package this controller belongs to.
validateAndStripHmac ( string $string ) : string Tests if the last 40 characters of a given string $string matches the HMAC of the rest of the string and, if true, returns the string without the HMAC. In case of a HMAC validation error, an exception is thrown.
validateHmac ( string $string, string $hmac ) : boolean Tests if a string $string matches the HMAC given by $hash.
validatePassword ( string $password, string $hashedPasswordAndSalt ) : boolean Validate a hashed password using the configured password hashing strategy

Protected Methods

Method Description
getEncryptionKey ( ) : string Returns the encryption key from the persistent cache or Data/Persistent directory. If none exists, a new encryption key will be generated and stored in the cache.
getPasswordHashingStrategyAndIdentifier ( string $strategyIdentifier = 'default' ) : array Get a password hashing strategy

Method Details

appendHmac() public method

Appends a hash (HMAC) to a given string and returns the result
See also: generateHmac()
public appendHmac ( string $string ) : string
$string string The string for which a hash should be generated
return string The original string with HMAC of the string appended

generateHmac() public method

Generate a hash (HMAC) for a given string
public generateHmac ( string $string ) : string
$string string The string for which a hash should be generated
return string The hash of the string

getEncryptionKey() protected method

Returns the encryption key from the persistent cache or Data/Persistent directory. If none exists, a new encryption key will be generated and stored in the cache.
protected getEncryptionKey ( ) : string
return string The configured encryption key stored in Data/Persistent/EncryptionKey

getPasswordHashingStrategyAndIdentifier() protected method

Get a password hashing strategy
protected getPasswordHashingStrategyAndIdentifier ( string $strategyIdentifier = 'default' ) : array
$strategyIdentifier string
return array

hashPassword() public method

Hash a password using the configured password hashing strategy
public hashPassword ( string $password, string $strategyIdentifier = 'default' ) : string
$password string The cleartext password
$strategyIdentifier string An identifier for a configured strategy, uses default strategy if not specified
return string A hashed password with salt (if used)

injectSettings() public method

Injects the settings of the package this controller belongs to.
public injectSettings ( array $settings ) : void
$settings array Settings container of the current package
return void

validateAndStripHmac() public method

Tests if the last 40 characters of a given string $string matches the HMAC of the rest of the string and, if true, returns the string without the HMAC. In case of a HMAC validation error, an exception is thrown.
See also: validateHmac()
public validateAndStripHmac ( string $string ) : string
$string string The string with the HMAC appended (in the format 'string')
return string the original string without the HMAC, if validation was successful

validateHmac() public method

Tests if a string $string matches the HMAC given by $hash.
public validateHmac ( string $string, string $hmac ) : boolean
$string string The string which should be validated
$hmac string The hash of the string
return boolean TRUE if string and hash fit together, FALSE otherwise.

validatePassword() public method

Validate a hashed password using the configured password hashing strategy
public validatePassword ( string $password, string $hashedPasswordAndSalt ) : boolean
$password string The cleartext password
$hashedPasswordAndSalt string The hashed password with salt (if used) and an optional strategy identifier
return boolean TRUE if the given password matches the hashed password

Property Details

$cache protected property

protected StringFrontend,Neos\Cache\Frontend $cache
return Neos\Cache\Frontend\StringFrontend

$encryptionKey protected property

A private, unique key used for encryption tasks
protected string $encryptionKey
return string

$objectManager protected property

protected ObjectManagerInterface,Neos\Flow\ObjectManagement $objectManager
return Neos\Flow\ObjectManagement\ObjectManagerInterface

$passwordHashingStrategies protected property

protected array $passwordHashingStrategies
return array

$strategySettings protected property

protected array $strategySettings
return array