summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/librpc/idl/lsa.idl78
-rw-r--r--source4/torture/rpc/lsa.c2
2 files changed, 73 insertions, 7 deletions
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl
index a0f0e6cffc..262babaf21 100644
--- a/source4/librpc/idl/lsa.idl
+++ b/source4/librpc/idl/lsa.idl
@@ -411,13 +411,40 @@
[size_is(size),length_is(length)] uint8 *data;
} lsa_DATA_BUF;
+ typedef [flag(NDR_PAHEX)] struct {
+ uint32 size;
+ [size_is(size)] uint8 *data;
+ } lsa_DATA_BUF2;
+
+ typedef enum {
+ LSA_TRUSTED_DOMAIN_INFO_NAME=1,
+ LSA_TRUSTED_DOMAIN_INFO_2=2,
+ LSA_TRUSTED_DOMAIN_INFO_FLAGS=3,
+ LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4,
+ LSA_TRUSTED_DOMAIN_INFO_5=5,
+ LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6,
+ LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7,
+ LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8,
+ LSA_TRUSTED_DOMAIN_INFO_INFO_ALL=12
+ } lsa_TrustDomInfoEnum;
+
typedef struct {
lsa_String domain_name;
- } lsa_TrustDomainInfo1;
+ } lsa_TrustDomainInfoName;
typedef struct {
uint32 flags;
- } lsa_TrustDomainInfo3;
+ } lsa_TrustDomainInfoFlags;
+
+ typedef struct {
+ lsa_DATA_BUF *password;
+ lsa_DATA_BUF *old_password;
+ } lsa_TrustDomainInfoPassword;
+
+ typedef struct {
+ lsa_String domain_name;
+ dom_sid2 *sid;
+ } lsa_TrustDomainInfo5;
typedef struct {
lsa_String name;
@@ -426,12 +453,51 @@
uint32 unknown1;
uint32 unknown2;
uint32 unknown3;
- } lsa_TrustDomainInfo6;
+ } lsa_TrustDomainInfoInfoEx;
+
+ typedef struct {
+ HYPER_T unknown1;
+ uint32 unknown2;
+ lsa_DATA_BUF2 data;
+ } lsa_TrustDomainInfoBuffer;
+
+ typedef struct {
+ uint32 unknown1;
+ lsa_TrustDomainInfoBuffer *buff1;
+ lsa_TrustDomainInfoBuffer *buff2;
+ uint32 unknown2;
+ lsa_TrustDomainInfoBuffer *buff3;
+ lsa_TrustDomainInfoBuffer *buff4;
+ } lsa_TrustDomainInfoAuthInfo;
+
+ typedef struct {
+ lsa_TrustDomainInfoInfoEx info_ex;
+ lsa_TrustDomainInfoFlags flags;
+ lsa_TrustDomainInfoAuthInfo auth_info;
+ } lsa_TrustDomainInfoFullInfo;
+
+ typedef struct {
+ lsa_TrustDomainInfoInfoEx info_ex;
+ lsa_DATA_BUF2 data1;
+ } lsa_TrustDomainInfo11;
+
+ typedef struct {
+ lsa_TrustDomainInfoInfoEx info_ex;
+ lsa_DATA_BUF2 data1;
+ lsa_TrustDomainInfoFlags flags;
+ lsa_TrustDomainInfoAuthInfo auth_info;
+ } lsa_TrustDomainInfoInfoAll;
typedef union {
- [case(1)] lsa_TrustDomainInfo1 info1;
- [case(3)] lsa_TrustDomainInfo3 info3;
- [case(6)] lsa_TrustDomainInfo6 info6;
+ [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name;
+ [case(LSA_TRUSTED_DOMAIN_INFO_FLAGS)] lsa_TrustDomainInfoFlags flags;
+ [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password;
+ [case(LSA_TRUSTED_DOMAIN_INFO_5)] lsa_TrustDomainInfo5 info5;
+ [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] lsa_TrustDomainInfoInfoEx info_ex;
+ [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] lsa_TrustDomainInfoAuthInfo auth_info;
+ [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] lsa_TrustDomainInfoFullInfo full_info;
+ [case(11)] lsa_TrustDomainInfo11 info11;
+ [case(LSA_TRUSTED_DOMAIN_INFO_INFO_ALL)] lsa_TrustDomainInfoInfoAll info_all;
} lsa_TrustedDomainInfo;
/* Function: 0x1a */
diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c
index 1fce7d9fa6..c33606cc9e 100644
--- a/source4/torture/rpc/lsa.c
+++ b/source4/torture/rpc/lsa.c
@@ -777,7 +777,7 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
struct policy_handle trustdom_handle;
struct policy_handle handle2;
struct lsa_Close c;
- int levels [] = {1, 3, 6};
+ int levels [] = {1, 3, 6, 8, 12};
trust.in.handle = handle;
trust.in.sid = domains.domains[i].sid;