public function verify(JWKInterface $key, $data, $signature)
{
$this->checkKey($key);
$signature = $this->convertBinToHex($signature);
$part_length = $this->getSignaturePartLength();
if (mb_strlen($signature, '8bit') !== 2 * $part_length) {
return false;
}
$R = mb_substr($signature, 0, $part_length, '8bit');
$S = mb_substr($signature, $part_length, null, '8bit');
if (defined('OPENSSL_KEYTYPE_EC')) {
return $this->verifyOpenSSLSignature($key, $data, $R, $S);
}
return $this->verifyPHPECCSignature($key, $data, $R, $S);
}