Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: components/ssl_config/ssl_config_service_manager_pref.cc

Issue 2239963002: Add enterprise policy to allow locally issued SHA-1 certificates. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/ssl_config/ssl_config_prefs.cc ('k') | net/cert/cert_verifier.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 #include "components/ssl_config/ssl_config_service_manager.h" 4 #include "components/ssl_config/ssl_config_service_manager.h"
5 5
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 165
166 // Processes changes to the disabled cipher suites preference, updating the 166 // Processes changes to the disabled cipher suites preference, updating the
167 // cached list of parsed SSL/TLS cipher suites that are disabled. 167 // cached list of parsed SSL/TLS cipher suites that are disabled.
168 void OnDisabledCipherSuitesChange(PrefService* local_state); 168 void OnDisabledCipherSuitesChange(PrefService* local_state);
169 169
170 PrefChangeRegistrar local_state_change_registrar_; 170 PrefChangeRegistrar local_state_change_registrar_;
171 171
172 // The local_state prefs (should only be accessed from UI thread) 172 // The local_state prefs (should only be accessed from UI thread)
173 BooleanPrefMember rev_checking_enabled_; 173 BooleanPrefMember rev_checking_enabled_;
174 BooleanPrefMember rev_checking_required_local_anchors_; 174 BooleanPrefMember rev_checking_required_local_anchors_;
175 BooleanPrefMember sha1_local_anchors_enabled_;
175 StringPrefMember ssl_version_min_; 176 StringPrefMember ssl_version_min_;
176 StringPrefMember ssl_version_max_; 177 StringPrefMember ssl_version_max_;
177 BooleanPrefMember dhe_enabled_; 178 BooleanPrefMember dhe_enabled_;
178 179
179 // The cached list of disabled SSL cipher suites. 180 // The cached list of disabled SSL cipher suites.
180 std::vector<uint16_t> disabled_cipher_suites_; 181 std::vector<uint16_t> disabled_cipher_suites_;
181 182
182 scoped_refptr<SSLConfigServicePref> ssl_config_service_; 183 scoped_refptr<SSLConfigServicePref> ssl_config_service_;
183 184
184 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 185 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
(...skipping 18 matching lines...) Expand all
203 204
204 PrefChangeRegistrar::NamedChangeCallback local_state_callback = 205 PrefChangeRegistrar::NamedChangeCallback local_state_callback =
205 base::Bind(&SSLConfigServiceManagerPref::OnPreferenceChanged, 206 base::Bind(&SSLConfigServiceManagerPref::OnPreferenceChanged,
206 base::Unretained(this), local_state); 207 base::Unretained(this), local_state);
207 208
208 rev_checking_enabled_.Init(ssl_config::prefs::kCertRevocationCheckingEnabled, 209 rev_checking_enabled_.Init(ssl_config::prefs::kCertRevocationCheckingEnabled,
209 local_state, local_state_callback); 210 local_state, local_state_callback);
210 rev_checking_required_local_anchors_.Init( 211 rev_checking_required_local_anchors_.Init(
211 ssl_config::prefs::kCertRevocationCheckingRequiredLocalAnchors, 212 ssl_config::prefs::kCertRevocationCheckingRequiredLocalAnchors,
212 local_state, local_state_callback); 213 local_state, local_state_callback);
214 sha1_local_anchors_enabled_.Init(
215 ssl_config::prefs::kCertEnableSha1LocalAnchors, local_state,
216 local_state_callback);
213 ssl_version_min_.Init(ssl_config::prefs::kSSLVersionMin, local_state, 217 ssl_version_min_.Init(ssl_config::prefs::kSSLVersionMin, local_state,
214 local_state_callback); 218 local_state_callback);
215 ssl_version_max_.Init(ssl_config::prefs::kSSLVersionMax, local_state, 219 ssl_version_max_.Init(ssl_config::prefs::kSSLVersionMax, local_state,
216 local_state_callback); 220 local_state_callback);
217 dhe_enabled_.Init(ssl_config::prefs::kDHEEnabled, local_state, 221 dhe_enabled_.Init(ssl_config::prefs::kDHEEnabled, local_state,
218 local_state_callback); 222 local_state_callback);
219 223
220 local_state_change_registrar_.Init(local_state); 224 local_state_change_registrar_.Init(local_state);
221 local_state_change_registrar_.Add(ssl_config::prefs::kCipherSuiteBlacklist, 225 local_state_change_registrar_.Add(ssl_config::prefs::kCipherSuiteBlacklist,
222 local_state_callback); 226 local_state_callback);
223 227
224 OnDisabledCipherSuitesChange(local_state); 228 OnDisabledCipherSuitesChange(local_state);
225 229
226 // Initialize from UI thread. This is okay as there shouldn't be anything on 230 // Initialize from UI thread. This is okay as there shouldn't be anything on
227 // the IO thread trying to access it yet. 231 // the IO thread trying to access it yet.
228 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_); 232 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_);
229 } 233 }
230 234
231 // static 235 // static
232 void SSLConfigServiceManagerPref::RegisterPrefs(PrefRegistrySimple* registry) { 236 void SSLConfigServiceManagerPref::RegisterPrefs(PrefRegistrySimple* registry) {
233 net::SSLConfig default_config; 237 net::SSLConfig default_config;
234 registry->RegisterBooleanPref( 238 registry->RegisterBooleanPref(
235 ssl_config::prefs::kCertRevocationCheckingEnabled, 239 ssl_config::prefs::kCertRevocationCheckingEnabled,
236 default_config.rev_checking_enabled); 240 default_config.rev_checking_enabled);
237 registry->RegisterBooleanPref( 241 registry->RegisterBooleanPref(
238 ssl_config::prefs::kCertRevocationCheckingRequiredLocalAnchors, 242 ssl_config::prefs::kCertRevocationCheckingRequiredLocalAnchors,
239 default_config.rev_checking_required_local_anchors); 243 default_config.rev_checking_required_local_anchors);
244 registry->RegisterBooleanPref(ssl_config::prefs::kCertEnableSha1LocalAnchors,
245 default_config.sha1_local_anchors_enabled);
240 registry->RegisterStringPref(ssl_config::prefs::kSSLVersionMin, 246 registry->RegisterStringPref(ssl_config::prefs::kSSLVersionMin,
241 std::string()); 247 std::string());
242 registry->RegisterStringPref(ssl_config::prefs::kSSLVersionMax, 248 registry->RegisterStringPref(ssl_config::prefs::kSSLVersionMax,
243 std::string()); 249 std::string());
244 registry->RegisterListPref(ssl_config::prefs::kCipherSuiteBlacklist); 250 registry->RegisterListPref(ssl_config::prefs::kCipherSuiteBlacklist);
245 registry->RegisterBooleanPref(ssl_config::prefs::kDHEEnabled, 251 registry->RegisterBooleanPref(ssl_config::prefs::kDHEEnabled,
246 default_config.dhe_enabled); 252 default_config.dhe_enabled);
247 } 253 }
248 254
249 net::SSLConfigService* SSLConfigServiceManagerPref::Get() { 255 net::SSLConfigService* SSLConfigServiceManagerPref::Get() {
(...skipping 20 matching lines...) Expand all
270 void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( 276 void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs(
271 net::SSLConfig* config) { 277 net::SSLConfig* config) {
272 // rev_checking_enabled was formerly a user-settable preference, but now 278 // rev_checking_enabled was formerly a user-settable preference, but now
273 // it is managed-only. 279 // it is managed-only.
274 if (rev_checking_enabled_.IsManaged()) 280 if (rev_checking_enabled_.IsManaged())
275 config->rev_checking_enabled = rev_checking_enabled_.GetValue(); 281 config->rev_checking_enabled = rev_checking_enabled_.GetValue();
276 else 282 else
277 config->rev_checking_enabled = false; 283 config->rev_checking_enabled = false;
278 config->rev_checking_required_local_anchors = 284 config->rev_checking_required_local_anchors =
279 rev_checking_required_local_anchors_.GetValue(); 285 rev_checking_required_local_anchors_.GetValue();
286 config->sha1_local_anchors_enabled = sha1_local_anchors_enabled_.GetValue();
280 std::string version_min_str = ssl_version_min_.GetValue(); 287 std::string version_min_str = ssl_version_min_.GetValue();
281 std::string version_max_str = ssl_version_max_.GetValue(); 288 std::string version_max_str = ssl_version_max_.GetValue();
282 config->version_min = net::kDefaultSSLVersionMin; 289 config->version_min = net::kDefaultSSLVersionMin;
283 config->version_max = net::kDefaultSSLVersionMax; 290 config->version_max = net::kDefaultSSLVersionMax;
284 uint16_t version_min = SSLProtocolVersionFromString(version_min_str); 291 uint16_t version_min = SSLProtocolVersionFromString(version_min_str);
285 uint16_t version_max = SSLProtocolVersionFromString(version_max_str); 292 uint16_t version_max = SSLProtocolVersionFromString(version_max_str);
286 if (version_min) { 293 if (version_min) {
287 config->version_min = version_min; 294 config->version_min = version_min;
288 } 295 }
289 if (version_max) { 296 if (version_max) {
(...skipping 19 matching lines...) Expand all
309 PrefService* local_state, 316 PrefService* local_state,
310 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) { 317 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
311 return new SSLConfigServiceManagerPref(local_state, io_task_runner); 318 return new SSLConfigServiceManagerPref(local_state, io_task_runner);
312 } 319 }
313 320
314 // static 321 // static
315 void SSLConfigServiceManager::RegisterPrefs(PrefRegistrySimple* registry) { 322 void SSLConfigServiceManager::RegisterPrefs(PrefRegistrySimple* registry) {
316 SSLConfigServiceManagerPref::RegisterPrefs(registry); 323 SSLConfigServiceManagerPref::RegisterPrefs(registry);
317 } 324 }
318 } // namespace ssl_config 325 } // namespace ssl_config
OLDNEW
« no previous file with comments | « components/ssl_config/ssl_config_prefs.cc ('k') | net/cert/cert_verifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698