diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-04-03 17:21:26 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2004-04-03 17:21:26 +0000 |
commit | c582f5cf1d94e7c8d3bc8ef63eb4b6e3a6dc1e0f (patch) | |
tree | 15209d0f3b58cb5fb0489e4ebf5308794198fb3b | |
parent | 84d009d52ecfff08e01374de91260aeffe40b9d9 (diff) | |
download | samba-c582f5cf1d94e7c8d3bc8ef63eb4b6e3a6dc1e0f.tar.gz samba-c582f5cf1d94e7c8d3bc8ef63eb4b6e3a6dc1e0f.tar.bz2 samba-c582f5cf1d94e7c8d3bc8ef63eb4b6e3a6dc1e0f.zip |
added IDL and test for lsa_OpenSecret()
(This used to be commit dd95cd141dc63f16e14f4c9392529653084b5a2a)
-rw-r--r-- | source4/librpc/idl/lsa.idl | 9 | ||||
-rw-r--r-- | source4/torture/rpc/lsa.c | 24 |
2 files changed, 31 insertions, 2 deletions
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl index f90ad030d2..d8c6389bb3 100644 --- a/source4/librpc/idl/lsa.idl +++ b/source4/librpc/idl/lsa.idl @@ -401,8 +401,15 @@ NTSTATUS QUERYTRUSTDOM (); /* Function: 0x1b */ NTSTATUS SETINFOTRUSTDOM (); + /* Function: 0x1c */ - NTSTATUS OPENSECRET (); + NTSTATUS lsa_OpenSecret( + [in,ref] policy_handle *handle, + [in] lsa_Name name, + [in] uint32 desired_access, + [out,ref] policy_handle *sec_handle + ); + /* Function: 0x1d */ NTSTATUS SETSECRET (); /* Function: 0x1e */ diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c index f50d189dd2..5aab8b366a 100644 --- a/source4/torture/rpc/lsa.c +++ b/source4/torture/rpc/lsa.c @@ -386,7 +386,9 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p, { NTSTATUS status; struct lsa_CreateSecret r; - struct policy_handle sec_handle; + struct lsa_OpenSecret r2; + struct policy_handle sec_handle, sec_handle2; + struct lsa_Delete d; printf("Testing CreateSecret\n"); @@ -402,10 +404,30 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p, return False; } + r2.in.handle = handle; + r2.in.desired_access = SEC_RIGHTS_MAXIMUM_ALLOWED; + init_lsa_Name(&r2.in.name, "torturesecret"); + r2.out.sec_handle = &sec_handle2; + + printf("Testing OpenSecret\n"); + + status = dcerpc_lsa_OpenSecret(p, mem_ctx, &r2); + if (!NT_STATUS_IS_OK(status)) { + printf("OpenSecret failed - %s\n", nt_errstr(status)); + return False; + } + if (!test_Delete(p, mem_ctx, &sec_handle)) { return False; } + d.in.handle = &sec_handle2; + status = dcerpc_lsa_Delete(p, mem_ctx, &d); + if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) { + printf("Second delete expected INVALID_HANDLE - %s\n", nt_errstr(status)); + return False; + } + return True; } |