/** * @param SignedMessage $signedMessage * @param PayToPubKeyHashAddress $address * @return bool */ public function verify(SignedMessage $signedMessage, PayToPubKeyHashAddress $address) { $hash = $this->calculateMessageHash($signedMessage->getMessage()); $publicKey = $this->ecAdapter->recoverCompact($hash, $signedMessage->getCompactSignature()); return $publicKey->getAddress()->getHash() == $address->getHash(); }
/** * @param SignedMessage $signedMessage * @return string */ public function serialize(SignedMessage $signedMessage) { $content = self::HEADER . PHP_EOL . $signedMessage->getMessage() . PHP_EOL . self::SIG_START . PHP_EOL . base64_encode($signedMessage->getCompactSignature()->getBinary()) . PHP_EOL . self::FOOTER; return new Buffer($content); }