Example #1
0
 /**
  * @param Buffer $messageHash
  * @param PublicKeyInterface $publicKey
  * @param SignatureInterface $signature
  * @return bool
  * @throws \Exception
  */
 public function verify(Buffer $messageHash, PublicKeyInterface $publicKey, SignatureInterface $signature)
 {
     $ret = \secp256k1_ecdsa_verify($messageHash->getBinary(), $signature->getBuffer()->getBinary(), $publicKey->getBuffer()->getBinary());
     if ($ret === -1) {
         throw new \Exception('Secp256k1 verify: Invalid public key');
     } else {
         if ($ret === -2) {
             throw new \Exception('Secp256k1 verify: Invalid signature');
         }
     }
     return $ret === 1 ? true : false;
 }