aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/net/http_client.h
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2019-04-11 12:39:56 +0200
committerRiccardo Spagni <ric@spagni.net>2019-04-11 12:39:56 +0200
commit7c85f3b28e9f0528ff27284e98424c4e40205301 (patch)
tree103d97e9da3ceb4c6b2311dac3b41cb9e7085026 /contrib/epee/include/net/http_client.h
parentMerge pull request #5364 (diff)
parentEnabling daemon-rpc SSL now requires non-system CA verification (diff)
downloadmonero-7c85f3b28e9f0528ff27284e98424c4e40205301.tar.xz
Merge pull request #5320
2e578b82 Enabling daemon-rpc SSL now requires non-system CA verification (Lee Clagett) d58f3682 Require manual override for user chain certificates. (Lee Clagett) 97cd1fa9 Only check top-level certificate against fingerprint list. (Lee Clagett) 7c388fb3 Call `use_certificate_chain_file` instead of `use_certificate_file` (Lee Clagett) eca0fea4 Perform RFC 2818 hostname verification in client SSL handshakes (Lee Clagett) 0416764c Require server verification when SSL is enabled. (Lee Clagett) 96d602ac Add `verify_fail_if_no_cert` option for proper client authentication (Lee Clagett) 21eb1b07 Pass SSL arguments via one class and use shared_ptr instead of reference (Lee Clagett) 1f5ed328 Change default SSL to "enabled" if user specifies fingerprint/certificate (Lee Clagett) f18a069f Do not require client certificate unless server has some whitelisted. (Lee Clagett) a3b02848 Change SSL certificate file list to OpenSSL builtin load_verify_location (Lee Clagett)
Diffstat (limited to 'contrib/epee/include/net/http_client.h')
-rw-r--r--contrib/epee/include/net/http_client.h19
1 files changed, 4 insertions, 15 deletions
diff --git a/contrib/epee/include/net/http_client.h b/contrib/epee/include/net/http_client.h
index 1864c77ad..a18a1d30a 100644
--- a/contrib/epee/include/net/http_client.h
+++ b/contrib/epee/include/net/http_client.h
@@ -275,11 +275,6 @@ namespace net_utils
chunked_state m_chunked_state;
std::string m_chunked_cache;
critical_section m_lock;
- epee::net_utils::ssl_support_t m_ssl_support;
- std::pair<std::string, std::string> m_ssl_private_key_and_certificate_path;
- std::list<std::string> m_ssl_allowed_certificates;
- std::vector<std::vector<uint8_t>> m_ssl_allowed_fingerprints;
- bool m_ssl_allow_any_cert;
public:
explicit http_simple_client_template()
@@ -297,34 +292,28 @@ namespace net_utils
, m_chunked_state()
, m_chunked_cache()
, m_lock()
- , m_ssl_support(epee::net_utils::ssl_support_t::e_ssl_support_autodetect)
{}
const std::string &get_host() const { return m_host_buff; };
const std::string &get_port() const { return m_port; };
- bool set_server(const std::string& address, boost::optional<login> user, epee::net_utils::ssl_support_t ssl_support = epee::net_utils::ssl_support_t::e_ssl_support_autodetect, const std::pair<std::string, std::string> &private_key_and_certificate_path = {}, const std::list<std::string> &allowed_ssl_certificates = {}, const std::vector<std::vector<uint8_t>> &allowed_ssl_fingerprints = {}, bool allow_any_cert = false)
+ bool set_server(const std::string& address, boost::optional<login> user, ssl_options_t ssl_options = ssl_support_t::e_ssl_support_autodetect)
{
http::url_content parsed{};
const bool r = parse_url(address, parsed);
CHECK_AND_ASSERT_MES(r, false, "failed to parse url: " << address);
- set_server(std::move(parsed.host), std::to_string(parsed.port), std::move(user), ssl_support, private_key_and_certificate_path, allowed_ssl_certificates, allowed_ssl_fingerprints, allow_any_cert);
+ set_server(std::move(parsed.host), std::to_string(parsed.port), std::move(user), std::move(ssl_options));
return true;
}
- void set_server(std::string host, std::string port, boost::optional<login> user, epee::net_utils::ssl_support_t ssl_support = epee::net_utils::ssl_support_t::e_ssl_support_autodetect, const std::pair<std::string, std::string> &private_key_and_certificate_path = {}, const std::list<std::string> &allowed_ssl_certificates = {}, const std::vector<std::vector<uint8_t>> &allowed_ssl_fingerprints = {}, bool allow_any_cert = false)
+ void set_server(std::string host, std::string port, boost::optional<login> user, ssl_options_t ssl_options = ssl_support_t::e_ssl_support_autodetect)
{
CRITICAL_REGION_LOCAL(m_lock);
disconnect();
m_host_buff = std::move(host);
m_port = std::move(port);
m_auth = user ? http_client_auth{std::move(*user)} : http_client_auth{};
- m_ssl_support = ssl_support;
- m_ssl_private_key_and_certificate_path = private_key_and_certificate_path;
- m_ssl_allowed_certificates = allowed_ssl_certificates;
- m_ssl_allowed_fingerprints = allowed_ssl_fingerprints;
- m_ssl_allow_any_cert = allow_any_cert;
- m_net_client.set_ssl(m_ssl_support, m_ssl_private_key_and_certificate_path, m_ssl_allowed_certificates, m_ssl_allowed_fingerprints, m_ssl_allow_any_cert);
+ m_net_client.set_ssl(std::move(ssl_options));
}
template<typename F>