1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-29 11:21:54 +03:00

added idl and test suite for lsa_CreateTrustedDomain()

This commit is contained in:
Andrew Tridgell 0001-01-01 00:00:00 +00:00
parent e9e85c4644
commit cdb4751153
2 changed files with 58 additions and 9 deletions

View File

@ -51,7 +51,6 @@
[out,ref] lsa_PrivArray *privs
);
/******************/
/* Function: 0x03 */
@ -225,7 +224,7 @@
NTSTATUS lsa_CreateAccount (
[in,ref] policy_handle *handle,
[in,ref] dom_sid2 *sid,
[in] uint32 access,
[in] uint32 desired_access,
[out,ref] policy_handle *acct_handle
);
@ -250,7 +249,18 @@
/*************************************************/
/* Function: 0x0c */
NTSTATUS lsa_CreateTrustDom ();
typedef struct {
lsa_Name name;
dom_sid2 *sid;
} lsa_TrustInformation;
NTSTATUS lsa_CreateTrustedDomain(
[in,ref] policy_handle *handle,
[in,ref] lsa_TrustInformation *info,
[in] uint32 desired_access,
[out,ref] policy_handle *dom_handle
);
/******************/
@ -288,11 +298,6 @@
[size_is(count)] lsa_TranslatedSid *sids;
} lsa_TransSidArray;
typedef struct {
lsa_Name name;
dom_sid2 *sid;
} lsa_TrustInformation;
typedef struct {
uint32 count;
[size_is(count)] lsa_TrustInformation *domains;

View File

@ -324,7 +324,7 @@ static BOOL test_CreateAccount(struct dcerpc_pipe *p,
r.in.handle = handle;
r.in.sid = newsid;
r.in.access = SEC_RIGHTS_MAXIMUM_ALLOWED;
r.in.desired_access = SEC_RIGHTS_MAXIMUM_ALLOWED;
r.out.acct_handle = &acct_handle;
status = dcerpc_lsa_CreateAccount(p, mem_ctx, &r);
@ -340,6 +340,46 @@ static BOOL test_CreateAccount(struct dcerpc_pipe *p,
return True;
}
static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle)
{
NTSTATUS status;
struct lsa_CreateTrustedDomain r;
struct lsa_TrustInformation trustinfo;
struct dom_sid *domsid;
struct policy_handle dom_handle;
printf("Testing CreateTrustedDomain\n");
if (!find_domain_sid(p, mem_ctx, handle, &domsid)) {
return False;
}
domsid->sub_auths[domsid->num_auths-1] ^= 0xF0F0F0F0;
trustinfo.sid = domsid;
init_lsa_Name(&trustinfo.name, "torturedomain");
r.in.handle = handle;
r.in.info = &trustinfo;
r.in.desired_access = SEC_RIGHTS_MAXIMUM_ALLOWED;
r.out.dom_handle = &dom_handle;
status = dcerpc_lsa_CreateTrustedDomain(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("CreateTrustedDomain failed - %s\n", nt_errstr(status));
return False;
}
if (!test_Delete(p, mem_ctx, &dom_handle)) {
return False;
}
return True;
}
static BOOL test_EnumAccountRights(struct dcerpc_pipe *p,
TALLOC_CTX *mem_ctx,
struct policy_handle *acct_handle,
@ -635,6 +675,10 @@ BOOL torture_rpc_lsa(int dummy)
ret = False;
}
if (!test_CreateTrustedDomain(p, mem_ctx, &handle)) {
ret = False;
}
if (!test_EnumAccounts(p, mem_ctx, &handle)) {
ret = False;
}