Module: wine Branch: master Commit: abc2aec88c98fffbebfb94d797eb7ad30c26ebc9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=abc2aec88c98fffbebfb94d797...
Author: Juan Lang juan.lang@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;