summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authorrkn@chromium.org <rkn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-22 19:24:38 +0000
committerrkn@chromium.org <rkn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-22 19:24:38 +0000
commit2fb7e3bad4942773fe363cf776238a5a9a408f1d (patch)
treeace7084776a1f1679a302dd09a6f5467bde773b1 /net/base
parent66aa024583499d3d9dcea971900817e65b3cb052 (diff)
downloadchromium_src-2fb7e3bad4942773fe363cf776238a5a9a408f1d.zip
chromium_src-2fb7e3bad4942773fe363cf776238a5a9a408f1d.tar.gz
chromium_src-2fb7e3bad4942773fe363cf776238a5a9a408f1d.tar.bz2
Added client-side support for the TLS cached info
extension. This feature is disabled by default and enabled by the flag --enable-cached-info. BUG=84920 TEST=None Review URL: http://codereview.chromium.org/7058049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90066 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r--net/base/ssl_config_service.cc14
-rw-r--r--net/base/ssl_config_service.h6
2 files changed, 19 insertions, 1 deletions
diff --git a/net/base/ssl_config_service.cc b/net/base/ssl_config_service.cc
index 56ad78a..5fe01cf 100644
--- a/net/base/ssl_config_service.cc
+++ b/net/base/ssl_config_service.cc
@@ -16,7 +16,7 @@ SSLConfig::CertAndStatus::~CertAndStatus() {}
SSLConfig::SSLConfig()
: rev_checking_enabled(true), ssl3_enabled(true),
tls1_enabled(true),
- dns_cert_provenance_checking_enabled(false),
+ dns_cert_provenance_checking_enabled(false), cached_info_enabled(false),
false_start_enabled(true),
send_client_cert(false), verify_ev_cert(false), ssl3_fallback(false) {
}
@@ -46,6 +46,7 @@ bool SSLConfigService::IsKnownFalseStartIncompatibleServer(
return SSLFalseStartBlacklist::IsMember(hostname.c_str());
}
+static bool g_cached_info_enabled = false;
static bool g_false_start_enabled = true;
static bool g_dns_cert_provenance_checking = false;
@@ -69,6 +70,16 @@ bool SSLConfigService::dns_cert_provenance_checking_enabled() {
return g_dns_cert_provenance_checking;
}
+// static
+void SSLConfigService::EnableCachedInfo() {
+ g_cached_info_enabled = true;
+}
+
+// static
+bool SSLConfigService::cached_info_enabled() {
+ return g_cached_info_enabled;
+}
+
void SSLConfigService::AddObserver(Observer* observer) {
observer_list_.AddObserver(observer);
}
@@ -85,6 +96,7 @@ void SSLConfigService::SetSSLConfigFlags(SSLConfig* ssl_config) {
ssl_config->false_start_enabled = g_false_start_enabled;
ssl_config->dns_cert_provenance_checking_enabled =
g_dns_cert_provenance_checking;
+ ssl_config->cached_info_enabled = g_cached_info_enabled;
}
void SSLConfigService::ProcessConfigUpdate(const SSLConfig& orig_config,
diff --git a/net/base/ssl_config_service.h b/net/base/ssl_config_service.h
index c44937e..2b2e28a 100644
--- a/net/base/ssl_config_service.h
+++ b/net/base/ssl_config_service.h
@@ -57,6 +57,7 @@ struct NET_API SSLConfig {
// TODO(rsleevi): Not implemented when using Schannel.
std::vector<uint16> disabled_cipher_suites;
+ bool cached_info_enabled; // True if TLS cached info extension is enabled.
bool false_start_enabled; // True if we'll use TLS False Start.
// TODO(wtc): move the following members to a new SSLParams structure. They
@@ -142,6 +143,11 @@ class NET_API SSLConfigService
static void EnableDNSCertProvenanceChecking();
static bool dns_cert_provenance_checking_enabled();
+ // Enables the TLS cached info extension, which allows the server to send
+ // just a digest of its certificate chain.
+ static void EnableCachedInfo();
+ static bool cached_info_enabled();
+
// Is SNI available in this configuration?
static bool IsSNIAvailable(SSLConfigService* service);