cryptonote_format_utils: do not early out on invalid tx pubkeys
Another such pubkey might be valid
This commit is contained in:
parent
91c7d68b2d
commit
93e7627d5a
|
@ -201,15 +201,25 @@ namespace cryptonote
|
||||||
{
|
{
|
||||||
crypto::key_derivation recv_derivation = AUTO_VAL_INIT(recv_derivation);
|
crypto::key_derivation recv_derivation = AUTO_VAL_INIT(recv_derivation);
|
||||||
bool r = hwdev.generate_key_derivation(tx_public_key, ack.m_view_secret_key, recv_derivation);
|
bool r = hwdev.generate_key_derivation(tx_public_key, ack.m_view_secret_key, recv_derivation);
|
||||||
CHECK_AND_ASSERT_MES(r, false, "key image helper: failed to generate_key_derivation(" << tx_public_key << ", " << ack.m_view_secret_key << ")");
|
if (!r)
|
||||||
|
{
|
||||||
|
MWARNING("key image helper: failed to generate_key_derivation(" << tx_public_key << ", " << ack.m_view_secret_key << ")");
|
||||||
|
memcpy(&recv_derivation, rct::identity().bytes, sizeof(recv_derivation));
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<crypto::key_derivation> additional_recv_derivations;
|
std::vector<crypto::key_derivation> additional_recv_derivations;
|
||||||
for (size_t i = 0; i < additional_tx_public_keys.size(); ++i)
|
for (size_t i = 0; i < additional_tx_public_keys.size(); ++i)
|
||||||
{
|
{
|
||||||
crypto::key_derivation additional_recv_derivation = AUTO_VAL_INIT(additional_recv_derivation);
|
crypto::key_derivation additional_recv_derivation = AUTO_VAL_INIT(additional_recv_derivation);
|
||||||
r = hwdev.generate_key_derivation(additional_tx_public_keys[i], ack.m_view_secret_key, additional_recv_derivation);
|
r = hwdev.generate_key_derivation(additional_tx_public_keys[i], ack.m_view_secret_key, additional_recv_derivation);
|
||||||
CHECK_AND_ASSERT_MES(r, false, "key image helper: failed to generate_key_derivation(" << additional_tx_public_keys[i] << ", " << ack.m_view_secret_key << ")");
|
if (!r)
|
||||||
additional_recv_derivations.push_back(additional_recv_derivation);
|
{
|
||||||
|
MWARNING("key image helper: failed to generate_key_derivation(" << additional_tx_public_keys[i] << ", " << ack.m_view_secret_key << ")");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
additional_recv_derivations.push_back(additional_recv_derivation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::optional<subaddress_receive_info> subaddr_recv_info = is_out_to_acc_precomp(subaddresses, out_key, recv_derivation, additional_recv_derivations, real_output_index,hwdev);
|
boost::optional<subaddress_receive_info> subaddr_recv_info = is_out_to_acc_precomp(subaddresses, out_key, recv_derivation, additional_recv_derivations, real_output_index,hwdev);
|
||||||
|
|
Loading…
Reference in New Issue