private function getPHPECCSignature(JWKInterface $key, $data)
{
$p = $this->getGenerator();
$d = $this->convertBase64ToGmp($key->get('d'));
$hash = $this->convertHexToGmp(hash($this->getHashAlgorithm(), $data));
$k = RandomGeneratorFactory::getRandomGenerator()->generate($p->getOrder());
$signer = EccFactory::getSigner();
$private_key = $p->getPrivateKeyFrom($d);
$signature = $signer->sign($private_key, $hash, $k);
$part_length = $this->getSignaturePartLength();
$R = str_pad($this->convertDecToHex($signature->getR()), $part_length, '0', STR_PAD_LEFT);
$S = str_pad($this->convertDecToHex($signature->getS()), $part_length, '0', STR_PAD_LEFT);
return $this->convertHexToBin($R . $S);
}