forked from lthn/blockchain
fixes related multriasset tests
This commit is contained in:
parent
f3367b895a
commit
cb0e2c3650
4 changed files with 25 additions and 24 deletions
|
|
@ -84,18 +84,16 @@ namespace crypto
|
|||
scalar_t y;
|
||||
};
|
||||
|
||||
template<generator_tag gen = gt_G>
|
||||
inline bool generate_schnorr_sig(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result);
|
||||
|
||||
template<>
|
||||
inline bool generate_schnorr_sig<gt_G>(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result)
|
||||
template<typename generator_t>
|
||||
inline bool generate_schnorr_sig_custom_generator(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result, const generator_t& g_point_g)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
if (A != secret_a * c_point_G)
|
||||
if (A != secret_a * g_point_g)
|
||||
return false;
|
||||
#endif
|
||||
scalar_t r = scalar_t::random();
|
||||
point_t R = r * c_point_G;
|
||||
point_t R = r * g_point_g;
|
||||
hash_helper_t::hs_t hsc(3);
|
||||
hsc.add_hash(m);
|
||||
hsc.add_point(A);
|
||||
|
|
@ -105,22 +103,19 @@ namespace crypto
|
|||
return true;
|
||||
}
|
||||
|
||||
template<generator_tag gen = gt_G>
|
||||
inline bool generate_schnorr_sig(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result);
|
||||
|
||||
template<>
|
||||
inline bool generate_schnorr_sig<gt_G>(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result)
|
||||
{
|
||||
return generate_schnorr_sig_custom_generator(m, A, secret_a, result, c_point_G);
|
||||
}
|
||||
|
||||
template<>
|
||||
inline bool generate_schnorr_sig<gt_X>(const hash& m, const point_t& A, const scalar_t& secret_a, generic_schnorr_sig& result)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
if (A != secret_a * c_point_X)
|
||||
return false;
|
||||
#endif
|
||||
scalar_t r = scalar_t::random();
|
||||
point_t R = r * c_point_X;
|
||||
hash_helper_t::hs_t hsc(3);
|
||||
hsc.add_hash(m);
|
||||
hsc.add_point(A);
|
||||
hsc.add_point(R);
|
||||
result.c = hsc.calc_hash();
|
||||
result.y.assign_mulsub(result.c, secret_a, r); // y = r - c * secret_a
|
||||
return true;
|
||||
return generate_schnorr_sig_custom_generator(m, A, secret_a, result, c_point_X);
|
||||
}
|
||||
|
||||
inline bool generate_schnorr_sig(const hash& m, const public_key& A, const secret_key& secret_a, generic_schnorr_sig& result)
|
||||
|
|
@ -297,4 +292,4 @@ namespace crypto
|
|||
const vector_UG_aggregation_proof& sig, uint8_t* p_err = nullptr) noexcept;
|
||||
|
||||
|
||||
} // namespace crypto
|
||||
} // namespace crypto
|
||||
|
|
@ -2710,6 +2710,7 @@ namespace currency
|
|||
//generate signature by wallet account
|
||||
crypto::generate_schnorr_sig(tx_prefix_hash, ftp.ado_current_asset_owner, sender_account_keys.spend_secret_key, aoop.gss);
|
||||
}
|
||||
if (ftp.pevents_dispatcher) ftp.pevents_dispatcher->RAISE_DEBUG_EVENT(wde_construct_tx_after_asset_ownership_proof_generated{ &aoop });
|
||||
tx.proofs.emplace_back(aoop);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,14 @@ struct wde_construct_tx_handle_asset_descriptor_operation
|
|||
};
|
||||
|
||||
|
||||
//Wallet Debug Events
|
||||
struct wde_construct_tx_handle_asset_descriptor_operation_before_seal
|
||||
{
|
||||
currency::asset_descriptor_operation* pado;
|
||||
};
|
||||
|
||||
|
||||
struct wde_construct_tx_after_asset_ownership_proof_generated
|
||||
{
|
||||
currency::asset_operation_ownership_proof* pownership_proof;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -252,10 +252,10 @@ bool multiassets_basic_test::c1(currency::core& c, size_t ev_index, const std::v
|
|||
|
||||
//------------------- tests that trying to break stuff -------------------
|
||||
//tests that trying to break stuff
|
||||
miner_wlt->get_debug_events_dispatcher().SUBSCIRBE_DEBUG_EVENT<wde_construct_tx_handle_asset_descriptor_operation>([&](const wde_construct_tx_handle_asset_descriptor_operation& o)
|
||||
miner_wlt->get_debug_events_dispatcher().SUBSCIRBE_DEBUG_EVENT<wde_construct_tx_after_asset_ownership_proof_generated>([&](const wde_construct_tx_after_asset_ownership_proof_generated& o)
|
||||
{
|
||||
crypto::signature s = currency::null_sig;
|
||||
o.pado->opt_proof = s;
|
||||
//crypto::signature s = currency::null_sig;
|
||||
o.pownership_proof->gss = crypto::generic_schnorr_sig_s{};
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue