wintrust: Add some stubs.
diff --git a/include/wintrust.h b/include/wintrust.h
index e86179b..174a391 100644
--- a/include/wintrust.h
+++ b/include/wintrust.h
@@ -121,6 +121,166 @@
CRYPT_TRUST_REG_ENTRY sCleanupProvider;
} CRYPT_REGISTER_ACTIONID, *PCRYPT_REGISTER_ACTIONID;
+typedef struct _CRYPT_PROVUI_DATA {
+ DWORD cbStruct;
+ DWORD dwFinalError;
+ WCHAR *pYesButtonText;
+ WCHAR *pNoButtonText;
+ WCHAR *pMoreInfoButtonText;
+ WCHAR *pAdvancedLinkText;
+ WCHAR *pCopyActionText;
+ WCHAR *pCopyActionTextNoTS;
+ WCHAR *pCopyActionTextNotSigned;
+} CRYPT_PROVUI_DATA, *PCRYPT_PROVUI_DATA;
+
+typedef struct _CRYPT_PROVIDER_CERT {
+ DWORD cbStruct;
+ PCCERT_CONTEXT pCert;
+ BOOL fCommercial;
+ BOOL fTrustedRoot;
+ BOOL fSelfSigned;
+ BOOL fTestCert;
+ DWORD dwRevokedReason;
+ DWORD dwConfidence;
+ DWORD dwError;
+ CTL_CONTEXT *pTrustListContext;
+ BOOL fTrustListSignerCert;
+ PCCTL_CONTEXT pCtlContext;
+ DWORD dwCtlError;
+ BOOL fIsCyclic;
+ PCERT_CHAIN_ELEMENT pChainElement;
+} CRYPT_PROVIDER_CERT, *PCRYPT_PROVIDER_CERT;
+
+typedef struct _CRYPT_PROVIDER_SGNR {
+ DWORD cbStruct;
+ FILETIME sftVerifyAsOf;
+ DWORD csCertChain;
+ CRYPT_PROVIDER_CERT *pasCertChain;
+ DWORD dwSignerType;
+ CMSG_SIGNER_INFO *psSigner;
+ DWORD dwError;
+ DWORD csCounterSigners;
+ struct _CRYPT_PROVIDER_SGNR *pasCounterSigners;
+ PCCERT_CHAIN_CONTEXT pChainContext;
+} CRYPT_PROVIDER_SGNR, *PCRYPT_PROVIDER_SGNR;
+
+typedef struct _CRYPT_PROVIDER_PRIVDATA {
+ DWORD cbStruct;
+ GUID gProviderID;
+ DWORD cbProvData;
+ void *pvProvData;
+} CRYPT_PROVIDER_PRIVDATA, *PCRYPT_PROVIDER_PRIVDATA;
+
+struct _CRYPT_PROVIDER_DATA;
+
+typedef void * (*PFN_CPD_MEM_ALLOC)(DWORD cbSize);
+typedef void (*PFN_CPD_MEM_FREE)(void *pvMem2Free);
+typedef BOOL (*PFN_CPD_ADD_STORE)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ HCERTSTORE hStore2Add);
+typedef BOOL (*PFN_CPD_ADD_SGNR)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ BOOL fCounterSigner, DWORD idxSigner, struct _CRYPT_PROVIDER_SGNR *pSgnr2Add);
+typedef BOOL (*PFN_CPD_ADD_CERT)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner,
+ PCCERT_CONTEXT pCert2Add);
+typedef BOOL (*PFN_CPD_ADD_PRIVDATA)(struct _CRYPT_PROVIDER_DATA *pProvData,
+ struct _CRYPT_PROVIDER_PRIVDATA *pPrivData2Add);
+typedef HRESULT (*PFN_PROVIDER_INIT_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_OBJTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_SIGTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_CERTTTRUST_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_FINALPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_TESTFINALPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef HRESULT (*PFN_PROVIDER_CLEANUP_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+typedef BOOL (*PFN_PROVIDER_CERTCHKPOLICY_CALL)(
+ struct _CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner,
+ BOOL fCounterSignerChain, DWORD idxCounterSigner);
+
+typedef struct _CRYPT_PROVIDER_FUNCTIONS {
+ DWORD cbStruct;
+ PFN_CPD_MEM_ALLOC pfnAlloc;
+ PFN_CPD_MEM_FREE pfnFree;
+ PFN_CPD_ADD_STORE pfnAddStore2Chain;
+ PFN_CPD_ADD_SGNR pfnAddSgnr2Chain;
+ PFN_CPD_ADD_CERT pfnAddCert2Chain;
+ PFN_CPD_ADD_PRIVDATA pfnAddPrivData2Chain;
+ PFN_PROVIDER_INIT_CALL pfnInitialize;
+ PFN_PROVIDER_OBJTRUST_CALL pfnObjectTrust;
+ PFN_PROVIDER_SIGTRUST_CALL pfnSignatureTrust;
+ PFN_PROVIDER_CERTTTRUST_CALL pfnCertificateTrust;
+ PFN_PROVIDER_FINALPOLICY_CALL pfnFinalPolicy;
+ PFN_PROVIDER_CERTCHKPOLICY_CALL pfnCertCheckPolicy;
+ PFN_PROVIDER_TESTFINALPOLICY_CALL pfnTestFinalPolicy;
+ struct _CRYPT_PROVUI_FUNCS *psUIpfns;
+ PFN_PROVIDER_CLEANUP_CALL pfnCleanupPolicy;
+} CRYPT_PROVIDER_FUNCTIONS, *PCRYPT_PROVIDER_FUNCTIONS;
+
+struct SIP_DISPATCH_INFO_;
+struct SIP_SUBJECTINFO_;
+struct SIP_INDIRECT_DATA_;
+
+typedef struct _PROVDATA_SIP {
+ DWORD cbStruct;
+ GUID gSubject;
+ struct SIP_DISPATCH_INFO_ *pSip;
+ struct SIP_DISPATCH_INFO_ *pCATSip;
+ struct SIP_SUBJECTINFO_ *psSipSubjectInfo;
+ struct SIP_SUBJECTINFO_ *psSipCATSubjectInfo;
+ struct SIP_INDIRECT_DATA_ *psIndirectData;
+} PROVDATA_SIP, *PPROVDATA_SIP;
+
+typedef struct _CRYPT_PROVIDER_DATA {
+ DWORD cbStruct;
+ WINTRUST_DATA *pWintrustData;
+ BOOL fOpenedFile;
+ HWND hWndParent;
+ GUID *pgActionID;
+ HCRYPTPROV hProv;
+ DWORD dwError;
+ DWORD dwRegSecuritySettings;
+ DWORD dwRegPolicySettings;
+ CRYPT_PROVIDER_FUNCTIONS *psPfns;
+ DWORD cdwTrustStepErrors;
+ DWORD *padwTrustStepErrors;
+ DWORD chStores;
+ HCERTSTORE *pahStores;
+ DWORD dwEncoding;
+ HCRYPTMSG hMsg;
+ DWORD csSigners;
+ CRYPT_PROVIDER_SGNR *pasSigners;
+ DWORD dwSubjectChoice;
+ union {
+ struct _PROVDATA_SIP *pPDSip;
+ } DUMMYUNIONNAME;
+ char *pszUsageOID;
+ BOOL fRecallWithState;
+ FILETIME sftSystemTime;
+ char *pszCTLSignerUsageOID;
+ DWORD dwProvFlags;
+ DWORD dwFinalError;
+ PCERT_USAGE_MATCH pRequestUsage;
+ DWORD dwTrustPubSettings;
+ DWORD dwUIStateFlags;
+} CRYPT_PROVIDER_DATA, *PCRYPT_PROVIDER_DATA;
+
+typedef BOOL (*PFN_PROVUI_CALL)(HWND hWndSecurityDialog,
+ struct _CRYPT_PROVIDER_DATA *pProvData);
+
+typedef struct _CRYPT_PROVUI_FUNCS {
+ DWORD cbStruct;
+ CRYPT_PROVUI_DATA psUIData;
+ PFN_PROVUI_CALL pfnOnMoreInfoClick;
+ PFN_PROVUI_CALL pfnOnMoreInfoClickDefault;
+ PFN_PROVUI_CALL pfnOnAdvancedClick;
+ PFN_PROVUI_CALL pfnOnAdvancedClickDefault;
+} CRYPT_PROVUI_FUNCS, *PCRYPT_PROVUI_FUNCS;
+
#include <poppack.h>
@@ -131,6 +291,12 @@
BOOL WINAPI WintrustAddActionID(GUID*,DWORD,CRYPT_REGISTER_ACTIONID*);
void WINAPI WintrustGetRegPolicyFlags(DWORD*);
LONG WINAPI WinVerifyTrust(HWND,GUID*,WINTRUST_DATA*);
+HRESULT WINAPI WinVerifyTrustEx(HWND,GUID*,WINTRUST_DATA*);
+
+CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain(
+ CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner,
+ DWORD idxCounterSigner);
+CRYPT_PROVIDER_DATA * WINAPI WTHelperProvDataFromStateData(HANDLE hStateData);
#ifdef __cplusplus
}