Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

297 lines
12 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1996-1998
  6. //
  7. // File: softpub.h
  8. //
  9. // Contents: Microsoft Internet Security Authenticode Policy Provider
  10. //
  11. // History: 05-Jun-1997 pberkman created
  12. //
  13. //--------------------------------------------------------------------------
  14. #ifndef SOFTPUB_H
  15. #define SOFTPUB_H
  16. #include "wintrust.h"
  17. #ifdef __cplusplus
  18. extern "C"
  19. {
  20. #endif
  21. #include <pshpack8.h>
  22. //////////////////////////////////////////////////////////////////////////////
  23. //
  24. // Softpub Policy Provider defines
  25. //----------------------------------------------------------------------------
  26. // The following are definitions of the Microsoft Authenticode Policy Provider
  27. // (SOFTPUB.DLL's Policy Provider)
  28. //
  29. #define SP_POLICY_PROVIDER_DLL_NAME L"SOFTPUB.DLL"
  30. //////////////////////////////////////////////////////////////////////////////
  31. //
  32. // WINTRUST_ACTION_GENERIC_VERIFY_V2 Guid (Authenticode)
  33. //----------------------------------------------------------------------------
  34. // Assigned to the pgActionID parameter of WinVerifyTrust to verify the
  35. // authenticity of a file/object using the Microsoft Authenticode
  36. // Policy Provider,
  37. //
  38. // {00AAC56B-CD44-11d0-8CC2-00C04FC295EE}
  39. //
  40. #define WINTRUST_ACTION_GENERIC_VERIFY_V2 \
  41. { 0xaac56b, \
  42. 0xcd44, \
  43. 0x11d0, \
  44. { 0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  45. }
  46. #define SP_INIT_FUNCTION L"SoftpubInitialize"
  47. #define SP_OBJTRUST_FUNCTION L"SoftpubLoadMessage"
  48. #define SP_SIGTRUST_FUNCTION L"SoftpubLoadSignature"
  49. #define SP_CHKCERT_FUNCTION L"SoftpubCheckCert"
  50. #define SP_FINALPOLICY_FUNCTION L"SoftpubAuthenticode"
  51. #define SP_CLEANUPPOLICY_FUNCTION L"SoftpubCleanup"
  52. //////////////////////////////////////////////////////////////////////////////
  53. //
  54. // WINTRUST_ACTION_TRUSTPROVIDER_TEST (Authenticode TEST)
  55. //----------------------------------------------------------------------------
  56. // Assigned to the pgActionID parameter of WinVerifyTrust to dump
  57. // the CRYPT_PROVIDER_DATA structure to a file after calling the
  58. // Authenticode Policy Provider.
  59. //
  60. // {573E31F8-DDBA-11d0-8CCB-00C04FC295EE}
  61. //
  62. #define WINTRUST_ACTION_TRUSTPROVIDER_TEST \
  63. { 0x573e31f8, \
  64. 0xddba, \
  65. 0x11d0, \
  66. { 0x8c, 0xcb, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  67. }
  68. #define SP_TESTDUMPPOLICY_FUNCTION_TEST L"SoftpubDumpStructure"
  69. //////////////////////////////////////////////////////////////////////////////
  70. //
  71. // WINTRUST_ACTION_GENERIC_CERT_VERIFY
  72. //----------------------------------------------------------------------------
  73. // Assigned to the pgActionID parameter of WinVerifyTrust to verify
  74. // a certificate chain only. This is only valid when passing in a
  75. // certificate context in the WinVerifyTrust input structures.
  76. //
  77. // {189A3842-3041-11d1-85E1-00C04FC295EE}
  78. //
  79. #define WINTRUST_ACTION_GENERIC_CERT_VERIFY \
  80. { 0x189a3842, \
  81. 0x3041, \
  82. 0x11d1, \
  83. { 0x85, 0xe1, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  84. }
  85. #define SP_GENERIC_CERT_INIT_FUNCTION L"SoftpubDefCertInit"
  86. //////////////////////////////////////////////////////////////////////////////
  87. //
  88. // WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
  89. //----------------------------------------------------------------------------
  90. // Assigned to the pgActionID parameter of WinVerifyTrust to verify
  91. // certificate chains created from any object type: file, cert, signer, ...
  92. // A callback is provided to implement the final chain policy using
  93. // the chain context for each signer and counter signer.
  94. //
  95. // {fc451c16-ac75-11d1-b4b8-00c04fb66ea0}
  96. //
  97. #define WINTRUST_ACTION_GENERIC_CHAIN_VERIFY \
  98. { 0xfc451c16, \
  99. 0xac75, \
  100. 0x11d1, \
  101. { 0xb4, 0xb8, 0x00, 0xc0, 0x4f, 0xb6, 0x6e, 0xa0 }\
  102. }
  103. #define GENERIC_CHAIN_FINALPOLICY_FUNCTION L"GenericChainFinalProv"
  104. #define GENERIC_CHAIN_CERTTRUST_FUNCTION L"GenericChainCertificateTrust"
  105. typedef struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO
  106. WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO,
  107. *PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO;
  108. struct _WTD_GENERIC_CHAIN_POLICY_SIGNER_INFO {
  109. union {
  110. DWORD cbStruct;
  111. DWORD cbSize;
  112. };
  113. PCCERT_CHAIN_CONTEXT pChainContext;
  114. // SGNR_TYPE_TIMESTAMP defined in wintrust.h
  115. DWORD dwSignerType;
  116. PCMSG_SIGNER_INFO pMsgSignerInfo;
  117. DWORD dwError;
  118. DWORD cCounterSigner;
  119. PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO *rgpCounterSigner;
  120. };
  121. typedef HRESULT (WINAPI *PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK)(
  122. IN PCRYPT_PROVIDER_DATA pProvData,
  123. IN DWORD dwStepError,
  124. IN DWORD dwRegPolicySettings,
  125. IN DWORD cSigner,
  126. IN PWTD_GENERIC_CHAIN_POLICY_SIGNER_INFO *rgpSigner,
  127. IN void *pvPolicyArg
  128. );
  129. // The fields in the following data structure are passed to
  130. // CertGetCertificateChain().
  131. typedef struct _WTD_GENERIC_CHAIN_POLICY_CREATE_INFO {
  132. union {
  133. DWORD cbStruct;
  134. DWORD cbSize;
  135. };
  136. HCERTCHAINENGINE hChainEngine;
  137. PCERT_CHAIN_PARA pChainPara;
  138. DWORD dwFlags;
  139. void *pvReserved;
  140. } WTD_GENERIC_CHAIN_POLICY_CREATE_INFO, *PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO;
  141. typedef struct _WTD_GENERIC_CHAIN_POLICY_DATA {
  142. union {
  143. DWORD cbStruct;
  144. DWORD cbSize;
  145. };
  146. PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO pSignerChainInfo;
  147. PWTD_GENERIC_CHAIN_POLICY_CREATE_INFO pCounterSignerChainInfo;
  148. PFN_WTD_GENERIC_CHAIN_POLICY_CALLBACK pfnPolicyCallback;
  149. void *pvPolicyArg;
  150. } WTD_GENERIC_CHAIN_POLICY_DATA, *PWTD_GENERIC_CHAIN_POLICY_DATA;
  151. //////////////////////////////////////////////////////////////////////////////
  152. //
  153. // HTTPSPROV_ACTION Guid (Authenticode add-on)
  154. //----------------------------------------------------------------------------
  155. // Assigned to the pgActionID parameter of WinVerifyTrust to verify the
  156. // SSL/PCT connections through IE.
  157. //
  158. // {573E31F8-AABA-11d0-8CCB-00C04FC295EE}
  159. //
  160. #define HTTPSPROV_ACTION \
  161. { 0x573e31f8, \
  162. 0xaaba, \
  163. 0x11d0, \
  164. { 0x8c, 0xcb, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  165. }
  166. #define HTTPS_FINALPOLICY_FUNCTION L"HTTPSFinalProv"
  167. #define HTTPS_CHKCERT_FUNCTION L"HTTPSCheckCertProv"
  168. #define HTTPS_CERTTRUST_FUNCTION L"HTTPSCertificateTrust"
  169. // fdwChecks flags are defined in wininet.h
  170. typedef struct _HTTPSPolicyCallbackData
  171. {
  172. union {
  173. DWORD cbStruct; // sizeof(HTTPSClientData);
  174. DWORD cbSize; // sizeof(HTTPSClientData);
  175. };
  176. DWORD dwAuthType;
  177. # define AUTHTYPE_CLIENT 1
  178. # define AUTHTYPE_SERVER 2
  179. DWORD fdwChecks;
  180. WCHAR *pwszServerName; // used to check against CN=xxxx
  181. } HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData,
  182. SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA;
  183. //////////////////////////////////////////////////////////////////////////////
  184. //
  185. // OFFICESIGN_ACTION_VERIFY Guid (Authenticode add-on)
  186. //----------------------------------------------------------------------------
  187. // Assigned to the pgActionID parameter of WinVerifyTrust to verify the
  188. // authenticity of a Structured Storage file using the Microsoft Office
  189. // Authenticode add-on Policy Provider,
  190. //
  191. // {5555C2CD-17FB-11d1-85C4-00C04FC295EE}
  192. //
  193. #define OFFICESIGN_ACTION_VERIFY \
  194. { 0x5555c2cd, \
  195. 0x17fb, \
  196. 0x11d1, \
  197. { 0x85, 0xc4, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  198. }
  199. #define OFFICE_POLICY_PROVIDER_DLL_NAME SP_POLICY_PROVIDER_DLL_NAME
  200. #define OFFICE_INITPROV_FUNCTION L"OfficeInitializePolicy"
  201. #define OFFICE_CLEANUPPOLICY_FUNCTION L"OfficeCleanupPolicy"
  202. //////////////////////////////////////////////////////////////////////////////
  203. //
  204. // DRIVER_ACTION_VERIFY Guid (Authenticode add-on)
  205. //----------------------------------------------------------------------------
  206. // Assigned to the pgActionID parameter of WinVerifyTrust to verify the
  207. // authenticity of a WHQL signed driver. This is an Authenticode add-on
  208. // Policy Provider,
  209. //
  210. // {F750E6C3-38EE-11d1-85E5-00C04FC295EE}
  211. //
  212. #define DRIVER_ACTION_VERIFY \
  213. { 0xf750e6c3, \
  214. 0x38ee, \
  215. 0x11d1, \
  216. { 0x85, 0xe5, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee } \
  217. }
  218. #define DRIVER_INITPROV_FUNCTION L"DriverInitializePolicy"
  219. #define DRIVER_FINALPOLPROV_FUNCTION L"DriverFinalPolicy"
  220. #define DRIVER_CLEANUPPOLICY_FUNCTION L"DriverCleanupPolicy"
  221. typedef struct DRIVER_VER_MAJORMINOR_
  222. {
  223. DWORD dwMajor;
  224. DWORD dwMinor;
  225. } DRIVER_VER_MAJORMINOR;
  226. typedef struct DRIVER_VER_INFO_
  227. {
  228. DWORD cbStruct; // IN - set to sizeof(DRIVER_VER_INFO)
  229. DWORD dwReserved1; // IN - set to NULL
  230. DWORD dwReserved2; // IN - set to NULL
  231. DWORD dwPlatform; // IN - OPTIONAL: platform to use
  232. DWORD dwVersion; // IN - OPTIONAL: major version to use, same as sOSVersionLow
  233. WCHAR wszVersion[MAX_PATH]; // OUT: version string from catalog file
  234. WCHAR wszSignedBy[MAX_PATH]; // OUT: signer display name from certificate
  235. PCCERT_CONTEXT pcSignerCertContext; // OUT: client MUST free this!!!
  236. // 08-Dec-1997 pberkman: added
  237. DRIVER_VER_MAJORMINOR sOSVersionLow; // IN - OPTIONAL: lowest compatible version
  238. DRIVER_VER_MAJORMINOR sOSVersionHigh; // IN - OPTIONAL: for now must be the same as sOSVersionLow
  239. } DRIVER_VER_INFO, *PDRIVER_VER_INFO;
  240. #include <poppack.h>
  241. #ifdef __cplusplus
  242. }
  243. #endif
  244. #endif // SOFTPUB_H