#define DCERPC_SCHANNEL_ANY (DCERPC_SCHANNEL_BDC| \
DCERPC_SCHANNEL_DOMAIN| \
DCERPC_SCHANNEL_WORKSTATION)
+
/* use a 128 bit session key */
#define DCERPC_SCHANNEL_128 (1<<12)
-#define DCERPC_AUTH_OPTIONS (DCERPC_SEAL|DCERPC_SIGN|DCERPC_SCHANNEL_ANY)
-
/* check incoming pad bytes */
#define DCERPC_DEBUG_PAD_CHECK (1<<13)
/* set LIBNDR_FLAG_REF_ALLOC flag when decoding NDR */
#define DCERPC_NDR_REF_ALLOC (1<<14)
+#define DCERPC_AUTH_OPTIONS (DCERPC_SEAL|DCERPC_SIGN|DCERPC_SCHANNEL_ANY|DCERPC_AUTH_SPNEGO|DCERPC_AUTH_KRB5)
+
+/* enable spnego auth */
+#define DCERPC_AUTH_SPNEGO (1<<15)
+
+/* enable krb5 auth */
+#define DCERPC_AUTH_KRB5 (1<<16)
+
/*
this is used to find pointers to calls
*/
const char * const *names;
};
+struct dcerpc_authservice_list {
+ uint32_t count;
+ const char * const *names;
+};
+
struct dcerpc_interface_table {
const char *name;
const char *uuid;
uint32_t num_calls;
const struct dcerpc_interface_call *calls;
const struct dcerpc_endpoint_list *endpoints;
+ const struct dcerpc_authservice_list *authservices;
};
struct dcerpc_interface_list {
const struct dcerpc_interface_table *table;
};
-extern struct dcerpc_interface_list *dcerpc_pipes;
-
-
/* this describes a binding to a particular transport/pipe */
struct dcerpc_binding {
enum dcerpc_transport_t transport;
struct GUID object;
- int object_version;
+ uint16_t object_version;
const char *host;
const char *endpoint;
+ const char *authservice;
const char **options;
uint32_t flags;
};