struct samr_Connect connect;
struct samr_LookupDomain lookup;
struct samr_OpenDomain open;
- struct samr_String domain_name;
+ struct lsa_String domain_name;
uint32_t access_mask;
struct policy_handle connect_handle;
struct policy_handle domain_handle;
struct samr_Connect sc;
struct policy_handle p_handle;
struct samr_LookupDomain ld;
- struct samr_String d_name;
+ struct lsa_String d_name;
struct samr_OpenDomain od;
struct policy_handle d_handle;
struct samr_LookupNames ln;
union samr_UserInfo u_info;
union libnet_SetPassword r2;
struct samr_GetUserPwInfo pwp;
- struct samr_String samr_account_name;
+ struct lsa_String samr_account_name;
uint32_t acct_flags;
uint32_t rid, access_granted;
/* prepare samr_LookupNames */
ln.in.domain_handle = &d_handle;
ln.in.num_names = 1;
- ln.in.names = talloc_array(mem_ctx, struct samr_String, 1);
+ ln.in.names = talloc_array(mem_ctx, struct lsa_String, 1);
if (!ln.in.names) {
r->samr.out.error_string = "Out of Memory";
return NT_STATUS_NO_MEMORY;
struct samr_OemChangePasswordUser2 oe2;
struct samr_ChangePasswordUser2 pw2;
struct samr_ChangePasswordUser3 pw3;
- struct samr_String server, account;
+ struct lsa_String server, account;
struct samr_AsciiName a_server, a_account;
struct samr_CryptPassword nt_pass, lm_pass;
struct samr_Password nt_verifier, lm_verifier;
struct samr_Connect sc;
struct policy_handle p_handle;
struct samr_LookupDomain ld;
- struct samr_String d_name;
+ struct lsa_String d_name;
struct samr_OpenDomain od;
struct policy_handle d_handle;
struct samr_LookupNames ln;
/* prepare samr_LookupNames */
ln.in.domain_handle = &d_handle;
ln.in.num_names = 1;
- ln.in.names = talloc_array(mem_ctx, struct samr_String, 1);
+ ln.in.names = talloc_array(mem_ctx, struct lsa_String, 1);
if (!ln.in.names) {
r->samr.out.error_string = "Out of Memory";
return NT_STATUS_NO_MEMORY;
/* preparing parameters to send rpc request */
s->createuser.in.domain_handle = &io->in.domain_handle;
- s->createuser.in.account_name = talloc_zero(c, struct samr_String);
+ s->createuser.in.account_name = talloc_zero(c, struct lsa_String);
s->createuser.in.account_name->string = talloc_strdup(c, io->in.username);
s->createuser.out.user_handle = &s->user_handle;
s->createuser.out.rid = &s->user_rid;
/* preparing parameters to send rpc request */
s->lookupname.in.domain_handle = &io->in.domain_handle;
s->lookupname.in.num_names = 1;
- s->lookupname.in.names = talloc_zero(s, struct samr_String);
+ s->lookupname.in.names = talloc_zero(s, struct lsa_String);
s->lookupname.in.names->string = io->in.username;
/* send the request */
depends(security)
] interface lsarpc
{
+ typedef [public] struct {
+ [value(2*strlen_m(string))] uint16 length;
+ [value(2*strlen_m(string))] uint16 size;
+ unistr_noterm *string;
+ } lsa_String;
+
+ typedef [public] struct {
+ uint32 count;
+ [size_is(count)] lsa_String *names;
+ } lsa_Strings;
+
+ typedef [public] struct {
+ [value(strlen_m(string))] uint16 length;
+ [value(strlen_m(string))] uint16 size;
+ ascstr_noterm *string;
+ } lsa_AsciiString;
+
/******************/
/* Function: 0x00 */
NTSTATUS lsa_Close (
/******************/
/* Function: 0x02 */
-
- typedef struct {
- [value(2*strlen_m(string))] uint16 length;
- [value(2*strlen_m(string))] uint16 size;
- unistr_noterm *string;
- } lsa_String;
-
typedef struct {
uint32 low;
uint32 high;
endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:","ncalrpc:"),
pointer_default(unique),
pointer_default_top(unique),
- depends(lsa,samr)
+ depends(lsa,samr,security)
]
interface netlogon
{
declare bitmap samr_AcctFlags;
- typedef [public] struct {
- [value(strlen_m(string)*2)] uint16 size;
- [value(strlen_m(string)*2)] uint16 length;
- unistr_noterm *string;
- } netr_String;
-
/*****************/
/* Function 0x00 */
} netr_AcctLockStr;
typedef struct {
- netr_String domain_name;
+ lsa_String domain_name;
uint32 parameter_control;
uint32 logon_id_low;
uint32 logon_id_high;
- netr_String account_name;
- netr_String workstation;
+ lsa_String account_name;
+ lsa_String workstation;
} netr_IdentityInfo;
typedef struct {
NTTIME last_password_change;
NTTIME allow_password_change;
NTTIME force_password_change;
- netr_String account_name;
- netr_String full_name;
- netr_String logon_script;
- netr_String profile_path;
- netr_String home_directory;
- netr_String home_drive;
+ lsa_String account_name;
+ lsa_String full_name;
+ lsa_String logon_script;
+ lsa_String profile_path;
+ lsa_String home_directory;
+ lsa_String home_drive;
uint16 logon_count;
uint16 bad_password_count;
uint32 rid;
samr_RidWithAttributeArray groups;
uint32 user_flags;
netr_UserSessionKey key;
- netr_String logon_server;
- netr_String domain;
+ lsa_String logon_server;
+ lsa_String domain;
dom_sid2 *domain_sid;
netr_LMSessionKey LMSessKey;
samr_AcctFlags acct_flags;
netr_SamBaseInfo base;
uint32 sidcount;
[size_is(sidcount)] netr_SidAttr *sids;
- netr_String forest;
- netr_String principle;
+ lsa_String forest;
+ lsa_String principle;
uint32 unknown4[20];
} netr_SamInfo6;
typedef struct {
uint32 pac_size;
[size_is(pac_size)] uint8 *pac;
- netr_String logon_domain;
- netr_String logon_server;
- netr_String principal_name;
+ lsa_String logon_domain;
+ lsa_String logon_server;
+ lsa_String principal_name;
uint32 auth_size;
[size_is(auth_size)] uint8 *auth;
netr_UserSessionKey user_session_key;
uint32 expansionroom[10];
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
} netr_PacInfo;
typedef [switch_type(uint16)] union {
typedef struct {
unistr *account_name;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
} netr_USER_PRIVATE_INFO;
typedef struct {
- netr_String account_name;
- netr_String full_name;
+ lsa_String account_name;
+ lsa_String full_name;
uint32 rid;
uint32 primary_gid;
- netr_String home_directory;
- netr_String home_drive;
- netr_String logon_script;
- netr_String description;
- netr_String workstations;
+ lsa_String home_directory;
+ lsa_String home_drive;
+ lsa_String logon_script;
+ lsa_String description;
+ lsa_String workstations;
NTTIME last_logon;
NTTIME last_logoff;
samr_LogonHours logon_hours;
bool8 nt_password_present;
bool8 lm_password_present;
bool8 password_expired;
- netr_String comment;
- netr_String parameters;
+ lsa_String comment;
+ lsa_String parameters;
uint16 country_code;
uint16 code_page;
netr_USER_PRIVATE_INFO user_private_info;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String profile_path;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String profile_path;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
} netr_DELTA_USER;
typedef struct {
- netr_String domain_name;
- netr_String comment;
+ lsa_String domain_name;
+ lsa_String comment;
NTTIME force_logoff_time;
uint16 min_password_length;
uint16 password_history_length;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
netr_AcctLockStr account_lockout;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 logon_to_chgpass;
uint32 unknown6;
uint32 unknown7;
} netr_DELTA_DOMAIN;
typedef struct {
- netr_String group_name;
+ lsa_String group_name;
uint32 rid;
uint32 attributes;
- netr_String description;
+ lsa_String description;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
} netr_DELTA_GROUP;
typedef struct {
- netr_String OldName;
- netr_String NewName;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String OldName;
+ lsa_String NewName;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
} netr_DELTA_GROUP_MEMBER;
typedef struct {
- netr_String alias_name;
+ lsa_String alias_name;
uint32 rid;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String description;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String description;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
bool8 auditingmode;
uint32 maxauditeventcount;
[size_is(maxauditeventcount+1)] uint32 *eventauditoptions;
- netr_String primary_domain_name;
+ lsa_String primary_domain_name;
dom_sid2 *sid;
netr_QUOTA_LIMITS quota_limits;
udlong sequence_num;
NTTIME db_create_time;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
} netr_DELTA_POLICY;
typedef struct {
- netr_String domain_name;
+ lsa_String domain_name;
uint32 num_controllers;
- [size_is(num_controllers)] netr_String *controller_names;
+ [size_is(num_controllers)] lsa_String *controller_names;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 posix_offset;
uint32 unknown6;
uint32 unknown7;
uint32 privilege_entries;
uint32 privilege_control;
[size_is(privilege_entries)] uint32 *privilege_attrib;
- [size_is(privilege_entries)] netr_String *privilege_name;
+ [size_is(privilege_entries)] lsa_String *privilege_name;
netr_QUOTA_LIMITS quotalimits;
uint32 system_flags;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
NTTIME old_cipher_set_time;
uint32 SecurityInformation;
sec_desc_buf sdbuf;
- netr_String unknown1;
- netr_String unknown2;
- netr_String unknown3;
- netr_String unknown4;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
+ lsa_String unknown4;
uint32 unknown5;
uint32 unknown6;
uint32 unknown7;
unistr *unknown3;
unistr *unknown4;
netr_BinaryString blob2;
- netr_String product;
- netr_String unknown5;
- netr_String unknown6;
+ lsa_String product;
+ lsa_String unknown5;
+ lsa_String unknown6;
uint32 unknown7[4];
} netr_DomainQuery1;
} netr_DomainQuery;
typedef struct {
- netr_String domainname;
- netr_String fulldomainname;
- netr_String forest;
+ lsa_String domainname;
+ lsa_String fulldomainname;
+ lsa_String forest;
GUID guid;
dom_sid2 *sid;
netr_BinaryString unknown1[4];
/******************/
/* Function: 0x05 */
- typedef struct {
- [value(2*strlen_m(string))] uint16 length;
- [value(2*strlen_m(string))] uint16 size;
- unistr_noterm *string;
- } samr_String;
-
NTSTATUS samr_LookupDomain (
[in,ref] policy_handle *connect_handle,
- [in,ref] samr_String *domain_name,
+ [in,ref] lsa_String *domain_name,
[out] dom_sid2 *sid
);
typedef struct {
uint32 idx;
- samr_String name;
+ lsa_String name;
} samr_SamEntry;
typedef struct {
typedef struct {
NTTIME force_logoff_time;
- samr_String comment;
- samr_String domain_name;
- samr_String primary; /* PDC name if this is a BDC */
+ lsa_String comment;
+ lsa_String domain_name;
+ lsa_String primary; /* PDC name if this is a BDC */
udlong sequence_num;
uint32 unknown2;
samr_Role role;
} samr_DomInfo3;
typedef struct {
- samr_String comment;
+ lsa_String comment;
} samr_DomInfo4;
typedef struct {
- samr_String domain_name;
+ lsa_String domain_name;
} samr_DomInfo5;
typedef struct {
- samr_String primary;
+ lsa_String primary;
} samr_DomInfo6;
typedef struct {
/* Function 0x0a */
NTSTATUS samr_CreateDomainGroup(
[in,ref] policy_handle *domain_handle,
- [in,ref] samr_String *name,
+ [in,ref] lsa_String *name,
[in] uint32 access_mask,
[out,ref] policy_handle *group_handle,
[out,ref] uint32 *rid
/* Function 0x0c */
NTSTATUS samr_CreateUser(
[in,ref] policy_handle *domain_handle,
- [in,ref] samr_String *account_name,
+ [in,ref] lsa_String *account_name,
[in] uint32 access_mask,
[out,ref] policy_handle *user_handle,
[out,ref] uint32 *rid
/* Function 0x0e */
NTSTATUS samr_CreateDomAlias(
[in,ref] policy_handle *domain_handle,
- [in,ref] samr_String *alias_name,
+ [in,ref] lsa_String *alias_name,
[in] uint32 access_mask,
[out,ref] policy_handle *alias_handle,
[out,ref] uint32 *rid
NTSTATUS samr_LookupNames(
[in,ref] policy_handle *domain_handle,
[in,range(0,1000)] uint32 num_names,
- [in,size_is(1000),length_is(num_names)] samr_String names[],
+ [in,size_is(1000),length_is(num_names)] lsa_String names[],
[out] samr_Ids rids,
[out] samr_Ids types
);
/************************/
/* Function 0x12 */
-
- typedef struct {
- uint32 count;
- [size_is(count)] samr_String *names;
- } samr_Strings;
-
NTSTATUS samr_LookupRids(
[in,ref] policy_handle *domain_handle,
[in,range(0,1000)] uint32 num_rids,
[in,size_is(1000),length_is(num_rids)] uint32 rids[],
- [out] samr_Strings names,
+ [out] lsa_Strings names,
[out] samr_Ids types
);
/* Function 0x14 */
typedef struct {
- samr_String name;
+ lsa_String name;
uint32 attributes;
uint32 num_members;
- samr_String description;
+ lsa_String description;
} samr_GroupInfoAll;
typedef struct {
} samr_GroupInfoX;
typedef struct {
- samr_String description;
+ lsa_String description;
} samr_GroupInfoDesciption;
typedef enum {
typedef [switch_type(samr_GroupInfoEnum)] union {
[case(GROUPINFOALL)] samr_GroupInfoAll all;
- [case(GROUPINFONAME)] samr_String name;
+ [case(GROUPINFONAME)] lsa_String name;
[case(GROUPINFOX)] samr_GroupInfoX unknown;
- [case(GROUPINFODESCRIPTION)] samr_String description;
+ [case(GROUPINFODESCRIPTION)] lsa_String description;
[case(GROUPINFOALL2)] samr_GroupInfoAll all2;
} samr_GroupInfo;
/* Function 0x1c */
typedef struct {
- samr_String name;
+ lsa_String name;
uint32 num_members;
- samr_String description;
+ lsa_String description;
} samr_AliasInfoAll;
typedef enum {
typedef [switch_type(samr_AliasInfoEnum)] union {
[case(ALIASINFOALL)] samr_AliasInfoAll all;
- [case(ALIASINFONAME)] samr_String name;
- [case(ALIASINFODESCRIPTION)] samr_String description;
+ [case(ALIASINFONAME)] lsa_String name;
+ [case(ALIASINFODESCRIPTION)] lsa_String description;
} samr_AliasInfo;
NTSTATUS samr_QueryAliasInfo(
/************************/
/* Function 0x24 */
typedef struct {
- samr_String account_name;
- samr_String full_name;
+ lsa_String account_name;
+ lsa_String full_name;
uint32 primary_gid;
- samr_String description;
- samr_String comment;
+ lsa_String description;
+ lsa_String comment;
} samr_UserInfo1;
typedef struct {
- samr_String comment;
- samr_String unknown; /* settable, but doesn't stick. probably obsolete */
+ lsa_String comment;
+ lsa_String unknown; /* settable, but doesn't stick. probably obsolete */
uint16 country_code;
uint16 code_page;
} samr_UserInfo2;
} samr_LogonHours;
typedef struct {
- samr_String account_name;
- samr_String full_name;
+ lsa_String account_name;
+ lsa_String full_name;
uint32 rid;
uint32 primary_gid;
- samr_String home_directory;
- samr_String home_drive;
- samr_String logon_script;
- samr_String profile_path;
- samr_String workstations;
+ lsa_String home_directory;
+ lsa_String home_drive;
+ lsa_String logon_script;
+ lsa_String profile_path;
+ lsa_String workstations;
NTTIME last_logon;
NTTIME last_logoff;
NTTIME last_password_change;
} samr_UserInfo4;
typedef struct {
- samr_String account_name;
- samr_String full_name;
+ lsa_String account_name;
+ lsa_String full_name;
uint32 rid;
uint32 primary_gid;
- samr_String home_directory;
- samr_String home_drive;
- samr_String logon_script;
- samr_String profile_path;
- samr_String description;
- samr_String workstations;
+ lsa_String home_directory;
+ lsa_String home_drive;
+ lsa_String logon_script;
+ lsa_String profile_path;
+ lsa_String description;
+ lsa_String workstations;
NTTIME last_logon;
NTTIME last_logoff;
samr_LogonHours logon_hours;
} samr_UserInfo5;
typedef struct {
- samr_String account_name;
- samr_String full_name;
+ lsa_String account_name;
+ lsa_String full_name;
} samr_UserInfo6;
typedef struct {
- samr_String account_name;
+ lsa_String account_name;
} samr_UserInfo7;
typedef struct {
- samr_String full_name;
+ lsa_String full_name;
} samr_UserInfo8;
typedef struct {
} samr_UserInfo9;
typedef struct {
- samr_String home_directory;
- samr_String home_drive;
+ lsa_String home_directory;
+ lsa_String home_drive;
} samr_UserInfo10;
typedef struct {
- samr_String logon_script;
+ lsa_String logon_script;
} samr_UserInfo11;
typedef struct {
- samr_String profile_path;
+ lsa_String profile_path;
} samr_UserInfo12;
typedef struct {
- samr_String description;
+ lsa_String description;
} samr_UserInfo13;
typedef struct {
- samr_String workstations;
+ lsa_String workstations;
} samr_UserInfo14;
typedef struct {
} samr_UserInfo17;
typedef struct {
- samr_String parameters;
+ lsa_String parameters;
} samr_UserInfo20;
/* this defines the bits used for fields_present in info21 */
NTTIME acct_expiry;
NTTIME allow_password_change;
NTTIME force_password_change;
- samr_String account_name;
- samr_String full_name;
- samr_String home_directory;
- samr_String home_drive;
- samr_String logon_script;
- samr_String profile_path;
- samr_String description;
- samr_String workstations;
- samr_String comment;
- samr_String parameters;
- samr_String unknown1;
- samr_String unknown2;
- samr_String unknown3;
+ lsa_String account_name;
+ lsa_String full_name;
+ lsa_String home_directory;
+ lsa_String home_drive;
+ lsa_String logon_script;
+ lsa_String profile_path;
+ lsa_String description;
+ lsa_String workstations;
+ lsa_String comment;
+ lsa_String parameters;
+ lsa_String unknown1;
+ lsa_String unknown2;
+ lsa_String unknown3;
uint32 buf_count;
[size_is(buf_count)] uint8 *buffer;
uint32 rid;
uint32 idx;
uint32 rid;
samr_AcctFlags acct_flags;
- samr_String account_name;
- samr_String full_name;
- samr_String description;
+ lsa_String account_name;
+ lsa_String full_name;
+ lsa_String description;
} samr_DispEntryGeneral;
typedef struct {
uint32 idx;
uint32 rid;
samr_AcctFlags acct_flags;
- samr_String account_name;
- samr_String description;
+ lsa_String account_name;
+ lsa_String description;
} samr_DispEntryFull;
typedef struct {
[size_is(count)] samr_DispEntryFull *entries;
} samr_DispInfoFull;
- typedef struct {
- [value(strlen_m(string))] uint16 length;
- [value(strlen_m(string))] uint16 size;
- ascstr_noterm *string;
- } samr_AsciiName;
-
typedef struct {
uint32 idx;
- samr_AsciiName account_name;
+ lsa_AsciiString account_name;
} samr_DispEntryAscii;
typedef struct {
NTSTATUS samr_GetDisplayEnumerationIndex(
[in,ref] policy_handle *domain_handle,
[in] uint16 level,
- [in] samr_String name,
+ [in] lsa_String name,
[out] uint32 idx
);
NTSTATUS samr_GetDisplayEnumerationIndex2(
[in,ref] policy_handle *domain_handle,
[in] uint16 level,
- [in] samr_String name,
+ [in] lsa_String name,
[out] uint32 idx
);
/* Function 0x32 */
NTSTATUS samr_CreateUser2(
[in,ref] policy_handle *domain_handle,
- [in,ref] samr_String *account_name,
+ [in,ref] lsa_String *account_name,
[in] samr_AcctFlags acct_flags,
[in] uint32 access_mask,
[out,ref] policy_handle *user_handle,
/* Function 0x36 */
NTSTATUS samr_OemChangePasswordUser2(
- [in] samr_AsciiName *server,
- [in,ref] samr_AsciiName *account,
+ [in] lsa_AsciiString *server,
+ [in,ref] lsa_AsciiString *account,
[in] samr_CryptPassword *password,
[in] samr_Password *hash
);
/************************/
/* Function 0x37 */
NTSTATUS samr_ChangePasswordUser2(
- [in] samr_String *server,
- [in,ref] samr_String *account,
+ [in] lsa_String *server,
+ [in,ref] lsa_String *account,
[in] samr_CryptPassword *nt_password,
[in] samr_Password *nt_verifier,
[in] bool8 lm_change,
/************************/
/* Function 0x38 */
NTSTATUS samr_GetDomPwInfo(
- [in] samr_String *domain_name,
+ [in] lsa_String *domain_name,
[out] samr_PwInfo info
);
} samr_ChangeReject;
NTSTATUS samr_ChangePasswordUser3(
- [in] samr_String *server,
- [in,ref] samr_String *account,
+ [in] lsa_String *server,
+ [in,ref] lsa_String *account,
[in] samr_CryptPassword *nt_password,
[in] samr_Password *nt_verifier,
[in] bool8 lm_change,
*/
NTSTATUS samr_SetDsrmPassword(
- [in] samr_String *name,
+ [in] lsa_String *name,
[in] uint32 unknown,
[in] samr_Password *hash
);
struct samr_domain_state *d_state;
int i, total;
NTSTATUS status = NT_STATUS_OK;
- struct samr_String *names;
+ struct lsa_String *names;
uint32_t *ids;
ZERO_STRUCT(r->out.names);
if (r->in.num_rids == 0)
return NT_STATUS_OK;
- names = talloc_array(mem_ctx, struct samr_String, r->in.num_rids);
+ names = talloc_array(mem_ctx, struct lsa_String, r->in.num_rids);
ids = talloc_array(mem_ctx, uint32_t, r->in.num_rids);
if ((names == NULL) || (ids == NULL))
#include "libcli/composite/monitor.h"
static BOOL test_domainopen(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct samr_String *domname,
+ struct lsa_String *domname,
struct policy_handle *domain_handle)
{
NTSTATUS status;
TALLOC_CTX *mem_ctx;
BOOL ret = True;
struct policy_handle h;
- struct samr_String name;
+ struct lsa_String name;
mem_ctx = talloc_init("test_domain_open");
binding = lp_parm_string(-1, "torture", "binding");
struct samr_OpenUser r2;
struct samr_DeleteUser r3;
struct samr_Close r4;
- struct samr_String names[2];
+ struct lsa_String names[2];
uint32_t rid;
struct policy_handle user_handle;
#define TEST_USERNAME "libnetuserinfotest"
static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct policy_handle *handle, struct samr_String *domname,
+ struct policy_handle *handle, struct lsa_String *domname,
struct dom_sid2 *sid)
{
NTSTATUS status;
struct samr_LookupNames r1;
struct samr_OpenUser r2;
struct samr_DeleteUser r3;
- struct samr_String names[2];
+ struct lsa_String names[2];
uint32_t rid;
struct policy_handle user_handle;
struct policy_handle *handle, const char *name, uint32_t *rid)
{
NTSTATUS status;
- struct samr_String username;
+ struct lsa_String username;
struct samr_CreateUser r;
struct policy_handle user_handle;
TALLOC_CTX *mem_ctx;
BOOL ret = True;
struct policy_handle h;
- struct samr_String name;
+ struct lsa_String name;
struct dom_sid2 sid;
uint32_t rid;
static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct policy_handle *handle, struct samr_String *domname)
+ struct policy_handle *handle, struct lsa_String *domname)
{
NTSTATUS status;
struct policy_handle h, domain_handle;
struct samr_LookupNames r1;
struct samr_OpenUser r2;
struct samr_DeleteUser r3;
- struct samr_String names[2];
+ struct lsa_String names[2];
uint32_t rid;
struct policy_handle user_handle;
{
NTSTATUS status;
struct policy_handle user_handle;
- struct samr_String username;
+ struct lsa_String username;
struct samr_CreateUser r1;
struct samr_Close r2;
uint32_t user_rid;
const char *binding;
struct dcerpc_pipe *p;
struct policy_handle h;
- struct samr_String domain_name;
+ struct lsa_String domain_name;
const char *name = TEST_USERNAME;
TALLOC_CTX *mem_ctx;
BOOL ret = True;
const char *binding;
struct dcerpc_pipe *p;
struct policy_handle h;
- struct samr_String domain_name;
+ struct lsa_String domain_name;
const char *name = TEST_USERNAME;
TALLOC_CTX *mem_ctx;
BOOL ret = True;
static BOOL test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle);
-static void init_samr_String(struct samr_String *string, const char *s)
+static void init_lsa_String(struct lsa_String *string, const char *s)
{
string->string = s;
}
{
NTSTATUS status;
struct samr_SetDsrmPassword r;
- struct samr_String string;
+ struct lsa_String string;
struct samr_Password hash;
if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
E_md4hash("TeSTDSRM123", hash.hash);
- init_samr_String(&string, "Administrator");
+ init_lsa_String(&string, "Administrator");
r.in.name = &string;
r.in.unknown = 0;
ZERO_STRUCT(u.info21); \
u.info21.fields_present = fpval; \
} \
- init_samr_String(&u.info ## lvl1.field1, value); \
+ init_lsa_String(&u.info ## lvl1.field1, value); \
TESTCALL(SetUserInfo, s) \
TESTCALL(SetUserInfo2, s2) \
- init_samr_String(&u.info ## lvl1.field1, ""); \
+ init_lsa_String(&u.info ## lvl1.field1, ""); \
TESTCALL(QueryUserInfo, q); \
u = *q.out.info; \
STRING_EQUAL(u.info ## lvl1.field1.string, value, field1); \
r.in.level = levels[i];
r.in.info = talloc(mem_ctx, union samr_AliasInfo);
switch (r.in.level) {
- case 2 : init_samr_String(&r.in.info->name,TEST_ALIASNAME); break;
- case 3 : init_samr_String(&r.in.info->description,
+ case 2 : init_lsa_String(&r.in.info->name,TEST_ALIASNAME); break;
+ case 3 : init_lsa_String(&r.in.info->description,
"Test Description, should test I18N as well"); break;
}
}
static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct samr_String *domain_name)
+ struct lsa_String *domain_name)
{
NTSTATUS status;
struct samr_GetDomPwInfo r;
{
NTSTATUS status;
struct samr_LookupNames n;
- struct samr_String sname[2];
+ struct lsa_String sname[2];
- init_samr_String(&sname[0], name);
+ init_lsa_String(&sname[0], name);
n.in.domain_handle = domain_handle;
n.in.num_names = 1;
return status;
}
- init_samr_String(&sname[1], "xxNONAMExx");
+ init_lsa_String(&sname[1], "xxNONAMExx");
n.in.num_names = 2;
status = dcerpc_samr_LookupNames(p, mem_ctx, &n);
if (!NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
return status;
}
- init_samr_String(&sname[1], "xxNONAMExx");
+ init_lsa_String(&sname[1], "xxNONAMExx");
n.in.num_names = 0;
status = dcerpc_samr_LookupNames(p, mem_ctx, &n);
if (!NT_STATUS_IS_OK(status)) {
struct samr_GetDomPwInfo dom_pw_info;
int policy_min_pw_len = 0;
- struct samr_String domain_name;
+ struct lsa_String domain_name;
domain_name.string = "";
dom_pw_info.in.domain_name = &domain_name;
NTSTATUS status;
struct samr_ChangePasswordUser2 r;
BOOL ret = True;
- struct samr_String server, account;
+ struct lsa_String server, account;
struct samr_CryptPassword nt_pass, lm_pass;
struct samr_Password nt_verifier, lm_verifier;
char *oldpass = *password;
struct samr_GetDomPwInfo dom_pw_info;
int policy_min_pw_len = 0;
- struct samr_String domain_name;
+ struct lsa_String domain_name;
domain_name.string = "";
dom_pw_info.in.domain_name = &domain_name;
newpass = samr_rand_pass(mem_ctx, policy_min_pw_len);
server.string = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
- init_samr_String(&account, TEST_ACCOUNT_NAME);
+ init_lsa_String(&account, TEST_ACCOUNT_NAME);
E_md4hash(oldpass, old_nt_hash);
E_md4hash(newpass, new_nt_hash);
NTSTATUS status;
struct samr_ChangePasswordUser3 r;
BOOL ret = True;
- struct samr_String server, account;
+ struct lsa_String server, account;
struct samr_CryptPassword nt_pass, lm_pass;
struct samr_Password nt_verifier, lm_verifier;
char *oldpass = *password;
printf("Testing ChangePasswordUser3\n");
server.string = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
- init_samr_String(&account, TEST_ACCOUNT_NAME);
+ init_lsa_String(&account, TEST_ACCOUNT_NAME);
E_md4hash(oldpass, old_nt_hash);
E_md4hash(newpass, new_nt_hash);
{
NTSTATUS status;
struct samr_CreateDomAlias r;
- struct samr_String name;
+ struct lsa_String name;
uint32_t rid;
BOOL ret = True;
- init_samr_String(&name, TEST_ALIASNAME);
+ init_lsa_String(&name, TEST_ALIASNAME);
r.in.domain_handle = domain_handle;
r.in.alias_name = &name;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
/* This call creates a 'normal' account - check that it really does */
const uint32_t acct_flags = ACB_NORMAL;
- struct samr_String name;
+ struct lsa_String name;
BOOL ret = True;
user_ctx = talloc_named(mem_ctx, 0, "test_CreateUser2 per-user context");
- init_samr_String(&name, TEST_ACCOUNT_NAME);
+ init_lsa_String(&name, TEST_ACCOUNT_NAME);
r.in.domain_handle = domain_handle;
r.in.account_name = &name;
struct samr_DeleteUser d;
struct policy_handle user_handle;
uint32_t rid;
- struct samr_String name;
+ struct lsa_String name;
BOOL ret = True;
int i;
uint32_t acct_flags = account_types[i].acct_flags;
uint32_t access_granted;
user_ctx = talloc_named(mem_ctx, 0, "test_CreateUser2 per-user context");
- init_samr_String(&name, account_types[i].account_name);
+ init_lsa_String(&name, account_types[i].account_name);
r.in.domain_handle = handle;
r.in.account_name = &name;
the name is still reserved, so creating the old name fails, but deleting by the old name
also fails */
if (s.in.level == 2) {
- init_samr_String(&s.in.info->string, "NewName");
+ init_lsa_String(&s.in.info->string, "NewName");
}
#endif
if (s.in.level == 4) {
- init_samr_String(&s.in.info->description, "test description");
+ init_lsa_String(&s.in.info->description, "test description");
}
status = dcerpc_samr_SetGroupInfo(p, mem_ctx, &s);
printf("Testing LookupNames\n");
n.in.domain_handle = handle;
n.in.num_names = r.out.sam->count;
- n.in.names = talloc_array(mem_ctx, struct samr_String, r.out.sam->count);
+ n.in.names = talloc_array(mem_ctx, struct lsa_String, r.out.sam->count);
for (i=0;i<r.out.sam->count;i++) {
n.in.names[i] = r.out.sam->entries[i].name;
}
r.in.domain_handle = handle;
r.in.level = levels[i];
- init_samr_String(&r.in.name, TEST_ACCOUNT_NAME);
+ init_lsa_String(&r.in.name, TEST_ACCOUNT_NAME);
status = dcerpc_samr_GetDisplayEnumerationIndex(p, mem_ctx, &r);
ret = False;
}
- init_samr_String(&r.in.name, "zzzzzzzz");
+ init_lsa_String(&r.in.name, "zzzzzzzz");
status = dcerpc_samr_GetDisplayEnumerationIndex(p, mem_ctx, &r);
r.in.domain_handle = handle;
r.in.level = levels[i];
- init_samr_String(&r.in.name, TEST_ACCOUNT_NAME);
+ init_lsa_String(&r.in.name, TEST_ACCOUNT_NAME);
status = dcerpc_samr_GetDisplayEnumerationIndex2(p, mem_ctx, &r);
if (ok_lvl[i] &&
ret = False;
}
- init_samr_String(&r.in.name, "zzzzzzzz");
+ init_lsa_String(&r.in.name, "zzzzzzzz");
status = dcerpc_samr_GetDisplayEnumerationIndex2(p, mem_ctx, &r);
if (ok_lvl[i] && !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
NTSTATUS status;
struct samr_CreateDomainGroup r;
uint32_t rid;
- struct samr_String name;
+ struct lsa_String name;
BOOL ret = True;
- init_samr_String(&name, TEST_GROUPNAME);
+ init_lsa_String(&name, TEST_GROUPNAME);
r.in.domain_handle = domain_handle;
r.in.name = &name;
}
static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
- struct policy_handle *handle, struct samr_String *domain)
+ struct policy_handle *handle, struct lsa_String *domain)
{
NTSTATUS status;
struct samr_LookupDomain r;
- struct samr_String n2;
+ struct lsa_String n2;
BOOL ret = True;
printf("Testing LookupDomain(%s)\n", domain->string);
const char *domain,
struct dom_sid **sid)
{
- struct samr_String name;
+ struct lsa_String name;
struct samr_OpenDomain o;
struct samr_LookupDomain l;
struct policy_handle *domain_handle = talloc(mem_ctx, struct policy_handle);
NTSTATUS status;
struct samr_GetDomPwInfo r;
int i;
- struct samr_String name;
+ struct lsa_String name;
name.string = lp_workgroup();
r.in.domain_name = &name;
struct policy_handle user_handle;
uint32_t rid;
struct samr_LookupNames n;
- struct samr_String sname;
+ struct lsa_String sname;
struct samr_OpenUser r;
sname.string = name;
uint32_t access_granted;
uint32_t rid;
DATA_BLOB session_key;
- struct samr_String name;
- struct samr_String comment;
- struct samr_String full_name;
+ struct lsa_String name;
+ struct lsa_String comment;
+ struct lsa_String full_name;
int policy_min_pw_len = 0;
struct test_join *join;