36 #include <unordered_map> 37 #include <unordered_set> 79 std::unordered_map<crypto::public_key_memsafe, std::unordered_set<crypto::public_key>>;
100 std::vector<crypto::public_key> signers,
103 std::vector<crypto::secret_key> multisig_privkeys,
155 void set_multisig_config(
const std::size_t threshold, std::vector<crypto::public_key> signers);
164 std::vector<crypto::public_key> signers,
165 const std::vector<multisig_kex_msg> &expanded_msgs_rnd1);
180 void kex_update(
const std::vector<multisig_kex_msg> &expanded_msgs,
181 const bool force_update_use_with_caution =
false);
185 void kex_update_impl(
const std::vector<multisig_kex_msg> &expanded_msgs,
const bool incomplete_signer_set);
197 std::vector<crypto::public_key> &exclude_pubkeys_out);
std::uint32_t m_kex_rounds_complete
kex variables
Definition: multisig_account.h:236
const std::vector< crypto::public_key > & get_signers() const
Definition: multisig_account.h:122
bool main_kex_rounds_done() const
Definition: multisig_account.cpp:117
void finalize_kex_update(const std::uint32_t kex_rounds_required, multisig_keyset_map_memsafe_t result_keys_to_origins_map)
Definition: multisig_account_kex_impl.cpp:745
std::string m_next_round_kex_message
Definition: multisig_account.h:241
std::vector< crypto::secret_key > m_multisig_privkeys
core multisig account keys
Definition: multisig_account.h:226
::std::string string
Definition: gtest-port.h:1097
crypto::public_key m_base_pubkey
Definition: multisig_account.h:219
const crypto::secret_key & get_base_common_privkey() const
Definition: multisig_account.h:128
const crypto::public_key & get_multisig_pubkey() const
Definition: multisig_account.h:134
crypto::public_key m_common_pubkey
Definition: multisig_account.h:232
void initialize_kex(const std::uint32_t threshold, std::vector< crypto::public_key > signers, const std::vector< multisig_kex_msg > &expanded_msgs_rnd1)
Definition: multisig_account.cpp:169
bool account_is_active() const
Definition: multisig_account.cpp:110
crypto::secret_key m_common_privkey
Definition: multisig_account.h:228
std::uint32_t get_threshold() const
Definition: multisig_account.h:120
unsigned int uint32_t
Definition: stdint.h:126
std::uint32_t multisig_setup_rounds_required(const std::uint32_t num_signers, const std::uint32_t threshold)
Definition: multisig_account.cpp:206
~multisig_account()=default
bool multisig_is_ready() const
Definition: multisig_account.cpp:127
const crypto::secret_key & get_common_privkey() const
Definition: multisig_account.h:132
std::uint32_t m_threshold
misc. account details
Definition: multisig_account.h:211
void set_multisig_config(const std::size_t threshold, std::vector< crypto::public_key > signers)
Definition: multisig_account.cpp:137
crypto::public_key m_multisig_pubkey
Definition: multisig_account.h:230
const multisig_keyset_map_memsafe_t & get_kex_keys_to_origins_map() const
Definition: multisig_account.h:140
Definition: multisig_account.h:81
std::vector< crypto::public_key > m_signers
Definition: multisig_account.h:213
multisig_account()=default
POD_CLASS public_key
Definition: crypto.h:61
const crypto::public_key & get_base_pubkey() const
Definition: multisig_account.h:126
std::uint32_t multisig_kex_rounds_required(const std::uint32_t num_signers, const std::uint32_t threshold)
Definition: multisig_account.cpp:197
const crypto::secret_key & get_base_privkey() const
Definition: multisig_account.h:124
void initialize_kex_update(const std::vector< multisig_kex_msg > &expanded_msgs, const std::uint32_t kex_rounds_required, std::vector< crypto::public_key > &exclude_pubkeys_out)
Definition: multisig_account_kex_impl.cpp:687
void kex_update_impl(const std::vector< multisig_kex_msg > &expanded_msgs, const bool incomplete_signer_set)
Definition: multisig_account_kex_impl.cpp:852
crypto::secret_key m_base_privkey
local participant's personal keys
Definition: multisig_account.h:218
Definition: multisig.cpp:45
const std::vector< crypto::secret_key > & get_multisig_privkeys() const
Definition: multisig_account.h:130
const std::string & get_next_kex_round_msg() const
Definition: multisig_account.h:142
multisig_keyset_map_memsafe_t m_kex_keys_to_origins_map
Definition: multisig_account.h:239
std::uint32_t get_kex_rounds_complete() const
Definition: multisig_account.h:138
const crypto::public_key & get_common_pubkey() const
Definition: multisig_account.h:136
crypto::secret_key m_base_common_privkey
Definition: multisig_account.h:221
void kex_update(const std::vector< multisig_kex_msg > &expanded_msgs, const bool force_update_use_with_caution=false)
Definition: multisig_account.cpp:184
std::unordered_map< crypto::public_key_memsafe, std::unordered_set< crypto::public_key > > multisig_keyset_map_memsafe_t
Definition: multisig_account.h:79