ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

wintrust.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2004 Francois Gouget
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_WINTRUST_H
00020 #define __WINE_WINTRUST_H
00021 
00022 #include <wincrypt.h>
00023 
00024 
00025 #include <pshpack8.h>
00026 
00027 typedef struct WINTRUST_FILE_INFO_
00028 {
00029     DWORD   cbStruct;
00030     LPCWSTR pcwszFilePath;
00031     HANDLE  hFile;
00032     GUID*   pgKnownSubject;
00033 } WINTRUST_FILE_INFO, *PWINTRUST_FILE_INFO;
00034 
00035 typedef struct WINTRUST_CATALOG_INFO_
00036 {
00037     DWORD         cbStruct;
00038     DWORD         dwCatalogVersion;
00039     LPCWSTR       pcwszCatalogFilePath;
00040     LPCWSTR       pcwszMemberTag;
00041     LPCWSTR       pcwszMemberFilePath;
00042     HANDLE        hMemberFile;
00043     BYTE*         pbCalculatedFileHash;
00044     DWORD         cbCalculatedFileHash;
00045     PCCTL_CONTEXT pcCatalogContext;
00046 } WINTRUST_CATALOG_INFO, *PWINTRUST_CATALOG_INFO;
00047 
00048 typedef struct WINTRUST_BLOB_INFO_
00049 {
00050     DWORD   cbStruct;
00051     GUID    gSubject;
00052     LPCWSTR pcwszDisplayName;
00053     DWORD   cbMemObject;
00054     BYTE*   pbMemObject;
00055     DWORD   cbMemSignedMsg;
00056     BYTE*   pbMemSignedMsg;
00057 } WINTRUST_BLOB_INFO, *PWINTRUST_BLOB_INFO;
00058 
00059 typedef struct WINTRUST_SGNR_INFO_
00060 {
00061     DWORD             cbStruct;
00062     LPCWSTR           pcwszDisplayName;
00063     CMSG_SIGNER_INFO* psSignerInfo;
00064     DWORD             chStores;
00065     HCERTSTORE*       pahStores;
00066 } WINTRUST_SGNR_INFO, *PWINTRUST_SGNR_INFO;
00067 
00068 typedef struct WINTRUST_CERT_INFO_
00069 {
00070     DWORD         cbStruct;
00071     LPCWSTR       pcwszDisplayName;
00072     CERT_CONTEXT* psCertContext;
00073     DWORD         chStores;
00074     HCERTSTORE*   pahStores;
00075     DWORD         dwFlags;
00076     FILETIME*     psftVerifyAsOf;
00077 } WINTRUST_CERT_INFO, *PWINTRUST_CERT_INFO;
00078 
00079 #define WTCI_DONT_OPEN_STORES 0x00000001
00080 #define WTCI_OPEN_ONLY_ROOT   0x00000002
00081 
00082 /* dwUIChoice */
00083 #define WTD_UI_ALL                1
00084 #define WTD_UI_NONE               2
00085 #define WTD_UI_NOBAD              3
00086 #define WTD_UI_NOGOOD             4
00087 /* fdwRevocationChecks */
00088 #define WTD_REVOKE_NONE           0
00089 #define WTD_REVOKE_WHOLECHAIN     1
00090 /* dwUnionChoice */
00091 #define WTD_CHOICE_FILE           1
00092 #define WTD_CHOICE_CATALOG        2
00093 #define WTD_CHOICE_BLOB           3
00094 #define WTD_CHOICE_SIGNER         4
00095 #define WTD_CHOICE_CERT           5
00096 
00097 typedef struct _WINTRUST_DATA
00098 {
00099     DWORD  cbStruct;
00100     LPVOID pPolicyCallbackData;
00101     LPVOID pSIPClientData;
00102     DWORD  dwUIChoice;
00103     DWORD  fdwRevocationChecks;
00104     DWORD  dwUnionChoice;
00105     union
00106     {
00107         struct WINTRUST_FILE_INFO_*    pFile;
00108         struct WINTRUST_CATALOG_INFO_* pCatalog;
00109         struct WINTRUST_BLOB_INFO_*    pBlob;
00110         struct WINTRUST_SGNR_INFO_*    pSgnr;
00111         struct WINTRUST_CERT_INFO_*    pCert;
00112     } DUMMYUNIONNAME;
00113 
00114     DWORD  dwStateAction;
00115     HANDLE hWVTStateData;
00116     WCHAR* pwszURLReference;
00117     DWORD  dwProvFlags;
00118     DWORD  dwUIContext;
00119 } WINTRUST_DATA, *PWINTRUST_DATA;
00120 
00121 #define WTD_STATEACTION_IGNORE           0
00122 #define WTD_STATEACTION_VERIFY           1
00123 #define WTD_STATEACTION_CLOSE            2
00124 #define WTD_STATEACTION_AUTO_CACHE       3
00125 #define WTD_STATEACTION_AUTO_CACHE_FLUSH 4
00126 
00127 #define WTD_PROV_FLAGS_MASK                     0x0000ffff
00128 #define WTD_USE_IE4_TRUST_FLAG                  0x00000001
00129 #define WTD_NO_IE4_CHAIN_FLAG                   0x00000002
00130 #define WTD_NO_POLICY_USAGE_FLAG                0x00000004
00131 #define WTD_REVOCATION_CHECK_NONE               0x00000010
00132 #define WTD_REVOCATION_CHECK_END_CERT           0x00000020
00133 #define WTD_REVOCATION_CHECK_CHAIN              0x00000040
00134 #define WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x00000080
00135 #define WTD_SAFER_FLAG                          0x00000100
00136 #define WTD_HASH_ONLY_FLAG                      0x00000200
00137 #define WTD_USE_DEFAULT_OSVER_CHECK             0x00000400
00138 #define WTD_LIFETIME_SIGNING_FLAG               0x00000800
00139 #define WTD_CACHE_ONLY_URL_RETRIEVAL            0x00001000
00140 
00141 #define WTD_UICONTEXT_EXECUTE 0
00142 #define WTD_UICONTEXT_INSTALL 1
00143 
00144 typedef struct _CRYPT_TRUST_REG_ENTRY
00145 {
00146     DWORD cbStruct;
00147     WCHAR *pwszDLLName;
00148     WCHAR *pwszFunctionName;
00149 } CRYPT_TRUST_REG_ENTRY, *PCRYPT_TRUST_REG_ENTRY;
00150 
00151 typedef struct _CRYPT_REGISTER_ACTIONID
00152 {
00153     DWORD cbStruct;
00154     CRYPT_TRUST_REG_ENTRY sInitProvider;
00155     CRYPT_TRUST_REG_ENTRY sObjectProvider;
00156     CRYPT_TRUST_REG_ENTRY sSignatureProvider;
00157     CRYPT_TRUST_REG_ENTRY sCertificateProvider;
00158     CRYPT_TRUST_REG_ENTRY sCertificatePolicyProvider;
00159     CRYPT_TRUST_REG_ENTRY sFinalPolicyProvider;
00160     CRYPT_TRUST_REG_ENTRY sTestPolicyProvider;
00161     CRYPT_TRUST_REG_ENTRY sCleanupProvider;
00162 } CRYPT_REGISTER_ACTIONID, *PCRYPT_REGISTER_ACTIONID;
00163 
00164 typedef struct _CRYPT_PROVIDER_REGDEFUSAGE
00165 {
00166     DWORD cbStruct;
00167     GUID  *pgActionID;
00168     WCHAR *pwszDllName;
00169     char  *pwszLoadCallbackDataFunctionName;
00170     char  *pwszFreeCallbackDataFunctionName;
00171 } CRYPT_PROVIDER_REGDEFUSAGE, *PCRYPT_PROVIDER_REGDEFUSAGE;
00172 
00173 typedef struct _CRYPT_PROVUI_DATA {
00174     DWORD cbStruct;
00175     DWORD dwFinalError;
00176     WCHAR *pYesButtonText;
00177     WCHAR *pNoButtonText;
00178     WCHAR *pMoreInfoButtonText;
00179     WCHAR *pAdvancedLinkText;
00180     WCHAR *pCopyActionText;
00181     WCHAR *pCopyActionTextNoTS;
00182     WCHAR *pCopyActionTextNotSigned;
00183 } CRYPT_PROVUI_DATA, *PCRYPT_PROVUI_DATA;
00184 
00185 typedef struct _CRYPT_PROVIDER_CERT {
00186     DWORD               cbStruct;
00187     PCCERT_CONTEXT      pCert;
00188     BOOL                fCommercial;
00189     BOOL                fTrustedRoot;
00190     BOOL                fSelfSigned;
00191     BOOL                fTestCert;
00192     DWORD               dwRevokedReason;
00193     DWORD               dwConfidence;
00194     DWORD               dwError;
00195     CTL_CONTEXT        *pTrustListContext;
00196     BOOL                fTrustListSignerCert;
00197     PCCTL_CONTEXT       pCtlContext;
00198     DWORD               dwCtlError;
00199     BOOL                fIsCyclic;
00200     PCERT_CHAIN_ELEMENT pChainElement;
00201 } CRYPT_PROVIDER_CERT, *PCRYPT_PROVIDER_CERT;
00202 
00203 #define CERT_CONFIDENCE_SIG       0x10000000
00204 #define CERT_CONFIDENCE_TIME      0x01000000
00205 #define CERT_CONFIDENCE_TIMENEST  0x00100000
00206 #define CERT_CONFIDENCE_AUTHIDEXT 0x00010000
00207 #define CERT_CONFIDENCE_HYGIENE   0x00001000
00208 #define CERT_CONFIDENCE_HIGHEST   0x11111000
00209 
00210 typedef struct _CRYPT_PROVIDER_SGNR {
00211     DWORD                cbStruct;
00212     FILETIME             sftVerifyAsOf;
00213     DWORD                csCertChain;
00214     CRYPT_PROVIDER_CERT *pasCertChain;
00215     DWORD                dwSignerType;
00216     CMSG_SIGNER_INFO    *psSigner;
00217     DWORD                dwError;
00218     DWORD                csCounterSigners;
00219     struct _CRYPT_PROVIDER_SGNR *pasCounterSigners;
00220     PCCERT_CHAIN_CONTEXT pChainContext;
00221 } CRYPT_PROVIDER_SGNR, *PCRYPT_PROVIDER_SGNR;
00222 
00223 #define SGNR_TYPE_TIMESTAMP 0x00000010
00224 
00225 typedef struct _CRYPT_PROVIDER_PRIVDATA {
00226     DWORD cbStruct;
00227     GUID  gProviderID;
00228     DWORD cbProvData;
00229     void *pvProvData;
00230 } CRYPT_PROVIDER_PRIVDATA, *PCRYPT_PROVIDER_PRIVDATA;
00231 
00232 struct _CRYPT_PROVIDER_DATA;
00233 
00234 #define TRUSTERROR_STEP_WVTPARAMS               0
00235 #define TRUSTERROR_STEP_FILEIO                  2
00236 #define TRUSTERROR_STEP_SIP                     3
00237 #define TRUSTERROR_STEP_SIPSUBJINFO             5
00238 #define TRUSTERROR_STEP_CATALOGFILE             6
00239 #define TRUSTERROR_STEP_CERTSTORE               7
00240 #define TRUSTERROR_STEP_MESSAGE                 8
00241 #define TRUSTERROR_STEP_MSG_SIGNERCOUNT         9
00242 #define TRUSTERROR_STEP_MSG_INNERCNTTYPE       10
00243 #define TRUSTERROR_STEP_MSG_INNERCNT           11
00244 #define TRUSTERROR_STEP_MSG_STORE              12
00245 #define TRUSTERROR_STEP_MSG_SIGNERINFO         13
00246 #define TRUSTERROR_STEP_MSG_SIGNERCERT         14
00247 #define TRUSTERROR_STEP_MSG_CERTCHAIN          15
00248 #define TRUSTERROR_STEP_MSG_COUNTERSIGINFO     16
00249 #define TRUSTERROR_STEP_MSG_COUNTERSIGCERT     17
00250 #define TRUSTERROR_STEP_VERIFY_MSGHASH         18
00251 #define TRUSTERROR_STEP_VERIFY_MSGINDIRECTDATA 19
00252 #define TRUSTERROR_STEP_FINAL_WVTINIT          30
00253 #define TRUSTERROR_STEP_FINAL_INITPROV         31
00254 #define TRUSTERROR_STEP_FINAL_OBJPROV          32
00255 #define TRUSTERROR_STEP_FINAL_SIGPROV          33
00256 #define TRUSTERROR_STEP_FINAL_CERTPROV         34
00257 #define TRUSTERROR_STEP_FINAL_CERTCHKPROV      35
00258 #define TRUSTERROR_STEP_FINAL_POLICYPROV       36
00259 #define TRUSTERROR_STEP_FINAL_UIPROV           37
00260 
00261 #define TRUSTERROR_MAX_STEPS                   38
00262 
00263 typedef void * (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CPD_MEM_ALLOC)(DWORD cbSize);
00264 typedef void (WINAPI *PFN_CPD_MEM_FREE)(void *pvMem2Free);
00265 typedef BOOL (WINAPI *PFN_CPD_ADD_STORE)(struct _CRYPT_PROVIDER_DATA *pProvData,
00266  HCERTSTORE hStore2Add);
00267 typedef BOOL (WINAPI *PFN_CPD_ADD_SGNR)(struct _CRYPT_PROVIDER_DATA *pProvData,
00268  BOOL fCounterSigner, DWORD idxSigner, struct _CRYPT_PROVIDER_SGNR *pSgnr2Add);
00269 typedef BOOL (WINAPI *PFN_CPD_ADD_CERT)(struct _CRYPT_PROVIDER_DATA *pProvData,
00270  DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner,
00271  PCCERT_CONTEXT pCert2Add);
00272 typedef BOOL (WINAPI *PFN_CPD_ADD_PRIVDATA)(struct _CRYPT_PROVIDER_DATA *pProvData,
00273  struct _CRYPT_PROVIDER_PRIVDATA *pPrivData2Add);
00274 typedef HRESULT (WINAPI *PFN_PROVIDER_INIT_CALL)(
00275  struct _CRYPT_PROVIDER_DATA *pProvData);
00276 typedef HRESULT (WINAPI *PFN_PROVIDER_OBJTRUST_CALL)(
00277  struct _CRYPT_PROVIDER_DATA *pProvData);
00278 typedef HRESULT (WINAPI *PFN_PROVIDER_SIGTRUST_CALL)(
00279  struct _CRYPT_PROVIDER_DATA *pProvData);
00280 typedef HRESULT (WINAPI *PFN_PROVIDER_CERTTRUST_CALL)(
00281  struct _CRYPT_PROVIDER_DATA *pProvData);
00282 typedef HRESULT (WINAPI *PFN_PROVIDER_FINALPOLICY_CALL)(
00283  struct _CRYPT_PROVIDER_DATA *pProvData);
00284 typedef HRESULT (WINAPI *PFN_PROVIDER_TESTFINALPOLICY_CALL)(
00285  struct _CRYPT_PROVIDER_DATA *pProvData);
00286 typedef HRESULT (WINAPI *PFN_PROVIDER_CLEANUP_CALL)(
00287  struct _CRYPT_PROVIDER_DATA *pProvData);
00288 typedef BOOL (WINAPI *PFN_PROVIDER_CERTCHKPOLICY_CALL)(
00289  struct _CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner,
00290  BOOL fCounterSignerChain, DWORD idxCounterSigner);
00291 
00292 typedef struct _CRYPT_PROVIDER_FUNCTIONS {
00293     DWORD cbStruct;
00294     PFN_CPD_MEM_ALLOC    pfnAlloc;
00295     PFN_CPD_MEM_FREE     pfnFree;
00296     PFN_CPD_ADD_STORE    pfnAddStore2Chain;
00297     PFN_CPD_ADD_SGNR     pfnAddSgnr2Chain;
00298     PFN_CPD_ADD_CERT     pfnAddCert2Chain;
00299     PFN_CPD_ADD_PRIVDATA pfnAddPrivData2Chain;
00300     PFN_PROVIDER_INIT_CALL            pfnInitialize;
00301     PFN_PROVIDER_OBJTRUST_CALL        pfnObjectTrust;
00302     PFN_PROVIDER_SIGTRUST_CALL        pfnSignatureTrust;
00303     PFN_PROVIDER_CERTTRUST_CALL       pfnCertificateTrust;
00304     PFN_PROVIDER_FINALPOLICY_CALL     pfnFinalPolicy;
00305     PFN_PROVIDER_CERTCHKPOLICY_CALL   pfnCertCheckPolicy;
00306     PFN_PROVIDER_TESTFINALPOLICY_CALL pfnTestFinalPolicy;
00307     struct _CRYPT_PROVUI_FUNCS       *psUIpfns;
00308     PFN_PROVIDER_CLEANUP_CALL         pfnCleanupPolicy;
00309 } CRYPT_PROVIDER_FUNCTIONS, *PCRYPT_PROVIDER_FUNCTIONS;
00310 
00311 struct SIP_DISPATCH_INFO_;
00312 struct SIP_SUBJECTINFO_;
00313 struct SIP_INDIRECT_DATA_;
00314 
00315 typedef struct _PROVDATA_SIP {
00316     DWORD cbStruct;
00317     GUID  gSubject;
00318     struct SIP_DISPATCH_INFO_ *pSip;
00319     struct SIP_DISPATCH_INFO_ *pCATSip;
00320     struct SIP_SUBJECTINFO_   *psSipSubjectInfo;
00321     struct SIP_SUBJECTINFO_   *psSipCATSubjectInfo;
00322     struct SIP_INDIRECT_DATA_ *psIndirectData;
00323 } PROVDATA_SIP, *PPROVDATA_SIP;
00324 
00325 typedef struct _CRYPT_PROVIDER_DATA {
00326     DWORD                     cbStruct;
00327     WINTRUST_DATA            *pWintrustData;
00328     BOOL                      fOpenedFile;
00329     HWND                      hWndParent;
00330     GUID                     *pgActionID;
00331     HCRYPTPROV                hProv;
00332     DWORD                     dwError;
00333     DWORD                     dwRegSecuritySettings;
00334     DWORD                     dwRegPolicySettings;
00335     CRYPT_PROVIDER_FUNCTIONS *psPfns;
00336     DWORD                     cdwTrustStepErrors;
00337     DWORD                    *padwTrustStepErrors;
00338     DWORD                     chStores;
00339     HCERTSTORE               *pahStores;
00340     DWORD                     dwEncoding;
00341     HCRYPTMSG                 hMsg;
00342     DWORD                     csSigners;
00343     CRYPT_PROVIDER_SGNR      *pasSigners;
00344     DWORD                     csProvPrivData;
00345     CRYPT_PROVIDER_PRIVDATA  *pasProvPrivData;
00346     DWORD                     dwSubjectChoice;
00347     union {
00348         struct _PROVDATA_SIP        *pPDSip;
00349     } DUMMYUNIONNAME;
00350     char                     *pszUsageOID;
00351     BOOL                      fRecallWithState;
00352     FILETIME                  sftSystemTime;
00353     char                      *pszCTLSignerUsageOID;
00354     DWORD                     dwProvFlags;
00355     DWORD                     dwFinalError;
00356     PCERT_USAGE_MATCH         pRequestUsage;
00357     DWORD                     dwTrustPubSettings;
00358     DWORD                     dwUIStateFlags;
00359 } CRYPT_PROVIDER_DATA, *PCRYPT_PROVIDER_DATA;
00360 
00361 #define CPD_CHOICE_SIP 1
00362 
00363 #define CPD_USE_NT5_CHAIN_FLAG                  0x80000000
00364 #define CPD_REVOCATION_CHECK_NONE               0x00010000
00365 #define CPD_REVOCATION_CHECK_END_CERT           0x00020000
00366 #define CPD_REVOCATION_CHECK_CHAIN              0x00040000
00367 #define CPD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x00080000
00368 
00369 #define CPD_UISTATE_MODE_PROMPT 0x00000000
00370 #define CPD_UISTATE_MODE_BLOCK  0x00000001
00371 #define CPD_UISTATE_MODE_ALLOW  0x00000002
00372 #define CPD_UISTATE_MODE_MASK   0x00000003
00373 
00374 typedef BOOL (CALLBACK *PFN_PROVUI_CALL)(HWND hWndSecurityDialog,
00375  struct _CRYPT_PROVIDER_DATA *pProvData);
00376 
00377 typedef struct _CRYPT_PROVUI_FUNCS {
00378     DWORD cbStruct;
00379     CRYPT_PROVUI_DATA psUIData;
00380     PFN_PROVUI_CALL pfnOnMoreInfoClick;
00381     PFN_PROVUI_CALL pfnOnMoreInfoClickDefault;
00382     PFN_PROVUI_CALL pfnOnAdvancedClick;
00383     PFN_PROVUI_CALL pfnOnAdvancedClickDefault;
00384 } CRYPT_PROVUI_FUNCS, *PCRYPT_PROVUI_FUNCS;
00385 
00386 #include <poppack.h>
00387 
00388 #define WVT_OFFSETOF(t,f)     ((ULONG)((ULONG_PTR)(&((t*)0)->f)))
00389 #define WVT_ISINSTRUCT(t,s,f) (WVT_OFFSETOF(t,f) + sizeof(((t*)0)->f) <= (s))
00390 #define WVT_IS_CBSTRUCT_GT_MEMBEROFFSET(t,s,f) WVT_ISINSTRUCT(t,s,f)
00391 
00392 #define WTPF_TRUSTTEST            0x00000020
00393 #define WTPF_TESTCANBEVALID       0x00000080
00394 #define WTPF_IGNOREEXPIRATION     0x00000100
00395 #define WTPF_IGNOREREVOKATION     0x00000200
00396 #define WTPF_OFFLINEOK_IND        0x00000400
00397 #define WTPF_OFFLINEOK_COM        0x00000800
00398 #define WTPF_OFFLINEOKNBU_IND     0x00001000
00399 #define WTPF_OFFLINEOKNBU_COM     0x00002000
00400 #define WTPF_VERIFY_V1_OFF        0x00010000
00401 #define WTPF_IGNOREREVOCATIONONTS 0x00020000
00402 #define WTPF_ALLOWONLYPERTRUST    0x00040000
00403 
00404 #define WT_ADD_ACTION_ID_RET_RESULT_FLAG 1
00405 
00406 #ifdef __cplusplus
00407 extern "C" {
00408 #endif
00409 
00410 #if defined(__GNUC__)
00411 #define WT_PROVIDER_CERTTRUST_FUNCTION (const WCHAR []) \
00412     {'W','i','n','t','r','u','s','t','C','e','r','t','i','f','i','c','a','t','e','T','r','u','s','t', 0}
00413 #elif defined(_MSC_VER)
00414 #define WT_PROVIDER_CERTTRUST_FUNCTION L"WintrustCertificateTrust"
00415 #else
00416 static const WCHAR WT_PROVIDER_CERTTRUST_FUNCTION[] =
00417     {'W','i','n','t','r','u','s','t','C','e','r','t','i','f','i','c','a','t','e','T','r','u','s','t', 0};
00418 #endif
00419 
00420 BOOL      WINAPI WintrustAddActionID(GUID*,DWORD,CRYPT_REGISTER_ACTIONID*);
00421 BOOL      WINAPI WintrustRemoveActionID(GUID*);
00422 BOOL      WINAPI WintrustLoadFunctionPointers(GUID*,CRYPT_PROVIDER_FUNCTIONS*);
00423 BOOL      WINAPI WintrustAddDefaultForUsage(const char*,CRYPT_PROVIDER_REGDEFUSAGE*);
00424 void      WINAPI WintrustGetRegPolicyFlags(DWORD*);
00425 BOOL      WINAPI WintrustSetRegPolicyFlags(DWORD);
00426 LONG      WINAPI WinVerifyTrust(HWND,GUID*,LPVOID);
00427 HRESULT   WINAPI WinVerifyTrustEx(HWND,GUID*,WINTRUST_DATA*);
00428 
00429 CRYPT_PROVIDER_CERT * WINAPI WTHelperGetProvCertFromChain(
00430  CRYPT_PROVIDER_SGNR *pSgnr, DWORD idxCert);
00431 CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain(
00432  CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner,
00433  DWORD idxCounterSigner);
00434 CRYPT_PROVIDER_DATA * WINAPI WTHelperProvDataFromStateData(HANDLE hStateData);
00435 CRYPT_PROVIDER_PRIVDATA * WINAPI WTHelperGetProvPrivateDataFromChain(CRYPT_PROVIDER_DATA *,GUID *);
00436 
00437 #define SPC_INDIRECT_DATA_OBJID      "1.3.6.1.4.1.311.2.1.4"
00438 #define SPC_SP_AGENCY_INFO_OBJID     "1.3.6.1.4.1.311.2.1.10"
00439 #define SPC_STATEMENT_TYPE_OBJID     "1.3.6.1.4.1.311.2.1.11"
00440 #define SPC_SP_OPUS_INFO_OBJID       "1.3.6.1.4.1.311.2.1.12"
00441 #define SPC_CERT_EXTENSIONS_OBJID    "1.3.6.1.4.1.311.2.1.14"
00442 #define SPC_PE_IMAGE_DATA_OBJID      "1.3.6.1.4.1.311.2.1.15"
00443 #define SPC_RAW_FILE_DATA_OBJID      "1.3.6.1.4.1.311.2.1.18"
00444 #define SPC_STRUCTURED_STORAGE_DATA_OBJID "1.3.6.1.4.1.311.2.1.19"
00445 #define SPC_JAVA_CLASS_DATA_OBJID    "1.3.6.1.4.1.311.2.1.20"
00446 #define SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID "1.3.6.1.4.1.311.2.1.21"
00447 #define SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID "1.3.6.1.4.1.311.2.1.22"
00448 #define SPC_CAB_DATA_OBJID           "1.3.6.1.4.1.311.2.1.25"
00449 #define SPC_GLUE_RDN_OBJID           "1.3.6.1.4.1.311.2.1.25"
00450 #define SPC_MINIMAL_CRITERIA_OBJID   "1.3.6.1.4.1.311.2.1.26"
00451 #define SPC_FINANCIAL_CRITERIA_OBJID "1.3.6.1.4.1.311.2.1.27"
00452 #define SPC_LINK_OBJID               "1.3.6.1.4.1.311.2.1.28"
00453 #define SPC_SIGINFO_OBJID            "1.3.6.1.4.1.311.2.1.30"
00454 #define CAT_NAMEVALUE_OBJID          "1.3.6.1.4.1.311.12.2.1"
00455 #define CAT_MEMBERINFO_OBJID         "1.3.6.1.4.1.311.12.2.2"
00456 
00457 #define SPC_SP_AGENCY_INFO_STRUCT        ((LPCSTR) 2000)
00458 #define SPC_MINIMAL_CRITERIA_STRUCT      ((LPCSTR) 2001)
00459 #define SPC_FINANCIAL_CRITERIA_STRUCT    ((LPCSTR) 2002)
00460 #define SPC_INDIRECT_DATA_CONTENT_STRUCT ((LPCSTR) 2003)
00461 #define SPC_PE_IMAGE_DATA_STRUCT         ((LPCSTR) 2004)
00462 #define SPC_LINK_STRUCT                  ((LPCSTR) 2005)
00463 #define SPC_STATEMENT_TYPE_STRUCT        ((LPCSTR) 2006)
00464 #define SPC_SP_OPUS_INFO_STRUCT          ((LPCSTR) 2007)
00465 #define SPC_CAB_DATA_STRUCT              ((LPCSTR) 2008)
00466 #define SPC_JAVA_CLASS_DATA_STRUCT       ((LPCSTR) 2009)
00467 #define SPC_SIGINFO_STRUCT               ((LPCSTR) 2130)
00468 #define CAT_NAMEVALUE_STRUCT             ((LPCSTR) 2221)
00469 #define CAT_MEMBERINFO_STRUCT            ((LPCSTR) 2222)
00470 
00471 #define SPC_UUID_LENGTH 16
00472 typedef BYTE SPC_UUID[SPC_UUID_LENGTH];
00473 
00474 typedef struct _SPC_SERIALIZED_OBJECT
00475 {
00476     SPC_UUID        ClassId;
00477     CRYPT_DATA_BLOB SerializedData;
00478 } SPC_SERIALIZED_OBJECT, *PSPC_SERIALIZED_OBJECT;
00479 
00480 typedef struct SPC_SIGINFO_
00481 {
00482     DWORD dwSipVersion;
00483     GUID  gSIPGuid;
00484     DWORD dwReserved1;
00485     DWORD dwReserved2;
00486     DWORD dwReserved3;
00487     DWORD dwReserved4;
00488     DWORD dwReserved5;
00489 } SPC_SIGINFO, *PSPC_SIGINFO;
00490 
00491 #define SPC_URL_LINK_CHOICE     1
00492 #define SPC_MONIKER_LINK_CHOICE 2
00493 #define SPC_FILE_LINK_CHOICE    3
00494 
00495 typedef struct SPC_LINK_
00496 {
00497     DWORD dwLinkChoice;
00498     union
00499     {
00500         LPWSTR                pwszUrl;
00501         SPC_SERIALIZED_OBJECT Moniker;
00502         LPWSTR                pwszFile;
00503     } DUMMYUNIONNAME;
00504 } SPC_LINK, *PSPC_LINK;
00505 
00506 typedef struct _SPC_PE_IMAGE_DATA
00507 {
00508     CRYPT_BIT_BLOB Flags;
00509     PSPC_LINK      pFile;
00510 } SPC_PE_IMAGE_DATA, *PSPC_PE_IMAGE_DATA;
00511 
00512 typedef struct _SPC_INDIRECT_DATA_CONTENT
00513 {
00514     CRYPT_ATTRIBUTE_TYPE_VALUE Data;
00515     CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
00516     CRYPT_HASH_BLOB            Digest;
00517 } SPC_INDIRECT_DATA_CONTENT, *PSPC_INDIRECT_DATA_CONTENT;
00518 
00519 typedef struct _SPC_FINANCIAL_CRITERIA
00520 {
00521     BOOL fFinancialInfoAvailable;
00522     BOOL fMeetsCriteria;
00523 } SPC_FINANCIAL_CRITERIA, *PSPC_FINANCIAL_CRITERIA;
00524 
00525 typedef struct _SPC_IMAGE
00526 {
00527     struct SPC_LINK_ *pImageLink;
00528     CRYPT_DATA_BLOB   Bitmap;
00529     CRYPT_DATA_BLOB   Metafile;
00530     CRYPT_DATA_BLOB   EnhancedMetafile;
00531     CRYPT_DATA_BLOB   GifFile;
00532 } SPC_IMAGE, *PSPC_IMAGE;
00533 
00534 typedef struct _SPC_SP_AGENCY_INFO
00535 {
00536     struct SPC_LINK_ *pPolicyInformation;
00537     LPWSTR            pwszPolicyDisplayText;
00538     PSPC_IMAGE        pLogoImage;
00539     struct SPC_LINK_ *pLogoLink;
00540 } SPC_SP_AGENCY_INFO, *PSPC_SP_AGENCY_INFO;
00541 
00542 typedef struct _SPC_STATEMENT_TYPE
00543 {
00544     DWORD  cKeyPurposeId;
00545     LPSTR *rgpszKeyPurposeId;
00546 } SPC_STATEMENT_TYPE, *PSPC_STATEMENT_TYPE;
00547 
00548 typedef struct _SPC_SP_OPUS_INFO
00549 {
00550     LPCWSTR           pwszProgramName;
00551     struct SPC_LINK_ *pMoreInfo;
00552     struct SPC_LINK_ *pPublisherInfo;
00553 } SPC_SP_OPUS_INFO, *PSPC_SP_OPUS_INFO;
00554 
00555 typedef struct _CAT_NAMEVALUE
00556 {
00557     LPWSTR          pwszTag;
00558     DWORD           fdwFlags;
00559     CRYPT_DATA_BLOB Value;
00560 } CAT_NAMEVALUE, *PCAT_NAMEVALUE;
00561 
00562 typedef struct _CAT_MEMBERINFO
00563 {
00564     LPWSTR pwszSubjGuid;
00565     DWORD  dwCertVersion;
00566 } CAT_MEMBERINFO, *PCAT_MEMBERINFO;
00567 
00568 /* PSDK protects the remaining defines with WT_DEFINE_ALL_APIS, but it's
00569  * defined by default.  No need to protect against bad headers from old PSDKs.
00570  */
00571 
00572 typedef struct _WIN_CERTIFICATE {
00573   DWORD dwLength;
00574   WORD  wRevision;                   /*  WIN_CERT_REVISION_xxx */
00575   WORD  wCertificateType;            /*  WIN_CERT_TYPE_xxx */
00576   BYTE  bCertificate[ANYSIZE_ARRAY];
00577 } WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
00578 
00579 #define WIN_CERT_REVISION_1_0 0x0100
00580 #define WIN_CERT_REVISION_2_0 0x0200
00581 
00582 #define WIN_CERT_TYPE_X509             0x0001 /* X.509 Certificate */
00583 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
00584 #define WIN_CERT_TYPE_RESERVED_1       0x0003 /* Reserved */
00585 #define WIN_CERT_TYPE_TS_STACK_SIGNED  0x0004
00586 
00587 typedef LPVOID WIN_TRUST_SUBJECT;
00588 
00589 typedef struct _WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT
00590 {
00591     HANDLE            hClientToken;
00592     GUID             *SubjectType;
00593     WIN_TRUST_SUBJECT Subject;
00594 } WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT,
00595  *LPWIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT;
00596 
00597 typedef struct _WIN_TRUST_ACTDATA_CONTEXT_SUBJECT_ONLY
00598 {
00599     GUID             *SubjectType;
00600     WIN_TRUST_SUBJECT Subject;
00601 } WIN_TRUST_ACTDATA_CONTEXT_SUBJECT_ONLY,
00602  *LPWIN_TRUST_ACTDATA_CONTEXT_SUBJECT_ONLY;
00603 
00604 typedef struct _WIN_TRUST_SUBJECT_FILE
00605 {
00606     HANDLE  hFile;
00607     LPCWSTR lpPath;
00608 } WIN_TRUST_SUBJECT_FILE, *LPWIN_TRUST_SUBJECT_FILE;
00609 
00610 typedef struct _WIN_TRUST_SUBJECT_FILE_AND_DISPLAY
00611 {
00612     HANDLE  hFile;
00613     LPCWSTR lpPath;
00614     LPCWSTR lpDisplayName;
00615 } WIN_TRUST_SUBJECT_FILE_AND_DISPLAY, *LPWIN_TRUST_SUBJECT_FILE_AND_DISPLAY;
00616 
00617 #define WIN_SPUB_ACTION_PUBLISHED_SOFTWARE \
00618      { 0x64b9d180, 0x8da2, 0x11cf, { 0x87,0x36,0x00,0xaa,0x00,0xa4,0x85,0xeb }}
00619 
00620 #ifdef __cplusplus
00621 }
00622 #endif
00623 
00624 #endif

Generated on Sun May 27 2012 04:32:54 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.