22#define NONAMELESSUNION
27#include "wine/unicode.h"
76 crl->ctx.hCertStore = store;
123 crl->ctx.pCrlInfo = crlInfo;
173 issuer->dwCertEncodingType,
191 if (
info->AuthorityCertIssuer.cAltEntry &&
192 info->AuthorityCertSerialNumber.cbData)
197 for (
i = 0; !directoryName &&
198 i <
info->AuthorityCertIssuer.cAltEntry;
i++)
199 if (
info->AuthorityCertIssuer.rgAltEntry[
i].
202 &
info->AuthorityCertIssuer.rgAltEntry[
i];
206 issuer->dwCertEncodingType,
207 &
issuer->pCertInfo->Subject,
211 &
issuer->pCertInfo->SerialNumber,
212 &
info->AuthorityCertSerialNumber);
216 FIXME(
"no supported name type in authority key id2\n");
220 else if (
info->KeyId.cbData)
245 FIXME(
"unsupported value for AKI extension\n");
312 FIXME(
"find type %08x unimplemented\n", dwFindType);
348 if (*pdwFlags & ~supportedFlags)
364 *pdwFlags &= ~CERT_STORE_TIME_VALIDITY_FLAG;
372 *pdwFlags &= ~CERT_STORE_SIGNATURE_FLAG;
429 if (
crl->base.properties)
518 if (!
crl->base.properties)
596 if (
name1->dwDistPointNameChoice ==
name2->dwDistPointNameChoice)
601 if (
name1->u.FullName.cAltEntry ==
name2->u.FullName.cAltEntry)
608 &
name1->u.FullName.rgAltEntry[
i];
610 &
name2->u.FullName.rgAltEntry[
i];
628 FIXME(
"unimplemented for type %d\n",
745 &
cert->SerialNumber))
771 for (
i = 0; !
entry &&
i < cCrlInfo;
i++)
785 pTimeToVerify = &fileTime;
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
DWORD ContextPropertyList_EnumPropIDs(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
static crl_t * crl_from_ptr(const CRL_CONTEXT *ptr)
BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, PCRYPT_DATA_BLOB blob) DECLSPEC_HIDDEN
#define CERT_CERT_PROP_ID
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 CertCompareCertificateName(DWORD dwCertEncodingType, PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2)
BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved)
PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, PCRYPT_INTEGER_BLOB pInt2)
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 CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
DWORD WINAPI CertEnumCRLContextProperties(PCCRL_CONTEXT pCRLContext, DWORD dwPropId)
static BOOL CRLContext_SetProperty(crl_t *crl, DWORD dwPropId, DWORD dwFlags, const void *pvData)
BOOL WINAPI CertIsValidCRLForCertificate(PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved)
BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
static BOOL compare_crl_issued_by(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
static PCRL_ENTRY CRYPT_FindCertificateInCRL(PCERT_INFO cert, const CRL_INFO *crl)
BOOL WINAPI CertFindCertificateInCRL(PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved, PCRL_ENTRY *ppCrlEntry)
BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
static BOOL CRLContext_GetHashProp(crl_t *crl, DWORD dwPropId, ALG_ID algID, const BYTE *toHash, DWORD toHashLen, void *pvData, DWORD *pcbData)
PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext)
PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
static const context_vtbl_t crl_vtbl
BOOL(* CrlCompareFunc)(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
static BOOL compare_crl_issued_for(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
static BOOL compare_crl_any(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags)
static BOOL match_dist_point_with_issuing_dist_point(const CRL_DIST_POINT *distPoint, const CRL_ISSUING_DIST_POINT *idp)
BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext)
static context_t * CRL_clone(context_t *context, WINECRYPT_CERTSTORE *store, BOOL use_link)
static BOOL CRLContext_GetProperty(crl_t *crl, DWORD dwPropId, void *pvData, DWORD *pcbData)
static BOOL compare_crl_existing(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, PCRL_INFO pCrlInfo)
static void CRL_free(context_t *context)
PCCRL_CONTEXT WINAPI CertCreateCRLContext(DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
static BOOL compare_dist_point_name(const CRL_DIST_POINT_NAME *name1, const CRL_DIST_POINT_NAME *name2)
BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[])
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
static WCHAR issuer[MAX_STRING_RESOURCE_LEN]
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
WINECRYPT_CERTSTORE empty_store
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
static const WCHAR *const ext[]
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
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
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define memcpy(s1, s2, n)
static LPCSTR DWORD void * pvReserved
CERT_NAME_BLOB DirectoryName
PCERT_EXTENSION rgExtension
PCRL_DIST_POINT rgDistPoint
CRYPT_BIT_BLOB ReasonFlags
CRL_DIST_POINT_NAME DistPointName
PCCERT_CONTEXT pIssuerCert
PCERT_EXTENSION rgExtension
CRL_DIST_POINT_NAME DistPointName
CRYPT_BIT_BLOB OnlySomeReasonFlags
#define CERT_PVK_FILE_PROP_ID
#define CERT_CROSS_CERT_DIST_POINTS_PROP_ID
#define CERT_ENROLLMENT_PROP_ID
#define X509_ISSUING_DIST_POINT
_In_ PCCRL_CONTEXT pCrlContext
#define X509_AUTHORITY_KEY_ID2
#define CERT_MD5_HASH_PROP_ID
#define CERT_STORE_BASE_CRL_FLAG
#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
#define CERT_ENCODING_TYPE_MASK
#define CRL_FIND_ISSUED_BY_AKI_FLAG
#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
#define CERT_KEY_IDENTIFIER_PROP_ID
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL
#define CERT_ALT_NAME_URL
#define szOID_CRL_DIST_POINTS
#define CERT_ALT_NAME_DIRECTORY_NAME
#define CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
_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
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT
#define CRL_FIND_ISSUED_FOR
#define X509_ASN_ENCODING
_In_ DWORD dwCertEncodingType
#define CRYPT_DECODE_ALLOC_FLAG
#define CERT_PUBKEY_ALG_PARA_PROP_ID
#define CRL_DIST_POINT_FULL_NAME
#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_SIGNATURE_FLAG
#define CERT_HASH_PROP_ID
#define CERT_RENEWAL_PROP_ID
_In_ DWORD _In_ DWORD _In_ DWORD _Outptr_opt_ PCCRL_CONTEXT * ppCrlContext
#define CERT_SHA1_HASH_PROP_ID
_In_ DWORD _In_ DWORD cbCrlEncoded
#define CERT_SIGNATURE_HASH_PROP_ID
_In_ PCCERT_STORE_PROV_FIND_INFO _In_ PCCRL_CONTEXT pPrevCrlContext
#define szOID_AUTHORITY_KEY_IDENTIFIER2
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
#define szOID_ISSUING_DIST_POINT
#define X509_CRL_DIST_POINTS
#define X509_CERT_CRL_TO_BE_SIGNED
#define CERT_STORE_TIME_VALIDITY_FLAG
#define CERT_STORE_DELTA_CRL_FLAG
#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
#define CERT_DATE_STAMP_PROP_ID
#define CRL_FIND_ISSUED_BY
#define CRL_FIND_EXISTING
_In_ ULONG _In_opt_ PVOID pvData
#define CRYPT_E_NOT_FOUND