/** * @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()); }
/** * @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()); }