/**
  * @param PublicKey $publicKey
  * @return BufferInterface
  */
 private function doSerialize(PublicKey $publicKey)
 {
     $serialized = '';
     $isCompressed = $publicKey->isCompressed();
     if (!secp256k1_ec_pubkey_serialize($this->ecAdapter->getContext(), $publicKey->getResource(), $isCompressed, $serialized)) {
         throw new \RuntimeException('Secp256k1: Failed to serialize public key');
     }
     return new Buffer($serialized, $isCompressed ? PublicKey::LENGTH_COMPRESSED : PublicKey::LENGTH_UNCOMPRESSED, $this->ecAdapter->getMath());
 }
Example #2
0
 /**
  * @param BufferInterface $msg32
  * @param PublicKey $publicKey
  * @param Signature $signature
  * @return bool
  */
 private function doVerify(BufferInterface $msg32, PublicKey $publicKey, Signature $signature)
 {
     return (bool) secp256k1_ecdsa_verify($this->context, $msg32->getBinary(), $signature->getResource(), $publicKey->getResource());
 }