Source code
Revision control
Copy as Markdown
Other Tools
// Licensed under the Apache License, Version 2.0
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use shared::basetsd::SIZE_T;
use shared::minwindef::{DWORD, UCHAR};
use um::winnt::{BOOLEAN, CHAR, PWSTR};
pub const CYPHER_BLOCK_LENGTH: SIZE_T = 8;
STRUCT!{struct CYPHER_BLOCK {
data: [CHAR; CYPHER_BLOCK_LENGTH],
}}
STRUCT!{struct LM_OWF_PASSWORD {
data: [CYPHER_BLOCK; 2],
}}
pub type PLM_OWF_PASSWORD = *mut LM_OWF_PASSWORD;
pub type NT_OWF_PASSWORD = LM_OWF_PASSWORD;
pub type PNT_OWF_PASSWORD = *mut NT_OWF_PASSWORD;
STRUCT!{struct SAMPR_ENCRYPTED_USER_PASSWORD {
Buffer: [UCHAR; (256 * 2) + 4],
}}
pub type PSAMPR_ENCRYPTED_USER_PASSWORD = *mut SAMPR_ENCRYPTED_USER_PASSWORD;
STRUCT!{struct ENCRYPTED_LM_OWF_PASSWORD {
data: [CYPHER_BLOCK; 2],
}}
pub type PENCRYPTED_LM_OWF_PASSWORD = *mut ENCRYPTED_LM_OWF_PASSWORD;
pub type ENCRYPTED_NT_OWF_PASSWORD = ENCRYPTED_LM_OWF_PASSWORD;
pub type PENCRYPTED_NT_OWF_PASSWORD = *mut ENCRYPTED_NT_OWF_PASSWORD;
extern "system" {
pub fn MSChapSrvChangePassword(
ServerName: PWSTR,
UserName: PWSTR,
LmOldPresent: BOOLEAN,
LmOldOwfPassword: PLM_OWF_PASSWORD,
LmNewOwfPassword: PLM_OWF_PASSWORD,
NtOldOwfPassword: PNT_OWF_PASSWORD,
NtNewOwfPassword: PNT_OWF_PASSWORD,
) -> DWORD;
pub fn MSChapSrvChangePassword2(
ServerName: PWSTR,
UserName: PWSTR,
NewPasswordEncryptedWithOldNt: PSAMPR_ENCRYPTED_USER_PASSWORD,
OldNtOwfPasswordEncryptedWithNewNt: PENCRYPTED_NT_OWF_PASSWORD,
LmPresent: BOOLEAN,
NewPasswordEncryptedWithOldLm: PSAMPR_ENCRYPTED_USER_PASSWORD,
OldLmOwfPasswordEncryptedWithNewLmOrNt: PENCRYPTED_LM_OWF_PASSWORD,
) -> DWORD;
}