21#define NONAMELESSUNION
40 if (
data->padwTrustStepErrors &&
53 if (
data->padwTrustStepErrors &&
89 if (!
data->pWintrustData->u.pFile->hFile ||
92 data->pWintrustData->u.pFile->hFile =
115 data->pWintrustData->u.pFile->
cbStruct, pgKnownSubject) ||
116 !
data->pWintrustData->u.pFile->pgKnownSubject)
119 data->pWintrustData->u.pFile->pcwszFilePath,
120 data->pWintrustData->u.pFile->hFile,
121 &
data->u.pPDSip->gSubject))
138 data->u.pPDSip->gSubject = *
data->pWintrustData->u.pFile->pgKnownSubject;
151 if (
data->u.pPDSip->pSip)
173 data->u.pPDSip->psSipSubjectInfo =
175 if (!
data->u.pPDSip->psSipSubjectInfo)
179 data->u.pPDSip->psSipSubjectInfo->pgSubjectType = &
data->u.pPDSip->gSubject;
180 data->u.pPDSip->psSipSubjectInfo->hFile =
file;
181 data->u.pPDSip->psSipSubjectInfo->pwsFileName = filePath;
182 data->u.pPDSip->psSipSubjectInfo->hProv =
data->hProv;
183 ret =
data->u.pPDSip->pSip->pfGet(
data->u.pPDSip->psSipSubjectInfo,
192 ret =
data->u.pPDSip->pSip->pfGet(
data->u.pPDSip->psSipSubjectInfo,
224 if (!bytes_read)
break;
348 length =
sizeof(hash_size);
390 if (!
data->psPfns->pfnAddStore2Chain(
data, store))
451 data->u.pPDSip->psIndirectData =
data->psPfns->pfnAlloc(
size);
452 if (!
data->u.pPDSip->psIndirectData)
458 data->u.pPDSip->psIndirectData, &
size);
464 data->psPfns->pfnFree(oid);
473 if (
data->pWintrustData->u.pCert &&
487 data->pWintrustData->u.pCert->
cbStruct, psftVerifyAsOf) &&
488 data->pWintrustData->u.pCert->psftVerifyAsOf)
501 data->pWintrustData->u.pCert->psCertContext);
505 ret &&
i <
data->pWintrustData->u.pCert->chStores;
i++)
507 data->pWintrustData->u.pCert->pahStores[
i]);
522 if (!
data->pWintrustData->u.pFile)
537 data->pWintrustData->u.pFile->pcwszFilePath);
549 if (
err &&
data->fOpenedFile &&
data->pWintrustData->u.pFile)
565 if (!
data->pWintrustData->u.pCatalog)
570 catalog =
CreateFileW(
data->pWintrustData->u.pCatalog->pcwszCatalogFilePath,
576 data->pWintrustData->u.pCatalog->pcwszCatalogFilePath, catalog,
577 &
data->u.pPDSip->gSubject))
586 data->pWintrustData->u.pCatalog->pcwszCatalogFilePath);
605 if (!
data->padwTrustStepErrors)
608 switch (
data->pWintrustData->dwUnionChoice)
620 FIXME(
"unimplemented for %d\n",
data->pWintrustData->dwUnionChoice);
642 signerInfo =
data->psPfns->pfnAlloc(
size);
646 signerIdx, signerInfo, &
size);
649 data->psPfns->pfnFree(signerInfo);
674 for (
j = 0; !foundTimeStamp &&
j <
attr->cValue;
j++)
687 return foundTimeStamp;
692 static char date[80];
719 for (
j = 0;
j <
attr->cValue;
j++)
726 attr->rgValue[
j].pbData,
attr->rgValue[
j].cbData,
732 counterSignerInfo, &
time);
740 TRACE(
"returning system time %s\n",
760 if (!
data->psPfns->pfnAddSgnr2Chain(
data,
FALSE, signerIdx, &sgnr))
781 certInfo =
data->psPfns->pfnAlloc(
size);
785 signerIdx, certInfo, &
size);
788 data->psPfns->pfnFree(certInfo);
806 data->pahStores[0],
data->dwEncoding, certInfo);
826 data->psPfns->pfnFree(certInfo);
839 if (!
data->padwTrustStepErrors)
846 size =
sizeof(signerCount);
848 &signerCount, &
size))
853 for (
i = 0; !
err &&
i < signerCount;
i++)
871 DWORD confidence = 0;
884 BOOL fCounterSignerChain,
DWORD idxCounterSigner)
888 TRACE(
"(%p, %d, %d, %d)\n",
data, idxSigner, fCounterSignerChain,
891 if (fCounterSignerChain)
893 FIXME(
"unimplemented for counter signers\n");
899 data->pasSigners[idxSigner].pChainContext->rgpChain[0];
906 data->pasSigners[idxSigner].pasCertChain[
i].dwConfidence =
912 data->pasSigners[idxSigner].pasCertChain[
i].fTrustedRoot =
TRUE;
915 data->pasSigners[idxSigner].pasCertChain[
i].fSelfSigned =
TRUE;
918 data->pasSigners[idxSigner].pasCertChain[
i].fIsCyclic =
TRUE;
959 else if (errorStatus)
961 FIXME(
"unknown error status %08x\n", errorStatus);
973 data->pasSigners[signerIdx].pChainContext->rgpChain[0];
975 data->pasSigners[signerIdx].pasCertChain[0].dwConfidence =
978 data->pasSigners[signerIdx].pasCertChain[0].pChainElement =
983 if (
data->psPfns->pfnAddCert2Chain(
data, signerIdx,
FALSE, 0,
986 data->pasSigners[signerIdx].pasCertChain[
i].pChainElement =
988 data->pasSigners[signerIdx].pasCertChain[
i].dwConfidence =
995 data->pasSigners[signerIdx].pasCertChain[simpleChain->
cElement - 1].dwError
998 TrustStatus.dwErrorStatus);
1007 if (
data->pRequestUsage)
1016 info->pChainPara = chainPara;
1043 for (
i = 0;
i <
data->chStores;
i++)
1054 if (
data->pasSigners[signer].csCertChain)
1060 data->pasSigners[signer].pasCertChain[0].pCert,
1061 &
data->pasSigners[signer].sftVerifyAsOf, store,
1063 &
data->pasSigners[signer].pChainContext);
1066 if (
data->pasSigners[signer].pChainContext->cChain != 1)
1068 FIXME(
"unimplemented for more than 1 simple chain\n");
1075 if (
data->psPfns->pfnCertCheckPolicy)
1077 ret =
data->psPfns->pfnCertCheckPolicy(
data, signer,
1084 "no cert check policy, skipping policy check\n");
1102 if (!
data->csSigners)
1112 for (
i = 0; !
err &&
i <
data->csSigners;
i++)
1127 data->pWintrustData->pPolicyCallbackData;
1131 if (policyData && policyData->u.
cbSize !=
1137 if (!
data->csSigners)
1154 pCreateInfo = &createInfo;
1157 for (
i = 0; !
err &&
i <
data->csSigners;
i++)
1178 FIXME(
"unimplemented for UI choice %d\n",
1179 data->pWintrustData->dwUIChoice);
1180 if (!
data->csSigners)
1197 data->pasSigners[
i].pasCertChain[0].pCert,
1200 static const WCHAR disallowedW[] =
1201 {
'D',
'i',
's',
'a',
'l',
'l',
'o',
'w',
'e',
'd',0 };
1242 data->pasSigners[
i].pChainContext, &policyPara, &policyStatus);
1263 for (
i = 0; !policyStatus.
dwError &&
i < cSigner;
i++)
1279 rgpSigner[
i].pChainContext, &policyPara, &policyStatus);
1288 data->pWintrustData->pPolicyCallbackData;
1293 FIXME(
"unimplemented for UI choice %d\n",
1294 data->pWintrustData->dwUIChoice);
1295 if (!
data->csSigners)
1313 if (
data->csSigners)
1317 signers =
data->psPfns->pfnAlloc(
1321 for (
i = 0;
i <
data->csSigners;
i++)
1326 data->pasSigners[
i].pChainContext;
1330 if (
data->pasSigners[
i].csCounterSigners)
1331 FIXME(
"unimplemented for counter signers\n");
1341 data->dwRegPolicySettings,
data->csSigners, signers, policyArg);
1342 data->psPfns->pfnFree(signers);
1355 for (
i = 0;
i <
data->csSigners;
i++)
1357 for (
j = 0;
j <
data->pasSigners[
i].csCertChain;
j++)
1359 data->psPfns->pfnFree(
data->pasSigners[
i].pasCertChain);
1360 data->psPfns->pfnFree(
data->pasSigners[
i].psSigner);
1363 data->psPfns->pfnFree(
data->pasSigners);
1365 for (
i = 0;
i <
data->chStores;
i++)
1367 data->psPfns->pfnFree(
data->pahStores);
1371 data->psPfns->pfnFree(
data->u.pPDSip->pSip);
1372 data->psPfns->pfnFree(
data->u.pPDSip->pCATSip);
1373 data->psPfns->pfnFree(
data->u.pPDSip->psSipSubjectInfo);
1374 data->psPfns->pfnFree(
data->u.pPDSip->psSipCATSubjectInfo);
1375 data->psPfns->pfnFree(
data->u.pPDSip->psIndirectData);
1380 if (
data->fOpenedFile &&
1382 data->pWintrustData->u.pFile)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo)
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI CryptHashData(HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, PCERT_INFO pCertId)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
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 CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId)
BOOL WINAPI CryptSIPRetrieveSubjectGuid(LPCWSTR FileName, HANDLE hFileIn, GUID *pgSubject)
BOOL WINAPI CryptSIPLoad(const GUID *pgSubject, DWORD dwFlags, SIP_DISPATCH_INFO *pSipDispatch)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
static const WCHAR disallowed[]
#define ERROR_INVALID_PARAMETER
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define FILE_ATTRIBUTE_NORMAL
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
VOID WINAPI GetSystemTime(OUT LPSYSTEMTIME lpSystemTime)
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
static CRYPT_TRUST_REG_ENTRY DriverFinalPolicy
static CRYPT_TRUST_REG_ENTRY GenericChainCertificateTrust
static CRYPT_TRUST_REG_ENTRY HTTPSCertificateTrust
static CRYPT_TRUST_REG_ENTRY DriverInitializePolicy
static CRYPT_TRUST_REG_ENTRY GenericChainFinalProv
static CRYPT_TRUST_REG_ENTRY SoftpubCleanup
static CRYPT_TRUST_REG_ENTRY DriverCleanupPolicy
static CRYPT_TRUST_REG_ENTRY SoftpubDefCertInit
static CRYPT_TRUST_REG_ENTRY HTTPSFinalProv
HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
static BOOL hash_file_data(HANDLE file, DWORD start, DWORD end, HCRYPTHASH hash)
static FILETIME WINTRUST_GetTimeFromSigner(const CRYPT_PROVIDER_DATA *data, const CMSG_SIGNER_INFO *signerInfo)
static DWORD WINTRUST_CreateChainForSigner(CRYPT_PROVIDER_DATA *data, DWORD signer, PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO createInfo, PCERT_CHAIN_PARA chainPara)
HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data)
static DWORD WINTRUST_CopyChain(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
static CMSG_SIGNER_INFO * WINTRUST_GetSigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
static BOOL WINTRUST_GetTimeFromCounterSigner(const CMSG_CMS_SIGNER_INFO *counterSignerInfo, FILETIME *time)
static DWORD SOFTPUB_GetFileSubject(CRYPT_PROVIDER_DATA *data)
static DWORD SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file, LPCWSTR filePath)
static void WINTRUST_CreateChainPolicyCreateInfo(const CRYPT_PROVIDER_DATA *data, PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO info, PCERT_CHAIN_PARA chainPara)
static CERT_INFO * WINTRUST_GetSignerCertInfo(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
static DWORD SOFTPUB_GetSIP(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI SoftpubInitialize(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI SoftpubAuthenticode(CRYPT_PROVIDER_DATA *data)
static DWORD WINTRUST_TrustStatusToConfidence(DWORD errorStatus)
static DWORD SOFTPUB_DecodeInnerContent(CRYPT_PROVIDER_DATA *data)
static HRESULT WINAPI WINTRUST_DefaultPolicy(CRYPT_PROVIDER_DATA *pProvData, DWORD dwStepError, DWORD dwRegPolicySettings, DWORD cSigner, PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO rgpSigner, void *pvPolicyArg)
static DWORD SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
BOOL WINAPI SoftpubCheckCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner)
static DWORD WINTRUST_TrustStatusToError(DWORD errorStatus)
static DWORD SOFTPUB_CreateStoreFromMessage(CRYPT_PROVIDER_DATA *data)
static DWORD SOFTPUB_VerifyImageHash(CRYPT_PROVIDER_DATA *data, HANDLE file)
static BOOL SOFTPUB_HashPEFile(HANDLE file, HCRYPTHASH hash)
static DWORD WINTRUST_SaveSigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
static DWORD SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
static LPCSTR filetime_to_str(const FILETIME *time)
HRESULT WINAPI WintrustCertificateTrust(CRYPT_PROVIDER_DATA *data)
static DWORD WINTRUST_VerifySigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
static DWORD SOFTPUB_OpenFile(CRYPT_PROVIDER_DATA *data)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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
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 GLint GLint j
HLOCAL NTAPI LocalFree(HLOCAL hMem)
struct _FILETIME FILETIME
static IMAGE_DOS_HEADER dos_header
static IMAGE_NT_HEADERS32 nt_header
static const struct @1681 hash_data[]
struct SIP_SUBJECTINFO_ SIP_SUBJECTINFO
#define LOCALE_SYSTEM_DEFAULT
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC
#define IMAGE_NT_SIGNATURE
#define IMAGE_DIRECTORY_ENTRY_SECURITY
#define IMAGE_DOS_SIGNATURE
static unsigned int file_size
HRESULT(WINAPI * PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK)(PCRYPT_PROVIDER_DATA pProvData, DWORD dwStepError, DWORD dwRegPolicySettings, DWORD cSigner, PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO rgpSigner, void *pvPolicyArg)
struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO
struct _WTD_GENERIC_CHAIN_POLICY_CREATE_INFO WTD_GENERIC_CHAIN_POLICY_CREATE_INFO
PCCERT_CONTEXT pCertContext
CERT_TRUST_STATUS TrustStatus
CERT_USAGE_MATCH RequestedUsage
PCERT_CHAIN_ELEMENT * rgpElement
CRYPT_ATTRIBUTES AuthAttrs
CRYPT_ATTRIBUTES UnauthAttrs
CMSG_SIGNER_INFO * psSigner
PCERT_CHAIN_PARA pChainPara
HCERTCHAINENGINE hChainEngine
PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK pfnPolicyCallback
PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO pSignerChainInfo
PCMSG_SIGNER_INFO pMsgSignerInfo
PCCERT_CHAIN_CONTEXT pChainContext
struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO * rgpCounterSigner
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
#define FIELD_OFFSET(t, f)
DWORD WINAPI GetLastError(void)
#define CERT_CHAIN_POLICY_BASE
#define CRYPT_VERIFYCONTEXT
#define CERT_TRUST_IS_REVOKED
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
#define CERT_TRUST_INVALID_POLICY_CONSTRAINTS
#define CERT_STORE_PROV_COLLECTION
#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_opt_ HCERTSTORE _In_ PCERT_CHAIN_PARA pChainPara
#define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG
#define CMSG_SIGNER_CERT_INFO_PARAM
#define CERT_TRUST_IS_CYCLIC
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT
#define CERT_STORE_CREATE_NEW_FLAG
#define CERT_TRUST_INVALID_EXTENSION
#define CMSG_CTRL_VERIFY_SIGNATURE_EX
#define CMSG_VERIFY_SIGNER_CERT
#define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG
#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS
#define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG
#define CERT_TRUST_IS_NOT_TIME_NESTED
#define X509_ASN_ENCODING
#define X509_CHOICE_OF_TIME
#define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG
#define CERT_CHAIN_POLICY_AUTHENTICODE
#define CERT_TRUST_IS_SELF_SIGNED
#define CMSG_INNER_CONTENT_TYPE_PARAM
#define CRYPT_DECODE_ALLOC_FLAG
#define CERT_TRUST_IS_OFFLINE_REVOCATION
#define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
#define CMSG_SIGNER_INFO_PARAM
#define CERT_STORE_PROV_MSG
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
#define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG
#define szOID_RSA_signingTime
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG
#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
#define CERT_STORE_PROV_SYSTEM_W
#define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
#define CERT_FIND_SIGNATURE_HASH
#define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG
#define CERT_SIGNATURE_HASH_PROP_ID
#define CERT_STORE_NO_CRYPT_RELEASE_FLAG
#define CERT_SYSTEM_STORE_CURRENT_USER
#define CMSG_SIGNER_COUNT_PARAM
#define PKCS_7_ASN_ENCODING
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
#define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG
#define CERT_TRUST_IS_UNTRUSTED_ROOT
static const WCHAR MS_ENH_RSA_AES_PROV_W[]
#define CERT_TRUST_IS_NOT_TIME_VALID
#define CMSG_CONTENT_PARAM
#define szOID_RSA_counterSign
#define TRUST_E_SUBJECT_NOT_TRUSTED
#define CERT_E_REVOCATION_FAILURE
#define CERT_E_UNTRUSTEDROOT
#define TRUST_E_BAD_DIGEST
#define TRUST_E_SUBJECT_FORM_UNKNOWN
#define CERT_E_INVALID_POLICY
#define TRUST_E_NO_SIGNER_CERT
#define TRUST_E_NOSIGNATURE
#define CERT_E_WRONG_USAGE
#define TRUST_E_CERT_SIGNATURE
#define CERT_E_VALIDITYPERIODNESTING
#define TRUST_E_SYSTEM_ERROR
#define TRUST_E_BASIC_CONSTRAINTS
#define CERT_E_INVALID_NAME
#define LOCALE_SSHORTDATE
#define WVT_ISINSTRUCT(t, s, f)
#define WTD_CHOICE_CATALOG
#define WTPF_TESTCANBEVALID
#define SPC_PE_IMAGE_DATA_OBJID
#define TRUSTERROR_STEP_FINAL_OBJPROV
#define TRUSTERROR_STEP_FINAL_WVTINIT
#define TRUSTERROR_STEP_FINAL_POLICYPROV
#define TRUSTERROR_STEP_FINAL_CERTPROV
#define WTPF_IGNOREEXPIRATION
#define WTPF_IGNOREREVOKATION
#define CERT_CONFIDENCE_TIME
#define CPD_REVOCATION_CHECK_CHAIN
#define CERT_CONFIDENCE_TIMENEST
#define CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define CPD_REVOCATION_CHECK_END_CERT
#define TRUSTERROR_STEP_FINAL_SIGPROV
#define CERT_CONFIDENCE_SIG
#define WVT_IS_CBSTRUCT_GT_MEMBEROFFSET(t, s, f)