private function checkKey(JWKInterface $key, $is_private)
{
Assertion::true($key->has('x'), 'The key parameter "x" is missing.');
Assertion::true($key->has('crv'), 'The key parameter "crv" is missing.');
switch ($key->get('crv')) {
case 'P-256':
case 'P-384':
case 'P-521':
Assertion::eq($key->get('kty'), 'EC', 'Wrong key type.');
Assertion::true($key->has('y'), 'The key parameter "y" is missing.');
break;
case 'X25519':
Assertion::eq($key->get('kty'), 'OKP', 'Wrong key type.');
break;
default:
throw new \InvalidArgumentException(sprintf('The curve "%s" is not supported', $key->get('crv')));
}
if (true === $is_private) {
Assertion::true($key->has('d'), 'The key parameter "d" is missing.');
}
}