35 #include <boost/serialization/vector.hpp>
36 #include <boost/program_options/variables_map.hpp>
37 #include <boost/program_options/options_description.hpp>
38 #include <boost/optional/optional.hpp>
45 #include "wipeable_string.h"
48 #undef ELECTRONEUM_DEFAULT_LOG_CATEGORY
49 #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "wallet.mms"
50 #define AUTO_CONFIG_TOKEN_BYTES 4
51 #define AUTO_CONFIG_TOKEN_PREFIX "mms"
156 crypto::chacha_iv
iv;
174 crypto::chacha_iv
iv;
210 const std::string &own_transport_address, uint32_t num_authorized_signers, uint32_t num_required_signers);
213 void set_options(
const boost::program_options::variables_map& vm);
214 void set_options(
const std::string &bitmessage_address,
const epee::wipeable_string &bitmessage_login);
222 const boost::optional<std::string> &label,
223 const boost::optional<std::string> &transport_address,
224 const boost::optional<cryptonote::account_public_address> etn_address);
234 std::vector<authorized_signer> &signers);
239 std::string &adjusted_token)
const;
241 const std::string &auto_config_token);
263 std::vector<processing_data> &data_list,
264 std::string &wait_reason);
269 const std::string &content);
285 template <
class t_archive>
304 static void init_options(boost::program_options::options_description& desc_params);
349 template <
class Archive>
358 template <
class Archive>
377 template <
class Archive>
397 template <
class Archive>
405 template <
class Archive>
414 template <
class Archive>
415 inline void serialize(Archive &
a, crypto::chacha_iv &x,
const boost::serialization::version_type ver)
Definition: message_store.h:203
void init(const multisig_wallet_state &state, const std::string &own_label, const std::string &own_transport_address, uint32_t num_authorized_signers, uint32_t num_required_signers)
Definition: message_store.cpp:81
std::vector< authorized_signer > m_signers
Definition: message_store.h:312
void process_signer_config(const multisig_wallet_state &state, const std::string &signer_config)
Definition: message_store.cpp:207
uint32_t m_num_authorized_signers
Definition: message_store.h:308
bool get_signer_index_by_label(const std::string label, uint32_t &index) const
Definition: message_store.cpp:457
void process_auto_config_data_message(uint32_t id)
Definition: message_store.cpp:366
void set_active(bool active)
Definition: message_store.h:211
void setup_signer_for_auto_config(uint32_t index, const std::string token, bool receiving)
Definition: message_store.cpp:414
bool check_for_messages(const multisig_wallet_state &state, std::vector< message > &messages)
Definition: message_store.cpp:1244
bool get_auto_send() const
Definition: message_store.h:216
message_store()
Definition: message_store.cpp:51
const std::vector< message > & get_all_messages() const
Definition: message_store.h:270
bool message_ids_complete(const std::vector< uint32_t > &ids) const
Definition: message_store.cpp:651
static const char * message_direction_to_string(message_direction direction)
Definition: message_store.cpp:1379
bool get_processable_messages(const multisig_wallet_state &state, bool force_sync, std::vector< processing_data > &data_list, std::string &wait_reason)
Definition: message_store.cpp:790
void encrypt(crypto::public_key public_key, const std::string &plaintext, std::string &ciphertext, crypto::public_key &encryption_public_key, crypto::chacha_iv &iv)
Definition: message_store.cpp:1173
message & get_message_ref_by_id(uint32_t id)
Definition: message_store.cpp:581
bool get_signer_index_by_etn_address(const cryptonote::account_public_address &etn_address, uint32_t &index) const
Definition: message_store.cpp:442
void send_message(const multisig_wallet_state &state, uint32_t id)
Definition: message_store.cpp:1202
bool check_auto_config_token(const std::string &raw_token, std::string &adjusted_token) const
Definition: message_store.cpp:276
uint32_t m_next_message_id
Definition: message_store.h:314
void stop()
Definition: message_store.h:280
size_t add_message(const multisig_wallet_state &state, uint32_t signer_index, message_type type, message_direction direction, const std::string &content)
Definition: message_store.cpp:514
void delete_all_messages()
Definition: message_store.cpp:663
static const char * tr(const char *str)
Definition: message_store.h:303
bool signer_labels_complete() const
Definition: message_store.cpp:168
void stop_auto_config()
Definition: message_store.cpp:395
size_t add_auto_config_data_message(const multisig_wallet_state &state, const std::string &auto_config_token)
Definition: message_store.cpp:345
void set_message_processed_or_sent(uint32_t id)
Definition: message_store.cpp:1155
void get_signer_config(std::string &signer_config)
Definition: message_store.cpp:181
std::string signer_to_string(const authorized_signer &signer, uint32_t max_width)
Definition: message_store.cpp:1413
void write_to_file(const multisig_wallet_state &state, const std::string &filename)
Definition: message_store.cpp:700
std::string account_address_to_string(const cryptonote::account_public_address &account_address) const
Definition: message_store.cpp:1349
uint32_t m_num_required_signers
Definition: message_store.h:309
void process_wallet_created_data(const multisig_wallet_state &state, message_type type, const std::string &content)
Definition: message_store.cpp:472
const std::vector< authorized_signer > & get_all_signers() const
Definition: message_store.h:229
std::string m_filename
Definition: message_store.h:315
void set_options(const boost::program_options::variables_map &vm)
Definition: message_store.cpp:109
uint32_t get_num_required_signers() const
Definition: message_store.h:217
void save(const multisig_wallet_state &state)
Definition: message_store.cpp:782
bool m_auto_send
Definition: message_store.h:310
static void init_options(boost::program_options::options_description &desc_params)
Definition: message_store.cpp:74
void set_auto_send(bool auto_send)
Definition: message_store.h:212
void start_auto_config(const multisig_wallet_state &state)
Definition: message_store.cpp:259
bool get_message_index_by_id(uint32_t id, size_t &index) const
Definition: message_store.cpp:557
cryptonote::network_type m_nettype
Definition: message_store.h:311
static const char * message_state_to_string(message_state state)
Definition: message_store.cpp:1392
void set_signer(const multisig_wallet_state &state, uint32_t index, const boost::optional< std::string > &label, const boost::optional< std::string > &transport_address, const boost::optional< cryptonote::account_public_address > etn_address)
Definition: message_store.cpp:122
void read_from_file(const multisig_wallet_state &state, const std::string &filename)
Definition: message_store.cpp:727
uint32_t get_num_authorized_signers() const
Definition: message_store.h:218
bool signer_config_complete() const
Definition: message_store.cpp:153
bool m_active
Definition: message_store.h:307
bool get_active() const
Definition: message_store.h:215
const authorized_signer & get_signer(uint32_t index) const
Definition: message_store.cpp:147
std::atomic< bool > m_run
Definition: message_store.h:317
void delete_message(uint32_t id)
Definition: message_store.cpp:656
void decrypt(const std::string &ciphertext, const crypto::public_key &encryption_public_key, const crypto::chacha_iv &iv, const crypto::secret_key &view_secret_key, std::string &plaintext)
Definition: message_store.cpp:1190
bool any_message_with_hash(const crypto::hash &hash) const
Definition: message_store.cpp:620
bool any_message_of_type(message_type type, message_direction direction) const
Definition: message_store.cpp:608
void delete_transport_message(uint32_t id)
Definition: message_store.cpp:1340
size_t get_other_signers_id_count(const std::vector< uint32_t > &ids) const
Definition: message_store.cpp:637
void unpack_signer_config(const multisig_wallet_state &state, const std::string &signer_config, std::vector< authorized_signer > &signers)
Definition: message_store.cpp:189
void get_sanitized_message_text(const message &m, std::string &sanitized_text) const
Definition: message_store.cpp:674
void serialize(t_archive &a, const unsigned int ver)
Definition: message_store.h:286
static const char * message_type_to_string(message_type type)
Definition: message_store.cpp:1354
std::vector< message > m_messages
Definition: message_store.h:313
bool get_message_by_id(uint32_t id, message &m) const
Definition: message_store.cpp:588
void set_messages_processed(const processing_data &data)
Definition: message_store.cpp:1147
std::string create_auto_config_token()
Definition: message_store.cpp:328
message_transporter m_transporter
Definition: message_store.h:316
Definition: message_transporter.h:84
void stop()
Definition: message_transporter.h:92
const char * i18n_translate(const char *s, const std::string &context)
Definition: i18n.cpp:322
string a
Definition: MakeCryptoOps.py:15
Definition: unordered_containers_boost_serialization.h:39
const crypto::public_key null_pkey
Definition: crypto.cpp:72
const crypto::secret_key null_skey
Definition: crypto.cpp:73
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition: crypto.h:82
POD_CLASS public_key
Definition: crypto.h:76
POD_CLASS hash
Definition: hash.h:50
network_type
Definition: cryptonote_config.h:243
Definition: message_store.cpp:49
message_direction
Definition: message_store.h:68
message_state
Definition: message_store.h:74
message_processing
Definition: message_store.h:85
@ process_auto_config_data
message_type
Definition: message_store.h:56
Definition: binary_utils.h:37
bool serialize(Archive &ar, T &v)
Definition: serialization.h:360
BOOST_CLASS_VERSION(nodetool::peerlist_types, nodetool::CURRENT_PEERLIST_STORAGE_ARCHIVE_VER)
Simple DSL AAPI based on.
static const unsigned char iv[64]
Definition: sha512-hash.c:13
Definition: cryptonote_basic.h:453
Definition: message_store.h:121
crypto::secret_key auto_config_secret_key
Definition: message_store.h:130
bool me
Definition: message_store.h:126
bool auto_config_running
Definition: message_store.h:132
std::string transport_address
Definition: message_store.h:123
bool etn_address_known
Definition: message_store.h:124
std::string label
Definition: message_store.h:122
uint32_t index
Definition: message_store.h:127
std::string auto_config_token
Definition: message_store.h:128
cryptonote::account_public_address etn_address
Definition: message_store.h:125
authorized_signer()
Definition: message_store.h:134
crypto::public_key auto_config_public_key
Definition: message_store.h:129
std::string auto_config_transport_address
Definition: message_store.h:131
Definition: message_store.h:162
std::string label
Definition: message_store.h:163
cryptonote::account_public_address etn_address
Definition: message_store.h:165
std::string transport_address
Definition: message_store.h:164
Definition: message_store.h:171
std::string magic_string
Definition: message_store.h:172
crypto::chacha_iv iv
Definition: message_store.h:174
std::string encrypted_data
Definition: message_store.h:175
uint32_t file_version
Definition: message_store.h:173
Definition: message_store.h:154
crypto::chacha_iv iv
Definition: message_store.h:156
cryptonote::account_public_address sender_address
Definition: message_store.h:155
message internal_message
Definition: message_store.h:158
crypto::public_key encryption_public_key
Definition: message_store.h:157
Definition: message_store.h:99
uint64_t modified
Definition: message_store.h:105
uint32_t signer_index
Definition: message_store.h:107
uint32_t wallet_height
Definition: message_store.h:110
message_state state
Definition: message_store.h:109
crypto::hash hash
Definition: message_store.h:108
uint32_t round
Definition: message_store.h:111
message_type type
Definition: message_store.h:101
std::string content
Definition: message_store.h:103
uint64_t sent
Definition: message_store.h:106
uint32_t id
Definition: message_store.h:100
uint64_t created
Definition: message_store.h:104
std::string transport_id
Definition: message_store.h:113
message_direction direction
Definition: message_store.h:102
uint32_t signature_count
Definition: message_store.h:112
Definition: message_store.h:190
cryptonote::network_type nettype
Definition: message_store.h:192
uint32_t multisig_rounds_passed
Definition: message_store.h:197
crypto::secret_key view_secret_key
Definition: message_store.h:193
size_t num_transfer_details
Definition: message_store.h:198
bool has_multisig_partial_key_images
Definition: message_store.h:196
bool multisig_is_ready
Definition: message_store.h:195
cryptonote::account_public_address address
Definition: message_store.h:191
std::string mms_file
Definition: message_store.h:199
bool multisig
Definition: message_store.h:194
Definition: message_store.h:147
std::vector< uint32_t > message_ids
Definition: message_store.h:149
uint32_t receiving_signer_index
Definition: message_store.h:150
message_processing processing
Definition: message_store.h:148
Definition: blake256.h:37