diff options
author | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 19:34:05 +0000 |
---|---|---|
committer | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 19:34:05 +0000 |
commit | 7f148bda70c1bf421f2b388cefe6cf345c9b2c7b (patch) | |
tree | 044d0f2079be7712b60e48f99c402f754a047fcd /chrome/third_party | |
parent | 97287309347a0f2fb7cda34bfe18b9ee067cb3f2 (diff) | |
download | chromium_src-7f148bda70c1bf421f2b388cefe6cf345c9b2c7b.zip chromium_src-7f148bda70c1bf421f2b388cefe6cf345c9b2c7b.tar.gz chromium_src-7f148bda70c1bf421f2b388cefe6cf345c9b2c7b.tar.bz2 |
x509_certificate_model: remove unused code, move nss-only stuff out of public interface
Fix x509_certificate_model::RegisterDynamicOids not getting called since gtk certificate viewer was removed.
BUG=338887,371171
Review URL: https://codereview.chromium.org/271753004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/third_party')
-rw-r--r-- | chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp | 91 | ||||
-rw-r--r-- | chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h | 9 |
2 files changed, 52 insertions, 48 deletions
diff --git a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp index 615ffa6..58f7008 100644 --- a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp +++ b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp @@ -46,6 +46,7 @@ #include <unicode/uidna.h> #include "base/i18n/number_formatting.h" +#include "base/lazy_instance.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" @@ -104,10 +105,6 @@ std::string ProcessRawBytes(SECItem* data) { return x509_certificate_model::ProcessRawBytes(data->data, data->len); } -} // namespace - -namespace mozilla_security_manager { - SECOidTag ms_cert_ext_certtype = SEC_OID_UNKNOWN; SECOidTag ms_certsrv_ca_version = SEC_OID_UNKNOWN; SECOidTag ms_nt_principal_name = SEC_OID_UNKNOWN; @@ -130,41 +127,48 @@ SECOidTag eku_netscape_international_step_up = SEC_OID_UNKNOWN; SECOidTag cert_attribute_business_category = SEC_OID_UNKNOWN; SECOidTag cert_attribute_ev_incorporation_country = SEC_OID_UNKNOWN; -void RegisterDynamicOids() { - if (ms_cert_ext_certtype != SEC_OID_UNKNOWN) - return; - - ms_cert_ext_certtype = RegisterDynamicOid("1.3.6.1.4.1.311.20.2"); - ms_certsrv_ca_version = RegisterDynamicOid("1.3.6.1.4.1.311.21.1"); - ms_nt_principal_name = RegisterDynamicOid("1.3.6.1.4.1.311.20.2.3"); - ms_ntds_replication = RegisterDynamicOid("1.3.6.1.4.1.311.25.1"); - - eku_ms_individual_code_signing = RegisterDynamicOid("1.3.6.1.4.1.311.2.1.21"); - eku_ms_commercial_code_signing = RegisterDynamicOid("1.3.6.1.4.1.311.2.1.22"); - eku_ms_trust_list_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.1"); - eku_ms_time_stamping = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.2"); - eku_ms_server_gated_crypto = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.3"); - eku_ms_encrypting_file_system = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.4"); - eku_ms_file_recovery = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.4.1"); - eku_ms_windows_hardware_driver_verification = RegisterDynamicOid( - "1.3.6.1.4.1.311.10.3.5"); - eku_ms_qualified_subordination = RegisterDynamicOid( - "1.3.6.1.4.1.311.10.3.10"); - eku_ms_key_recovery = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.11"); - eku_ms_document_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.12"); - eku_ms_lifetime_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.13"); - eku_ms_smart_card_logon = RegisterDynamicOid("1.3.6.1.4.1.311.20.2.2"); - eku_ms_key_recovery_agent = RegisterDynamicOid("1.3.6.1.4.1.311.21.6"); - eku_netscape_international_step_up = RegisterDynamicOid( - "2.16.840.1.113730.4.1"); - - // These two OIDs will be built-in as SEC_OID_BUSINESS_CATEGORY and - // SEC_OID_EV_INCORPORATION_COUNTRY starting in NSS 3.13. Until then, - // we need to add them dynamically. - cert_attribute_business_category = RegisterDynamicOid("2.5.4.15"); - cert_attribute_ev_incorporation_country = RegisterDynamicOid( - "1.3.6.1.4.1.311.60.2.1.3"); -} +class DynamicOidRegisterer { + public: + DynamicOidRegisterer() { + ms_cert_ext_certtype = RegisterDynamicOid("1.3.6.1.4.1.311.20.2"); + ms_certsrv_ca_version = RegisterDynamicOid("1.3.6.1.4.1.311.21.1"); + ms_nt_principal_name = RegisterDynamicOid("1.3.6.1.4.1.311.20.2.3"); + ms_ntds_replication = RegisterDynamicOid("1.3.6.1.4.1.311.25.1"); + + eku_ms_individual_code_signing = RegisterDynamicOid("1.3.6.1.4.1.311.2.1.21"); + eku_ms_commercial_code_signing = RegisterDynamicOid("1.3.6.1.4.1.311.2.1.22"); + eku_ms_trust_list_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.1"); + eku_ms_time_stamping = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.2"); + eku_ms_server_gated_crypto = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.3"); + eku_ms_encrypting_file_system = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.4"); + eku_ms_file_recovery = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.4.1"); + eku_ms_windows_hardware_driver_verification = RegisterDynamicOid( + "1.3.6.1.4.1.311.10.3.5"); + eku_ms_qualified_subordination = RegisterDynamicOid( + "1.3.6.1.4.1.311.10.3.10"); + eku_ms_key_recovery = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.11"); + eku_ms_document_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.12"); + eku_ms_lifetime_signing = RegisterDynamicOid("1.3.6.1.4.1.311.10.3.13"); + eku_ms_smart_card_logon = RegisterDynamicOid("1.3.6.1.4.1.311.20.2.2"); + eku_ms_key_recovery_agent = RegisterDynamicOid("1.3.6.1.4.1.311.21.6"); + eku_netscape_international_step_up = RegisterDynamicOid( + "2.16.840.1.113730.4.1"); + + // These two OIDs will be built-in as SEC_OID_BUSINESS_CATEGORY and + // SEC_OID_EV_INCORPORATION_COUNTRY starting in NSS 3.13. Until then, + // we need to add them dynamically. + cert_attribute_business_category = RegisterDynamicOid("2.5.4.15"); + cert_attribute_ev_incorporation_country = RegisterDynamicOid( + "1.3.6.1.4.1.311.60.2.1.3"); + } +}; + +static base::LazyInstance<DynamicOidRegisterer>::Leaky + g_dynamic_oid_registerer = LAZY_INSTANCE_INITIALIZER; + +} // namespace + +namespace mozilla_security_manager { std::string DumpOidString(SECItem* oid) { char* pr_string = CERT_GetOidString(oid); @@ -178,6 +182,8 @@ std::string DumpOidString(SECItem* oid) { } std::string GetOIDText(SECItem* oid) { + g_dynamic_oid_registerer.Get(); + int string_id; SECOidTag oid_tag = SECOID_FindOIDTag(oid); switch (oid_tag) { @@ -469,6 +475,7 @@ std::string ProcessGeneralName(PRArenaPool* arena, switch (current->type) { case certOtherName: { key = GetOIDText(¤t->name.OthName.oid); + // g_dynamic_oid_registerer.Get() will have been run by GetOIDText. SECOidTag oid_tag = SECOID_FindOIDTag(¤t->name.OthName.oid); if (oid_tag == ms_nt_principal_name) { // The type of this name is apparently nowhere explicitly @@ -985,7 +992,11 @@ std::string ProcessExtKeyUsage(SECItem* extension_data) { return rv; } -std::string ProcessExtensionData(SECOidTag oid_tag, SECItem* extension_data) { +std::string ProcessExtensionData(CERTCertExtension* extension) { + g_dynamic_oid_registerer.Get(); + SECOidTag oid_tag = SECOID_FindOIDTag(&extension->id); + SECItem* extension_data = &extension->value; + // This (and its sub-functions) are based on the same-named functions in // security/manager/ssl/src/nsNSSCertHelper.cpp. switch (oid_tag) { diff --git a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h index 96fae9f..ffa3ef5 100644 --- a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h +++ b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h @@ -50,13 +50,6 @@ namespace mozilla_security_manager { -extern SECOidTag ms_cert_ext_certtype; -extern SECOidTag ms_certsrv_ca_version; -extern SECOidTag ms_nt_principal_name; -extern SECOidTag ms_ntds_replication; - -void RegisterDynamicOids(); - std::string DumpOidString(SECItem* oid); std::string GetOIDText(SECItem* oid); @@ -78,7 +71,7 @@ std::string ProcessNSCertTypeExtension(SECItem* extension_data); std::string ProcessKeyUsageBitString(SECItem* bitstring, char sep); std::string ProcessKeyUsageExtension(SECItem* extension_data); std::string ProcessExtKeyUsage(SECItem* extension_data); -std::string ProcessExtensionData(SECOidTag oid_tag, SECItem* extension_data); +std::string ProcessExtensionData(CERTCertExtension* extension); std::string ProcessSubjectPublicKeyInfo(CERTSubjectPublicKeyInfo* spki); net::CertType GetCertType(CERTCertificate *cert); |