OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/cert/cert_policy_enforcer.h" | 5 #include "net/cert/cert_policy_enforcer.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/build_time.h" | 9 #include "base/build_time.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 CT_COMPLIANCE_MAX, | 60 CT_COMPLIANCE_MAX, |
61 }; | 61 }; |
62 | 62 |
63 void LogCTComplianceStatusToUMA(CTComplianceStatus status) { | 63 void LogCTComplianceStatusToUMA(CTComplianceStatus status) { |
64 UMA_HISTOGRAM_ENUMERATION("Net.SSL_EVCertificateCTCompliance", status, | 64 UMA_HISTOGRAM_ENUMERATION("Net.SSL_EVCertificateCTCompliance", status, |
65 CT_COMPLIANCE_MAX); | 65 CT_COMPLIANCE_MAX); |
66 } | 66 } |
67 | 67 |
68 } // namespace | 68 } // namespace |
69 | 69 |
70 CertPolicyEnforcer::CertPolicyEnforcer(size_t num_ct_logs, | 70 CertPolicyEnforcer::CertPolicyEnforcer(bool require_ct_for_ev) |
71 bool require_ct_for_ev) | 71 : require_ct_for_ev_(require_ct_for_ev) { |
72 : num_ct_logs_(num_ct_logs), require_ct_for_ev_(require_ct_for_ev) { | |
73 } | 72 } |
74 | 73 |
75 CertPolicyEnforcer::~CertPolicyEnforcer() { | 74 CertPolicyEnforcer::~CertPolicyEnforcer() { |
76 } | 75 } |
77 | 76 |
78 bool CertPolicyEnforcer::DoesConformToCTEVPolicy( | 77 bool CertPolicyEnforcer::DoesConformToCTEVPolicy( |
79 X509Certificate* cert, | 78 X509Certificate* cert, |
80 const ct::EVCertsWhitelist* ev_whitelist, | 79 const ct::EVCertsWhitelist* ev_whitelist, |
81 const ct::CTVerifyResult& ct_result) { | 80 const ct::CTVerifyResult& ct_result) { |
82 if (!require_ct_for_ev_) | 81 if (!require_ct_for_ev_) |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 if (expiry_in_months_approx > 39) { | 149 if (expiry_in_months_approx > 39) { |
151 num_required_embedded_scts = 5; | 150 num_required_embedded_scts = 5; |
152 } else if (expiry_in_months_approx > 27) { | 151 } else if (expiry_in_months_approx > 27) { |
153 num_required_embedded_scts = 4; | 152 num_required_embedded_scts = 4; |
154 } else if (expiry_in_months_approx >= 15) { | 153 } else if (expiry_in_months_approx >= 15) { |
155 num_required_embedded_scts = 3; | 154 num_required_embedded_scts = 3; |
156 } else { | 155 } else { |
157 num_required_embedded_scts = 2; | 156 num_required_embedded_scts = 2; |
158 } | 157 } |
159 | 158 |
160 size_t min_acceptable_logs = std::max(num_ct_logs_, static_cast<size_t>(2u)); | 159 return num_embedded_scts >= num_required_embedded_scts; |
161 return num_embedded_scts >= | |
162 std::min(num_required_embedded_scts, min_acceptable_logs); | |
163 } | 160 } |
164 | 161 |
165 } // namespace net | 162 } // namespace net |
OLD | NEW |