librpc/rpc: add dcerpc_binding_handle_auth_info()
[mat/samba.git] / librpc / rpc / rpc_common.h
index 44c3cfd39b58a652e6c3bbe51fdf89281f6352c3..978229ef24a0feec88bf2953daf4924b40a2f5b0 100644 (file)
@@ -107,6 +107,12 @@ struct dcerpc_binding {
 /* specify binding interface */
 #define        DCERPC_LOCALADDRESS            (1<<22)
 
+/* handle upgrades or downgrades automatically */
+#define DCERPC_SCHANNEL_AUTO           (1<<23)
+
+/* use aes schannel with hmac-sh256 session key */
+#define DCERPC_SCHANNEL_AES            (1<<24)
+
 /* The following definitions come from ../librpc/rpc/dcerpc_error.c  */
 
 const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code);
@@ -137,6 +143,9 @@ void dcerpc_set_frag_length(DATA_BLOB *blob, uint16_t v);
 uint16_t dcerpc_get_frag_length(const DATA_BLOB *blob);
 void dcerpc_set_auth_length(DATA_BLOB *blob, uint16_t v);
 uint8_t dcerpc_get_endian_flag(DATA_BLOB *blob);
+const char *dcerpc_default_transport_endpoint(TALLOC_CTX *mem_ctx,
+                                             enum dcerpc_transport_t transport,
+                                             const struct ndr_interface_table *table);
 
 /**
 * @brief       Pull a dcerpc_auth structure, taking account of any auth
@@ -180,6 +189,10 @@ struct dcerpc_binding_handle_ops {
        uint32_t (*set_timeout)(struct dcerpc_binding_handle *h,
                                uint32_t timeout);
 
+       void (*auth_info)(struct dcerpc_binding_handle *h,
+                         enum dcerpc_AuthType *auth_type,
+                         enum dcerpc_AuthLevel *auth_level);
+
        struct tevent_req *(*raw_call_send)(TALLOC_CTX *mem_ctx,
                                            struct tevent_context *ev,
                                            struct dcerpc_binding_handle *h,
@@ -250,6 +263,10 @@ bool dcerpc_binding_handle_is_connected(struct dcerpc_binding_handle *h);
 uint32_t dcerpc_binding_handle_set_timeout(struct dcerpc_binding_handle *h,
                                           uint32_t timeout);
 
+void dcerpc_binding_handle_auth_info(struct dcerpc_binding_handle *h,
+                                    enum dcerpc_AuthType *auth_type,
+                                    enum dcerpc_AuthLevel *auth_level);
+
 struct tevent_req *dcerpc_binding_handle_raw_call_send(TALLOC_CTX *mem_ctx,
                                                struct tevent_context *ev,
                                                struct dcerpc_binding_handle *h,