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)
static void init_options(boost::program_options::options_description &desc_params)
Definition: message_store.cpp:74
Definition: binary_utils.h:37
void write_to_file(const multisig_wallet_state &state, const std::string &filename)
Definition: message_store.cpp:700
std::string magic_string
Definition: message_store.h:172
uint32_t index
Definition: message_store.h:127
uint64_t modified
Definition: message_store.h:105
crypto::secret_key auto_config_secret_key
Definition: message_store.h:130
authorized_signer()
Definition: message_store.h:134
static const char * tr(const char *str)
Definition: message_store.h:303
const std::vector< message > & get_all_messages() const
Definition: message_store.h:270
bool multisig_is_ready
Definition: message_store.h:195
uint32_t id
Definition: message_store.h:100
void delete_transport_message(uint32_t id)
Definition: message_store.cpp:1340
void serialize(t_archive &a, const unsigned int ver)
Definition: message_store.h:286
std::string auto_config_transport_address
Definition: message_store.h:131
message_type type
Definition: message_store.h:101
bool m_auto_send
Definition: message_store.h:310
Definition: unordered_containers_boost_serialization.h:38
std::vector< authorized_signer > m_signers
Definition: message_store.h:312
message_state
Definition: message_store.h:73
message_direction
Definition: message_store.h:67
cryptonote::network_type m_nettype
Definition: message_store.h:311
void stop_auto_config()
Definition: message_store.cpp:395
message_type
Definition: message_store.h:55
void set_messages_processed(const processing_data &data)
Definition: message_store.cpp:1147
static const unsigned char iv[64]
Definition: sha512-hash.c:13
const std::vector< authorized_signer > & get_all_signers() const
Definition: message_store.h:229
static const char * message_direction_to_string(message_direction direction)
Definition: message_store.cpp:1379
Definition: message_store.h:161
Definition: message_store.h:202
Definition: message_transporter.h:83
bool check_for_messages(const multisig_wallet_state &state, std::vector< message > &messages)
Definition: message_store.cpp:1244
uint32_t receiving_signer_index
Definition: message_store.h:150
uint32_t signer_index
Definition: message_store.h:107
std::string label
Definition: message_store.h:122
Definition: message_store.h:120
void unpack_signer_config(const multisig_wallet_state &state, const std::string &signer_config, std::vector< authorized_signer > &signers)
Definition: message_store.cpp:189
message_transporter m_transporter
Definition: message_store.h:316
crypto::chacha_iv iv
Definition: message_store.h:174
cryptonote::account_public_address sender_address
Definition: message_store.h:155
uint32_t m_next_message_id
Definition: message_store.h:314
std::string create_auto_config_token()
Definition: message_store.cpp:328
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition: crypto.h:82
bool me
Definition: message_store.h:126
cryptonote::network_type nettype
Definition: message_store.h:192
void delete_all_messages()
Definition: message_store.cpp:663
std::string label
Definition: message_store.h:163
bool message_ids_complete(const std::vector< uint32_t > &ids) const
Definition: message_store.cpp:651
bool check_auto_config_token(const std::string &raw_token, std::string &adjusted_token) const
Definition: message_store.cpp:276
std::string transport_id
Definition: message_store.h:113
uint32_t m_num_required_signers
Definition: message_store.h:309
const char * i18n_translate(const char *s, const std::string &context)
Definition: i18n.cpp:322
std::string account_address_to_string(const cryptonote::account_public_address &account_address) const
Definition: message_store.cpp:1349
uint32_t m_num_authorized_signers
Definition: message_store.h:308
std::string encrypted_data
Definition: message_store.h:175
bool get_message_index_by_id(uint32_t id, size_t &index) const
Definition: message_store.cpp:557
std::string m_filename
Definition: message_store.h:315
void stop()
Definition: message_transporter.h:92
Definition: message_store.h:189
crypto::public_key encryption_public_key
Definition: message_store.h:157
uint32_t wallet_height
Definition: message_store.h:110
void send_message(const multisig_wallet_state &state, uint32_t id)
Definition: message_store.cpp:1202
const crypto::secret_key null_skey
Definition: crypto.cpp:73
void process_auto_config_data_message(uint32_t id)
Definition: message_store.cpp:366
bool has_multisig_partial_key_images
Definition: message_store.h:196
Simple DSL AAPI based on.
std::string transport_address
Definition: message_store.h:123
message_store()
Definition: message_store.cpp:51
cryptonote::account_public_address etn_address
Definition: message_store.h:125
bool serialize(Archive &ar, T &v)
Definition: serialization.h:360
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
const crypto::public_key null_pkey
Definition: crypto.cpp:72
bool any_message_of_type(message_type type, message_direction direction) const
Definition: message_store.cpp:608
Definition: message_store.h:98
size_t add_auto_config_data_message(const multisig_wallet_state &state, const std::string &auto_config_token)
Definition: message_store.cpp:345
bool any_message_with_hash(const crypto::hash &hash) const
Definition: message_store.cpp:620
void read_from_file(const multisig_wallet_state &state, const std::string &filename)
Definition: message_store.cpp:727
size_t num_transfer_details
Definition: message_store.h:198
message_processing processing
Definition: message_store.h:148
std::string auto_config_token
Definition: message_store.h:128
bool signer_labels_complete() const
Definition: message_store.cpp:168
void delete_message(uint32_t id)
Definition: message_store.cpp:656
const authorized_signer & get_signer(uint32_t index) const
Definition: message_store.cpp:147
Definition: message_store.h:146
message & get_message_ref_by_id(uint32_t id)
Definition: message_store.cpp:581
uint32_t multisig_rounds_passed
Definition: message_store.h:197
Definition: message_store.cpp:48
void get_sanitized_message_text(const message &m, std::string &sanitized_text) const
Definition: message_store.cpp:674
void get_signer_config(std::string &signer_config)
Definition: message_store.cpp:181
static const char * message_type_to_string(message_type type)
Definition: message_store.cpp:1354
void save(const multisig_wallet_state &state)
Definition: message_store.cpp:782
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 multisig
Definition: message_store.h:194
bool m_active
Definition: message_store.h:307
uint32_t get_num_required_signers() const
Definition: message_store.h:217
POD_CLASS public_key
Definition: crypto.h:76
bool get_signer_index_by_etn_address(const cryptonote::account_public_address &etn_address, uint32_t &index) const
Definition: message_store.cpp:442
void start_auto_config(const multisig_wallet_state &state)
Definition: message_store.cpp:259
bool etn_address_known
Definition: message_store.h:124
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
bool get_signer_index_by_label(const std::string label, uint32_t &index) const
Definition: message_store.cpp:457
static const char * message_state_to_string(message_state state)
Definition: message_store.cpp:1392
void set_options(const boost::program_options::variables_map &vm)
Definition: message_store.cpp:109
network_type
Definition: cryptonote_config.h:242
std::vector< message > m_messages
Definition: message_store.h:313
cryptonote::account_public_address etn_address
Definition: message_store.h:165
Definition: cryptonote_basic.h:452
void setup_signer_for_auto_config(uint32_t index, const std::string token, bool receiving)
Definition: message_store.cpp:414
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
Definition: blake256.h:37
bool get_auto_send() const
Definition: message_store.h:216
std::string mms_file
Definition: message_store.h:199
crypto::secret_key view_secret_key
Definition: message_store.h:193
void process_signer_config(const multisig_wallet_state &state, const std::string &signer_config)
Definition: message_store.cpp:207
string a
Definition: MakeCryptoOps.py:15
bool auto_config_running
Definition: message_store.h:132
std::string content
Definition: message_store.h:103
std::string signer_to_string(const authorized_signer &signer, uint32_t max_width)
Definition: message_store.cpp:1413
bool signer_config_complete() const
Definition: message_store.cpp:153
size_t get_other_signers_id_count(const std::vector< uint32_t > &ids) const
Definition: message_store.cpp:637
message internal_message
Definition: message_store.h:158
crypto::chacha_iv iv
Definition: message_store.h:156
BOOST_CLASS_VERSION(nodetool::peerlist_types, nodetool::CURRENT_PEERLIST_STORAGE_ARCHIVE_VER)
uint32_t signature_count
Definition: message_store.h:112
bool get_active() const
Definition: message_store.h:215
bool get_message_by_id(uint32_t id, message &m) const
Definition: message_store.cpp:588
uint32_t get_num_authorized_signers() const
Definition: message_store.h:218
std::vector< uint32_t > message_ids
Definition: message_store.h:149
void set_message_processed_or_sent(uint32_t id)
Definition: message_store.cpp:1155
POD_CLASS hash
Definition: hash.h:50
uint64_t created
Definition: message_store.h:104
crypto::hash hash
Definition: message_store.h:108
message_processing
Definition: message_store.h:84
std::atomic< bool > m_run
Definition: message_store.h:317
Definition: message_store.h:170
std::string transport_address
Definition: message_store.h:164
void stop()
Definition: message_store.h:280
Definition: message_store.h:153
message_state state
Definition: message_store.h:109
void set_active(bool active)
Definition: message_store.h:211
uint32_t round
Definition: message_store.h:111
void set_auto_send(bool auto_send)
Definition: message_store.h:212
message_direction direction
Definition: message_store.h:102
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 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
uint32_t file_version
Definition: message_store.h:173
crypto::public_key auto_config_public_key
Definition: message_store.h:129
uint64_t sent
Definition: message_store.h:106
cryptonote::account_public_address address
Definition: message_store.h:191
void process_wallet_created_data(const multisig_wallet_state &state, message_type type, const std::string &content)
Definition: message_store.cpp:472