Index: net/socket/ssl_client_socket_openssl.cc |
diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc |
index 1f193b7757af6c6338a5d0788ff5cf705fffeed1..3264ebb7058f8c4406cbf21f42af8b7632813374 100644 |
--- a/net/socket/ssl_client_socket_openssl.cc |
+++ b/net/socket/ssl_client_socket_openssl.cc |
@@ -1425,20 +1425,25 @@ void SSLClientSocketOpenSSL::VerifyCT() { |
server_cert_verify_result_.verified_cert.get(), ocsp_response, sct_list, |
&ct_verify_result_, net_log_); |
- if (policy_enforcer_ && |
- (server_cert_verify_result_.cert_status & CERT_STATUS_IS_EV)) { |
+ if (policy_enforcer_) { |
scoped_refptr<ct::EVCertsWhitelist> ev_whitelist = |
SSLConfigService::GetEVCertsWhitelist(); |
- if (!policy_enforcer_->DoesConformToCTEVPolicy( |
- server_cert_verify_result_.verified_cert.get(), ev_whitelist.get(), |
- ct_verify_result_, net_log_)) { |
+ if (!policy_enforcer_->DoesConformToCertPolicy( |
+ server_cert_verify_result_.verified_cert.get(), |
+ ct_verify_result_)) { |
+ server_cert_verify_result_.cert_status |= |
+ CERT_STATUS_CT_COMPLIANCE_FAILED; |
+ } |
+ if ((server_cert_verify_result_.cert_status & CERT_STATUS_IS_EV) && |
+ !policy_enforcer_->DoesConformToEVPolicy( |
+ server_cert_verify_result_.verified_cert.get(), |
+ server_cert_verify_result_.cert_status, ev_whitelist.get(), |
+ net_log_)) { |
// TODO(eranm): Log via the BoundNetLog, see crbug.com/437766 |
VLOG(1) << "EV certificate for " |
<< server_cert_verify_result_.verified_cert->subject() |
.GetDisplayName() |
<< " does not conform to CT policy, removing EV status."; |
- server_cert_verify_result_.cert_status |= |
- CERT_STATUS_CT_COMPLIANCE_FAILED; |
server_cert_verify_result_.cert_status &= ~CERT_STATUS_IS_EV; |
} |
} |