summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/certificate_viewer.cc
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 01:46:57 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 01:46:57 +0000
commitb1f18494233f64c720729039222d9ad66c8ae95f (patch)
tree0f2848bdedba2a46c3d3b3fc8c7855d2786fd14d /chrome/browser/gtk/certificate_viewer.cc
parentb1995975f4e6b17df513a6d0dae44b37c46c5e00 (diff)
downloadchromium_src-b1f18494233f64c720729039222d9ad66c8ae95f.zip
chromium_src-b1f18494233f64c720729039222d9ad66c8ae95f.tar.gz
chromium_src-b1f18494233f64c720729039222d9ad66c8ae95f.tar.bz2
Linux: implement Client SSL Certificate selection UI
BUG=25241 TEST=Visit site for which you have a client certificate, verify that dialog comes up and you can select your cert (or cancel) Review URL: http://codereview.chromium.org/661241 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40587 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/certificate_viewer.cc')
-rw-r--r--chrome/browser/gtk/certificate_viewer.cc40
1 files changed, 9 insertions, 31 deletions
diff --git a/chrome/browser/gtk/certificate_viewer.cc b/chrome/browser/gtk/certificate_viewer.cc
index a4cc92b..75a9d4a 100644
--- a/chrome/browser/gtk/certificate_viewer.cc
+++ b/chrome/browser/gtk/certificate_viewer.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/gtk/gtk_util.h"
#include "chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h"
#include "chrome/third_party/mozilla_security_manager/nsNSSCertificate.h"
+#include "chrome/third_party/mozilla_security_manager/nsUsageArrayHelper.h"
#include "grit/generated_resources.h"
// PSM = Mozilla's Personal Security Manager.
@@ -255,37 +256,14 @@ void CertificateViewer::InitGeneralPage() {
l10n_util::GetStringUTF8(IDS_CERT_INFO_VERIFIED_USAGES_GROUP)),
FALSE, FALSE, 0);
- SECCertificateUsage usages = 0;
- // TODO(wtc): See if we should use X509Certificate::Verify instead.
- if (CERT_VerifyCertificateNow(CERT_GetDefaultCertDB(), cert, PR_TRUE,
- certificateUsageCheckAllUsages,
- NULL, &usages) == SECSuccess) {
- // List of usages to display is borrowed from
- // mozilla/source/security/manager/ssl/src/nsUsageArrayHelper.cpp
- static const struct {
- SECCertificateUsage usage;
- int string_id;
- } usage_string_map[] = {
- {certificateUsageSSLClient, IDS_CERT_USAGE_SSL_CLIENT},
- {certificateUsageSSLServer, IDS_CERT_USAGE_SSL_SERVER},
- {certificateUsageSSLServerWithStepUp,
- IDS_CERT_USAGE_SSL_SERVER_WITH_STEPUP},
- {certificateUsageEmailSigner, IDS_CERT_USAGE_EMAIL_SIGNER},
- {certificateUsageEmailRecipient, IDS_CERT_USAGE_EMAIL_RECEIVER},
- {certificateUsageObjectSigner, IDS_CERT_USAGE_OBJECT_SIGNER},
- {certificateUsageSSLCA, IDS_CERT_USAGE_SSL_CA},
- {certificateUsageStatusResponder, IDS_CERT_USAGE_STATUS_RESPONDER},
- };
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(usage_string_map); ++i) {
- if (usages & usage_string_map[i].usage)
- gtk_box_pack_start(
- GTK_BOX(uses_vbox),
- gtk_util::IndentWidget(gtk_util::LeftAlignMisc(gtk_label_new(
- l10n_util::GetStringUTF8(
- usage_string_map[i].string_id).c_str()))),
- FALSE, FALSE, 0);
- }
- }
+ std::vector<std::string> usages;
+ psm::GetCertUsageStrings(cert, &usages);
+ for (size_t i = 0; i < usages.size(); ++i)
+ gtk_box_pack_start(
+ GTK_BOX(uses_vbox),
+ gtk_util::IndentWidget(gtk_util::LeftAlignMisc(gtk_label_new(
+ usages[i].c_str()))),
+ FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(general_page_vbox_), gtk_hseparator_new(),
FALSE, FALSE, 0);