a first pass at the script to import the certificate for Windows
authorBrendan Forster <brendan@github.com>
Thu, 20 Apr 2017 11:12:32 +0000 (21:12 +1000)
committerBrendan Forster <brendan@github.com>
Thu, 20 Apr 2017 11:12:32 +0000 (21:12 +1000)
atom/browser/ui/certificate_trust_win.cc

index ecc7ccf..18ef952 100644 (file)
@@ -5,6 +5,7 @@
 #include "atom/browser/ui/certificate_trust.h"
 
 #include <windows.h>  // windows.h must be included first
+#include <wincrypt.h>
 
 namespace certificate_trust {
 
@@ -13,6 +14,24 @@ void ShowCertificateTrust(atom::NativeWindow* parent_window,
                           const std::string& message,
                           const ShowTrustCallback& callback) {
 
+    BOOL result = false;
+    HCERTSTORE hCertStore = NULL;
+    PCCERT_CONTEXT pCertContext = cert->CreateOSCertChainForCert();
+
+    // opening the Trusted Root Certificate store for the current user
+    hCertStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_CURRENT_USER, L"Root");
+
+    // NOTE: this is a blocking call which displays a prompt to the user to
+    //       confirm they trust this certificate
+    result = CertAddCertificateContextToStore(hCertStore, pCertContext, CERT_STORE_ADD_REPLACE_EXISTING, NULL);
+
+    // close certificate store
+    CertCloseStore(hCertStore, CERT_CLOSE_STORE_FORCE_FLAG);
+
+    // free certificate
+    CertFreeCertificateContext(pCertContext);
+
+    &callback;
 }
 
 }  // namespace certificate_trust