46 FIXME(
"Only links supported\n");
88 TRACE(
"found matching CTL, not adding\n");
105 TRACE(
"existing CTL is newer, not adding\n");
126 TRACE(
"existing CTL is newer, not adding\n");
185 TRACE(
"(%p, %08x, %p, %d, %08x, %p)\n", hCertStore,
205 TRACE(
"(%p, %p)\n", hCertStore, pPrev);
316 FIXME(
"find type %08x unimplemented\n", dwFindType);
405 innerContent, &
size);
501 TRACE(
"(%p)\n", pCTLContext);
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void newer(int argc, const char *argv[])
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
static void * context_ptr(context_t *context)
DWORD ContextPropertyList_EnumPropIDs(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, PCRYPT_DATA_BLOB blob) DECLSPEC_HIDDEN
#define CERT_CERT_PROP_ID
#define WINE_CRYPTCERTSTORE_MAGIC
static ctl_t * ctl_from_ptr(const CTL_CONTEXT *ptr)
static context_t * context_from_ptr(const void *ptr)
BOOL ContextPropertyList_SetProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, const BYTE *pbData, size_t cbData) DECLSPEC_HIDDEN
void ContextPropertyList_RemoveProperty(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
void Context_AddRef(context_t *context)
void Context_Release(context_t *context)
context_t * Context_CreateLinkContext(unsigned int contextSize, context_t *linked, WINECRYPT_CERTSTORE *store)
context_t * Context_CreateDataContext(size_t contextSize, const context_vtbl_t *vtbl, WINECRYPT_CERTSTORE *store)
void Context_CopyProperties(const void *to, const void *from)
BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
static context_t * CTL_clone(context_t *context, WINECRYPT_CERTSTORE *store, BOOL use_link)
PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
static BOOL compare_ctl_existing(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
static BOOL compare_ctl_by_md5_hash(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded)
static BOOL CTLContext_GetHashProp(ctl_t *ctl, DWORD dwPropId, ALG_ID algID, const BYTE *toHash, DWORD toHashLen, void *pvData, DWORD *pcbData)
static void CTL_free(context_t *context)
static BOOL compare_ctl_by_sha1_hash(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext)
static BOOL compare_ctl_any(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
static BOOL CTLContext_SetProperty(ctl_t *ctl, DWORD dwPropId, DWORD dwFlags, const void *pvData)
BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
PCCTL_CONTEXT WINAPI CertFindCTLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext)
DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext, DWORD dwPropId)
BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext)
BOOL(* CtlCompareFunc)(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
static const context_vtbl_t ctl_vtbl
BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
static BOOL CTLContext_GetProperty(ctl_t *ctl, DWORD dwPropId, void *pvData, DWORD *pcbData)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
WINECRYPT_CERTSTORE empty_store
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define memcpy(s1, s2, n)
const store_vtbl_t * vtbl
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)
DWORD dwMsgAndCertEncodingType
CONTEXT_PROPERTY_LIST * properties
#define CERT_PVK_FILE_PROP_ID
_In_ DWORD dwMsgAndCertEncodingType
#define CERT_CROSS_CERT_DIST_POINTS_PROP_ID
#define CERT_ENROLLMENT_PROP_ID
#define CERT_MD5_HASH_PROP_ID
#define CTL_FIND_SHA1_HASH
#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
#define CERT_KEY_IDENTIFIER_PROP_ID
#define CTL_FIND_MD5_HASH
#define GET_CERT_ENCODING_TYPE(x)
#define CERT_STORE_ADD_REPLACE_EXISTING
#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
_In_ DWORD _In_ DWORD _In_ DWORD _Outptr_opt_ PCCTL_CONTEXT * ppCtlContext
#define CERT_STORE_ADD_NEWER
_In_ PCCERT_CONTEXT _In_ DWORD dwAddDisposition
#define CERT_DESCRIPTION_PROP_ID
struct _CRYPTOAPI_BLOB * PCRYPT_DATA_BLOB
#define CERT_NEXT_UPDATE_LOCATION_PROP_ID
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ DWORD _In_ DWORD cbCtlEncoded
_In_ PCCTL_CONTEXT pCtlContext
#define X509_ASN_ENCODING
#define CMSG_INNER_CONTENT_TYPE_PARAM
_In_ DWORD dwCertEncodingType
#define CRYPT_DECODE_ALLOC_FLAG
#define CTL_FIND_EXISTING
#define CERT_PUBKEY_ALG_PARA_PROP_ID
#define CERT_AUTO_ENROLL_PROP_ID
#define CERT_FRIENDLY_NAME_PROP_ID
#define CERT_CTL_USAGE_PROP_ID
#define CERT_ACCESS_STATE_PROP_ID
#define CERT_STORE_ADD_USE_EXISTING
_In_ PCCERT_CONTEXT _In_ DWORD _Outptr_opt_ PCCERT_CONTEXT * ppStoreContext
#define CERT_STORE_ADD_NEW
#define CERT_HASH_PROP_ID
#define CERT_RENEWAL_PROP_ID
#define CERT_STORE_ADD_ALWAYS
#define CERT_SHA1_HASH_PROP_ID
#define CERT_SIGNATURE_HASH_PROP_ID
_In_ PCCERT_STORE_PROV_FIND_INFO _In_ PCCTL_CONTEXT pPrevCtlContext
#define PKCS_7_ASN_ENCODING
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
#define CMSG_CONTENT_PARAM
#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
#define CERT_DATE_STAMP_PROP_ID
_In_ ULONG _In_opt_ PVOID pvData
#define CRYPT_E_NOT_FOUND
#define ERROR_INVALID_DATA