forked from mirror/pixelfed
39 lines
882 B
PHP
Executable File
39 lines
882 B
PHP
Executable File
<?php
|
|
|
|
namespace App\Util\HttpSignatures;
|
|
|
|
use Psr\Http\Message\RequestInterface;
|
|
|
|
class Signature
|
|
{
|
|
/** @var Key */
|
|
private $key;
|
|
|
|
/** @var AlgorithmInterface */
|
|
private $algorithm;
|
|
|
|
/** @var SigningString */
|
|
private $signingString;
|
|
|
|
/**
|
|
* @param RequestInterface $message
|
|
* @param Key $key
|
|
* @param AlgorithmInterface $algorithm
|
|
* @param HeaderList $headerList
|
|
*/
|
|
public function __construct($message, Key $key, AlgorithmInterface $algorithm, HeaderList $headerList)
|
|
{
|
|
$this->key = $key;
|
|
$this->algorithm = $algorithm;
|
|
$this->signingString = new SigningString($headerList, $message);
|
|
}
|
|
|
|
public function string()
|
|
{
|
|
return $this->algorithm->sign(
|
|
$this->key->getSigningKey(),
|
|
$this->signingString->string()
|
|
);
|
|
}
|
|
}
|