summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/drsuapi.idl33
1 files changed, 33 insertions, 0 deletions
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index e4343c91f9..e9d21607f7 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -1229,8 +1229,41 @@ interface drsuapi
drsuapi_DsReplicaObjectListItem first_object;
} drsuapi_DsAddEntryRequest2;
+ /* Buffer type is actually more
+ * like a semi Flags
+ * Ref: DRS_SecBuffer, [MS-DRSR]: 5.41*/
+ typedef [v1_enum,noprint] enum {
+ DRSUAPI_SECBUFFER_EMPTY = 0x00000000,
+ DRSUAPI_SECBUFFER_DATA = 0x00000001,
+ DRSUAPI_SECBUFFER_TOKEN = 0x00000002,
+ DRSUAPI_SECBUFFER_PKG_PARAMS = 0x00000003,
+ DRSUAPI_SECBUFFER_MISSING = 0x00000004,
+ DRSUAPI_SECBUFFER_EXTRA = 0x00000005,
+ DRSUAPI_SECBUFFER_STREAM_TRAILER = 0x00000006,
+ DRSUAPI_SECBUFFER_STREAM_HEADER = 0x00000007,
+ DRSUAPI_SECBUFFER_READONLY = 0x80000000
+ } drsuapi_SecBufferType;
+
+ typedef struct {
+ [range(0,10000)] uint32 buf_size;
+ drsuapi_SecBufferType buf_type;
+ [size_is(buf_size)] uint8 *buffer;
+ } drsuapi_SecBuffer;
+
+ typedef struct {
+ [value(0)] uint32 version;
+ [range(0,10000)] uint32 buff_count;
+ [size_is(buff_count)] drsuapi_SecBuffer *buffers;
+ } drsuapi_SecBufferDesc;
+
+ typedef struct {
+ drsuapi_DsReplicaObjectListItem first_object;
+ drsuapi_SecBufferDesc *client_creds;
+ } drsuapi_DsAddEntryRequest3;
+
typedef [switch_type(uint32)] union {
[case(2)] drsuapi_DsAddEntryRequest2 req2;
+ [case(3)] drsuapi_DsAddEntryRequest3 req3;
} drsuapi_DsAddEntryRequest;
/* Generic extended error info