diff options
author | luigi1111 <luigi1111w@gmail.com> | 2022-07-14 22:14:41 -0400 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2022-07-14 22:14:41 -0400 |
commit | 02cbccc52937035396614c04b4ebebe6cd1b0c8c (patch) | |
tree | ef4ad1f3b9f5d374c68103bb30a9fc0cb12bca7f /src/wallet | |
parent | Merge pull request #7986 (diff) | |
parent | derive multisig tx secret keys from an entropy source plus the tx inputs' key... (diff) | |
download | monero-02cbccc52937035396614c04b4ebebe6cd1b0c8c.tar.xz |
Merge pull request #8432
edcc094 derive multisig tx secret keys from an entropy source plus the tx inputs' key images (koe)
Diffstat (limited to 'src/wallet')
-rw-r--r-- | src/wallet/wallet2.cpp | 4 | ||||
-rw-r--r-- | src/wallet/wallet2.h | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index ed153d681..ca6670143 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -7157,6 +7157,7 @@ bool wallet2::sign_multisig_tx(multisig_tx_set &exported_txs, std::vector<crypto true, //true = we are reconstructing the tx (it was first constructed by the tx proposer) ptx.tx_key, ptx.additional_tx_keys, + ptx.multisig_tx_key_entropy, ptx.tx ), error::wallet_internal_error, @@ -9006,6 +9007,7 @@ void wallet2::transfer_selected_rct(std::vector<cryptonote::tx_destination_entry crypto::secret_key tx_key; std::vector<crypto::secret_key> additional_tx_keys; + crypto::secret_key multisig_tx_key_entropy; LOG_PRINT_L2("constructing tx"); auto sources_copy = sources; multisig::signing::tx_builder_ringct_t multisig_tx_builder; @@ -9029,6 +9031,7 @@ void wallet2::transfer_selected_rct(std::vector<cryptonote::tx_destination_entry false, tx_key, additional_tx_keys, + multisig_tx_key_entropy, tx ), error::wallet_internal_error, @@ -9155,6 +9158,7 @@ void wallet2::transfer_selected_rct(std::vector<cryptonote::tx_destination_entry ptx.additional_tx_keys = additional_tx_keys; ptx.dests = dsts; ptx.multisig_sigs = multisig_sigs; + ptx.multisig_tx_key_entropy = multisig_tx_key_entropy; ptx.construction_data.sources = sources_copy; ptx.construction_data.change_dts = change_dts; ptx.construction_data.splitted_dsts = splitted_dsts; diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 45cb5fae0..16e898ad8 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -635,10 +635,12 @@ private: std::vector<crypto::secret_key> additional_tx_keys; std::vector<cryptonote::tx_destination_entry> dests; std::vector<multisig_sig> multisig_sigs; + crypto::secret_key multisig_tx_key_entropy; tx_construction_data construction_data; BEGIN_SERIALIZE_OBJECT() + VERSION_FIELD(1) FIELD(tx) FIELD(dust) FIELD(fee) @@ -651,6 +653,12 @@ private: FIELD(dests) FIELD(construction_data) FIELD(multisig_sigs) + if (version < 1) + { + multisig_tx_key_entropy = crypto::null_skey; + return true; + } + FIELD(multisig_tx_key_entropy) END_SERIALIZE() }; |