mirror of
https://github.com/monero-project/monero.git
synced 2025-08-16 13:10:18 -04:00
Merge pull request #6549
82d21f5
easylogging++: sanitize log payload (moneromooo-monero)7d0b7e8
[master] MMS: New 'config_checksum' subcommand (rbrunner7)
This commit is contained in:
commit
e17c864ba2
8 changed files with 337 additions and 98 deletions
|
@ -255,6 +255,7 @@ namespace
|
|||
const char* USAGE_MMS_SET("mms set <option_name> [<option_value>]");
|
||||
const char* USAGE_MMS_SEND_SIGNER_CONFIG("mms send_signer_config");
|
||||
const char* USAGE_MMS_START_AUTO_CONFIG("mms start_auto_config [<label> <label> ...]");
|
||||
const char* USAGE_MMS_CONFIG_CHECKSUM("mms config_checksum");
|
||||
const char* USAGE_MMS_STOP_AUTO_CONFIG("mms stop_auto_config");
|
||||
const char* USAGE_MMS_AUTO_CONFIG("mms auto_config <auto_config_token>");
|
||||
const char* USAGE_PRINT_RING("print_ring <key_image> | <txid>");
|
||||
|
@ -3465,7 +3466,7 @@ simple_wallet::simple_wallet()
|
|||
tr("Interface with the MMS (Multisig Messaging System)\n"
|
||||
"<subcommand> is one of:\n"
|
||||
" init, info, signer, list, next, sync, transfer, delete, send, receive, export, note, show, set, help\n"
|
||||
" send_signer_config, start_auto_config, stop_auto_config, auto_config\n"
|
||||
" send_signer_config, start_auto_config, stop_auto_config, auto_config, config_checksum\n"
|
||||
"Get help about a subcommand with: help_advanced mms <subcommand>"));
|
||||
m_cmd_binder.set_handler("mms init",
|
||||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::mms, _1),
|
||||
|
@ -3534,6 +3535,10 @@ simple_wallet::simple_wallet()
|
|||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::mms, _1),
|
||||
tr(USAGE_MMS_START_AUTO_CONFIG),
|
||||
tr("Start auto-config at the auto-config manager's wallet by issuing auto-config tokens and optionally set others' labels"));
|
||||
m_cmd_binder.set_handler("mms config_checksum",
|
||||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::mms, _1),
|
||||
tr(USAGE_MMS_CONFIG_CHECKSUM),
|
||||
tr("Get a checksum that allows signers to easily check for identical MMS configuration"));
|
||||
m_cmd_binder.set_handler("mms stop_auto_config",
|
||||
boost::bind(&simple_wallet::on_command, this, &simple_wallet::mms, _1),
|
||||
tr(USAGE_MMS_STOP_AUTO_CONFIG),
|
||||
|
@ -10366,6 +10371,14 @@ bool simple_wallet::user_confirms(const std::string &question)
|
|||
return !std::cin.eof() && command_line::is_yes(answer);
|
||||
}
|
||||
|
||||
bool simple_wallet::user_confirms_auto_config()
|
||||
{
|
||||
message_writer(console_color_red, true) << tr("WARNING: Using MMS auto-config mechanisms is not trustless");
|
||||
message_writer() << tr("A malicious auto-config manager could send you info about own wallets instead of other signers' info");
|
||||
message_writer() << tr("If in doubt do not use auto-config or at least compare configs using the \"mms config_checksum\" command");
|
||||
return user_confirms("Accept the risks and continue?");
|
||||
}
|
||||
|
||||
bool simple_wallet::get_number_from_arg(const std::string &arg, uint32_t &number, const uint32_t lower_bound, const uint32_t upper_bound)
|
||||
{
|
||||
bool valid = false;
|
||||
|
@ -10518,7 +10531,7 @@ void simple_wallet::show_message(const mms::message &m)
|
|||
case mms::message_type::additional_key_set:
|
||||
case mms::message_type::note:
|
||||
display_content = true;
|
||||
ms.get_sanitized_message_text(m, sanitized_text);
|
||||
sanitized_text = mms::message_store::get_sanitized_text(m.content, 1000);
|
||||
break;
|
||||
default:
|
||||
display_content = false;
|
||||
|
@ -10867,6 +10880,11 @@ void simple_wallet::mms_next(const std::vector<std::string> &args)
|
|||
{
|
||||
break;
|
||||
}
|
||||
if (!user_confirms_auto_config())
|
||||
{
|
||||
message_writer() << tr("You can use the \"mms delete\" command to delete any unwanted message");
|
||||
break;
|
||||
}
|
||||
}
|
||||
ms.process_signer_config(state, m.content);
|
||||
ms.stop_auto_config();
|
||||
|
@ -11193,6 +11211,18 @@ void simple_wallet::mms_start_auto_config(const std::vector<std::string> &args)
|
|||
list_signers(ms.get_all_signers());
|
||||
}
|
||||
|
||||
void simple_wallet::mms_config_checksum(const std::vector<std::string> &args)
|
||||
{
|
||||
if (args.size() != 0)
|
||||
{
|
||||
fail_msg_writer() << tr("Usage: mms config_checksum");
|
||||
return;
|
||||
}
|
||||
mms::message_store& ms = m_wallet->get_message_store();
|
||||
LOCK_IDLE_SCOPE();
|
||||
message_writer() << ms.get_config_checksum();
|
||||
}
|
||||
|
||||
void simple_wallet::mms_stop_auto_config(const std::vector<std::string> &args)
|
||||
{
|
||||
if (args.size() != 0)
|
||||
|
@ -11223,6 +11253,10 @@ void simple_wallet::mms_auto_config(const std::vector<std::string> &args)
|
|||
fail_msg_writer() << tr("Invalid auto-config token");
|
||||
return;
|
||||
}
|
||||
if (!user_confirms_auto_config())
|
||||
{
|
||||
return;
|
||||
}
|
||||
mms::authorized_signer me = ms.get_signer(0);
|
||||
if (me.auto_config_running)
|
||||
{
|
||||
|
@ -11335,6 +11369,10 @@ bool simple_wallet::mms(const std::vector<std::string> &args)
|
|||
{
|
||||
mms_start_auto_config(mms_args);
|
||||
}
|
||||
else if (sub_command == "config_checksum")
|
||||
{
|
||||
mms_config_checksum(mms_args);
|
||||
}
|
||||
else if (sub_command == "stop_auto_config")
|
||||
{
|
||||
mms_stop_auto_config(mms_args);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue