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

s3:netlogon: make use of netlogon_creds_decrypt_samlogon_logon()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
Stefan Metzmacher 2013-04-24 16:00:44 +02:00 committed by Andreas Schneider
parent 9d548318da
commit 7b3ddd1a0b

View File

@ -1467,6 +1467,15 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
struct auth_context *auth_context = NULL; struct auth_context *auth_context = NULL;
const char *fn; const char *fn;
#ifdef DEBUG_PASSWORD
logon = netlogon_creds_shallow_copy_logon(p->mem_ctx,
r->in.logon_level,
r->in.logon);
if (logon == NULL) {
logon = r->in.logon;
}
#endif
switch (p->opnum) { switch (p->opnum) {
case NDR_NETR_LOGONSAMLOGON: case NDR_NETR_LOGONSAMLOGON:
fn = "_netr_LogonSamLogon"; fn = "_netr_LogonSamLogon";
@ -1547,6 +1556,10 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
status = NT_STATUS_OK; status = NT_STATUS_OK;
netlogon_creds_decrypt_samlogon_logon(creds,
r->in.logon_level,
logon);
switch (r->in.logon_level) { switch (r->in.logon_level) {
case NetlogonNetworkInformation: case NetlogonNetworkInformation:
case NetlogonNetworkTransitiveInformation: case NetlogonNetworkTransitiveInformation:
@ -1592,32 +1605,16 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
uint8_t chal[8]; uint8_t chal[8];
#ifdef DEBUG_PASSWORD #ifdef DEBUG_PASSWORD
DEBUG(100,("lm owf password:")); if (logon != r->in.logon) {
dump_data(100, logon->password->lmpassword.hash, 16); DEBUG(100,("lm owf password:"));
dump_data(100,
r->in.logon->password->lmpassword.hash, 16);
DEBUG(100,("nt owf password:")); DEBUG(100,("nt owf password:"));
dump_data(100, logon->password->ntpassword.hash, 16); dump_data(100,
#endif r->in.logon->password->ntpassword.hash, 16);
if (creds->negotiate_flags & NETLOGON_NEG_SUPPORTS_AES) {
netlogon_creds_aes_decrypt(creds,
logon->password->lmpassword.hash,
16);
netlogon_creds_aes_decrypt(creds,
logon->password->ntpassword.hash,
16);
} else if (creds->negotiate_flags & NETLOGON_NEG_ARCFOUR) {
netlogon_creds_arcfour_crypt(creds,
logon->password->lmpassword.hash,
16);
netlogon_creds_arcfour_crypt(creds,
logon->password->ntpassword.hash,
16);
} else {
netlogon_creds_des_decrypt(creds, &logon->password->lmpassword);
netlogon_creds_des_decrypt(creds, &logon->password->ntpassword);
} }
#ifdef DEBUG_PASSWORD
DEBUG(100,("decrypt of lm owf password:")); DEBUG(100,("decrypt of lm owf password:"));
dump_data(100, logon->password->lmpassword.hash, 16); dump_data(100, logon->password->lmpassword.hash, 16);