Module: wine Branch: refs/heads/master Commit: 2c5f20b7019db04277d2d5261af2410b4749f86d URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=2c5f20b7019db04277d2d526...
Author: Juan Lang juan_lang@yahoo.com Date: Sat Feb 18 15:50:01 2006 +0100
wintrust: Add some stubs.
---
dlls/wintrust/wintrust.spec | 6 + dlls/wintrust/wintrust_main.c | 31 ++++++++ include/wintrust.h | 166 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 200 insertions(+), 3 deletions(-)
diff --git a/dlls/wintrust/wintrust.spec b/dlls/wintrust/wintrust.spec index fccc4aa..d5d0994 100644 --- a/dlls/wintrust/wintrust.spec +++ b/dlls/wintrust/wintrust.spec @@ -82,10 +82,10 @@ @ stub WTHelperGetKnownUsages @ stub WTHelperGetProvCertFromChain @ stub WTHelperGetProvPrivateDataFromChain -@ stub WTHelperGetProvSignerFromChain +@ stdcall WTHelperGetProvSignerFromChain(ptr long long long) @ stub WTHelperIsInRootStore @ stub WTHelperOpenKnownStores -@ stub WTHelperProvDataFromStateData +@ stdcall WTHelperProvDataFromStateData(ptr) @ stub WVTAsn1CatMemberInfoDecode @ stub WVTAsn1CatMemberInfoEncode @ stub WVTAsn1CatNameValueDecode @@ -109,7 +109,7 @@ @ stub WVTAsn1SpcStatementTypeDecode @ stub WVTAsn1SpcStatementTypeEncode @ stdcall WinVerifyTrust(long ptr ptr) -@ stub WinVerifyTrustEx +@ stdcall WinVerifyTrustEx(long ptr ptr) @ stdcall WintrustAddActionID(ptr long ptr) @ stub WintrustAddDefaultForUsage @ stub WintrustCertificateTrust diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c index 30bb992..3d7ac5c 100644 --- a/dlls/wintrust/wintrust_main.c +++ b/dlls/wintrust/wintrust_main.c @@ -94,6 +94,37 @@ LONG WINAPI WinVerifyTrust( HWND hwnd, G }
/*********************************************************************** + * WinVerifyTrustEx (WINTRUST.@) + */ +HRESULT WINAPI WinVerifyTrustEx( HWND hwnd, GUID *ActionID, + WINTRUST_DATA* ActionData ) +{ + FIXME("%p %s %p\n", hwnd, debugstr_guid(ActionID), ActionData); + return S_OK; +} + +/*********************************************************************** + * WTHelperGetProvSignerFromChain (WINTRUST.@) + */ +CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain( + CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner, + DWORD idxCounterSigner) +{ + FIXME("%p %ld %d %ld\n", pProvData, idxSigner, fCounterSigner, + idxCounterSigner); + return NULL; +} + +/*********************************************************************** + * WTHelperProvDataFromStateData (WINTRUST.@) + */ +CRYPT_PROVIDER_DATA * WINAPI WTHelperProvDataFromStateData(HANDLE hStateData) +{ + FIXME("%p\n", hStateData); + return NULL; +} + +/*********************************************************************** * WintrustAddActionID (WINTRUST.@) */ BOOL WINAPI WintrustAddActionID( GUID* pgActionID, DWORD fdwFlags, 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 @@ typedef struct _CRYPT_REGISTER_ACTIONID 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 @@ extern "C" { 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 }