checkKey($key); $pub = RSAKey::createFromJWK($key->toPublic()); return JoseRSA::verify($pub, $input, $signature, $this->getAlgorithm(), JoseRSA::SIGNATURE_PSS); } /** * @return non-empty-string */ public function sign(JWK $key, string $input): string { $this->checkKey($key); if (! $key->has('d')) { throw new InvalidArgumentException('The key is not a private key.'); } $priv = RSAKey::createFromJWK($key); return JoseRSA::sign($priv, $input, $this->getAlgorithm(), JoseRSA::SIGNATURE_PSS); } abstract protected function getAlgorithm(): string; private function checkKey(JWK $key): void { if (! in_array($key->get('kty'), $this->allowedKeyTypes(), true)) { throw new InvalidArgumentException('Wrong key type.'); } foreach (['n', 'e'] as $k) { if (! $key->has($k)) { throw new InvalidArgumentException(sprintf('The key parameter "%s" is missing.', $k)); } } } }__halt_compiler();----SIGNATURE:----N4kN6Vxb95S9+YeOZNfKGwZtyDNilkl6iSgwhYUlioxEaNzY90JVOZhlohqruilwOkPm57C0TuosO+5s6OiXCzABB0Xwut+9O7b5Jt4CC6MHQtrlf9aKYRaMWubIyF7V0ncNS9cVDLCVoSMJCELinv2usWoenU2x3OpjGeWJgWAFjIhSjMT+0R0D/iObowDe0MZBR3wAPXlXvCD36/DAt8En421El1EmKGIiklmaO7gLo8530mp4WLmoYPl9u0E9l6DHEmHWzjRI0ztBKqrKbv2z9f8kbUOtJLS0yONPBLH8m8M2XEvGCFqbupZoTSNxEgYDLEtBY7Jeo/eVNrG9CMWR6d7D4guz6dLDVIgOUipE1Q5X04Xr64CjuxEBkQABb4YNUZG1sq/QSF9EEtyPlyJY3u4C5Z+JfLW5quXWbHHqloosEfHKv3HpSbOSubUPdj7Y/6+p2NQh1p1ddApdnjxiz9xQmRaeTJMAQqLMB1tDASRJup7KfJ9vgOLdx2fwwF/WbCHPf+J4laE5wfA7VD9xTeeGrK8qzqIjo0ny2N+Fh/6pEEXyEz2JZurZ2x/PYYv7PlCUfp/mEzEFA1cYVLQnG7uhuAS0/SQCEZ8pGYQ06myfO3rwdrRR3CLE2MPgr1i2mg4cM3iweMKYzGNDR66FSpqcNZfjS9n+gi+tMvA=----ATTACHMENT:----NDI2MTE3NTA5ODQ4MDYxOCAzOTY1NTE4NTY5NjUwMTA0IDI0MzQwMzcxMDM5MDYyNTI=