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

Side by Side Diff: net/http/transport_security_state.cc

Issue 2906633003: Add a build flag to configure bundling of HSTS preload list (Closed)
Patch Set: address Ryan comments Created 3 years, 5 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
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 4
5 #include "net/http/transport_security_state.h" 5 #include "net/http/transport_security_state.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 22 matching lines...) Expand all
33 33
34 #if !defined(OS_NACL) 34 #if !defined(OS_NACL)
35 #include "base/metrics/field_trial.h" 35 #include "base/metrics/field_trial.h"
36 #endif 36 #endif
37 37
38 namespace net { 38 namespace net {
39 39
40 namespace { 40 namespace {
41 41
42 #include "net/http/transport_security_state_ct_policies.inc" 42 #include "net/http/transport_security_state_ct_policies.inc"
43
44 #if BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST)
43 #include "net/http/transport_security_state_static.h" 45 #include "net/http/transport_security_state_static.h"
46 // Points to the active transport security state source.
47 const TransportSecurityStateSource* const kDefaultHSTSSource = &kHSTSSource;
48 #else
49 const TransportSecurityStateSource* const kDefaultHSTSSource = nullptr;
50 #endif
51
52 const TransportSecurityStateSource* g_hsts_source = kDefaultHSTSSource;
44 53
45 // Parameters for remembering sent HPKP and Expect-CT reports. 54 // Parameters for remembering sent HPKP and Expect-CT reports.
46 const size_t kMaxReportCacheEntries = 50; 55 const size_t kMaxReportCacheEntries = 50;
47 const int kTimeToRememberReportsMins = 60; 56 const int kTimeToRememberReportsMins = 60;
48 const size_t kReportCacheKeyLength = 16; 57 const size_t kReportCacheKeyLength = 16;
49 58
50 // Points to the active transport security state source.
51 const TransportSecurityStateSource* g_hsts_source = &kHSTSSource;
52
53 // Override for CheckCTRequirements() for unit tests. Possible values: 59 // Override for CheckCTRequirements() for unit tests. Possible values:
54 // -1: Unless a delegate says otherwise, do not require CT. 60 // -1: Unless a delegate says otherwise, do not require CT.
55 // 0: Use the default implementation (e.g. production) 61 // 0: Use the default implementation (e.g. production)
56 // 1: Unless a delegate says otherwise, require CT. 62 // 1: Unless a delegate says otherwise, require CT.
57 int g_ct_required_for_testing = 0; 63 int g_ct_required_for_testing = 0;
58 64
59 bool IsDynamicExpectCTEnabled() { 65 bool IsDynamicExpectCTEnabled() {
60 return base::FeatureList::IsEnabled( 66 return base::FeatureList::IsEnabled(
61 TransportSecurityState::kDynamicExpectCTFeature); 67 TransportSecurityState::kDynamicExpectCTFeature);
62 } 68 }
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 if (hostname[hostname_offset - 1] == c) { 636 if (hostname[hostname_offset - 1] == c) {
631 bit_offset = current_offset; 637 bit_offset = current_offset;
632 hostname_offset--; 638 hostname_offset--;
633 break; 639 break;
634 } 640 }
635 } 641 }
636 } 642 }
637 } 643 }
638 644
639 bool DecodeHSTSPreload(const std::string& hostname, PreloadResult* out) { 645 bool DecodeHSTSPreload(const std::string& hostname, PreloadResult* out) {
646 #if !BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST)
647 if (g_hsts_source == nullptr)
648 return false;
649 #endif
650
640 bool found; 651 bool found;
641 if (!DecodeHSTSPreloadRaw(hostname, &found, out)) { 652 if (!DecodeHSTSPreloadRaw(hostname, &found, out)) {
642 DCHECK(false) << "Internal error in DecodeHSTSPreloadRaw for hostname " 653 DCHECK(false) << "Internal error in DecodeHSTSPreloadRaw for hostname "
643 << hostname; 654 << hostname;
644 return false; 655 return false;
645 } 656 }
646 657
647 return found; 658 return found;
648 } 659 }
649 660
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 } 738 }
728 739
729 } // namespace 740 } // namespace
730 741
731 // static 742 // static
732 const base::Feature TransportSecurityState::kDynamicExpectCTFeature{ 743 const base::Feature TransportSecurityState::kDynamicExpectCTFeature{
733 "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT}; 744 "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT};
734 745
735 void SetTransportSecurityStateSourceForTesting( 746 void SetTransportSecurityStateSourceForTesting(
736 const TransportSecurityStateSource* source) { 747 const TransportSecurityStateSource* source) {
737 g_hsts_source = source ? source : &kHSTSSource; 748 g_hsts_source = source ? source : kDefaultHSTSSource;
738 } 749 }
739 750
740 TransportSecurityState::TransportSecurityState() 751 TransportSecurityState::TransportSecurityState()
741 : enable_static_pins_(true), 752 : enable_static_pins_(true),
742 enable_static_expect_ct_(true), 753 enable_static_expect_ct_(true),
743 enable_static_expect_staple_(true), 754 enable_static_expect_staple_(true),
744 enable_pkp_bypass_for_local_trust_anchors_(true), 755 enable_pkp_bypass_for_local_trust_anchors_(true),
745 sent_hpkp_reports_cache_(kMaxReportCacheEntries), 756 sent_hpkp_reports_cache_(kMaxReportCacheEntries),
746 sent_expect_ct_reports_cache_(kMaxReportCacheEntries) { 757 sent_expect_ct_reports_cache_(kMaxReportCacheEntries) {
747 // Static pinning is only enabled for official builds to make sure that 758 // Static pinning is only enabled for official builds to make sure that
(...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after
1845 TransportSecurityState::PKPStateIterator::PKPStateIterator( 1856 TransportSecurityState::PKPStateIterator::PKPStateIterator(
1846 const TransportSecurityState& state) 1857 const TransportSecurityState& state)
1847 : iterator_(state.enabled_pkp_hosts_.begin()), 1858 : iterator_(state.enabled_pkp_hosts_.begin()),
1848 end_(state.enabled_pkp_hosts_.end()) { 1859 end_(state.enabled_pkp_hosts_.end()) {
1849 } 1860 }
1850 1861
1851 TransportSecurityState::PKPStateIterator::~PKPStateIterator() { 1862 TransportSecurityState::PKPStateIterator::~PKPStateIterator() {
1852 } 1863 }
1853 1864
1854 } // namespace net 1865 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698