Merge pull request #7043

17c537039 wallet2: check imported multisig curve points are in main subgroup (Crypto City)
This commit is contained in:
Alexander Blair 2020-12-04 13:25:00 -08:00
commit 6b8db83149
No known key found for this signature in database
GPG Key ID: C64552D877C32479

View File

@ -13403,6 +13403,20 @@ size_t wallet2::import_multisig(std::vector<cryptonote::blobdata> blobs)
loaded = true; loaded = true;
} }
CHECK_AND_ASSERT_THROW_MES(loaded, "Failed to load output data"); CHECK_AND_ASSERT_THROW_MES(loaded, "Failed to load output data");
for (const auto &e: i)
{
for (const auto &lr: e.m_LR)
{
CHECK_AND_ASSERT_THROW_MES(rct::isInMainSubgroup(lr.m_L), "Multisig value is not in the main subgroup");
CHECK_AND_ASSERT_THROW_MES(rct::isInMainSubgroup(lr.m_R), "Multisig value is not in the main subgroup");
}
for (const auto &ki: e.m_partial_key_images)
{
CHECK_AND_ASSERT_THROW_MES(rct::isInMainSubgroup(rct::ki2rct(ki)), "Multisig partial key image is not in the main subgroup");
}
}
MINFO(boost::format("%u outputs found") % boost::lexical_cast<std::string>(i.size())); MINFO(boost::format("%u outputs found") % boost::lexical_cast<std::string>(i.size()));
info.push_back(std::move(i)); info.push_back(std::move(i));
} }