mirror of
https://github.com/reactos/reactos.git
synced 2024-07-02 02:34:53 +00:00
[SAMSRV]
Add LM_OWF_PASSWORD and NT_OWF_PASSWORD types and use them. See MS-NRPC sections 2.2.1.1.1 to 2.2.1.1.4. svn path=/trunk/; revision=71364
This commit is contained in:
parent
2eca65d304
commit
c26a5012b8
|
@ -300,10 +300,10 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
IN PUNICODE_STRING OldPassword,
|
IN PUNICODE_STRING OldPassword,
|
||||||
IN PUNICODE_STRING NewPassword)
|
IN PUNICODE_STRING NewPassword)
|
||||||
{
|
{
|
||||||
ENCRYPTED_NT_OWF_PASSWORD OldNtPassword;
|
NT_OWF_PASSWORD OldNtPassword;
|
||||||
ENCRYPTED_NT_OWF_PASSWORD NewNtPassword;
|
NT_OWF_PASSWORD NewNtPassword;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD OldLmPassword;
|
LM_OWF_PASSWORD OldLmPassword;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD NewLmPassword;
|
LM_OWF_PASSWORD NewLmPassword;
|
||||||
OEM_STRING LmPwdString;
|
OEM_STRING LmPwdString;
|
||||||
CHAR LmPwdBuffer[15];
|
CHAR LmPwdBuffer[15];
|
||||||
BOOLEAN OldLmPasswordPresent = FALSE;
|
BOOLEAN OldLmPasswordPresent = FALSE;
|
||||||
|
@ -312,8 +312,8 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
|
|
||||||
ENCRYPTED_LM_OWF_PASSWORD OldLmEncryptedWithNewLm;
|
ENCRYPTED_LM_OWF_PASSWORD OldLmEncryptedWithNewLm;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithOldLm;
|
ENCRYPTED_LM_OWF_PASSWORD NewLmEncryptedWithOldLm;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD OldNtEncryptedWithNewNt;
|
ENCRYPTED_NT_OWF_PASSWORD OldNtEncryptedWithNewNt;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD NewNtEncryptedWithOldNt;
|
ENCRYPTED_NT_OWF_PASSWORD NewNtEncryptedWithOldNt;
|
||||||
PENCRYPTED_LM_OWF_PASSWORD pOldLmEncryptedWithNewLm = NULL;
|
PENCRYPTED_LM_OWF_PASSWORD pOldLmEncryptedWithNewLm = NULL;
|
||||||
PENCRYPTED_LM_OWF_PASSWORD pNewLmEncryptedWithOldLm = NULL;
|
PENCRYPTED_LM_OWF_PASSWORD pNewLmEncryptedWithOldLm = NULL;
|
||||||
|
|
||||||
|
@ -377,6 +377,7 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
|
|
||||||
if (OldLmPasswordPresent && NewLmPasswordPresent)
|
if (OldLmPasswordPresent && NewLmPasswordPresent)
|
||||||
{
|
{
|
||||||
|
/* Encrypt the old LM hash with the new LM hash */
|
||||||
Status = SystemFunction012((const BYTE *)&OldLmPassword,
|
Status = SystemFunction012((const BYTE *)&OldLmPassword,
|
||||||
(const BYTE *)&NewLmPassword,
|
(const BYTE *)&NewLmPassword,
|
||||||
(LPBYTE)&OldLmEncryptedWithNewLm);
|
(LPBYTE)&OldLmEncryptedWithNewLm);
|
||||||
|
@ -386,6 +387,7 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Encrypt the new LM hash with the old LM hash */
|
||||||
Status = SystemFunction012((const BYTE *)&NewLmPassword,
|
Status = SystemFunction012((const BYTE *)&NewLmPassword,
|
||||||
(const BYTE *)&OldLmPassword,
|
(const BYTE *)&OldLmPassword,
|
||||||
(LPBYTE)&NewLmEncryptedWithOldLm);
|
(LPBYTE)&NewLmEncryptedWithOldLm);
|
||||||
|
@ -399,6 +401,7 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
pNewLmEncryptedWithOldLm = &NewLmEncryptedWithOldLm;
|
pNewLmEncryptedWithOldLm = &NewLmEncryptedWithOldLm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Encrypt the old NT hash with the new NT hash */
|
||||||
Status = SystemFunction012((const BYTE *)&OldNtPassword,
|
Status = SystemFunction012((const BYTE *)&OldNtPassword,
|
||||||
(const BYTE *)&NewNtPassword,
|
(const BYTE *)&NewNtPassword,
|
||||||
(LPBYTE)&OldNtEncryptedWithNewNt);
|
(LPBYTE)&OldNtEncryptedWithNewNt);
|
||||||
|
@ -408,6 +411,7 @@ SamChangePasswordUser(IN SAM_HANDLE UserHandle,
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Encrypt the new NT hash with the old NT hash */
|
||||||
Status = SystemFunction012((const BYTE *)&NewNtPassword,
|
Status = SystemFunction012((const BYTE *)&NewNtPassword,
|
||||||
(const BYTE *)&OldNtPassword,
|
(const BYTE *)&OldNtPassword,
|
||||||
(LPBYTE)&NewNtEncryptedWithOldNt);
|
(LPBYTE)&NewNtEncryptedWithOldNt);
|
||||||
|
|
|
@ -8047,10 +8047,10 @@ SamrChangePasswordUser(IN SAMPR_HANDLE UserHandle,
|
||||||
{
|
{
|
||||||
ENCRYPTED_LM_OWF_PASSWORD StoredLmPassword;
|
ENCRYPTED_LM_OWF_PASSWORD StoredLmPassword;
|
||||||
ENCRYPTED_NT_OWF_PASSWORD StoredNtPassword;
|
ENCRYPTED_NT_OWF_PASSWORD StoredNtPassword;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD OldLmPassword;
|
LM_OWF_PASSWORD OldLmPassword;
|
||||||
ENCRYPTED_LM_OWF_PASSWORD NewLmPassword;
|
LM_OWF_PASSWORD NewLmPassword;
|
||||||
ENCRYPTED_NT_OWF_PASSWORD OldNtPassword;
|
NT_OWF_PASSWORD OldNtPassword;
|
||||||
ENCRYPTED_NT_OWF_PASSWORD NewNtPassword;
|
NT_OWF_PASSWORD NewNtPassword;
|
||||||
BOOLEAN StoredLmPresent = FALSE;
|
BOOLEAN StoredLmPresent = FALSE;
|
||||||
BOOLEAN StoredNtPresent = FALSE;
|
BOOLEAN StoredNtPresent = FALSE;
|
||||||
BOOLEAN StoredLmEmpty = TRUE;
|
BOOLEAN StoredLmEmpty = TRUE;
|
||||||
|
|
|
@ -28,7 +28,10 @@ typedef [context_handle] void *SAMPR_HANDLE;
|
||||||
typedef struct _ENCRYPTED_LM_OWF_PASSWORD
|
typedef struct _ENCRYPTED_LM_OWF_PASSWORD
|
||||||
{
|
{
|
||||||
char data[16];
|
char data[16];
|
||||||
} ENCRYPTED_LM_OWF_PASSWORD, *PENCRYPTED_LM_OWF_PASSWORD, ENCRYPTED_NT_OWF_PASSWORD, *PENCRYPTED_NT_OWF_PASSWORD;
|
} LM_OWF_PASSWORD, *PLM_OWF_PASSWORD,
|
||||||
|
NT_OWF_PASSWORD, *PNT_OWF_PASSWORD,
|
||||||
|
ENCRYPTED_LM_OWF_PASSWORD, *PENCRYPTED_LM_OWF_PASSWORD,
|
||||||
|
ENCRYPTED_NT_OWF_PASSWORD, *PENCRYPTED_NT_OWF_PASSWORD;
|
||||||
|
|
||||||
typedef struct _SAMPR_ULONG_ARRAY
|
typedef struct _SAMPR_ULONG_ARRAY
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue