From f7510618e8cd278a435884be3fa52533934bf8ff Mon Sep 17 00:00:00 2001 From: selsta Date: Thu, 17 Sep 2026 00:19:05 +0200 Subject: [PATCH] wallet2: preserve required SSL when allowing chained certificates (cherry picked from commit 57a37a156ce1f32b8b3471dc4aad7973130c38da) --- src/wallet/wallet2.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 5343ae48b..f40902823 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -342,12 +342,14 @@ std::unique_ptr 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> 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 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));