mirror of
https://github.com/wownero/wownero.git
synced 2026-10-17 07:31:35 +02:00
wallet2: preserve required SSL when allowing chained certificates
(cherry picked from commit 57a37a156ce1f32b8b3471dc4aad7973130c38da)
This commit is contained in:
@@ -342,12 +342,14 @@ std::unique_ptr<tools::wallet2> make_basic(const boost::program_options::variabl
|
||||
auto daemon_ssl_allow_any_cert = command_line::get_arg(vm, opts.daemon_ssl_allow_any_cert);
|
||||
auto daemon_ssl = command_line::get_arg(vm, opts.daemon_ssl);
|
||||
|
||||
// user specified CA file or fingeprints implies enabled SSL by default
|
||||
// user specified CA file or fingerprints implies enabled SSL by default
|
||||
bool ssl_required = false;
|
||||
epee::net_utils::ssl_options_t ssl_options = epee::net_utils::ssl_support_t::e_ssl_support_enabled;
|
||||
if (daemon_ssl_allow_any_cert)
|
||||
ssl_options.verification = epee::net_utils::ssl_verification_t::none;
|
||||
else if (!daemon_ssl_ca_file.empty() || !daemon_ssl_allowed_fingerprints.empty())
|
||||
{
|
||||
ssl_required = true;
|
||||
std::vector<std::vector<uint8_t>> ssl_allowed_fingerprints{ daemon_ssl_allowed_fingerprints.size() };
|
||||
std::transform(daemon_ssl_allowed_fingerprints.begin(), daemon_ssl_allowed_fingerprints.end(), ssl_allowed_fingerprints.begin(), epee::from_hex_locale::to_vector);
|
||||
for (const auto &fpr: ssl_allowed_fingerprints)
|
||||
@@ -364,7 +366,7 @@ std::unique_ptr<tools::wallet2> make_basic(const boost::program_options::variabl
|
||||
ssl_options.verification = epee::net_utils::ssl_verification_t::user_ca;
|
||||
}
|
||||
|
||||
if (ssl_options.verification != epee::net_utils::ssl_verification_t::user_certificates || !command_line::is_arg_defaulted(vm, opts.daemon_ssl))
|
||||
if (!ssl_required || !command_line::is_arg_defaulted(vm, opts.daemon_ssl))
|
||||
{
|
||||
THROW_WALLET_EXCEPTION_IF(!epee::net_utils::ssl_support_from_string(ssl_options.support, daemon_ssl), tools::error::wallet_internal_error,
|
||||
tools::wallet2::tr("Invalid argument for ") + std::string(opts.daemon_ssl.name));
|
||||
|
||||
Reference in New Issue
Block a user