87 TRACE(
"(%p, %p, %p, %p)\n", store,
cert, toReplace, ppStoreContext);
91 ppStoreContext,
TRUE);
99 ppStoreContext,
TRUE);
104 if (
ret && ppStoreContext)
105 (*(
cert_t**)ppStoreContext)->ctx.hCertStore = store;
121 ret->ctx.hCertStore = store;
145 TRACE(
"(%p, %p, %p, %p)\n", store,
crl, toReplace, ppStoreContext);
149 ppStoreContext,
TRUE);
165 ppStoreContext,
TRUE);
171 if (
ret && ppStoreContext)
172 (*(
crl_t**)ppStoreContext)->ctx.hCertStore = store;
188 ret->ctx.hCertStore = store;
212 TRACE(
"(%p, %p, %p, %p)\n", store, ctl, toReplace, ppStoreContext);
216 ppStoreContext,
TRUE);
232 ppStoreContext,
TRUE);
238 if (
ret && ppStoreContext)
239 (*(
ctl_t**)ppStoreContext)->ctx.hCertStore = store;
255 ret->ctx.hCertStore = store;
264 TRACE(
"(%p, %p)\n", store, ctl);
278 TRACE(
"(%p, %08x, %d, %p)\n", store,
dwFlags, dwCtrlType,
322 ret->memStore = memStore;
325 ret->provCloseStore =
386 (
void **)&provOpenFunc, &hFunc);
391 provInfo.
cbSize =
sizeof(provInfo);
393 provOpenFunc(lpszStoreProvider, dwEncodingType, hCryptProv,
403 if (provOpenFunc(lpszStoreProvider, dwEncodingType, hCryptProv,
404 dwFlags, pvPara, memStore, &provInfo))
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void * context_ptr(context_t *context)
void CRYPT_FreeStore(WINECRYPT_CERTSTORE *store) DECLSPEC_HIDDEN
void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags, CertStoreType type, const store_vtbl_t *) DECLSPEC_HIDDEN
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
#define ERROR_ACCESS_DENIED
#define ERROR_FILE_NOT_FOUND
LPCWSTR LPCWSTR LPCWSTR DWORD dwFlags
WINECRYPT_CERTSTORE * CRYPT_ProvOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
WINECRYPT_CERTSTORE * CRYPT_ProvCreateStore(DWORD dwFlags, WINECRYPT_CERTSTORE *memStore, const CERT_STORE_PROV_INFO *pProvInfo)
static BOOL ProvStore_addCRL(WINECRYPT_CERTSTORE *store, context_t *crl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static BOOL ProvStore_deleteCert(WINECRYPT_CERTSTORE *store, context_t *context)
static void ProvStore_addref(WINECRYPT_CERTSTORE *store)
static context_t * ProvStore_enumCert(WINECRYPT_CERTSTORE *store, context_t *prev)
static BOOL ProvStore_deleteCRL(WINECRYPT_CERTSTORE *store, context_t *crl)
static BOOL ProvStore_deleteCTL(WINECRYPT_CERTSTORE *store, context_t *ctl)
static BOOL ProvStore_addCTL(WINECRYPT_CERTSTORE *store, context_t *ctl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static BOOL ProvStore_addCert(WINECRYPT_CERTSTORE *store, context_t *cert, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
static context_t * ProvStore_enumCTL(WINECRYPT_CERTSTORE *store, context_t *prev)
static BOOL ProvStore_control(WINECRYPT_CERTSTORE *cert_store, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
static const store_vtbl_t ProvStoreVtbl
static context_t * ProvStore_enumCRL(WINECRYPT_CERTSTORE *store, context_t *prev)
static DWORD ProvStore_release(WINECRYPT_CERTSTORE *cert_store, DWORD flags)
struct _WINE_PROVIDERSTORE WINE_PROVIDERSTORE
static void ProvStore_releaseContext(WINECRYPT_CERTSTORE *store, context_t *context)
const store_vtbl_t * vtbl
void ** rgpvStoreProvFunc
HCERTSTOREPROV hStoreProv
BOOL(* delete)(struct WINE_CRYPTCERTSTORE *, context_t *)
context_t *(* enumContext)(struct WINE_CRYPTCERTSTORE *store, context_t *prev)
BOOL(* addContext)(struct WINE_CRYPTCERTSTORE *, context_t *, context_t *, context_t **, BOOL)
PFN_CERT_STORE_PROV_CLOSE provCloseStore
PFN_CERT_STORE_PROV_WRITE_CRL provWriteCrl
PFN_CERT_STORE_PROV_DELETE_CTL provDeleteCtl
HCERTSTOREPROV hStoreProv
WINECRYPT_CERTSTORE * memStore
PFN_CERT_STORE_PROV_WRITE_CERT provWriteCert
PFN_CERT_STORE_PROV_WRITE_CTL provWriteCtl
PFN_CERT_STORE_PROV_DELETE_CRL provDeleteCrl
PFN_CERT_STORE_PROV_DELETE_CERT provDeleteCert
PFN_CERT_STORE_PROV_CONTROL provControl
DWORD(* release)(struct WINE_CRYPTCERTSTORE *, DWORD)
BOOL(WINAPI * PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, PCERT_STORE_PROV_INFO pStoreProvInfo)
#define CERT_STORE_PROV_WRITE_CTL_FUNC
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
#define CERT_STORE_PROV_CONTROL_FUNC
#define CERT_STORE_PROV_EXTERNAL_FLAG
#define CERT_STORE_CREATE_NEW_FLAG
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)
#define CERT_STORE_PROV_CLOSE_FUNC
#define CERT_STORE_PROV_DELETE_CTL_FUNC
#define CERT_STORE_PROV_MEMORY
void(WINAPI * PFN_CERT_STORE_PROV_CLOSE)(HCERTSTOREPROV hStoreProv, DWORD dwFlags)
#define CRYPT_OID_OPEN_STORE_PROV_FUNC
#define CERT_STORE_PROV_DELETE_CRL_FUNC
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
#define CERT_STORE_PROV_WRITE_ADD_FLAG
BOOL(WINAPI * PFN_CERT_STORE_PROV_CONTROL)(HCERTSTOREPROV hStoreProv, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
#define CERT_STORE_PROV_DELETE_CERT_FUNC
#define CERT_STORE_DELETE_FLAG
#define CERT_STORE_PROV_WRITE_CERT_FUNC
#define CERT_STORE_READONLY_FLAG
#define CERT_STORE_PROV_WRITE_CRL_FUNC
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)