Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3057)

Unified Diff: chrome/browser/ui/webui/certificate_viewer_webui.cc

Issue 376753002: Fix webui cert viewer showing wrong cert chain on NSS and no chain on OpenSSL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review changes Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/certificate_viewer_webui.cc
diff --git a/chrome/browser/ui/webui/certificate_viewer_webui.cc b/chrome/browser/ui/webui/certificate_viewer_webui.cc
index 4969b3e2ae8431acdc0df1abd4ae3cffae43f45d..b5370d3ccd3d423ec44a058eeafed2f116126dbc 100644
--- a/chrome/browser/ui/webui/certificate_viewer_webui.cc
+++ b/chrome/browser/ui/webui/certificate_viewer_webui.cc
@@ -42,11 +42,10 @@ CertificateViewerModalDialog::CertificateViewerModalDialog(
net::X509Certificate* cert)
: cert_(cert), webui_(NULL), window_(NULL) {
// Construct the dialog title from the certificate.
- net::X509Certificate::OSCertHandles cert_chain;
- x509_certificate_model::GetCertChainFromCert(cert_->os_cert_handle(),
- &cert_chain);
- title_ = l10n_util::GetStringFUTF16(IDS_CERT_INFO_DIALOG_TITLE,
- base::UTF8ToUTF16(x509_certificate_model::GetTitle(cert_chain.front())));
+ title_ = l10n_util::GetStringFUTF16(
+ IDS_CERT_INFO_DIALOG_TITLE,
+ base::UTF8ToUTF16(
+ x509_certificate_model::GetTitle(cert_->os_cert_handle())));
}
CertificateViewerModalDialog::~CertificateViewerModalDialog() {
@@ -103,7 +102,10 @@ std::string CertificateViewerModalDialog::GetDialogArgs() const {
// Get the certificate chain.
net::X509Certificate::OSCertHandles cert_chain;
- x509_certificate_model::GetCertChainFromCert(cert_hnd, &cert_chain);
+ cert_chain.push_back(cert_->os_cert_handle());
+ const net::X509Certificate::OSCertHandles& certs =
+ cert_->GetIntermediateCertificates();
+ cert_chain.insert(cert_chain.end(), certs.begin(), certs.end());
// Certificate usage.
std::vector<std::string> usages;
@@ -251,9 +253,12 @@ ui::ModalType CertificateViewerDialog::GetDialogModalType() const {
CertificateViewerDialogHandler::CertificateViewerDialogHandler(
CertificateViewerModalDialog* dialog,
- net::X509Certificate* cert) : cert_(cert), dialog_(dialog) {
- x509_certificate_model::GetCertChainFromCert(cert_->os_cert_handle(),
- &cert_chain_);
+ net::X509Certificate* cert)
+ : cert_(cert), dialog_(dialog) {
+ cert_chain_.push_back(cert_->os_cert_handle());
+ const net::X509Certificate::OSCertHandles& certs =
+ cert_->GetIntermediateCertificates();
+ cert_chain_.insert(cert_chain_.end(), certs.begin(), certs.end());
}
CertificateViewerDialogHandler::~CertificateViewerDialogHandler() {
@@ -278,7 +283,8 @@ void CertificateViewerDialogHandler::ExportCertificate(
platform_util::GetTopLevel(dialog_->GetNativeWebContentsModalDialog());
ShowCertExportDialog(web_ui()->GetWebContents(),
window,
- cert_chain_[cert_index]);
+ cert_chain_.begin() + cert_index,
+ cert_chain_.end());
}
void CertificateViewerDialogHandler::RequestCertificateFields(

Powered by Google App Engine
This is Rietveld 408576698