From a1599cf881ee1454a86eef06a36399c69f6d21a0 Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Thu, 27 Apr 2017 15:06:23 +1000 Subject: [PATCH] focus on the self-signed certificate flow here --- atom/browser/ui/certificate_trust_win.cc | 55 +++++------------------- 1 file changed, 10 insertions(+), 45 deletions(-) diff --git a/atom/browser/ui/certificate_trust_win.cc b/atom/browser/ui/certificate_trust_win.cc index a5f8ec31b5e9..a3a397b50646 100644 --- a/atom/browser/ui/certificate_trust_win.cc +++ b/atom/browser/ui/certificate_trust_win.cc @@ -12,24 +12,6 @@ namespace certificate_trust { -BOOL AddCertificate(const HCERTSTORE certStore, - const PCCERT_CONTEXT certContext, - const scoped_refptr& cert) { - auto result = CertAddCertificateContextToStore( - certStore, - certContext, - CERT_STORE_ADD_REPLACE_EXISTING, - NULL); - - if (result) { - // force Chromium to reload it's database for this certificate - auto cert_db = net::CertDatabase::GetInstance(); - cert_db->NotifyObserversCertDBChanged(cert.get()); - } - - return result; -} - // Add the provided certificate to the Trusted Root Certificate Authorities // store for the current user. // @@ -47,31 +29,19 @@ BOOL AddToTrustedRootStore(const PCCERT_CONTEXT certContext, return false; } - auto result = AddCertificate(rootCertStore, certContext, cert); + auto result = CertAddCertificateContextToStore( + rootCertStore, + certContext, + CERT_STORE_ADD_REPLACE_EXISTING, + NULL); - CertCloseStore(rootCertStore, CERT_CLOSE_STORE_FORCE_FLAG); - - return result; -} - -// Add the provided certificate to the Personal -// certificate store for the current user. -BOOL AddToPersonalStore(const PCCERT_CONTEXT certContext, - const scoped_refptr& cert) { - auto userCertStore = CertOpenStore( - CERT_STORE_PROV_SYSTEM, - 0, - NULL, - CERT_SYSTEM_STORE_CURRENT_USER, - L"My"); - - if (userCertStore == NULL) { - return false; + if (result) { + // force Chromium to reload it's database for this certificate + auto cert_db = net::CertDatabase::GetInstance(); + cert_db->NotifyObserversCertDBChanged(cert.get()); } - auto result = AddCertificate(userCertStore, certContext, cert); - - CertCloseStore(userCertStore, CERT_CLOSE_STORE_FORCE_FLAG); + CertCloseStore(rootCertStore, CERT_CLOSE_STORE_FORCE_FLAG); return result; } @@ -111,11 +81,6 @@ void ShowCertificateTrust(atom::NativeWindow* parent_window, NULL, &chainContext)) { switch (chainContext->TrustStatus.dwErrorStatus) { - case CERT_TRUST_NO_ERROR: - AddToPersonalStore(pCertContext, cert); - break; - - case CERT_TRUST_IS_UNTRUSTED_ROOT: case CERT_TRUST_IS_SELF_SIGNED: AddToTrustedRootStore(pCertContext, cert); break;