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

Side by Side Diff: net/socket/ssl_client_socket_impl.cc

Issue 2225223002: Certificate Transparency: Change CTVerifyResult to have a single list (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: NetLog int to string 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 | « net/quic/chromium/crypto/proof_verifier_chromium_test.cc ('k') | net/ssl/ssl_info.cc » ('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 4
5 #include "net/socket/ssl_client_socket_impl.h" 5 #include "net/socket/ssl_client_socket_impl.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <openssl/bio.h> 8 #include <openssl/bio.h>
9 #include <openssl/bytestring.h> 9 #include <openssl/bytestring.h>
10 #include <openssl/err.h> 10 #include <openssl/err.h>
(...skipping 1794 matching lines...) Expand 10 before | Expand all | Expand 10 after
1805 // Note that this is a completely synchronous operation: The CT Log Verifier 1805 // Note that this is a completely synchronous operation: The CT Log Verifier
1806 // gets all the data it needs for SCT verification and does not do any 1806 // gets all the data it needs for SCT verification and does not do any
1807 // external communication. 1807 // external communication.
1808 cert_transparency_verifier_->Verify( 1808 cert_transparency_verifier_->Verify(
1809 server_cert_verify_result_.verified_cert.get(), ocsp_response_, sct_list, 1809 server_cert_verify_result_.verified_cert.get(), ocsp_response_, sct_list,
1810 &ct_verify_result_, net_log_); 1810 &ct_verify_result_, net_log_);
1811 1811
1812 ct_verify_result_.ct_policies_applied = true; 1812 ct_verify_result_.ct_policies_applied = true;
1813 ct_verify_result_.ev_policy_compliance = 1813 ct_verify_result_.ev_policy_compliance =
1814 ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY; 1814 ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY;
1815
1816 SCTList verified_scts =
1817 ct::SCTsMatchingStatus(ct_verify_result_.scts, ct::SCT_STATUS_OK);
1818
1815 if (server_cert_verify_result_.cert_status & CERT_STATUS_IS_EV) { 1819 if (server_cert_verify_result_.cert_status & CERT_STATUS_IS_EV) {
1816 scoped_refptr<ct::EVCertsWhitelist> ev_whitelist = 1820 scoped_refptr<ct::EVCertsWhitelist> ev_whitelist =
1817 SSLConfigService::GetEVCertsWhitelist(); 1821 SSLConfigService::GetEVCertsWhitelist();
1818 ct::EVPolicyCompliance ev_policy_compliance = 1822 ct::EVPolicyCompliance ev_policy_compliance =
1819 policy_enforcer_->DoesConformToCTEVPolicy( 1823 policy_enforcer_->DoesConformToCTEVPolicy(
1820 server_cert_verify_result_.verified_cert.get(), ev_whitelist.get(), 1824 server_cert_verify_result_.verified_cert.get(), ev_whitelist.get(),
1821 ct_verify_result_.verified_scts, net_log_); 1825 verified_scts, net_log_);
1822 ct_verify_result_.ev_policy_compliance = ev_policy_compliance; 1826 ct_verify_result_.ev_policy_compliance = ev_policy_compliance;
1823 if (ev_policy_compliance != 1827 if (ev_policy_compliance !=
1824 ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY && 1828 ct::EVPolicyCompliance::EV_POLICY_DOES_NOT_APPLY &&
1825 ev_policy_compliance != 1829 ev_policy_compliance !=
1826 ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_WHITELIST && 1830 ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_WHITELIST &&
1827 ev_policy_compliance != 1831 ev_policy_compliance !=
1828 ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_SCTS) { 1832 ct::EVPolicyCompliance::EV_POLICY_COMPLIES_VIA_SCTS) {
1829 server_cert_verify_result_.cert_status |= 1833 server_cert_verify_result_.cert_status |=
1830 CERT_STATUS_CT_COMPLIANCE_FAILED; 1834 CERT_STATUS_CT_COMPLIANCE_FAILED;
1831 server_cert_verify_result_.cert_status &= ~CERT_STATUS_IS_EV; 1835 server_cert_verify_result_.cert_status &= ~CERT_STATUS_IS_EV;
1832 } 1836 }
1833 } 1837 }
1834 ct_verify_result_.cert_policy_compliance = 1838 ct_verify_result_.cert_policy_compliance =
1835 policy_enforcer_->DoesConformToCertPolicy( 1839 policy_enforcer_->DoesConformToCertPolicy(
1836 server_cert_verify_result_.verified_cert.get(), 1840 server_cert_verify_result_.verified_cert.get(), verified_scts,
1837 ct_verify_result_.verified_scts, net_log_); 1841 net_log_);
1838 1842
1839 if (ct_verify_result_.cert_policy_compliance != 1843 if (ct_verify_result_.cert_policy_compliance !=
1840 ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS && 1844 ct::CertPolicyCompliance::CERT_POLICY_COMPLIES_VIA_SCTS &&
1841 transport_security_state_->ShouldRequireCT( 1845 transport_security_state_->ShouldRequireCT(
1842 host_and_port_.host(), server_cert_verify_result_.verified_cert.get(), 1846 host_and_port_.host(), server_cert_verify_result_.verified_cert.get(),
1843 server_cert_verify_result_.public_key_hashes)) { 1847 server_cert_verify_result_.public_key_hashes)) {
1844 server_cert_verify_result_.cert_status |= 1848 server_cert_verify_result_.cert_status |=
1845 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED; 1849 CERT_STATUS_CERTIFICATE_TRANSPARENCY_REQUIRED;
1846 return ERR_CERTIFICATE_TRANSPARENCY_REQUIRED; 1850 return ERR_CERTIFICATE_TRANSPARENCY_REQUIRED;
1847 } 1851 }
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
2332 if (rv != OK) { 2336 if (rv != OK) {
2333 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_CONNECT, rv); 2337 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_SSL_CONNECT, rv);
2334 return; 2338 return;
2335 } 2339 }
2336 2340
2337 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT, 2341 net_log_.EndEvent(NetLog::TYPE_SSL_CONNECT,
2338 base::Bind(&NetLogSSLInfoCallback, base::Unretained(this))); 2342 base::Bind(&NetLogSSLInfoCallback, base::Unretained(this)));
2339 } 2343 }
2340 2344
2341 } // namespace net 2345 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/crypto/proof_verifier_chromium_test.cc ('k') | net/ssl/ssl_info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698