From: Jan Engelhardt Date: Thu, 2 Apr 2015 12:44:23 +0200 Subject: Remove EV certificates The team chose to let EV certificates appear just like normal certificates. The web of trust is considered a failure in itself, so do not give users a false sense of extra security with EV certs. Instead, let them appear just like regular ones. --- net/cert/ev_root_ca_metadata.cc | 13 +++++++++---- net/cert/ev_root_ca_metadata.h | 6 ++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc --- a/net/cert/ev_root_ca_metadata.cc +++ b/net/cert/ev_root_ca_metadata.cc @@ -4,7 +4,7 @@ #include "net/cert/ev_root_ca_metadata.h" -#if defined(USE_NSS_CERTS) +#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA) #include #include #include @@ -19,7 +19,7 @@ #include "base/logging.h" #include "base/strings/string_piece.h" #include "net/der/input.h" -#if defined(USE_NSS_CERTS) +#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA) #include "crypto/nss_util.h" #elif defined(PLATFORM_USES_CHROMIUM_EV_METADATA) || defined(OS_WIN) #include "third_party/boringssl/src/include/openssl/bytestring.h" @@ -763,7 +763,7 @@ EVRootCAMetadata* EVRootCAMetadata::GetInstance() { return g_ev_root_ca_metadata.Pointer(); } -#if defined(USE_NSS_CERTS) +#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA) namespace { // Converts a DER-encoded OID (without leading tag and length) to a SECOidTag. @@ -1045,6 +1045,11 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { // metadata. // +bool EVRootCAMetadata::IsCaBrowserForumEvOid(PolicyOID policy_oid) { + LOG(WARNING) << "Not implemented"; + return false; +} + bool EVRootCAMetadata::IsEVPolicyOID(PolicyOID policy_oid) const { LOG(WARNING) << "Not implemented"; return false; @@ -1084,7 +1089,7 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) { EVRootCAMetadata::EVRootCAMetadata() { // Constructs the object from the raw metadata in kEvRootCaMetadata. -#if defined(USE_NSS_CERTS) +#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA) crypto::EnsureNSSInit(); for (const auto& ev_root : kEvRootCaMetadata) { diff --git a/net/cert/ev_root_ca_metadata.h b/net/cert/ev_root_ca_metadata.h --- a/net/cert/ev_root_ca_metadata.h +++ b/net/cert/ev_root_ca_metadata.h @@ -24,7 +24,7 @@ defined(OS_FUCHSIA) // When not defined, the EVRootCAMetadata singleton is a dumb placeholder // implementation that will fail all EV lookup operations. -#define PLATFORM_USES_CHROMIUM_EV_METADATA +//#define PLATFORM_USES_CHROMIUM_EV_METADATA #endif namespace base { @@ -68,12 +68,10 @@ class NET_EXPORT_PRIVATE EVRootCAMetadata { bool HasEVPolicyOIDGivenBytes(const SHA256HashValue& fingerprint, const der::Input& policy_oid) const; -#if defined(PLATFORM_USES_CHROMIUM_EV_METADATA) // Returns true if |policy_oid| is for 2.23.140.1.1 (CA/Browser Forum's // Extended Validation Policy). This is used as a hack by the // platform-specific CertVerifyProcs when doing EV verification. static bool IsCaBrowserForumEvOid(PolicyOID policy_oid); -#endif // AddEVCA adds an EV CA to the list of known EV CAs with the given policy. // |policy| is expressed as a string of dotted numbers. It returns true on @@ -90,7 +88,7 @@ class NET_EXPORT_PRIVATE EVRootCAMetadata { EVRootCAMetadata(); ~EVRootCAMetadata(); -#if defined(USE_NSS_CERTS) +#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA) using PolicyOIDMap = std::map>; // RegisterOID registers |policy|, a policy OID in dotted string form, and -- 2.17.1