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.
6 use shared::basetsd::SIZE_T;
7 use shared::minwindef::{DWORD, UCHAR};
8 use um::winnt::{BOOLEAN, CHAR, PWSTR};
9 pub const CYPHER_BLOCK_LENGTH: SIZE_T = 8;
10 STRUCT!{struct CYPHER_BLOCK {
11     data: [CHAR; CYPHER_BLOCK_LENGTH],
12 }}
13 STRUCT!{struct LM_OWF_PASSWORD {
14     data: [CYPHER_BLOCK; 2],
15 }}
16 pub type PLM_OWF_PASSWORD = *mut LM_OWF_PASSWORD;
17 pub type NT_OWF_PASSWORD = LM_OWF_PASSWORD;
18 pub type PNT_OWF_PASSWORD = *mut NT_OWF_PASSWORD;
19 STRUCT!{struct SAMPR_ENCRYPTED_USER_PASSWORD {
20     Buffer: [UCHAR; (256 * 2) + 4],
21 }}
22 pub type PSAMPR_ENCRYPTED_USER_PASSWORD = *mut SAMPR_ENCRYPTED_USER_PASSWORD;
23 STRUCT!{struct ENCRYPTED_LM_OWF_PASSWORD {
24     data: [CYPHER_BLOCK; 2],
25 }}
26 pub type PENCRYPTED_LM_OWF_PASSWORD = *mut ENCRYPTED_LM_OWF_PASSWORD;
27 pub type ENCRYPTED_NT_OWF_PASSWORD = ENCRYPTED_LM_OWF_PASSWORD;
28 pub type PENCRYPTED_NT_OWF_PASSWORD = *mut ENCRYPTED_NT_OWF_PASSWORD;
29 extern "system" {
MSChapSrvChangePassword( ServerName: PWSTR, UserName: PWSTR, LmOldPresent: BOOLEAN, LmOldOwfPassword: PLM_OWF_PASSWORD, LmNewOwfPassword: PLM_OWF_PASSWORD, NtOldOwfPassword: PNT_OWF_PASSWORD, NtNewOwfPassword: PNT_OWF_PASSWORD, ) -> DWORD30     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;
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, ) -> DWORD39     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 }
49