Juan Lang : crypt32: Use I_CertUpdateStore in registry stores.

Alexandre Julliard julliard at winehq.org
Fri Oct 19 08:35:47 CDT 2007


Module: wine
Branch: master
Commit: abc2aec88c98fffbebfb94d797eb7ad30c26ebc9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=abc2aec88c98fffbebfb94d797eb7ad30c26ebc9

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Oct 18 11:13:20 2007 -0700

crypt32: Use I_CertUpdateStore in registry stores.

---

 dlls/crypt32/crypt32_private.h |    1 -
 dlls/crypt32/regstore.c        |   10 ++++++++--
 dlls/crypt32/store.c           |    2 +-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h
index 63d7c2d..8975522 100644
--- a/dlls/crypt32/crypt32_private.h
+++ b/dlls/crypt32/crypt32_private.h
@@ -233,7 +233,6 @@ typedef struct WINE_CRYPTCERTSTORE
 void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags,
  CertStoreType type);
 void CRYPT_FreeStore(PWINECRYPT_CERTSTORE store);
-void CRYPT_EmptyStore(HCERTSTORE store);
 BOOL WINAPI I_CertUpdateStore(HCERTSTORE store1, HCERTSTORE store2, DWORD unk0,
  DWORD unk1);
 
diff --git a/dlls/crypt32/regstore.c b/dlls/crypt32/regstore.c
index 3754011..35928b8 100644
--- a/dlls/crypt32/regstore.c
+++ b/dlls/crypt32/regstore.c
@@ -442,11 +442,17 @@ static BOOL WINAPI CRYPT_RegControl(HCERTSTORE hCertStore, DWORD dwFlags,
     switch (dwCtrlType)
     {
     case CERT_STORE_CTRL_RESYNC:
+    {
+        HCERTSTORE memStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
+         CERT_STORE_CREATE_NEW_FLAG, NULL);
+
         CRYPT_RegFlushStore(store, FALSE);
-        CRYPT_EmptyStore(store->memStore);
-        CRYPT_RegReadFromReg(store->key, store->memStore);
+        CRYPT_RegReadFromReg(store->key, memStore);
+        I_CertUpdateStore(store->memStore, memStore, 0, 0);
+        CertCloseStore(memStore, 0);
         ret = TRUE;
         break;
+    }
     case CERT_STORE_CTRL_COMMIT:
         ret = CRYPT_RegFlushStore(store,
          dwFlags & CERT_STORE_CTRL_COMMIT_FORCE_FLAG);
diff --git a/dlls/crypt32/store.c b/dlls/crypt32/store.c
index 28c37d2..57a2bd8 100644
--- a/dlls/crypt32/store.c
+++ b/dlls/crypt32/store.c
@@ -199,7 +199,7 @@ static BOOL CRYPT_MemDeleteCrl(PWINECRYPT_CERTSTORE store, void *pCrlContext)
     return TRUE;
 }
 
-void CRYPT_EmptyStore(HCERTSTORE store)
+static void CRYPT_EmptyStore(HCERTSTORE store)
 {
     PCCERT_CONTEXT cert;
     PCCRL_CONTEXT crl;




More information about the wine-cvs mailing list