Index: net/base/cert_verify_proc_mac.cc |
diff --git a/net/base/cert_verify_proc_mac.cc b/net/base/cert_verify_proc_mac.cc |
index 49798b5afd00d28dedddb298d21e0bef15ab5bfc..2cbffef8a23fa554e3710fa23acb144bdde3703b 100644 |
--- a/net/base/cert_verify_proc_mac.cc |
+++ b/net/base/cert_verify_proc_mac.cc |
@@ -157,6 +157,7 @@ OSStatus CreateTrustPolicies(const std::string& hostname, |
// revocation preference. |
status = x509_util::CreateRevocationPolicies( |
(flags & X509Certificate::VERIFY_REV_CHECKING_ENABLED), |
+ (flags & X509Certificate::VERIFY_REV_CHECKING_ENABLED_EV_ONLY), |
local_policies); |
if (status) |
return status; |
@@ -380,6 +381,8 @@ int CertVerifyProcMac::VerifyInternal(X509Certificate* cert, |
tp_action_data.ActionFlags = CSSM_TP_ACTION_FETCH_CERT_FROM_NET | |
CSSM_TP_ACTION_TRUST_SETTINGS; |
+ // Note: For EV certificates, the Apple TP will handle setting these flags |
+ // as part of EV evaluation. |
if (flags & X509Certificate::VERIFY_REV_CHECKING_ENABLED) { |
// Require a positive result from an OCSP responder or a CRL (or both) |
// for every certificate in the chain. The Apple TP automatically |
@@ -564,6 +567,8 @@ int CertVerifyProcMac::VerifyInternal(X509Certificate* cert, |
if (CFDictionaryContainsKey(ev_dict, |
kSecEVOrganizationName)) { |
verify_result->cert_status |= CERT_STATUS_IS_EV; |
+ if (flags & X509Certificate::VERIFY_REV_CHECKING_ENABLED_EV_ONLY) |
+ verify_result->cert_status |= CERT_STATUS_REV_CHECKING_ENABLED; |
} |
} |
} |