winapi_ui_automation/um/
mschapp.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::basetsd::SIZE_T;
7use shared::minwindef::{DWORD, UCHAR};
8use um::winnt::{BOOLEAN, CHAR, PWSTR};
9pub const CYPHER_BLOCK_LENGTH: SIZE_T = 8;
10STRUCT!{struct CYPHER_BLOCK {
11    data: [CHAR; CYPHER_BLOCK_LENGTH],
12}}
13STRUCT!{struct LM_OWF_PASSWORD {
14    data: [CYPHER_BLOCK; 2],
15}}
16pub type PLM_OWF_PASSWORD = *mut LM_OWF_PASSWORD;
17pub type NT_OWF_PASSWORD = LM_OWF_PASSWORD;
18pub type PNT_OWF_PASSWORD = *mut NT_OWF_PASSWORD;
19STRUCT!{struct SAMPR_ENCRYPTED_USER_PASSWORD {
20    Buffer: [UCHAR; (256 * 2) + 4],
21}}
22pub type PSAMPR_ENCRYPTED_USER_PASSWORD = *mut SAMPR_ENCRYPTED_USER_PASSWORD;
23STRUCT!{struct ENCRYPTED_LM_OWF_PASSWORD {
24    data: [CYPHER_BLOCK; 2],
25}}
26pub type PENCRYPTED_LM_OWF_PASSWORD = *mut ENCRYPTED_LM_OWF_PASSWORD;
27pub type ENCRYPTED_NT_OWF_PASSWORD = ENCRYPTED_LM_OWF_PASSWORD;
28pub type PENCRYPTED_NT_OWF_PASSWORD = *mut ENCRYPTED_NT_OWF_PASSWORD;
29extern "system" {
30    pub fn MSChapSrvChangePassword(
31        ServerName: PWSTR,
32        UserName: PWSTR,
33        LmOldPresent: BOOLEAN,
34        LmOldOwfPassword: PLM_OWF_PASSWORD,
35        LmNewOwfPassword: PLM_OWF_PASSWORD,
36        NtOldOwfPassword: PNT_OWF_PASSWORD,
37        NtNewOwfPassword: PNT_OWF_PASSWORD,
38    ) -> DWORD;
39    pub fn MSChapSrvChangePassword2(
40        ServerName: PWSTR,
41        UserName: PWSTR,
42        NewPasswordEncryptedWithOldNt: PSAMPR_ENCRYPTED_USER_PASSWORD,
43        OldNtOwfPasswordEncryptedWithNewNt: PENCRYPTED_NT_OWF_PASSWORD,
44        LmPresent: BOOLEAN,
45        NewPasswordEncryptedWithOldLm: PSAMPR_ENCRYPTED_USER_PASSWORD,
46        OldLmOwfPasswordEncryptedWithNewLmOrNt: PENCRYPTED_LM_OWF_PASSWORD,
47    ) -> DWORD;
48}