ILIAS  trunk Revision v11.0_alpha-1769-g99a433fe2dc
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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.

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

39  {
40  $this->current_secret_key = $key_rotation->getCurrentKey();
41  }
+ 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  }

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: