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