39 if (
data->padwTrustStepErrors &&
52 if (
data->padwTrustStepErrors &&
88 if (!
data->pWintrustData->pFile->hFile ||
91 data->pWintrustData->pFile->hFile =
114 data->pWintrustData->pFile->
cbStruct, pgKnownSubject) ||
115 !
data->pWintrustData->pFile->pgKnownSubject)
118 data->pWintrustData->pFile->pcwszFilePath,
119 data->pWintrustData->pFile->hFile,
120 &
data->pPDSip->gSubject))
137 data->pPDSip->gSubject = *
data->pWintrustData->pFile->pgKnownSubject;
150 if (
data->pPDSip->pSip)
172 data->pPDSip->psSipSubjectInfo =
174 if (!
data->pPDSip->psSipSubjectInfo)
178 data->pPDSip->psSipSubjectInfo->pgSubjectType = &
data->pPDSip->gSubject;
179 data->pPDSip->psSipSubjectInfo->hFile =
file;
180 data->pPDSip->psSipSubjectInfo->pwsFileName = filePath;
181 data->pPDSip->psSipSubjectInfo->hProv =
data->hProv;
182 ret =
data->pPDSip->pSip->pfGet(
data->pPDSip->psSipSubjectInfo,
191 ret =
data->pPDSip->pSip->pfGet(
data->pPDSip->psSipSubjectInfo,
223 if (!bytes_read)
break;
347 length =
sizeof(hash_size);
389 if (!
data->psPfns->pfnAddStore2Chain(
data, store))
450 data->pPDSip->psIndirectData =
data->psPfns->pfnAlloc(
size);
451 if (!
data->pPDSip->psIndirectData)
457 data->pPDSip->psIndirectData, &
size);
463 data->psPfns->pfnFree(oid);
472 if (
data->pWintrustData->pCert &&
486 data->pWintrustData->pCert->
cbStruct, psftVerifyAsOf) &&
487 data->pWintrustData->pCert->psftVerifyAsOf)
500 data->pWintrustData->pCert->psCertContext);
504 ret &&
i <
data->pWintrustData->pCert->chStores;
i++)
506 data->pWintrustData->pCert->pahStores[
i]);
521 if (!
data->pWintrustData->pFile)
536 data->pWintrustData->pFile->pcwszFilePath);
548 if (
err &&
data->fOpenedFile &&
data->pWintrustData->pFile)
564 if (!
data->pWintrustData->pCatalog)
569 catalog =
CreateFileW(
data->pWintrustData->pCatalog->pcwszCatalogFilePath,
575 data->pWintrustData->pCatalog->pcwszCatalogFilePath, catalog,
576 &
data->pPDSip->gSubject))
585 data->pWintrustData->pCatalog->pcwszCatalogFilePath);
604 if (!
data->padwTrustStepErrors)
607 switch (
data->pWintrustData->dwUnionChoice)
619 FIXME(
"unimplemented for %ld\n",
data->pWintrustData->dwUnionChoice);
641 signerInfo =
data->psPfns->pfnAlloc(
size);
645 signerIdx, signerInfo, &
size);
648 data->psPfns->pfnFree(signerInfo);
673 for (
j = 0; !foundTimeStamp &&
j <
attr->cValue;
j++)
686 return foundTimeStamp;
691 static char date[80];
718 for (
j = 0;
j <
attr->cValue;
j++)
725 attr->rgValue[
j].pbData,
attr->rgValue[
j].cbData,
731 counterSignerInfo, &
time);
739 TRACE(
"returning system time %s\n",
759 if (!
data->psPfns->pfnAddSgnr2Chain(
data,
FALSE, signerIdx, &sgnr))
780 certInfo =
data->psPfns->pfnAlloc(
size);
784 signerIdx, certInfo, &
size);
787 data->psPfns->pfnFree(certInfo);
805 data->pahStores[0],
data->dwEncoding, certInfo);
825 data->psPfns->pfnFree(certInfo);
842 if (!(attrs =
data->psPfns->pfnAlloc(
size)))
855 if (!(
s->rhSecondarySigs =
data->psPfns->pfnAlloc(attrs->
rgAttr[
i].
cValue *
sizeof(*
s->rhSecondarySigs))))
860 s->cSecondarySigs = 0;
865 ERR(
"Could not create crypt message.\n");
874 s->rhSecondarySigs[
j] =
msg;
880 data->psPfns->pfnFree(attrs);
889 if (!
data->padwTrustStepErrors)
895 FIXME(
"pSigState %p already initialized.\n",
data->pSigState);
897 if (!(
data->pSigState =
data->psPfns->pfnAlloc(
sizeof(*
data->pSigState))))
903 data->pSigState->cbStruct =
sizeof(*
data->pSigState);
904 data->pSigState->fSupportMultiSig =
TRUE;
911 if (
data->pSigSettings)
914 data->pSigSettings->cSecondarySigs =
data->pSigState->cSecondarySigs;
922 size =
sizeof(signerCount);
924 &signerCount, &
size))
929 for (
i = 0; !
err &&
i < signerCount;
i++)
946 DWORD confidence = 0;
959 BOOL fCounterSignerChain,
DWORD idxCounterSigner)
963 TRACE(
"(%p, %ld, %d, %ld)\n",
data, idxSigner, fCounterSignerChain,
966 if (fCounterSignerChain)
968 FIXME(
"unimplemented for counter signers\n");
974 data->pasSigners[idxSigner].pChainContext->rgpChain[0];
981 data->pasSigners[idxSigner].pasCertChain[
i].dwConfidence =
987 data->pasSigners[idxSigner].pasCertChain[
i].fTrustedRoot =
TRUE;
990 data->pasSigners[idxSigner].pasCertChain[
i].fSelfSigned =
TRUE;
993 data->pasSigners[idxSigner].pasCertChain[
i].fIsCyclic =
TRUE;
1034 else if (errorStatus)
1036 FIXME(
"unknown error status %08lx\n", errorStatus);
1048 data->pasSigners[signerIdx].pChainContext->rgpChain[0];
1050 data->pasSigners[signerIdx].pasCertChain[0].dwConfidence =
1053 data->pasSigners[signerIdx].pasCertChain[0].pChainElement =
1058 if (
data->psPfns->pfnAddCert2Chain(
data, signerIdx,
FALSE, 0,
1061 data->pasSigners[signerIdx].pasCertChain[
i].pChainElement =
1063 data->pasSigners[signerIdx].pasCertChain[
i].dwConfidence =
1070 data->pasSigners[signerIdx].pasCertChain[simpleChain->
cElement - 1].dwError
1073 TrustStatus.dwErrorStatus);
1082 if (
data->pRequestUsage)
1091 info->pChainPara = chainPara;
1118 for (
i = 0;
i <
data->chStores;
i++)
1129 if (
data->pasSigners[signer].csCertChain)
1135 data->pasSigners[signer].pasCertChain[0].pCert,
1136 &
data->pasSigners[signer].sftVerifyAsOf, store,
1138 &
data->pasSigners[signer].pChainContext);
1141 if (
data->pasSigners[signer].pChainContext->cChain != 1)
1143 FIXME(
"unimplemented for more than 1 simple chain\n");
1150 if (
data->psPfns->pfnCertCheckPolicy)
1152 ret =
data->psPfns->pfnCertCheckPolicy(
data, signer,
1159 "no cert check policy, skipping policy check\n");
1177 if (!
data->csSigners)
1187 for (
i = 0; !
err &&
i <
data->csSigners;
i++)
1202 data->pWintrustData->pPolicyCallbackData;
1206 if (policyData && policyData->
cbSize !=
1212 if (!
data->csSigners)
1228 pChainPara = &chainPara;
1229 pCreateInfo = &createInfo;
1232 for (
i = 0; !
err &&
i <
data->csSigners;
i++)
1253 FIXME(
"unimplemented for UI choice %ld\n",
1254 data->pWintrustData->dwUIChoice);
1255 if (!
data->csSigners)
1272 data->pasSigners[
i].pasCertChain[0].pCert,
1275 static const WCHAR disallowedW[] =
1276 {
'D',
'i',
's',
'a',
'l',
'l',
'o',
'w',
'e',
'd',0 };
1317 data->pasSigners[
i].pChainContext, &policyPara, &policyStatus);
1338 for (
i = 0; !policyStatus.
dwError &&
i < cSigner;
i++)
1354 rgpSigner[
i].pChainContext, &policyPara, &policyStatus);
1363 data->pWintrustData->pPolicyCallbackData;
1368 FIXME(
"unimplemented for UI choice %ld\n",
1369 data->pWintrustData->dwUIChoice);
1370 if (!
data->csSigners)
1388 if (
data->csSigners)
1392 signers =
data->psPfns->pfnAlloc(
1396 for (
i = 0;
i <
data->csSigners;
i++)
1401 data->pasSigners[
i].pChainContext;
1405 if (
data->pasSigners[
i].csCounterSigners)
1406 FIXME(
"unimplemented for counter signers\n");
1416 data->dwRegPolicySettings,
data->csSigners, signers, policyArg);
1417 data->psPfns->pfnFree(signers);
1430 for (
i = 0;
i <
data->csSigners;
i++)
1432 for (
j = 0;
j <
data->pasSigners[
i].csCertChain;
j++)
1434 data->psPfns->pfnFree(
data->pasSigners[
i].pasCertChain);
1435 data->psPfns->pfnFree(
data->pasSigners[
i].psSigner);
1438 data->psPfns->pfnFree(
data->pasSigners);
1440 for (
i = 0;
i <
data->chStores;
i++)
1442 data->psPfns->pfnFree(
data->pahStores);
1446 data->psPfns->pfnFree(
data->pPDSip->pSip);
1447 data->psPfns->pfnFree(
data->pPDSip->pCATSip);
1448 data->psPfns->pfnFree(
data->pPDSip->psSipSubjectInfo);
1449 data->psPfns->pfnFree(
data->pPDSip->psSipCATSubjectInfo);
1450 data->psPfns->pfnFree(
data->pPDSip->psIndirectData);
1456 for (
i = 0;
i <
data->pSigState->cSecondarySigs; ++
i)
1458 data->psPfns->pfnFree(
data->pSigState);
1462 if (
data->fOpenedFile &&
1464 data->pWintrustData->pFile)
#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)
HCRYPTMSG WINAPI CryptMsgDuplicate(HCRYPTMSG hCryptMsg)
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 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)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
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 void load_secondary_signatures(CRYPT_PROVIDER_DATA *data, HCRYPTMSG msg)
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 @1805 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
wchar_t const *const size_t const buffer_size
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
#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
#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 CMSG_SIGNER_UNAUTH_ATTR_PARAM
#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 WSS_GET_SECONDARY_SIG_COUNT
#define WSS_CERTTRUST_SUPPORT
#define WSS_OBJTRUST_SUPPORT
#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 WSS_SIGTRUST_SUPPORT
#define CERT_CONFIDENCE_TIME
#define CPD_REVOCATION_CHECK_CHAIN
#define CERT_CONFIDENCE_TIMENEST
#define CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define szOID_NESTED_SIGNATURE
#define CPD_REVOCATION_CHECK_END_CERT
#define TRUSTERROR_STEP_FINAL_SIGPROV
#define CERT_CONFIDENCE_SIG
#define WVT_IS_CBSTRUCT_GT_MEMBEROFFSET(t, s, f)