public function sign(JWKInterface $key, $data)
{
$this->checkKey($key);
Assertion::true($key->has('d'), 'The key is not private');
$secret = Base64Url::decode($key->get('d'));
$public = Base64Url::decode($key->get('x'));
switch ($key->get('crv')) {
case 'Ed25519':
return ed25519_sign($data, $secret, $public);
default:
throw new \InvalidArgumentException('Unsupported curve');
}
}