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...