Rob Shearman : include: Add RPC/ DCE defines and structures related to RPC_SECURITY_QOS_V2.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Nov 9 06:08:30 CST 2006


Module: wine
Branch: master
Commit: 433993eed78de91cdf01f32b7eef0e13eed06504
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=433993eed78de91cdf01f32b7eef0e13eed06504

Author: Rob Shearman <rob at codeweavers.com>
Date:   Wed Nov  8 20:47:39 2006 +0000

include: Add RPC/DCE defines and structures related to RPC_SECURITY_QOS_V2.

---

 include/rpcdce.h |   93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/include/rpcdce.h b/include/rpcdce.h
index c483928..48d1b94 100644
--- a/include/rpcdce.h
+++ b/include/rpcdce.h
@@ -139,6 +139,45 @@ #define RPC_C_AUTHN_DIGEST 21
 #define RPC_C_AUTHN_MQ 100
 #define RPC_C_AUTHN_DEFAULT 0xffffffff
 
+/* values for RPC_SECURITY_QOS*::ImpersonationLevel */
+#define RPC_C_IMP_LEVEL_DEFAULT     0
+#define RPC_C_IMP_LEVEL_ANONYMOUS   1
+#define RPC_C_IMP_LEVEL_IDENTIFY    2
+#define RPC_C_IMP_LEVEL_IMPERSONATE 3
+#define RPC_C_IMP_LEVEL_DELEGATE    4
+
+/* values for RPC_SECURITY_QOS*::IdentityTracking */
+#define RPC_C_QOS_IDENTIFY_STATIC   0
+#define RPC_C_QOS_IDENTIFY_DYNAMIC  1
+
+/* flags for RPC_SECURITY_QOS*::Capabilities */
+#define RPC_C_QOS_CAPABILITIES_DEFAULT          0x0
+#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH      0x1
+#define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC     0x2
+#define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY    0x4
+
+/* values for RPC_SECURITY_QOS*::Version */
+#define RPC_C_SECURITY_QOS_VERSION      1
+#define RPC_C_SECURITY_QOS_VERSION_1    1
+#define RPC_C_SECURITY_QOS_VERSION_2    2
+
+/* flags for RPC_SECURITY_QOS_V2::AdditionalSecurityInfoType */
+#define RPC_C_AUTHN_INFO_TYPE_HTTP  1
+
+/* flags for RPC_HTTP_TRANSPORT_CREDENTIALS::Flags */
+#define RPC_C_HTTP_FLAG_USE_SSL                 0x1
+#define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME   0x2
+
+/* values for RPC_HTTP_TRANSPORT_CREDENTIALS::AuthenticationTarget */
+#define RPC_C_HTTP_AUTHN_TARGET_SERVER  1
+#define RPC_C_HTTP_AUTHN_TARGET_PROXY   2
+
+#define RPC_C_HTTP_AUTHN_SCHEME_BASIC       0x01
+#define RPC_C_HTTP_AUTHN_SCHEME_NTLM        0x02
+#define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT    0x04
+#define RPC_C_HTTP_AUTHN_SCHEME_DIGEST      0x08
+#define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE   0x10
+
 typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, void *Context );
 typedef void (__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)();
 
@@ -171,6 +210,26 @@ typedef struct _SEC_WINNT_AUTH_IDENTITY_
     unsigned long Flags;
 } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
 
+typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W
+{
+    SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
+    unsigned long Flags;
+    unsigned long AuthenticationTarget;
+    unsigned long NumberOfAuthnSchemes;
+    unsigned long *AuthnSchemes;
+    unsigned short *ServerCertificateSubject;
+} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
+
+typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A
+{
+    SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
+    unsigned long Flags;
+    unsigned long AuthenticationTarget;
+    unsigned long NumberOfAuthnSchemes;
+    unsigned long *AuthnSchemes;
+    unsigned char *ServerCertificateSubject;
+} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;
+
 typedef struct _RPC_SECURITY_QOS {
     unsigned long Version;
     unsigned long Capabilities;
@@ -178,10 +237,44 @@ typedef struct _RPC_SECURITY_QOS {
     unsigned long ImpersonationType;
 } RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
 
+typedef struct _RPC_SECURITY_QOS_V2_W
+{
+    unsigned long Version;
+    unsigned long Capabilities;
+    unsigned long IdentityTracking;
+    unsigned long ImpersonationType;
+    unsigned long AdditionalSecurityInfoType;
+    union
+    {
+        RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
+    } u;
+} RPC_SECURITY_QOS_V2_W, *PRPC_SECURITY_QOS_V2_W;
+
+typedef struct _RPC_SECURITY_QOS_V2_A
+{
+    unsigned long Version;
+    unsigned long Capabilities;
+    unsigned long IdentityTracking;
+    unsigned long ImpersonationType;
+    unsigned long AdditionalSecurityInfoType;
+    union
+    {
+        RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
+    } u;
+} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;
+
 #define _SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)
 #define  SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)
 #define PSEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)
 
+#define RPC_HTTP_TRANSPORT_CREDENTIALS_  WINELIB_NAME_AW(RPC_HTTP_TRANSPORT_CREDENTIALS_)
+#define PRPC_HTTP_TRANSPORT_CREDENTIALS_ WINELIB_NAME_AW(PRPC_HTTP_TRANSPORT_CREDENTIALS_)
+#define _RPC_HTTP_TRANSPORT_CREDENTIALS_ WINELIB_NAME_AW(_RPC_HTTP_TRANSPORT_CREDENTIALS_)
+
+#define RPC_SECURITY_QOS_V2  WINELIB_NAME_AW(RPC_SECURITY_QOS_V2_)
+#define PRPC_SECURITY_QOS_V2 WINELIB_NAME_AW(PRPC_SECURITY_QOS_V2_)
+#define _RPC_SECURITY_QOS_V2 WINELIB_NAME_AW(_RPC_SECURITY_QOS_V2_)
+
 /* SEC_WINNT_AUTH Flags */
 #define SEC_WINNT_AUTH_IDENTITY_ANSI    0x1
 #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2




More information about the wine-cvs mailing list