0 follower

Final Class Yiisoft\Yii\AuthClient\Signature\HmacSha

InheritanceYiisoft\Yii\AuthClient\Signature\HmacSha » Yiisoft\Yii\AuthClient\Signature\Signature

HmacSha represents 'HMAC SHA' signature method.

Note: This class requires PHP "Hash" extension(https://php.net/manual/en/book.hash.php).

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( string $algorithm )
$algorithm string

                public function __construct(/**
 * @var string hash algorithm, e.g. `sha1`, `sha256` and so on.
 *
 * @link https://php.net/manual/ru/function.hash-algos.php
 */
private readonly string $algorithm
) {
    if (!function_exists('hash_hmac')) {
        throw new NotSupportedException('PHP "Hash" extension is required.');
    }
}

            
generateSignature() public method

public string generateSignature ( string $baseString, string $key )
$baseString string
$key string

                #[\Override]
public function generateSignature(string $baseString, string $key): string
{
    return base64_encode(hash_hmac($this->algorithm, $baseString, $key, true));
}

            
getName() public method

public string getName ( )

                #[\Override]
public function getName(): string
{
    return 'HMAC-' . strtoupper($this->algorithm);
}

            
verify() public method

Defined in: Yiisoft\Yii\AuthClient\Signature\Signature::verify()

Verifies given OAuth request.

public boolean verify ( string $signature, string $baseString, string $key )
$signature string

Signature to be verified.

$baseString string

Signature base string.

$key string

Signature key.

return boolean

Success.

                public function verify(string $signature, string $baseString, string $key): bool
{
    $expectedSignature = $this->generateSignature($baseString, $key);
    if (empty($signature) || empty($expectedSignature)) {
        return false;
    }
    return strcmp($expectedSignature, $signature) === 0;
}