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)
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, PCERT_INFO pCertId)
#define ERROR_INVALID_PARAMETER
HRESULT WINAPI SoftpubInitialize(CRYPT_PROVIDER_DATA *data)
#define WTPF_IGNOREREVOKATION
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
#define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
struct _WTD_GENERIC_CHAIN_POLICY_CREATE_INFO WTD_GENERIC_CHAIN_POLICY_CREATE_INFO
#define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG
HRESULT WINAPI DriverFinalPolicy(CRYPT_PROVIDER_DATA *data)
#define WTPF_TESTCANBEVALID
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT
#define CERT_TRUST_IS_NOT_TIME_VALID
#define CERT_E_UNTRUSTEDROOT
static unsigned int file_size
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG
#define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
#define TRUSTERROR_STEP_FINAL_CERTPROV
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
static HRESULT WINAPI WINTRUST_DefaultPolicy(CRYPT_PROVIDER_DATA *pProvData, DWORD dwStepError, DWORD dwRegPolicySettings, DWORD cSigner, PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO rgpSigner, void *pvPolicyArg)
#define CPD_REVOCATION_CHECK_CHAIN
HRESULT WINAPI WintrustCertificateTrust(CRYPT_PROVIDER_DATA *data)
BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo)
static DWORD SOFTPUB_GetFileSubject(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI GenericChainCertificateTrust(CRYPT_PROVIDER_DATA *data)
PCCERT_CHAIN_CONTEXT pChainContext
#define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
#define CERT_TRUST_IS_CYCLIC
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
#define IMAGE_DIRECTORY_ENTRY_SECURITY
CRYPT_ATTRIBUTES UnauthAttrs
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)
#define CERT_STORE_PROV_MSG
#define CMSG_CTRL_VERIFY_SIGNATURE_EX
CRYPT_ATTRIBUTES AuthAttrs
BOOL WINAPI CryptSIPRetrieveSubjectGuid(LPCWSTR FileName, HANDLE hFileIn, GUID *pgSubject)
HRESULT WINAPI HTTPSCertificateTrust(CRYPT_PROVIDER_DATA *data)
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC
PCERT_CHAIN_PARA pChainPara
CERT_USAGE_MATCH RequestedUsage
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS
static DWORD WINTRUST_CopyChain(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
#define PKCS_7_ASN_ENCODING
#define CERT_FIND_SIGNATURE_HASH
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO * rgpCounterSigner
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
#define CERT_STORE_PROV_COLLECTION
PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO pSignerChainInfo
HCERTCHAINENGINE hChainEngine
#define CMSG_INNER_CONTENT_TYPE_PARAM
BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
#define IMAGE_DOS_SIGNATURE
#define CERT_CONFIDENCE_SIG
#define CERT_TRUST_IS_SELF_SIGNED
#define CERT_TRUST_IS_REVOKED
GLenum GLuint GLenum GLsizei const GLchar * buf
#define X509_ASN_ENCODING
#define CERT_E_VALIDITYPERIODNESTING
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
#define CERT_STORE_CREATE_NEW_FLAG
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
static DWORD WINTRUST_TrustStatusToConfidence(DWORD errorStatus)
static DWORD SOFTPUB_DecodeInnerContent(CRYPT_PROVIDER_DATA *data)
#define CERT_CHAIN_POLICY_BASE
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
PCCERT_CONTEXT pCertContext
#define CERT_E_WRONG_USAGE
GLenum GLuint GLenum GLsizei length
HRESULT WINAPI DriverCleanupPolicy(CRYPT_PROVIDER_DATA *data)
#define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG
struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
#define CMSG_VERIFY_SIGNER_CERT
static BOOL hash_file_data(HANDLE file, DWORD start, DWORD end, HCRYPTHASH hash)
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG
#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
WINE_DEFAULT_DEBUG_CHANNEL(wintrust)
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_opt_ HCERTSTORE _In_ PCERT_CHAIN_PARA pChainPara
#define TRUSTERROR_STEP_FINAL_WVTINIT
static DWORD SOFTPUB_CreateStoreFromMessage(CRYPT_PROVIDER_DATA *data)
static DWORD SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
#define CERT_TRUST_INVALID_EXTENSION
#define TRUSTERROR_STEP_FINAL_POLICYPROV
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
struct SIP_SUBJECTINFO_ SIP_SUBJECTINFO
#define IMAGE_NT_SIGNATURE
struct _FILETIME FILETIME
#define TRUST_E_BASIC_CONSTRAINTS
static CERT_INFO * WINTRUST_GetSignerCertInfo(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK pfnPolicyCallback
PCMSG_SIGNER_INFO pMsgSignerInfo
#define SPC_PE_IMAGE_DATA_OBJID
#define CERT_CONFIDENCE_TIME
static IMAGE_DOS_HEADER dos_header
VOID WINAPI GetSystemTime(OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
CERT_TRUST_STATUS TrustStatus
#define CERT_SIGNATURE_HASH_PROP_ID
#define TRUST_E_NOSIGNATURE
#define CERT_CHAIN_POLICY_AUTHENTICODE
#define WTD_CHOICE_CATALOG
#define CERT_E_REVOCATION_FAILURE
#define CERT_CONFIDENCE_TIMENEST
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN
#define TRUST_E_SUBJECT_NOT_TRUSTED
#define LOCALE_SYSTEM_DEFAULT
#define TRUST_E_SYSTEM_ERROR
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC
static void WINTRUST_CreateChainPolicyCreateInfo(const CRYPT_PROVIDER_DATA *data, PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO info, PCERT_CHAIN_PARA chainPara)
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI SoftpubCheckCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner)
BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
HRESULT WINAPI GenericChainFinalProv(CRYPT_PROVIDER_DATA *data)
#define TRUST_E_BAD_DIGEST
#define FILE_ATTRIBUTE_NORMAL
#define CERT_E_INVALID_POLICY
#define LOCALE_SSHORTDATE
#define WTPF_IGNOREEXPIRATION
static DWORD SOFTPUB_VerifyImageHash(CRYPT_PROVIDER_DATA *data, HANDLE file)
HRESULT WINAPI SoftpubCleanup(CRYPT_PROVIDER_DATA *data)
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
static LPCSTR filetime_to_str(const FILETIME *time)
static const WCHAR disallowed[]
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
static const WCHAR MS_ENH_RSA_AES_PROV_W[]
static DWORD SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI DriverInitializePolicy(CRYPT_PROVIDER_DATA *data)
#define CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define CRYPT_VERIFYCONTEXT
HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data)
#define CERT_TRUST_INVALID_POLICY_CONSTRAINTS
#define CERT_TRUST_IS_NOT_TIME_NESTED
DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId)
#define TRUSTERROR_STEP_FINAL_SIGPROV
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
#define TRUST_E_NO_SIGNER_CERT
#define CERT_STORE_PROV_SYSTEM_W
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 TRUSTERROR_STEP_FINAL_OBJPROV
static BOOL WINTRUST_GetTimeFromCounterSigner(const CMSG_CMS_SIGNER_INFO *counterSignerInfo, FILETIME *time)
PCERT_CHAIN_ELEMENT * rgpElement
#define TRUST_E_SUBJECT_FORM_UNKNOWN
#define WVT_ISINSTRUCT(t, s, f)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define CERT_SYSTEM_STORE_CURRENT_USER
#define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG
#define TRUST_E_CERT_SIGNATURE
BOOL WINAPI CryptHashData(HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
#define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG
CMSG_SIGNER_INFO * psSigner
#define FIELD_OFFSET(t, f)
#define ReadFile(a, b, c, d, e)
static BOOL SOFTPUB_HashPEFile(HANDLE file, HCRYPTHASH hash)
#define CMSG_CONTENT_PARAM
BOOL WINAPI CryptSIPLoad(const GUID *pgSubject, DWORD dwFlags, SIP_DISPATCH_INFO *pSipDispatch)
static DWORD WINTRUST_TrustStatusToError(DWORD errorStatus)
static DWORD WINTRUST_CreateChainForSigner(CRYPT_PROVIDER_DATA *data, DWORD signer, PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO createInfo, PCERT_CHAIN_PARA chainPara)
#define szOID_RSA_signingTime
static const struct @1636 hash_data[]
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
#define CERT_TRUST_IS_UNTRUSTED_ROOT
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
static DWORD SOFTPUB_OpenFile(CRYPT_PROVIDER_DATA *data)
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
#define CERT_STORE_NO_CRYPT_RELEASE_FLAG
static DWORD WINTRUST_VerifySigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
#define X509_CHOICE_OF_TIME
#define CRYPT_DECODE_ALLOC_FLAG
int strcmp(const char *String1, const char *String2)
#define CPD_REVOCATION_CHECK_END_CERT
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
#define CMSG_SIGNER_CERT_INFO_PARAM
#define CERT_TRUST_IS_OFFLINE_REVOCATION
HRESULT WINAPI HTTPSFinalProv(CRYPT_PROVIDER_DATA *data)
#define CMSG_SIGNER_INFO_PARAM
#define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG
static DWORD WINTRUST_SaveSigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
#define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG
#define szOID_RSA_counterSign
static DWORD SOFTPUB_GetMessageFromFile(CRYPT_PROVIDER_DATA *data, HANDLE file, LPCWSTR filePath)
#define WVT_IS_CBSTRUCT_GT_MEMBEROFFSET(t, s, f)
static FILETIME WINTRUST_GetTimeFromSigner(const CRYPT_PROVIDER_DATA *data, const CMSG_SIGNER_INFO *signerInfo)
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
#define HeapFree(x, y, z)
static IMAGE_NT_HEADERS32 nt_header
#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
#define CMSG_SIGNER_COUNT_PARAM
HRESULT WINAPI SoftpubDefCertInit(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI SoftpubAuthenticode(CRYPT_PROVIDER_DATA *data)
static DWORD SOFTPUB_GetSIP(CRYPT_PROVIDER_DATA *data)
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG
static CMSG_SIGNER_INFO * WINTRUST_GetSigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
#define CERT_E_INVALID_NAME
#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS