summaryrefslogtreecommitdiffstats
path: root/chrome/browser/certificate_manager_model.cc
diff options
context:
space:
mode:
authorbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 12:44:40 +0000
committerbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 12:44:40 +0000
commitb1c2a554239ab3be950f0d19581945eb115e7a6c (patch)
tree5688a12bb881cd14c5ed80d0ccbdf2208248f45c /chrome/browser/certificate_manager_model.cc
parent2a73485bfae7e697df34e6640b1593ccafe2cf53 (diff)
downloadchromium_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.cc59
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();