79 TRACE(
"(%p)\n", pProvData);
93 FIXME(
"(%p, %ld, %s, %ld)\n", pProvData, idxSigner, fCounterSignerChain ?
"TRUE" :
"FALSE", idxCounterSigner);
102 FIXME(
"(%p)\n", pProvData);
112 L"Software\\Microsoft\\Cryptography\\{7801ebd0-cf4b-11d0-851f-0060979387ea}", 0,
KEY_READ, &
key))
122 if (
flags & 0x00010000)
163 DWORD confidence = 0;
183 memset(&signer, 0,
sizeof(signer));
211 element->TrustStatus.dwErrorStatus);
212 cert->dwError =
element->TrustStatus.dwErrorStatus;
232 data->pWintrustData->pBlob &&
data->pWintrustData->pBlob->cbMemObject ==
234 data->pWintrustData->pBlob->pbMemObject)
236 data->pWintrustData->pBlob->pbMemObject;
246 if (
cert->cRootStores)
252 for (
i = 0;
i <
cert->cRootStores;
i++)
256 if (
cert->cTrustStores)
262 for (
i = 0;
i <
cert->cTrustStores;
i++)
266 if (
cert->cRootStores ||
cert->cStores ||
cert->cTrustStores)
273 config.hRestrictedTrust = trust;
275 config.rghAdditionalStore =
cert->rghstoreCAs;
296 FIXME(
"unimplemented for UI choice %ld\n",
297 data->pWintrustData->dwUIChoice);
304 memset(&chainPara, 0,
sizeof(chainPara));
305 chainPara.
cbSize =
sizeof(chainPara);
319 if (
chain->cChain != 1)
321 FIXME(
"unimplemented for more than 1 simple chain\n");
407 memset(&trust, 0,
sizeof(trust));
408 trust.
cbSize =
sizeof(trust);
418 blob.cbMemObject =
sizeof(trust);
420 memset(&wtd, 0,
sizeof(wtd));
432 memset(&uiInfo, 0,
sizeof(uiInfo));
433 uiInfo.
dwSize =
sizeof(uiInfo);
462 charsNeeded = (cbEncoded * 3);
467 *pcchStr = charsNeeded;
470 else if (*pcchStr < charsNeeded)
472 *pcchStr = charsNeeded;
481 *pcchStr = charsNeeded;
484 for (
i = 0;
i < cbEncoded;
i++)
486 if (
i < cbEncoded - 1)
525 if (
str && *pcchStr >= charsNeeded)
536 if (
str && *pcchStr >= charsNeeded)
541 charsNeeded += sepLen;
542 if (
str && *pcchStr >= charsNeeded)
549 *pcchStr = charsNeeded;
550 else if (*pcchStr < charsNeeded)
552 *pcchStr = charsNeeded;
557 *pcchStr = charsNeeded;
577 DWORD headingSepLen, sepLen;
578 LPWSTR noticeRef, organization, noticeNum, noticeText;
579 DWORD noticeRefLen, organizationLen, noticeNumLen, noticeTextLen;
580 WCHAR noticeNumStr[11];
585 (
LPWSTR)&organization, 0);
592 headingSep =
L":\r\n";
601 headingSepLen =
lstrlenW(headingSep);
611 if (
str && *pcchStr >= charsNeeded)
621 charsNeeded += noticeRefLen;
622 if (
str && *pcchStr >= charsNeeded)
627 charsNeeded += headingSepLen;
628 if (
str && *pcchStr >= charsNeeded)
631 str += headingSepLen;
636 if (
str && *pcchStr >= charsNeeded)
648 charsNeeded += organizationLen;
649 if (
str && *pcchStr >= charsNeeded)
652 str += organizationLen;
655 if (
str && *pcchStr >= charsNeeded)
659 charsNeeded += sepLen;
660 if (
str && *pcchStr >= charsNeeded)
670 if (
str && *pcchStr >= charsNeeded)
682 charsNeeded += noticeNumLen;
683 if (
str && *pcchStr >= charsNeeded)
689 charsNeeded +=
lstrlenW(noticeNumStr);
690 if (
str && *pcchStr >= charsNeeded)
695 charsNeeded += sepLen;
696 if (
str && *pcchStr >= charsNeeded)
703 if (
notice->pszDisplayText)
708 if (
str && *pcchStr >= charsNeeded)
718 charsNeeded += noticeTextLen;
719 if (
str && *pcchStr >= charsNeeded)
722 str += noticeTextLen;
725 if (
str && *pcchStr >= charsNeeded)
730 charsNeeded += sepLen;
731 if (
str && *pcchStr >= charsNeeded)
739 *pcchStr = charsNeeded;
740 else if (*pcchStr < charsNeeded)
742 *pcchStr = charsNeeded;
747 *pcchStr = charsNeeded;
756 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
757 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
772 DWORD charsNeeded = 1;
774 DWORD headingSepLen, sepLen;
775 WCHAR policyNum[11], policyQualifierNum[11];
776 LPWSTR certPolicy, policyId, policyQualifierInfo, policyQualifierId;
778 DWORD certPolicyLen, policyIdLen, policyQualifierInfoLen;
779 DWORD policyQualifierIdLen, cpsLen, userNoticeLen, qualifierLen;
790 (
LPWSTR)&policyQualifierId, 0);
798 headingSep =
L":\r\n";
807 headingSepLen =
lstrlenW(headingSep);
816 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
820 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
826 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
828 charsNeeded += certPolicyLen;
829 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
832 str += certPolicyLen;
834 charsNeeded += headingSepLen;
835 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
838 str += headingSepLen;
843 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
849 charsNeeded += policyIdLen;
850 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
856 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
862 charsNeeded += sepLen;
863 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
868 for (
j = 0;
j <
policy->cPolicyQualifier;
j++)
877 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
884 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
887 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
893 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
896 charsNeeded +=
lstrlenW(policyQualifierNum);
897 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
903 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
905 charsNeeded += policyQualifierInfoLen;
906 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
909 policyQualifierInfoLen *
sizeof(
WCHAR));
910 str += policyQualifierInfoLen;
912 charsNeeded += headingSepLen;
913 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
916 str += headingSepLen;
921 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
929 charsNeeded += policyQualifierIdLen;
930 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
933 policyQualifierIdLen *
sizeof(
WCHAR));
934 str += policyQualifierIdLen;
939 charsNeeded += cpsLen;
940 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
949 charsNeeded += userNoticeLen;
950 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
953 str += userNoticeLen;
959 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
966 charsNeeded += sepLen;
967 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
975 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
983 charsNeeded += qualifierLen;
984 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
989 charsNeeded += headingSepLen;
990 if (
str && *pcbFormat >= charsNeeded *
sizeof(
WCHAR))
993 str += headingSepLen;
1002 if (!
str || *pcbFormat < charsNeeded *
sizeof(
WCHAR))
1009 charsNeeded +=
size - 1;
1013 sizeRemaining = *pcbFormat /
sizeof(
WCHAR);
1014 sizeRemaining -=
str - (
LPWSTR)pbFormat;
1020 charsNeeded += sizeRemaining - 1;
1021 str += sizeRemaining - 1;
1028 if (!
str || *pcbFormat < charsNeeded *
sizeof(
WCHAR))
1035 charsNeeded +=
size - 1;
1039 sizeRemaining = *pcbFormat /
sizeof(
WCHAR);
1040 sizeRemaining -=
str - (
LPWSTR)pbFormat;
1046 charsNeeded += sizeRemaining - 1;
1047 str += sizeRemaining - 1;
1053 if (!
str || *pcbFormat < charsNeeded *
sizeof(
WCHAR))
1060 charsNeeded +=
size - 1;
1064 sizeRemaining = *pcbFormat /
sizeof(
WCHAR);
1065 sizeRemaining -=
str - (
LPWSTR)pbFormat;
1071 charsNeeded += sizeRemaining - 1;
1072 str += sizeRemaining - 1;
1082 *pcbFormat = charsNeeded *
sizeof(
WCHAR);
1083 else if (*pcbFormat < charsNeeded *
sizeof(
WCHAR))
1085 *pcbFormat = charsNeeded *
sizeof(
WCHAR);
1090 *pcbFormat = charsNeeded *
sizeof(
WCHAR);
1096#define szOID_MICROSOFT_Encryption_Key_Preference "1.3.6.1.4.1.311.16.4"
1103 static WCHAR cryptdlg[] =
L"cryptdlg.dll";
1104 static WCHAR wintrust[] =
L"wintrust.dll";
1105 static WCHAR certTrustInit[] =
L"CertTrustInit";
1106 static WCHAR wintrustCertificateTrust[] =
L"WintrustCertificateTrust";
1107 static WCHAR certTrustCertPolicy[] =
L"CertTrustCertPolicy";
1108 static WCHAR certTrustFinalPolicy[] =
L"CertTrustFinalPolicy";
1109 static WCHAR certTrustCleanup[] =
L"CertTrustCleanup";
1115 reg.cbStruct =
sizeof(
reg);
1117 reg.sInitProvider.pwszDLLName = cryptdlg;
1118 reg.sInitProvider.pwszFunctionName = certTrustInit;
1120 reg.sCertificateProvider.pwszDLLName = wintrust;
1121 reg.sCertificateProvider.pwszFunctionName = wintrustCertificateTrust;
1123 reg.sCertificatePolicyProvider.pwszDLLName = cryptdlg;
1124 reg.sCertificatePolicyProvider.pwszFunctionName = certTrustCertPolicy;
1126 reg.sFinalPolicyProvider.pwszDLLName = cryptdlg;
1127 reg.sFinalPolicyProvider.pwszFunctionName = certTrustFinalPolicy;
1129 reg.sCleanupProvider.pwszDLLName = cryptdlg;
1130 reg.sCleanupProvider.pwszFunctionName = certTrustCleanup;
1134 "1.3.6.1.4.1.311.16.1.1",
L"cryptdlg.dll",
"EncodeAttrSequence");
1138 "1.3.6.1.4.1.311.16.1.1",
L"cryptdlg.dll",
"DecodeAttrSequence");
1157 "1.3.6.1.4.1.311.16.1.1");
1161 "1.3.6.1.4.1.311.16.1.1");
static DWORD const fdwReason
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL NTAPI DllMain(_In_ HINSTANCE hDll, _In_ ULONG dwReason, _In_opt_ PVOID pReserved)
#define RegCloseKey(hKey)
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)
#define IDS_POLICY_QUALIFIER_INFO
#define IDS_POLICY_QUALIFIER_ID
#define CERT_CERTIFICATE_ACTION_VERIFY
#define CRYPTUI_ENABLE_EDITPROPERTIES
#define CRYPTUI_DISABLE_ADDTOSTORE
HRESULT WINAPI DllRegisterServer(void)
HRESULT WINAPI DllUnregisterServer(void)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, PCERT_INFO pCertInfo)
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)
void WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
BOOL WINAPI CryptRegisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
BOOL WINAPI CryptUnregisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT cert, DWORD type, DWORD flags, void *type_para, LPSTR name, DWORD name_len)
DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, void *type_para, LPWSTR name_string, DWORD name_len)
BOOL WINAPI CertViewPropertiesW(CERT_VIEWPROPERTIES_STRUCT_W *info)
static DWORD CRYPTDLG_TrustStatusToConfidence(DWORD errorStatus)
#define szOID_MICROSOFT_Encryption_Key_Preference
static BOOL CRYPTDLG_CheckOnlineCRL(void)
BOOL WINAPI CertViewPropertiesA(CERT_VIEWPROPERTIES_STRUCT_A *info)
static BOOL CRYPTDLG_CopyChain(CRYPT_PROVIDER_DATA *data, PCCERT_CHAIN_CONTEXT chain)
static BOOL CRYPT_FormatCPS(DWORD dwCertEncodingType, DWORD dwFormatStrType, const BYTE *pbEncoded, DWORD cbEncoded, WCHAR *str, DWORD *pcchStr)
DWORD WINAPI GetFriendlyNameOfCertW(PCCERT_CONTEXT pccert, LPWSTR pchBuffer, DWORD cchBuffer)
static CERT_VERIFY_CERTIFICATE_TRUST * CRYPTDLG_GetVerifyData(CRYPT_PROVIDER_DATA *data)
HRESULT WINAPI CertTrustInit(CRYPT_PROVIDER_DATA *pProvData)
BOOL WINAPI CertTrustCertPolicy(CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSignerChain, DWORD idxCounterSigner)
static const WCHAR indent[]
static BOOL CRYPT_FormatUserNotice(DWORD dwCertEncodingType, DWORD dwFormatStrType, const BYTE *pbEncoded, DWORD cbEncoded, WCHAR *str, DWORD *pcchStr)
static BOOL CRYPT_FormatHexString(const BYTE *pbEncoded, DWORD cbEncoded, WCHAR *str, DWORD *pcchStr)
static BOOL CRYPTDLG_IsCertAllowed(PCCERT_CONTEXT pCert)
HRESULT WINAPI CertTrustFinalPolicy(CRYPT_PROVIDER_DATA *data)
BOOL WINAPI FormatVerisignExtension(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static HCERTCHAINENGINE CRYPTDLG_MakeEngine(CERT_VERIFY_CERTIFICATE_TRUST *cert)
HRESULT WINAPI CertTrustCleanup(CRYPT_PROVIDER_DATA *pProvData)
DWORD WINAPI GetFriendlyNameOfCertA(PCCERT_CONTEXT pccert, LPSTR pchBuffer, DWORD cchBuffer)
BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged)
static const WCHAR disallowed[]
#define DLL_PROCESS_ATTACH
#define HeapFree(x, y, z)
#define MultiByteToWideChar
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
BOOL WINAPI WintrustAddActionID(GUID *pgActionID, DWORD fdwFlags, CRYPT_REGISTER_ACTIONID *psProvInfo)
BOOL WINAPI WintrustRemoveActionID(GUID *pgActionID)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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)
static const SecPkgInfoW infoW
static IN DWORD IN LPVOID lpvReserved
#define memcpy(s1, s2, n)
static APTTYPEQUALIFIER * qualifier
PCCERT_CONTEXT pCertContext
CERT_RDN_VALUE_BLOB Value
CERT_POLICY_INFO * rgPolicyInfo
CRYPT_OBJID_BLOB Qualifier
LPSTR pszPolicyQualifierId
CERT_TRUST_STATUS TrustStatus
PCERT_CHAIN_ELEMENT * rgpElement
HCERTSTORE * rghstoreRoots
HCERTSTORE * rghstoreTrust
DWORD * padwTrustStepErrors
PCCERT_CHAIN_CONTEXT pChainContext
struct WINTRUST_BLOB_INFO_ * pBlob
LPCPROPSHEETPAGEW rgPropSheetPages
BOOL fpCryptProviderDataTrustedUsage
PCCERT_CONTEXT pCertContext
DWORD WINAPI GetLastError(void)
#define X509_UNICODE_ANY_STRING
#define CRYPT_FORMAT_STR_MULTI_LINE
#define CERT_STORE_PROV_COLLECTION
#define szOID_PKIX_POLICY_QUALIFIER_CPS
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT
#define CERT_STORE_CREATE_NEW_FLAG
#define CRYPT_OID_FORMAT_OBJECT_FUNC
#define CRYPT_OID_DECODE_OBJECT_FUNC
#define CERT_TRUST_IS_NOT_TIME_NESTED
#define X509_ASN_ENCODING
#define CRYPT_DECODE_ALLOC_FLAG
#define X509_CERT_POLICIES
#define szOID_CERT_POLICIES
#define szOID_PKIX_KP_EMAIL_PROTECTION
#define CERT_STORE_PROV_SYSTEM_W
#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE
#define CERT_FIND_SIGNATURE_HASH
#define CERT_SIGNATURE_HASH_PROP_ID
#define CERT_SYSTEM_STORE_CURRENT_USER
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
#define CRYPT_OID_ENCODE_OBJECT_FUNC
#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE
#define CERT_TRUST_IS_NOT_TIME_VALID
#define CERT_NAME_FRIENDLY_DISPLAY_TYPE
#define TRUST_E_SUBJECT_NOT_TRUSTED
#define TRUST_E_SUBJECT_FORM_UNKNOWN
#define TRUST_E_NOSIGNATURE
#define TRUST_E_SYSTEM_ERROR
#define HKEY_LOCAL_MACHINE
#define WTD_STATEACTION_CLOSE
#define TRUSTERROR_STEP_FINAL_WVTINIT
#define WTD_STATEACTION_VERIFY
#define WT_ADD_ACTION_ID_RET_RESULT_FLAG
#define CERT_CONFIDENCE_TIME
#define CERT_CONFIDENCE_TIMENEST
#define CERT_CONFIDENCE_SIG
struct _CRYPT_TRUST_REG_ENTRY CRYPT_TRUST_REG_ENTRY
CRYPT_PROVIDER_CERT *WINAPI WTHelperGetProvCertFromChain(CRYPT_PROVIDER_SGNR *pSgnr, DWORD idxCert)
CRYPT_PROVIDER_SGNR *WINAPI WTHelperGetProvSignerFromChain(CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner)
LONG WINAPI WinVerifyTrust(HWND hwnd, GUID *ActionID, LPVOID ActionData)