/**
* @param string $input
* @param \Jose\Object\JWKSetInterface $jwk_set
* @param array $allowed_algorithms
* @param string|null $detached_payload
* @param null|int $signature_index
*
* @return \Jose\Object\JWSInterface
*/
private function loadAndVerifySignature($input, Object\JWKSetInterface $jwk_set, array $allowed_algorithms, $detached_payload = null, &$signature_index = null)
{
$jwt = $this->load($input);
Assertion::isInstanceOf($jwt, Object\JWSInterface::class, 'The input is not a valid JWS.');
$verifier = Verifier::createVerifier($allowed_algorithms);
$verifier->verifyWithKeySet($jwt, $jwk_set, $detached_payload, $signature_index);
return $jwt;
}