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

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: one more 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* g_hsts_source = &kHSTSSource;
48 #else
49 const TransportSecurityStateSource* g_hsts_source = nullptr;
xunjieli 2017/07/10 22:20:40 (This is needed now that |kHSTSSource| is not defi
Ryan Sleevi 2017/07/11 15:29:40 So you could probably abstract this a little, and
xunjieli 2017/07/11 16:45:21 Done. Good idea. Thanks!
50 #endif
44 51
45 // Parameters for remembering sent HPKP and Expect-CT reports. 52 // Parameters for remembering sent HPKP and Expect-CT reports.
46 const size_t kMaxReportCacheEntries = 50; 53 const size_t kMaxReportCacheEntries = 50;
47 const int kTimeToRememberReportsMins = 60; 54 const int kTimeToRememberReportsMins = 60;
48 const size_t kReportCacheKeyLength = 16; 55 const size_t kReportCacheKeyLength = 16;
49 56
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: 57 // Override for CheckCTRequirements() for unit tests. Possible values:
54 // -1: Unless a delegate says otherwise, do not require CT. 58 // -1: Unless a delegate says otherwise, do not require CT.
55 // 0: Use the default implementation (e.g. production) 59 // 0: Use the default implementation (e.g. production)
56 // 1: Unless a delegate says otherwise, require CT. 60 // 1: Unless a delegate says otherwise, require CT.
57 int g_ct_required_for_testing = 0; 61 int g_ct_required_for_testing = 0;
58 62
59 bool IsDynamicExpectCTEnabled() { 63 bool IsDynamicExpectCTEnabled() {
60 return base::FeatureList::IsEnabled( 64 return base::FeatureList::IsEnabled(
61 TransportSecurityState::kDynamicExpectCTFeature); 65 TransportSecurityState::kDynamicExpectCTFeature);
62 } 66 }
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 if (hostname[hostname_offset - 1] == c) { 634 if (hostname[hostname_offset - 1] == c) {
631 bit_offset = current_offset; 635 bit_offset = current_offset;
632 hostname_offset--; 636 hostname_offset--;
633 break; 637 break;
634 } 638 }
635 } 639 }
636 } 640 }
637 } 641 }
638 642
639 bool DecodeHSTSPreload(const std::string& hostname, PreloadResult* out) { 643 bool DecodeHSTSPreload(const std::string& hostname, PreloadResult* out) {
644 #if !BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST)
645 if (g_hsts_source == nullptr)
xunjieli 2017/07/10 22:20:40 (transport_security_state_unittest.cc can choose t
646 return false;
647 #endif
648
640 bool found; 649 bool found;
641 if (!DecodeHSTSPreloadRaw(hostname, &found, out)) { 650 if (!DecodeHSTSPreloadRaw(hostname, &found, out)) {
642 DCHECK(false) << "Internal error in DecodeHSTSPreloadRaw for hostname " 651 DCHECK(false) << "Internal error in DecodeHSTSPreloadRaw for hostname "
643 << hostname; 652 << hostname;
644 return false; 653 return false;
645 } 654 }
646 655
647 return found; 656 return found;
648 } 657 }
649 658
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 } 736 }
728 737
729 } // namespace 738 } // namespace
730 739
731 // static 740 // static
732 const base::Feature TransportSecurityState::kDynamicExpectCTFeature{ 741 const base::Feature TransportSecurityState::kDynamicExpectCTFeature{
733 "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT}; 742 "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT};
734 743
735 void SetTransportSecurityStateSourceForTesting( 744 void SetTransportSecurityStateSourceForTesting(
736 const TransportSecurityStateSource* source) { 745 const TransportSecurityStateSource* source) {
737 g_hsts_source = source ? source : &kHSTSSource; 746 g_hsts_source = source;
Ryan Sleevi 2017/07/11 15:29:40 And then here g_hsts_source = source ? source : k
xunjieli 2017/07/11 16:45:21 Done.
747 }
748
749 const TransportSecurityStateSource*
750 GetTransportSecurityStateSourceForTesting() {
751 return g_hsts_source;
738 } 752 }
739 753
740 TransportSecurityState::TransportSecurityState() 754 TransportSecurityState::TransportSecurityState()
741 : enable_static_pins_(true), 755 : enable_static_pins_(true),
742 enable_static_expect_ct_(true), 756 enable_static_expect_ct_(true),
743 enable_static_expect_staple_(true), 757 enable_static_expect_staple_(true),
744 enable_pkp_bypass_for_local_trust_anchors_(true), 758 enable_pkp_bypass_for_local_trust_anchors_(true),
745 sent_hpkp_reports_cache_(kMaxReportCacheEntries), 759 sent_hpkp_reports_cache_(kMaxReportCacheEntries),
746 sent_expect_ct_reports_cache_(kMaxReportCacheEntries) { 760 sent_expect_ct_reports_cache_(kMaxReportCacheEntries) {
747 // Static pinning is only enabled for official builds to make sure that 761 // 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( 1859 TransportSecurityState::PKPStateIterator::PKPStateIterator(
1846 const TransportSecurityState& state) 1860 const TransportSecurityState& state)
1847 : iterator_(state.enabled_pkp_hosts_.begin()), 1861 : iterator_(state.enabled_pkp_hosts_.begin()),
1848 end_(state.enabled_pkp_hosts_.end()) { 1862 end_(state.enabled_pkp_hosts_.end()) {
1849 } 1863 }
1850 1864
1851 TransportSecurityState::PKPStateIterator::~PKPStateIterator() { 1865 TransportSecurityState::PKPStateIterator::~PKPStateIterator() {
1852 } 1866 }
1853 1867
1854 } // namespace net 1868 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698