36#include <boost/serialization/vector.hpp>
37#include <boost/program_options/variables_map.hpp>
38#include <boost/program_options/options_description.hpp>
39#include <boost/optional/optional.hpp>
53#undef MONERO_DEFAULT_LOG_CATEGORY
54#define MONERO_DEFAULT_LOG_CATEGORY "wallet.mms"
55#define AUTO_CONFIG_TOKEN_BYTES 4
56#define AUTO_CONFIG_TOKEN_PREFIX "mms"
194 crypto::chacha_iv
iv;
219 crypto::chacha_iv
iv;
270 message_store(std::unique_ptr<epee::net_utils::http::abstract_http_client> http_client);
276 const std::string &own_transport_address,
uint32_t num_authorized_signers,
uint32_t num_required_signers);
279 void set_options(
const boost::program_options::variables_map&
vm);
280 void set_options(
const std::string &bitmessage_address,
const epee::wipeable_string &bitmessage_login);
288 const boost::optional<std::string> &label,
289 const boost::optional<std::string> &transport_address,
290 const boost::optional<cryptonote::account_public_address> monero_address);
294 bool get_signer_index_by_label(
const std::string label,
uint32_t &index)
const;
296 bool signer_config_complete()
const;
297 bool signer_labels_complete()
const;
298 void get_signer_config(std::string &signer_config);
300 std::vector<authorized_signer> &signers);
304 bool check_auto_config_token(
const std::string &raw_token,
305 std::string &adjusted_token)
const;
307 const std::string &auto_config_token);
308 void process_auto_config_data_message(
uint32_t id);
309 std::string get_config_checksum()
const;
310 void stop_auto_config();
330 std::vector<processing_data> &data_list,
331 std::string &wait_reason);
336 const std::string &content);
340 void set_message_processed_or_sent(
uint32_t id);
342 void delete_all_messages();
343 static std::string get_sanitized_text(
const std::string &
text,
size_t max_length);
352 template <
class t_archive>
383 static void init_options(boost::program_options::options_description& desc_params);
428 template <
class Archive>
437 template <
class Archive>
456 template <
class Archive>
476 template <
class Archive>
484 template <
class Archive>
493 template <
class Archive>
494 inline void serialize(Archive &
a, crypto::chacha_iv &x,
const boost::serialization::version_type ver)
Definition wipeable_string.h:41
static const char * tr(const char *str)
Definition message_store.h:382
std::vector< authorized_signer > m_signers
Definition message_store.h:391
uint32_t m_num_authorized_signers
Definition message_store.h:387
void set_active(bool active)
Definition message_store.h:277
void setup_signer_for_auto_config(uint32_t index, const std::string token, bool receiving)
Definition message_store.cpp:458
bool get_auto_send() const
Definition message_store.h:282
bool message_ids_complete(const std::vector< uint32_t > &ids) const
Definition message_store.cpp:688
message & get_message_ref_by_id(uint32_t id)
Definition message_store.cpp:618
uint32_t m_next_message_id
Definition message_store.h:393
void stop()
Definition message_store.h:347
std::string account_address_to_string(const cryptonote::account_public_address &account_address) const
Definition message_store.cpp:1431
uint32_t m_num_required_signers
Definition message_store.h:388
std::string m_filename
Definition message_store.h:394
uint32_t get_num_required_signers() const
Definition message_store.h:283
void save(const multisig_wallet_state &state)
Definition message_store.cpp:861
bool m_auto_send
Definition message_store.h:389
void set_auto_send(bool auto_send)
Definition message_store.h:278
bool get_message_index_by_id(uint32_t id, size_t &index) const
Definition message_store.cpp:594
cryptonote::network_type m_nettype
Definition message_store.h:390
uint32_t get_num_authorized_signers() const
Definition message_store.h:284
message_store(std::unique_ptr< epee::net_utils::http::abstract_http_client > http_client)
Definition message_store.cpp:54
bool m_active
Definition message_store.h:386
bool get_active() const
Definition message_store.h:281
std::atomic< bool > m_run
Definition message_store.h:396
const std::vector< message > & get_all_messages() const
Definition message_store.h:337
bool any_message_with_hash(const crypto::hash &hash) const
Definition message_store.cpp:657
bool any_message_of_type(message_type type, message_direction direction) const
Definition message_store.cpp:645
void delete_transport_message(uint32_t id)
Definition message_store.cpp:1422
size_t get_other_signers_id_count(const std::vector< uint32_t > &ids) const
Definition message_store.cpp:674
void serialize(t_archive &a, const unsigned int ver)
Definition message_store.h:353
std::vector< message > m_messages
Definition message_store.h:392
const std::vector< authorized_signer > & get_all_signers() const
Definition message_store.h:295
std::string create_auto_config_token()
Definition message_store.cpp:336
message_transporter m_transporter
Definition message_store.h:395
Definition message_transporter.h:84
#define BEGIN_SERIALIZE_OBJECT()
const char * i18n_translate(const char *s, const std::string &context)
Definition i18n.cpp:325
#define const
Definition ipfrdr.c:80
static void init()
Definition logging.cpp:42
const char * text
Definition minihttptestserver.c:269
Definition portable_binary_archive.hpp:29
const crypto::public_key null_pkey
Definition crypto.cpp:74
const crypto::secret_key null_skey
Definition crypto.cpp:75
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition crypto.h:72
POD_CLASS public_key
Definition crypto.h:64
POD_CLASS hash
Definition hash.h:49
network_type
Definition cryptonote_config.h:302
Definition message_store.cpp:52
message_direction
Definition message_store.h:73
@ in
Definition message_store.h:74
@ out
Definition message_store.h:75
message_state
Definition message_store.h:79
@ cancelled
Definition message_store.h:86
@ sent
Definition message_store.h:81
@ processed
Definition message_store.h:84
@ waiting
Definition message_store.h:83
@ ready_to_send
Definition message_store.h:80
message_processing
Definition message_store.h:90
@ submit_tx
Definition message_store.h:98
@ process_sync_data
Definition message_store.h:95
@ process_signer_config
Definition message_store.h:99
@ send_tx
Definition message_store.h:97
@ prepare_multisig
Definition message_store.h:91
@ make_multisig
Definition message_store.h:92
@ exchange_multisig_keys
Definition message_store.h:93
@ sign_tx
Definition message_store.h:96
@ process_auto_config_data
Definition message_store.h:100
@ create_sync_data
Definition message_store.h:94
message_type
Definition message_store.h:61
@ signer_config
Definition message_store.h:68
@ partially_signed_tx
Definition message_store.h:65
@ key_set
Definition message_store.h:62
@ note
Definition message_store.h:67
@ multisig_sync_data
Definition message_store.h:64
@ fully_signed_tx
Definition message_store.h:66
@ additional_key_set
Definition message_store.h:63
Definition multisig.cpp:46
Definition binary_utils.h:36
BOOST_CLASS_VERSION(nodetool::peerlist_types, nodetool::CURRENT_PEERLIST_STORAGE_ARCHIVE_VER)
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1124
const char *const str
Definition portlistingparse.c:23
void serialize(Archive &a, unsigned_tx_set &x, const boost::serialization::version_type ver)
Definition serialization.cpp:898
Simple DSL AAPI based on.
static const unsigned char iv[64]
Definition sha512-hash.c:13
static std::string decrypt(const std::string &ciphertext, const crypto::key_image &key_image, const crypto::chacha_key &key, uint8_t field)
Definition ringdb.cpp:136
static std::string encrypt(const std::string &plaintext, const crypto::key_image &key_image, const crypto::chacha_key &key, uint8_t field)
Definition ringdb.cpp:121
unsigned int uint32_t
Definition stdint.h:126
unsigned __int64 uint64_t
Definition stdint.h:136
Definition cryptonote_basic.h:512
Definition message_store.h:144
cryptonote::account_public_address monero_address
Definition message_store.h:148
crypto::secret_key auto_config_secret_key
Definition message_store.h:153
bool me
Definition message_store.h:149
bool auto_config_running
Definition message_store.h:155
std::string transport_address
Definition message_store.h:146
std::string label
Definition message_store.h:145
uint32_t index
Definition message_store.h:150
std::string auto_config_token
Definition message_store.h:151
bool monero_address_known
Definition message_store.h:147
authorized_signer()
Definition message_store.h:172
crypto::public_key auto_config_public_key
Definition message_store.h:152
std::string auto_config_transport_address
Definition message_store.h:154
Definition message_store.h:200
std::string label
Definition message_store.h:201
std::string transport_address
Definition message_store.h:202
cryptonote::account_public_address monero_address
Definition message_store.h:203
Definition message_store.h:216
std::string magic_string
Definition message_store.h:217
crypto::chacha_iv iv
Definition message_store.h:219
std::string encrypted_data
Definition message_store.h:220
uint32_t file_version
Definition message_store.h:218
Definition message_store.h:192
crypto::chacha_iv iv
Definition message_store.h:194
cryptonote::account_public_address sender_address
Definition message_store.h:193
message internal_message
Definition message_store.h:196
crypto::public_key encryption_public_key
Definition message_store.h:195
Definition message_store.h:104
uint64_t modified
Definition message_store.h:110
uint32_t signer_index
Definition message_store.h:112
uint32_t wallet_height
Definition message_store.h:115
message_state state
Definition message_store.h:114
crypto::hash hash
Definition message_store.h:113
uint32_t round
Definition message_store.h:116
message_type type
Definition message_store.h:106
std::string content
Definition message_store.h:108
uint64_t sent
Definition message_store.h:111
uint32_t id
Definition message_store.h:105
uint64_t created
Definition message_store.h:109
std::string transport_id
Definition message_store.h:118
message_direction direction
Definition message_store.h:107
uint32_t signature_count
Definition message_store.h:117
Definition message_store.h:242
cryptonote::network_type nettype
Definition message_store.h:244
uint32_t multisig_rounds_passed
Definition message_store.h:249
crypto::secret_key view_secret_key
Definition message_store.h:245
size_t num_transfer_details
Definition message_store.h:250
bool has_multisig_partial_key_images
Definition message_store.h:248
bool multisig_is_ready
Definition message_store.h:247
cryptonote::account_public_address address
Definition message_store.h:243
std::string mms_file
Definition message_store.h:251
Definition message_store.h:185
std::vector< uint32_t > message_ids
Definition message_store.h:187
uint32_t receiving_signer_index
Definition message_store.h:188
message_processing processing
Definition message_store.h:186
std::string data
Definition base58.cpp:37
randomx_vm * vm
Definition tests.cpp:20