summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/wintrust.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/wintrust.h311
1 files changed, 311 insertions, 0 deletions
diff --git a/public/sdk/inc/wintrust.h b/public/sdk/inc/wintrust.h
new file mode 100644
index 000000000..d7af52e96
--- /dev/null
+++ b/public/sdk/inc/wintrust.h
@@ -0,0 +1,311 @@
+/************************************************************************
+* *
+* wintrust.h -- This module defines the 32-Bit WinTrust definitions *
+* needed to build Trust Providers and / Subject *
+* Interface Packages. *
+* *
+* Copyright (c) 1990-1996, Microsoft Corp. All rights reserved. *
+* *
+************************************************************************/
+#ifndef _WINTRUST_
+#define _WINTRUST_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/***********************************************************************
+* *
+* This section contains definitions related to: *
+* *
+* WinTrust in general *
+* *
+************************************************************************/
+
+
+//
+// WinTrust Revisioning
+//
+#define WIN_TRUST_MAJOR_REVISION_MASK 0xFFFF0000
+#define WIN_TRUST_MINOR_REVISION_MASK 0x0000FFFF
+#define WIN_TRUST_REVISION_1_0 0x00010000
+
+
+
+
+/***********************************************************************
+* *
+* This section contains definitions related to: *
+* *
+* Subject Interface Packages *
+* *
+************************************************************************/
+
+//
+// Allows passing of subject and type material.
+//
+
+typedef struct _WIN_TRUST_SIP_SUBJECT {
+ GUID * SubjectType;
+ WIN_TRUST_SUBJECT Subject;
+} WIN_TRUST_SIP_SUBJECT, *LPWIN_TRUST_SIP_SUBJECT;
+
+//
+// Templates of services that must be EXPORTED by SIPs
+// FOR USE by Trust Providers (calling through WinTrust).
+//
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_CHECK_CONTENT_INFO)(
+ IN LPWIN_TRUST_SIP_SUBJECT lpSubject, // pointer to subject info
+ IN LPWIN_CERTIFICATE lpSignedData // PKCS #7 Signed Data
+ );
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_ENUM_CERTIFICATES)(
+ IN LPWIN_TRUST_SIP_SUBJECT lpSubject, // pointer to subject info
+ IN DWORD dwTypeFilter, // 0 or WIN_CERT_TYPE_xxx
+ OUT LPDWORD lpCertificateCount,
+ IN OUT LPDWORD lpIndices, // Rcvs WIN_CERT_TYPE_
+ IN DWORD dwIndexCount
+ );
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_GET_CERTIFICATE)(
+ IN LPWIN_TRUST_SIP_SUBJECT lpSubject,
+ IN DWORD dwCertificateIndex,
+ OUT LPWIN_CERTIFICATE lpCertificate,
+ IN OUT LPDWORD lpRequiredLength
+ );
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_GET_CERT_HEADER)(
+ IN LPWIN_TRUST_SIP_SUBJECT lpSubject,
+ IN DWORD dwCertificateIndex,
+ OUT LPWIN_CERTIFICATE lpCertificateHeader
+ );
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_GET_NAME)(
+ IN LPWIN_TRUST_SIP_SUBJECT lpSubject,
+ IN LPWIN_CERTIFICATE lpSignedData,
+ IN OUT LPWSTR lpBuffer,
+ IN OUT LPDWORD lpRequiredLength
+ );
+
+typedef DWORD
+(WINAPI *LPWINTRUST_PROVIDER_PING) (
+ IN LPWSTR lpProviderName,
+ IN DWORD dwClientParameter,
+ OUT LPDWORD lpdwServerReturnValue
+ );
+
+
+typedef struct _WINTRUST_SIP_DISPATCH_TABLE
+{
+ LPWINTRUST_SUBJECT_CHECK_CONTENT_INFO CheckSubjectContentInfo;
+ LPWINTRUST_SUBJECT_ENUM_CERTIFICATES EnumSubjectCertificates;
+ LPWINTRUST_SUBJECT_GET_CERTIFICATE GetSubjectCertificate;
+ LPWINTRUST_SUBJECT_GET_CERT_HEADER GetSubjectCertHeader;
+ LPWINTRUST_SUBJECT_GET_NAME GetSubjectName;
+
+} WINTRUST_SIP_DISPATCH_TABLE, *LPWINTRUST_SIP_DISPATCH_TABLE;
+
+
+
+//
+// Structure describing an individual SIP.
+//
+// This structure is passed back to WinTrust from a Subject Interface Package
+// initialization call.
+//
+typedef struct _WINTRUST_SIP_INFO {
+ DWORD dwRevision;
+ LPWINTRUST_SIP_DISPATCH_TABLE lpServices;
+ DWORD dwSubjectTypeCount;
+ GUID * lpSubjectTypeArray;
+} WINTRUST_SIP_INFO, *LPWINTRUST_SIP_INFO;
+
+
+
+//
+// SIP Intialization routine.
+// SIP DLLs are required to have a routine named:
+//
+// WinTrustSipInitialize.
+//
+// This initialization routine must have the following
+// definition:
+//
+
+typedef BOOL
+(WINAPI *LPWINTRUST_SUBJECT_PACKAGE_INITIALIZE)(
+ IN DWORD dwWinTrustRevision,
+ OUT LPWINTRUST_SIP_INFO *lpSipInfo
+ );
+
+
+
+
+/***********************************************************************
+* *
+* This section contains definitions related to: *
+* *
+* Trust Providers *
+* *
+************************************************************************/
+
+//
+// Dispatch table of WinTrust services available to Trust Providers
+//
+// Client side...
+
+typedef struct _WINTRUST_CLIENT_TP_DISPATCH_TABLE
+{
+ LPWINTRUST_PROVIDER_PING ServerPing;
+ LPWINTRUST_SUBJECT_CHECK_CONTENT_INFO CheckSubjectContentInfo;
+ LPWINTRUST_SUBJECT_ENUM_CERTIFICATES EnumSubjectCertificates;
+ LPWINTRUST_SUBJECT_GET_CERTIFICATE GetSubjectCertificate;
+ LPWINTRUST_SUBJECT_GET_CERT_HEADER GetSubjectCertHeader;
+ LPWINTRUST_SUBJECT_GET_NAME GetSubjectName;
+
+} WINTRUST_CLIENT_TP_DISPATCH_TABLE, *LPWINTRUST_CLIENT_TP_DISPATCH_TABLE;
+
+
+// Server side...
+
+typedef struct _WINTRUST_SERVER_TP_DISPATCH_TABLE
+{
+ LPWINTRUST_SUBJECT_CHECK_CONTENT_INFO CheckSubjectContentInfo;
+ LPWINTRUST_SUBJECT_ENUM_CERTIFICATES EnumSubectCertificates;
+ LPWINTRUST_SUBJECT_GET_CERTIFICATE GetSubjectCertificate;
+ LPWINTRUST_SUBJECT_GET_CERT_HEADER GetSubjectCertHeader;
+ LPWINTRUST_SUBJECT_GET_NAME GetSubjectName;
+
+} WINTRUST_SERVER_TP_DISPATCH_TABLE, *LPWINTRUST_SERVER_TP_DISPATCH_TABLE;
+
+
+//
+// The following structures are passed by WinTrust to a
+// Trust Provider being initialized.
+//
+// Client side...
+
+typedef struct _WINTRUST_CLIENT_TP_INFO {
+ DWORD dwRevision;
+ LPWINTRUST_CLIENT_TP_DISPATCH_TABLE lpServices;
+} WINTRUST_CLIENT_TP_INFO, *LPWINTRUST_CLIENT_TP_INFO;
+
+// Server side
+typedef struct _WINTRUST_SERVER_TP_INFO {
+ DWORD dwRevision;
+ LPWINTRUST_SERVER_TP_DISPATCH_TABLE lpServices;
+} WINTRUST_SERVER_TP_INFO, *LPWINTRUST_SERVER_TP_INFO;
+
+
+//
+// Templates of Trust Provider services available to WinTrust
+//
+typedef LONG
+(WINAPI *LPWINTRUST_PROVIDER_VERIFY_TRUST) (
+ IN HWND hwnd,
+ IN GUID * ActionID,
+ IN LPVOID ActionData
+ );
+
+typedef VOID
+(WINAPI *LPWINTRUST_PROVIDER_SUBMIT_CERTIFICATE) (
+ IN LPWIN_CERTIFICATE lpCertificate
+ );
+
+typedef VOID
+(WINAPI *LPWINTRUST_PROVIDER_CLIENT_UNLOAD) (
+ IN LPVOID lpTrustProviderInfo
+ );
+
+typedef VOID
+(WINAPI *LPWINTRUST_PROVIDER_SERVER_UNLOAD) (
+ IN LPVOID lpTrustProviderInfo
+ );
+
+//
+// Dispatch table of Trust provider services available for use by WinTrust
+//
+// Client side...
+
+typedef struct _WINTRUST_PROVIDER_CLIENT_SERVICES
+{
+ LPWINTRUST_PROVIDER_CLIENT_UNLOAD Unload;
+ LPWINTRUST_PROVIDER_VERIFY_TRUST VerifyTrust;
+ LPWINTRUST_PROVIDER_SUBMIT_CERTIFICATE SubmitCertificate;
+
+} WINTRUST_PROVIDER_CLIENT_SERVICES, *LPWINTRUST_PROVIDER_CLIENT_SERVICES;
+
+
+typedef struct _WINTRUST_PROVIDER_SERVER_SERVICES
+{
+ LPWINTRUST_PROVIDER_SERVER_UNLOAD Unload;
+ LPWINTRUST_PROVIDER_PING Ping;
+
+} WINTRUST_PROVIDER_SERVER_SERVICES, *LPWINTRUST_PROVIDER_SERVER_SERVICES;
+
+
+//
+// This structure is passed back from the client-side Trust Provider
+// following initialization of that Trust Provider.
+//
+typedef struct _WINTRUST_PROVIDER_CLIENT_INFO {
+ DWORD dwRevision;
+ LPWINTRUST_PROVIDER_CLIENT_SERVICES lpServices;
+ DWORD dwActionIdCount;
+ GUID * lpActionIdArray;
+} WINTRUST_PROVIDER_CLIENT_INFO, *LPWINTRUST_PROVIDER_CLIENT_INFO;
+
+//
+// This structure is passed back from the server-side trust provider following
+// initialization of that trust provider.
+//
+typedef struct _WINTRUST_PROVIDER_SERVER_INFO {
+ DWORD dwRevision;
+ LPWINTRUST_PROVIDER_SERVER_SERVICES lpServices;
+} WINTRUST_PROVIDER_SERVER_INFO, *LPWINTRUST_PROVIDER_SERVER_INFO;
+
+
+
+
+
+//
+// Trust Provider Initialization Routines
+// Each Trust Provider DLL must have a client and server side initialization
+// routine. The routines must be named:
+//
+// WinTrustProviderClientInitialize()
+// and
+// WinTrustProviderServerInitialize()
+//
+// and must be defined to match the following templates...
+//
+typedef BOOL
+(WINAPI *LPWINTRUST_PROVIDER_CLIENT_INITIALIZE)(
+ IN DWORD dwWinTrustRevision,
+ IN LPWINTRUST_CLIENT_TP_INFO lpWinTrustInfo,
+ IN LPWSTR lpProviderName,
+ OUT LPWINTRUST_PROVIDER_CLIENT_INFO *lpTrustProviderInfo
+ );
+
+typedef BOOL
+(WINAPI *LPWINTRUST_PROVIDER_SERVER_INITIALIZE) (
+ IN DWORD dwWinTrustRevision,
+ IN LPWINTRUST_SERVER_TP_INFO lpWinTrustInfo,
+ IN LPWSTR lpProviderName,
+ OUT LPWINTRUST_PROVIDER_SERVER_INFO *lpTrustProviderInfo
+ );
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _WINTRUST_