1 | <?php |
||
6 | final class Token |
||
7 | { |
||
8 | const MAC_FORMAT_VERSION = '2'; |
||
9 | const MAC_PREFIX = 'Fe26.'; |
||
10 | const DIGEST_METHOD = 'sha256'; |
||
11 | |||
12 | /** @var PasswordInterface */ |
||
13 | private $password; |
||
14 | /** @var string */ |
||
15 | private $salt; |
||
16 | /** @var string */ |
||
17 | private $iv; |
||
18 | /** @var string */ |
||
19 | private $cipherText; |
||
20 | /** @var int */ |
||
21 | private $expiration; |
||
22 | /** @var callable */ |
||
23 | private $saltGenerator; |
||
24 | /** @var callable */ |
||
25 | private $keyProvider; |
||
26 | |||
27 | /** |
||
28 | * @param PasswordInterface $password |
||
29 | * @param string $salt |
||
30 | * @param string $iv |
||
31 | * @param string $cipherText |
||
32 | * @param int $expiration |
||
33 | * @param callable|null $keyProvider |
||
34 | * @param callable|null $saltGenerator |
||
35 | */ |
||
36 | public function __construct( |
||
53 | |||
54 | /** |
||
55 | * @param PasswordInterface $password |
||
56 | * @param string $sealed |
||
57 | * @param bool $validate |
||
58 | * @param callable|null $keyProvider |
||
59 | * @param callable|null $saltGenerator |
||
60 | * |
||
61 | * @return Token |
||
62 | */ |
||
63 | public static function fromSealed( |
||
112 | |||
113 | public function __toString(): string |
||
127 | |||
128 | public function validateChecksum(string $salt, string $expectedChecksum) |
||
139 | |||
140 | public function getPasswordId(): string |
||
144 | |||
145 | public function getSalt(): string |
||
149 | |||
150 | public function getIv(): string |
||
154 | |||
155 | public function getCipherText(): string |
||
159 | |||
160 | /** |
||
161 | * @return int|string |
||
162 | */ |
||
163 | public function getExpiration() |
||
167 | |||
168 | public function isExpired(int $gracePeriod = 0): bool |
||
173 | |||
174 | private function authenticateToken(string $token, string $key): string |
||
178 | |||
179 | private function createStringToSign(): string |
||
190 | } |
||
191 |