private function loadJWK(array $jwk)
{
Assertion::true(array_key_exists('kty', $jwk), 'JWK is not an Elliptic Curve key');
Assertion::eq($jwk['kty'], 'EC', 'JWK is not an Elliptic Curve key');
Assertion::true(array_key_exists('crv', $jwk), 'Curve parameter is missing');
Assertion::true(array_key_exists('x', $jwk), 'Point parameters are missing');
Assertion::true(array_key_exists('y', $jwk), 'Point parameters are missing');
$this->values = $jwk;
if (array_key_exists('d', $jwk)) {
$this->initPrivateKey();
} else {
$this->initPublicKey();
}
}