check_spend_proof

My intention is to mitigate #3761 by returning "bad signature", rather than throwing an error, as the error is triggered inappropriately in the case of checking a different txid than the one used to create the signature, which causes issues for monerophp: https://github.com/monero-integrations/monerophp/issues/72 & my temp fix: https://github.com/monero-integrations/monerophp/pull/74
This commit is contained in:
itssteven 2018-05-06 17:42:27 +01:00 committed by GitHub
parent 7ed94d3122
commit eb9f3a3294
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8414,8 +8414,9 @@ bool wallet2::check_spend_proof(const crypto::hash &txid, const std::string &mes
} }
std::vector<std::vector<crypto::signature>> signatures = { std::vector<crypto::signature>(1) }; std::vector<std::vector<crypto::signature>> signatures = { std::vector<crypto::signature>(1) };
const size_t sig_len = tools::base58::encode(std::string((const char *)&signatures[0][0], sizeof(crypto::signature))).size(); const size_t sig_len = tools::base58::encode(std::string((const char *)&signatures[0][0], sizeof(crypto::signature))).size();
THROW_WALLET_EXCEPTION_IF(sig_str.size() != header_len + num_sigs * sig_len, if( sig_str.size() != header_len + num_sigs * sig_len ) {
error::wallet_internal_error, "incorrect signature size"); return false;
}
// decode base58 // decode base58
signatures.clear(); signatures.clear();