summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h26
-rw-r--r--source3/rpc_client/cli_netlogon.c78
-rw-r--r--source3/rpc_client/init_netlogon.c83
3 files changed, 39 insertions, 148 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index c40b4b6e73..a22305991b 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5561,32 +5561,6 @@ NTSTATUS serverinfo_to_SamInfo3(struct auth_serversupplied_info *server_info,
uint8_t *pipe_session_key,
size_t pipe_session_key_len,
struct netr_SamInfo3 *sam3);
-void init_netr_IdentityInfo(struct netr_IdentityInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation);
-void init_netr_NetworkInfo(struct netr_NetworkInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation,
- uint8_t challenge[8],
- struct netr_ChallengeResponse nt,
- struct netr_ChallengeResponse lm);
-void init_netr_PasswordInfo(struct netr_PasswordInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation,
- struct samr_Password lmpassword,
- struct samr_Password ntpassword);
void init_netr_CryptPassword(const char *pwd,
unsigned char session_key[16],
struct netr_CryptPassword *pwd_buf);
diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c
index fd10721645..911a50f393 100644
--- a/source3/rpc_client/cli_netlogon.c
+++ b/source3/rpc_client/cli_netlogon.c
@@ -196,15 +196,15 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
netlogon_creds_des_encrypt(cli->dc, &ntpassword);
}
- init_netr_PasswordInfo(password_info,
- domain,
- logon_parameters,
- 0xdead,
- 0xbeef,
- username,
- clnt_name_slash,
- lmpassword,
- ntpassword);
+ password_info->identity_info.domain_name.string = domain;
+ password_info->identity_info.parameter_control = logon_parameters;
+ password_info->identity_info.logon_id_low = 0xdead;
+ password_info->identity_info.logon_id_high = 0xbeef;
+ password_info->identity_info.account_name.string = username;
+ password_info->identity_info.workstation.string = clnt_name_slash;
+
+ password_info->lmpassword = lmpassword;
+ password_info->ntpassword = ntpassword;
logon->password = password_info;
@@ -237,16 +237,16 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
nt.length = 24;
nt.data = local_nt_response;
- init_netr_NetworkInfo(network_info,
- domain,
- logon_parameters,
- 0xdead,
- 0xbeef,
- username,
- clnt_name_slash,
- chal,
- nt,
- lm);
+ network_info->identity_info.domain_name.string = domain;
+ network_info->identity_info.parameter_control = logon_parameters;
+ network_info->identity_info.logon_id_low = 0xdead;
+ network_info->identity_info.logon_id_high = 0xbeef;
+ network_info->identity_info.account_name.string = username;
+ network_info->identity_info.workstation.string = clnt_name_slash;
+
+ memcpy(network_info->challenge, chal, 8);
+ network_info->nt = nt;
+ network_info->lm = lm;
logon->network = network_info;
@@ -355,16 +355,16 @@ NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli,
nt.data = nt_response.data;
nt.length = nt_response.length;
- init_netr_NetworkInfo(network_info,
- domain,
- logon_parameters,
- 0xdead,
- 0xbeef,
- username,
- workstation_name_slash,
- (uint8_t *) chal,
- nt,
- lm);
+ network_info->identity_info.domain_name.string = domain;
+ network_info->identity_info.parameter_control = logon_parameters;
+ network_info->identity_info.logon_id_low = 0xdead;
+ network_info->identity_info.logon_id_high = 0xbeef;
+ network_info->identity_info.account_name.string = username;
+ network_info->identity_info.workstation.string = workstation_name_slash;
+
+ memcpy(network_info->challenge, chal, 8);
+ network_info->nt = nt;
+ network_info->lm = lm;
logon->network = network_info;
@@ -463,16 +463,16 @@ NTSTATUS rpccli_netlogon_sam_network_logon_ex(struct rpc_pipe_client *cli,
nt.data = nt_response.data;
nt.length = nt_response.length;
- init_netr_NetworkInfo(network_info,
- domain,
- logon_parameters,
- 0xdead,
- 0xbeef,
- username,
- workstation_name_slash,
- (uint8_t *) chal,
- nt,
- lm);
+ network_info->identity_info.domain_name.string = domain;
+ network_info->identity_info.parameter_control = logon_parameters;
+ network_info->identity_info.logon_id_low = 0xdead;
+ network_info->identity_info.logon_id_high = 0xbeef;
+ network_info->identity_info.account_name.string = username;
+ network_info->identity_info.workstation.string = workstation_name_slash;
+
+ memcpy(network_info->challenge, chal, 8);
+ network_info->nt = nt;
+ network_info->lm = lm;
logon->network = network_info;
diff --git a/source3/rpc_client/init_netlogon.c b/source3/rpc_client/init_netlogon.c
index 88a18dee07..d197ff74b2 100644
--- a/source3/rpc_client/init_netlogon.c
+++ b/source3/rpc_client/init_netlogon.c
@@ -20,89 +20,6 @@
#include "includes.h"
#include "../libcli/auth/libcli_auth.h"
-/*******************************************************************
- inits a structure.
-********************************************************************/
-
-void init_netr_IdentityInfo(struct netr_IdentityInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation)
-{
- init_lsa_String(&r->domain_name, domain_name);
- r->parameter_control = parameter_control;
- r->logon_id_low = logon_id_low;
- r->logon_id_high = logon_id_high;
- init_lsa_String(&r->account_name, account_name);
- init_lsa_String(&r->workstation, workstation);
-}
-
-/*******************************************************************
- inits a structure.
- This is a network logon packet. The log_id parameters
- are what an NT server would generate for LUID once the
- user is logged on. I don't think we care about them.
-
- Note that this has no access to the NT and LM hashed passwords,
- so it forwards the challenge, and the NT and LM responses (24
- bytes each) over the secure channel to the Domain controller
- for it to say yea or nay. This is the preferred method of
- checking for a logon as it doesn't export the password
- hashes to anyone who has compromised the secure channel. JRA.
-
-********************************************************************/
-
-void init_netr_NetworkInfo(struct netr_NetworkInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation,
- uint8_t challenge[8],
- struct netr_ChallengeResponse nt,
- struct netr_ChallengeResponse lm)
-{
- init_netr_IdentityInfo(&r->identity_info,
- domain_name,
- parameter_control,
- logon_id_low,
- logon_id_high,
- account_name,
- workstation);
- memcpy(r->challenge, challenge, 8);
- r->nt = nt;
- r->lm = lm;
-}
-
-/*******************************************************************
- inits a structure.
-********************************************************************/
-
-void init_netr_PasswordInfo(struct netr_PasswordInfo *r,
- const char *domain_name,
- uint32_t parameter_control,
- uint32_t logon_id_low,
- uint32_t logon_id_high,
- const char *account_name,
- const char *workstation,
- struct samr_Password lmpassword,
- struct samr_Password ntpassword)
-{
- init_netr_IdentityInfo(&r->identity_info,
- domain_name,
- parameter_control,
- logon_id_low,
- logon_id_high,
- account_name,
- workstation);
- r->lmpassword = lmpassword;
- r->ntpassword = ntpassword;
-}
-
/*************************************************************************
inits a netr_CryptPassword structure
*************************************************************************/