Juan Lang : wintrust: Add some stubs.

Alexandre Julliard julliard at wine.codeweavers.com
Sat Feb 18 09:22:58 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 2c5f20b7019db04277d2d5261af2410b4749f86d
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=2c5f20b7019db04277d2d5261af2410b4749f86d

Author: Juan Lang <juan_lang at 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
 }




More information about the wine-cvs mailing list