19 declare(strict_types=1);
43 public function sign(
string $signable_payload,
Salt $salt): string
45 return $this->signer->sign(
47 $this->signing_key_generator->generate(
48 $this->current_secret_key,
60 foreach ($this->key_rotation->getAllKeys() as $secret_key) {
61 $signing_key = $this->signing_key_generator->generate($secret_key, $salt);
62 if ($this->signer->verify(
sign(string $signable_payload, Salt $salt)
__construct(private SecretKeyRotation $key_rotation, private Signer $signer, private SigningKeyGenerator $signing_key_generator,)
Signatures are secured by the secret_key.
verify(string $data, string $signature, int $validity, Salt $salt)
The salt is combined with the secret key to derive a unique key for distinguishing different contexts...
SecretKey $current_secret_key
Key rotation can provide an extra layer of mitigation against an attacker discovering a secret key...