27 #include "wine/port.h" 117 TRACE(
"(%p, %p, %08x, %08x)\n", store1, store2, unk0,
unk1);
120 FIXME(
"semi-stub\n");
349 DWORD dwCtrlType,
void const *pvCtrlPara)
412 static const WCHAR fmt[] = {
'%',
's',
'\\',
'%',
's',0 };
445 FIXME(
"CERT_SYSTEM_STORE_CURRENT_SERVICE, %s: stub\n",
452 FIXME(
"CERT_SYSTEM_STORE_SERVICES, %s: stub\n",
457 FIXME(
"CERT_SYSTEM_STORE_USERS, %s: stub\n",
470 FIXME(
"CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE, %s: stub\n",
719 provInfo.
cbSize =
sizeof(provInfo);
731 TRACE(
"returning %p\n", store);
772 TRACE(
"returning %p\n", store);
800 TRACE(
"returning %p\n", store);
827 switch (
LOWORD(lpszStoreProvider))
872 if (
LOWORD(lpszStoreProvider))
873 FIXME(
"unimplemented type %d\n",
LOWORD(lpszStoreProvider));
892 FIXME(
"unimplemented type %s\n", lpszStoreProvider);
905 LPCSTR szSubSystemProtocol)
907 if (!szSubSystemProtocol)
919 if (!szSubSystemProtocol)
933 TRACE(
"(%p, %p)\n", hCertStore, pPrev);
991 TRACE(
"found matching CRL, not adding\n");
1008 TRACE(
"existing CRL is newer, not adding\n");
1029 TRACE(
"existing CRL is newer, not adding\n");
1106 TRACE(
"(%p, %p)\n", hCertStore, pPrev);
1120 TRACE(
"(%p)\n", hCertStore);
1150 DWORD dwCtrlType,
void const *pvCtrlPara)
1155 TRACE(
"(%p, %08x, %d, %p)\n", hCertStore,
dwFlags, dwCtrlType,
1269 void *pvSystemStoreLocationPara,
HKEY *
key)
1274 TRACE(
"(%08x, %p)\n",
dwFlags, pvSystemStoreLocationPara);
1290 FIXME(
"CERT_SYSTEM_STORE_CURRENT_SERVICE\n");
1296 FIXME(
"CERT_SYSTEM_STORE_SERVICES\n");
1300 FIXME(
"CERT_SYSTEM_STORE_USERS\n");
1312 FIXME(
"CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE\n");
1329 TRACE(
"(%08x, %p, %p, %p)\n",
dwFlags, pvSystemStoreLocationPara, pvArg,
1346 }
while (
ret && !rc);
1365 FIXME(
"(%p, %08x, %p, %p): stub\n", pvSystemStore,
dwFlags, pvArg,
1378 FIXME(
"(%p, %08x, %s, %p, %p): stub\n", pvSystemStore,
dwFlags,
1422 FIXME(
"(%p, %08x): flag not supported\n", pvSystemStore,
dwFlags);
1440 TRACE(
"(%p)\n", store);
1445 TRACE(
"(%p)\n", store);
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define CERT_STORE_DELETE_FLAG
void Context_CopyProperties(const void *to, const void *from)
#define CERT_SYSTEM_STORE_CURRENT_SERVICE
HCRYPTMSG WINAPI CryptMsgDuplicate(HCRYPTMSG hCryptMsg)
void ContextPropertyList_RemoveProperty(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
WINECRYPT_CERTSTORE * CRYPT_CollectionOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
const WINE_CONTEXT_INTERFACE * pCRLInterface
static context_t * context_from_ptr(const void *ptr)
#define ERROR_FILE_EXISTS
#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY
DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext, DWORD dwPropId)
static const WCHAR rootW[]
WINECRYPT_CERTSTORE empty_store
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL(WINAPI * AddContextToStoreFunc)(HCERTSTORE hCertStore, const void *context, DWORD dwAddDisposition, const void **ppStoreContext)
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
DeleteContextFunc deleteFromStore
#define CRYPT_E_NOT_FOUND
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
#define CERT_STORE_PROV_SYSTEM_REGISTRY_W
static LONG CRYPT_OpenParentStore(DWORD dwFlags, void *pvSystemStoreLocationPara, HKEY *key)
#define ERROR_NO_MORE_ITEMS
void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags, CertStoreType type, const store_vtbl_t *vtbl)
const context_vtbl_t * vtbl
BOOL WINAPI CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
WINECRYPT_CERTSTORE * CRYPT_ProvOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
BOOL ContextPropertyList_SetProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, const BYTE *pbData, size_t cbData) DECLSPEC_HIDDEN
BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
const WINE_CONTEXT_INTERFACE * pCTLInterface
#define HKEY_CURRENT_USER
BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, PCRYPT_DATA_BLOB blob) DECLSPEC_HIDDEN
GLuint GLuint GLsizei count
#define CERT_STORE_PROV_MSG
static context_t * EmptyStore_enum(WINECRYPT_CERTSTORE *store, context_t *prev)
static BOOL EmptyStore_control(WINECRYPT_CERTSTORE *store, DWORD flags, DWORD ctrl_type, void const *ctrl_para)
static context_t * MemStore_enumCert(WINECRYPT_CERTSTORE *store, context_t *prev)
static crl_t * crl_from_ptr(const CRL_CONTEXT *ptr)
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
#define CERT_STORE_OPEN_EXISTING_FLAG
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
static void free_contexts(struct list *list)
static void WINAPI CRYPT_MsgCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
BOOL WINAPI CertSerializeCTLStoreElement(PCCTL_CONTEXT pCtlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
#define sz_CERT_STORE_PROV_MEMORY
HCERTSTOREPROV hStoreProv
static context_t * MemStore_enumCTL(WINECRYPT_CERTSTORE *store, context_t *prev)
_In_ PCCERT_CONTEXT _In_ DWORD dwAddDisposition
DWORD WINAPI GetLastError(VOID)
BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
static void EmptyStore_releaseContext(WINECRYPT_CERTSTORE *store, context_t *context)
#define CERT_SYSTEM_STORE_USERS
void Context_AddRef(context_t *context)
#define PKCS_7_ASN_ENCODING
static const WINE_CONTEXT_INTERFACE gCRLInterface
#define sz_CERT_STORE_PROV_SYSTEM
HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
BOOL WINAPI CertUnregisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName)
#define REG_OPENED_EXISTING_KEY
#define CERT_STORE_ADD_NEW
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
void ContextPropertyList_Free(CONTEXT_PROPERTY_LIST *list) DECLSPEC_HIDDEN
static const store_vtbl_t EmptyStoreVtbl
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void init_empty_store(void)
static BOOL MemStore_addCert(WINECRYPT_CERTSTORE *store, context_t *cert, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
BOOL WINAPI CertRegisterSystemStore(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved)
BOOL(* control)(struct WINE_CRYPTCERTSTORE *, DWORD, DWORD, void const *)
#define CERT_STORE_ADD_NEWER
static void * context_ptr(context_t *context)
#define CERT_STORE_PROV_FILENAME_W
BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext)
#define CERT_STORE_PROV_COLLECTION
static BOOL MemStore_addContext(WINE_MEMSTORE *store, struct list *list, context_t *orig_context, context_t *existing, context_t **ret_context, BOOL use_link)
static const store_vtbl_t MemStoreVtbl
static BOOL MemStore_deleteCRL(WINECRYPT_CERTSTORE *store, context_t *context)
static void MemStore_addref(WINECRYPT_CERTSTORE *store)
#define sz_CERT_STORE_PROV_FILENAME_W
ULONG_PTR HCRYPTPROV_LEGACY
#define sz_CERT_STORE_PROV_SERIALIZED
void Context_Release(context_t *context)
BOOL(* addContext)(struct WINE_CRYPTCERTSTORE *, context_t *, context_t *, context_t **, BOOL)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
_In_ PCCERT_CONTEXT _In_ DWORD _Outptr_opt_ PCCERT_CONTEXT * ppStoreContext
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[]
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define X509_ASN_ENCODING
#define CERT_ACCESS_STATE_PROP_ID
static const WINE_CONTEXT_INTERFACE gCTLInterface
PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
void CRYPT_FreeStore(WINECRYPT_CERTSTORE *store)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
LONG WINAPI RegCloseKey(HKEY hKey)
void(* addref)(struct WINE_CRYPTCERTSTORE *)
#define CMSG_CRL_COUNT_PARAM
#define CERT_STORE_CREATE_NEW_FLAG
BOOL(WINAPI * SerializeElementFunc)(const void *context, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
static const WINE_CONTEXT_INTERFACE gCertInterface
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
WINECRYPT_CERTSTORE * CRYPT_ProvCreateStore(DWORD dwFlags, WINECRYPT_CERTSTORE *memStore, const CERT_STORE_PROV_INFO *pProvInfo) DECLSPEC_HIDDEN
DWORD WINAPI CertEnumCertificateContextProperties(PCCERT_CONTEXT pCertContext, DWORD dwPropId)
void ** rgpvStoreProvFunc
#define CERT_STORE_PROV_SYSTEM_REGISTRY_A
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define CERT_STORE_PROV_MEMORY
BOOL(WINAPI * GetContextPropertyFunc)(const void *context, DWORD dwPropID, void *pvData, DWORD *pcbData)
static DWORD MemStore_release(WINECRYPT_CERTSTORE *cert_store, DWORD flags)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
static WINECRYPT_CERTSTORE * CRYPT_SerializedOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
_In_ ULONG _In_opt_ PVOID pvData
#define CRYPT_E_INVALID_MSG_TYPE
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
static BOOL EmptyStore_add(WINECRYPT_CERTSTORE *store, context_t *context, context_t *replace, context_t **ret_context, BOOL use_link)
BOOL WINAPI CertControlStore(HCERTSTORE hCertStore, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
#define CERT_STORE_ADD_REPLACE_EXISTING
BOOL WINAPI CertSerializeCRLStoreElement(PCCRL_CONTEXT pCrlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
DWORD(* release)(struct WINE_CRYPTCERTSTORE *, DWORD)
#define ERROR_FILE_NOT_FOUND
void Context_Free(context_t *context)
enum _CertStoreType CertStoreType
HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore)
static DWORD EmptyStore_release(WINECRYPT_CERTSTORE *store, DWORD flags)
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
static cert_t * cert_from_ptr(const CERT_CONTEXT *ptr)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
static BOOL MemStore_deleteContext(WINE_MEMSTORE *store, context_t *context)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
CONTEXT_PROPERTY_LIST * properties
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
const store_vtbl_t * vtbl
static LPCSTR DWORD void * pvReserved
static BOOL MemStore_addCRL(WINECRYPT_CERTSTORE *store, context_t *crl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
#define WINE_CRYPTCERTSTORE_MAGIC
#define sz_CERT_STORE_PROV_COLLECTION
PCCRL_CONTEXT WINAPI CertCreateCRLContext(DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
#define CERT_STORE_ADD_USE_EXISTING
BOOL(WINAPI * AddEncodedContextToStoreFunc)(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwAddDisposition, const void **ppContext)
static BOOL MemStore_control(WINECRYPT_CERTSTORE *store, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
#define CMSG_CERT_COUNT_PARAM
BOOL CRYPT_ReadSerializedStoreFromBlob(const CRYPT_DATA_BLOB *blob, HCERTSTORE store) DECLSPEC_HIDDEN
BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum)
#define CERT_SYSTEM_STORE_RELOCATE_FLAG
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
PCRITICAL_SECTION_DEBUG DebugInfo
static WINECRYPT_CERTSTORE * CRYPT_MsgOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
WINECRYPT_CERTSTORE * CRYPT_FileOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
#define CERT_STORE_READONLY_FLAG
BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext)
BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
static void * msgProvFuncs[]
static BOOL EmptyStore_delete(WINECRYPT_CERTSTORE *store, context_t *context)
#define InterlockedDecrement
BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
static WINECRYPT_CERTSTORE * CRYPT_PhysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
BOOL WINAPI CertUnregisterSystemStore(const void *pvSystemStore, DWORD dwFlags)
static WINECRYPT_CERTSTORE * CRYPT_PKCSOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define memcpy(s1, s2, n)
HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubSystemProtocol)
WINE_DEFAULT_DEBUG_CHANNEL(crypt)
DWORD WINAPI CertEnumCRLContextProperties(PCCRL_CONTEXT pCRLContext, DWORD dwPropId)
#define CRYPT_E_PENDING_CLOSE
struct WINE_CRYPTCERTSTORE *(* StoreOpenFunc)(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define CRL_FIND_EXISTING
BOOL(WINAPI * SetContextPropertyFunc)(const void *context, DWORD dwPropID, DWORD dwFlags, const void *pvData)
DWORD(WINAPI * EnumPropertiesFunc)(const void *context, DWORD dwPropId)
BOOL WINAPI CertRegisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved)
PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
void newer(int argc, const char *argv[])
context_t *(* enumContext)(struct WINE_CRYPTCERTSTORE *store, context_t *prev)
static context_t * MemStore_enumCRL(WINECRYPT_CERTSTORE *store, context_t *prev)
BOOL WINAPI CertSetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, DWORD dwFlags, const void *pvData)
const void *(WINAPI * EnumContextsInStoreFunc)(HCERTSTORE hCertStore, const void *pPrevContext)
struct _context_t *(* clone)(context_t *, struct WINE_CRYPTCERTSTORE *, BOOL)
static WINECRYPT_CERTSTORE * CRYPT_MemOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE
AddContextToStoreFunc addContextToStore
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
CONTEXT_PROPERTY_LIST * ContextPropertyList_Create(void) DECLSPEC_HIDDEN
static unsigned __int64 next
#define CERT_STORE_PROV_SYSTEM_W
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define InterlockedIncrement
#define CERT_STORE_PROV_PKCS7
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define STATUS_ACCESS_VIOLATION
#define CERT_SYSTEM_STORE_LOCATION_MASK
void CRYPT_ImportSystemRootCertsToReg(void) DECLSPEC_HIDDEN
EnumContextsInStoreFunc enumContextsInStore
static BOOL MemStore_deleteCert(WINECRYPT_CERTSTORE *store, context_t *context)
#define CERT_SYSTEM_STORE_CURRENT_USER
BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
#define CERT_STORE_PROV_REG
PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
#define CERT_STORE_PROV_SYSTEM_A
BOOL(WINAPI * DeleteContextFunc)(const void *contex)
#define CERT_STORE_PROV_SERIALIZED
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
static void EmptyStore_addref(WINECRYPT_CERTSTORE *store)
const void *(WINAPI * CreateContextFunc)(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
#define CERT_STORE_PROV_FILE
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
#define CERT_SYSTEM_STORE_SERVICES
#define MultiByteToWideChar
WINECRYPT_CERTSTORE * CRYPT_RegOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertSerializeCertificateStoreElement(PCCERT_CONTEXT pCertContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
VOID WINAPI CryptMemFree(LPVOID pv)
_In_ DWORD dwMsgAndCertEncodingType
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
_In_ PCCRL_CONTEXT pCrlContext
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
#define CERT_STORE_NO_CRYPT_RELEASE_FLAG
BOOL WINAPI I_CertUpdateStore(HCERTSTORE store1, HCERTSTORE store2, DWORD unk0, DWORD unk1)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static void MemStore_releaseContext(WINECRYPT_CERTSTORE *store, context_t *context)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
#define ERROR_CALL_NOT_IMPLEMENTED
BOOL(* delete)(struct WINE_CRYPTCERTSTORE *, context_t *)
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
#define CERT_STORE_PROV_FILENAME_A
BOOL(WINAPI * PFN_CERT_ENUM_SYSTEM_STORE)(_In_ const void *pvSystemStore, _In_ DWORD dwFlags, _In_ PCERT_SYSTEM_STORE_INFO pStoreInfo, _Reserved_ void *pvReserved, _Inout_opt_ void *pvArg)
#define CMSG_CRYPT_RELEASE_CONTEXT_FLAG
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
GLuint GLuint GLsizei GLenum type
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static context_t * MemStore_enumContext(WINE_MEMSTORE *store, struct list *list, context_t *prev)
const WINE_CONTEXT_INTERFACE * pCertInterface
PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
struct _WINE_MEMSTORE WINE_MEMSTORE
static BOOL MemStore_deleteCTL(WINECRYPT_CERTSTORE *store, context_t *context)
#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG
#define sz_CERT_STORE_PROV_PKCS7
#define CERT_STORE_PROV_PHYSICAL_W
BOOL(WINAPI * PFN_CERT_ENUM_PHYSICAL_STORE)(_In_ const void *pvSystemStore, _In_ DWORD dwFlags, _In_ LPCWSTR pwszStoreName, _In_ PCERT_PHYSICAL_STORE_INFO pStoreInfo, _Reserved_ void *pvReserved, _Inout_opt_ void *pvArg)
static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[]
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
#define CERT_STORE_ADD_ALWAYS
PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY
#define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY
BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
#define HKEY_LOCAL_MACHINE
static BOOL MemStore_addCTL(WINECRYPT_CERTSTORE *store, context_t *ctl, context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum)
_In_ PCCERT_CONTEXT pCertContext
#define CERT_CLOSE_STORE_CHECK_FLAG