Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenwintrust.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
1.7.6.1
|