diff options
author | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 12:44:40 +0000 |
---|---|---|
committer | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 12:44:40 +0000 |
commit | b1c2a554239ab3be950f0d19581945eb115e7a6c (patch) | |
tree | 5688a12bb881cd14c5ed80d0ccbdf2208248f45c /chrome/browser/certificate_manager_model.cc | |
parent | 2a73485bfae7e697df34e6640b1593ccafe2cf53 (diff) | |
download | chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.zip chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.tar.gz chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.tar.bz2 |
Decouples certificates viewers from NSS to prepare support for OpenSSL.
This change is a pre-requisite for http://codereview.chromium.org/3529008/show
There are no functional changes, it's only refactoring existing code.
BUG=None
TEST=Go to an https:// page and check the certificate info.
Review URL: http://codereview.chromium.org/3565006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/certificate_manager_model.cc')
-rw-r--r-- | chrome/browser/certificate_manager_model.cc | 59 |
1 files changed, 12 insertions, 47 deletions
diff --git a/chrome/browser/certificate_manager_model.cc b/chrome/browser/certificate_manager_model.cc index 0f07d89..c53547c 100644 --- a/chrome/browser/certificate_manager_model.cc +++ b/chrome/browser/certificate_manager_model.cc @@ -4,52 +4,13 @@ #include "chrome/browser/certificate_manager_model.h" -#include <cert.h> - #include "base/i18n/time_formatting.h" #include "base/logging.h" #include "base/utf_string_conversions.h" -#include "chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h" -#include "chrome/third_party/mozilla_security_manager/nsNSSCertificate.h" +#include "chrome/common/net/x509_certificate_model.h" #include "net/base/net_errors.h" #include "net/base/x509_certificate.h" -// TODO(mattm): Try to make this use only X509Certificate stuff rather than NSS -// functions in some places. (Not very important at this time since this is only -// used w/NSS anyway.) - -// PSM = Mozilla's Personal Security Manager. -namespace psm = mozilla_security_manager; - -namespace { - -// Convert a char* return value from NSS into a std::string and free the NSS -// memory. If the arg is NULL, an empty string will be returned instead. -std::string Stringize(char* nss_text) { - std::string s; - if (nss_text) { - s = nss_text; - PORT_Free(nss_text); - } - return s; -} - -std::string GetCertNameOrNickname(CERTCertificate* os_cert) { - std::string name = psm::ProcessIDN( - Stringize(CERT_GetCommonName(&os_cert->subject))); - if (name.empty() && os_cert->nickname) { - name = os_cert->nickname; - // Hack copied from mozilla: Cut off text before first :, which seems to - // just be the token name. - size_t colon_pos = name.find(':'); - if (colon_pos != std::string::npos) - name = name.substr(colon_pos + 1); - } - return name; -} - -} // namespace - CertificateManagerModel::CertificateManagerModel(Observer* observer) : observer_(observer) { } @@ -70,7 +31,8 @@ void CertificateManagerModel::FilterAndBuildOrgGroupingMap( for (net::CertificateList::const_iterator i = cert_list_.begin(); i != cert_list_.end(); ++i) { net::X509Certificate* cert = i->get(); - net::CertType type = psm::GetCertType(cert->os_cert_handle()); + net::CertType type = + x509_certificate_model::GetType(cert->os_cert_handle()); if (type != filter_type) continue; @@ -90,14 +52,17 @@ string16 CertificateManagerModel::GetColumnText( string16 rv; switch (column) { case COL_SUBJECT_NAME: - rv = UTF8ToUTF16(GetCertNameOrNickname(cert.os_cert_handle())); + rv = UTF8ToUTF16( + x509_certificate_model::GetCertNameOrNickname(cert.os_cert_handle())); break; case COL_CERTIFICATE_STORE: - rv = UTF8ToUTF16(psm::GetCertTokenName(cert.os_cert_handle())); + rv = UTF8ToUTF16( + x509_certificate_model::GetTokenName(cert.os_cert_handle())); break; case COL_SERIAL_NUMBER: - rv = ASCIIToUTF16(Stringize(CERT_Hexify( - &cert.os_cert_handle()->serialNumber, PR_TRUE))); + rv = ASCIIToUTF16( + x509_certificate_model::GetSerialNumberHexified( + cert.os_cert_handle(), "")); break; case COL_EXPIRES_ON: if (!cert.valid_expiry().is_null()) { @@ -106,8 +71,8 @@ string16 CertificateManagerModel::GetColumnText( } break; case COL_EMAIL_ADDRESS: - if (cert.os_cert_handle()->emailAddr) - rv = UTF8ToUTF16(cert.os_cert_handle()->emailAddr); + rv = UTF8ToUTF16( + x509_certificate_model::GetEmailAddress(cert.os_cert_handle())); break; default: NOTREACHED(); |