/** * Check a message signature against this address. If this address * is invalid, false is returned. * @param msg The message that should be signed. * @param sig The message's signature. * @return True iff the signature matches the message. */ bool CoinInterface::Address::verifySignature (const std::string& msg, const std::string& sig) const { if (!valid) return false; try { JsonRpc::JsonData res = rpc->executeRpc ("verifymessage", addr, sig, msg); return (res.isBool () && res.asBool ()); } catch (const JsonRpc::RpcError& exc) { // Malformed base64? if (exc.getErrorCode () == -5) return false; throw exc; } }