ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner Class Reference
+ Collaboration diagram for ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner:

Public Member Functions

 __construct (private SecretKeyRotation $key_rotation, private Signer $signer, private SigningKeyGenerator $signing_key_generator,)
 
 sign (string $signable_payload, Salt $salt)
 
 verify (string $data, string $signature, int $validity, Salt $salt)
 

Private Attributes

SecretKey $current_secret_key
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 31 of file KeyRotatingSigner.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner::__construct ( private SecretKeyRotation  $key_rotation,
private Signer  $signer,
private SigningKeyGenerator  $signing_key_generator 
)

Definition at line 35 of file KeyRotatingSigner.php.

39 {
40 $this->current_secret_key = $key_rotation->getCurrentKey();
41 }

References ILIAS\FileDelivery\Token\Signer\Key\Secret\SecretKeyRotation\getCurrentKey().

+ Here is the call graph for this function:

Member Function Documentation

◆ sign()

ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner::sign ( string  $signable_payload,
Salt  $salt 
)

Definition at line 43 of file KeyRotatingSigner.php.

43 : string
44 {
45 return $this->signer->sign(
46 $signable_payload,
47 $this->signing_key_generator->generate(
48 $this->current_secret_key,
49 $salt
50 )
51 );
52 }

◆ verify()

ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner::verify ( string  $data,
string  $signature,
int  $validity,
Salt  $salt 
)

Definition at line 54 of file KeyRotatingSigner.php.

59 : bool {
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(
63 $data,
64 $signature,
65 $validity,
66 $signing_key
67 )) {
68 return true;
69 }
70 }
71 return false;
72 }

References $data.

Field Documentation

◆ $current_secret_key

SecretKey ILIAS\FileDelivery\Token\Signer\KeyRotatingSigner::$current_secret_key
private

Definition at line 33 of file KeyRotatingSigner.php.


The documentation for this class was generated from the following file: