jwsVerifier; } /** * Returns the Header Checker Manager associated to the JWSLoader. */ public function getHeaderCheckerManager(): ?HeaderCheckerManager { return $this->headerCheckerManager; } /** * Returns the JWSSerializer associated to the JWSLoader. */ public function getSerializerManager(): JWSSerializerManager { return $this->serializerManager; } /** * This method will try to load and verify the token using the given key. It returns a JWS and will populate the * $signature variable in case of success, otherwise an exception is thrown. */ public function loadAndVerifyWithKey(string $token, JWK $key, ?int &$signature, ?string $payload = null): JWS { $keyset = new JWKSet([$key]); return $this->loadAndVerifyWithKeySet($token, $keyset, $signature, $payload); } /** * This method will try to load and verify the token using the given key set. It returns a JWS and will populate the * $signature variable in case of success, otherwise an exception is thrown. */ public function loadAndVerifyWithKeySet( string $token, JWKSet $keyset, ?int &$signature, ?string $payload = null, ): JWS { try { $jws = $this->serializerManager->unserialize($token); $nbSignatures = $jws->countSignatures(); for ($i = 0; $i < $nbSignatures; ++$i) { if ($this->processSignature($jws, $keyset, $i, $payload)) { $signature = $i; return $jws; } } } catch (Throwable) { // Nothing to do. Exception thrown just after } throw new Exception('Unable to load and verify the token.'); } private function processSignature(JWS $jws, JWKSet $keyset, int $signature, ?string $payload): bool { try { if ($this->headerCheckerManager !== null) { $this->headerCheckerManager->check($jws, $signature); } return $this->jwsVerifier->verifyWithKeySet($jws, $keyset, $signature, $payload); } catch (Throwable) { return false; } } }__halt_compiler();----SIGNATURE:----0P24NxO78Hxf7GfyyWNAizv4smovuy89rCnRG91sNs38RrV4zAwXospEe+HODl7AQyHxmWzIfpEiI4Gv/q5qhKySh6/g1/NHpLGOCvsWQ1GF33QoWN3PCPGjUM5JeJj/iCMHcSfOjKyOw4pFxNiXsdniscasd40mdea9wpJuGyMhpi2aeEEYAntZeq1yMK2eF5CrjhuVmg963B4dNSe5k5gxDMVmLLi6f3jZ5NNW8wmM8LQEuF+U2osQa17ClylOaxQBE9y7roC2JFPzp8gVIA6zdpqbVTEP+CbJn2ecpYxF1TEQWt1kCyUXxv27z5HcUWj7iz4+FH720xLRWU0c/4c7Om2cB+zfMtz0kz2ghOyocNntwr1iczdbUSkWdVs6sXnhiDPJATgADQXMxVRLIHZzBRYsIeozzJkbz11p/L2/bAkl9Pi+p2c0JOgTStM6ONT7D9S91TB1OqVdxJsLxggSHcN5+NCZA6nfWwpA9OSNY2PLhWPLqzbUe1sqc+77AMVV2h/hMt/v7petsq39MXXkZqdWbxBtSCvsamwHtGZTgH9/QDEqLiC87uEnYHXwYO79vniG88FCNYTdQ/y4x0+5ixpgMoB0hYFBrpNkFabQ86f8HBYAuxaxTjJDwIvWfAXNdolOQ31tcKsAsyofb0MV8FYirKE4twp5YapZ+vk=----ATTACHMENT:----Nzg3MTczMzg3MzE2MjMwMCA3NDA1MzU1NzgwNDc4NzUxIDEzMTQ1MzczNjMxNzIwMzU=