aboutsummaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/subauth.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
committerValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
commit1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch)
tree7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/winapi/src/um/subauth.rs
parent5ecd8cf2cba827454317368b68571df0d13d7842 (diff)
downloadfparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz
fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/winapi/src/um/subauth.rs')
-rw-r--r--vendor/winapi/src/um/subauth.rs204
1 files changed, 204 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/subauth.rs b/vendor/winapi/src/um/subauth.rs
new file mode 100644
index 0000000..b5d539b
--- /dev/null
+++ b/vendor/winapi/src/um/subauth.rs
@@ -0,0 +1,204 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Types and macros for Subauthentication Packages.
+use shared::minwindef::{PUCHAR, ULONG, USHORT};
+use um::winnt::{BOOLEAN, CHAR, LARGE_INTEGER, LONG, PCHAR, PVOID, PWSTR};
+STRUCT!{struct UNICODE_STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PWSTR,
+}}
+pub type PUNICODE_STRING = *mut UNICODE_STRING;
+STRUCT!{struct STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PCHAR,
+}}
+pub type PSTRING = *mut STRING;
+STRUCT!{struct OLD_LARGE_INTEGER {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+pub type POLD_LARGE_INTEGER = *mut OLD_LARGE_INTEGER;
+pub type SAM_HANDLE = PVOID;
+pub type PSAM_HANDLE = *mut PVOID;
+pub const USER_ACCOUNT_DISABLED: ULONG = 0x00000001;
+pub const USER_HOME_DIRECTORY_REQUIRED: ULONG = 0x00000002;
+pub const USER_PASSWORD_NOT_REQUIRED: ULONG = 0x00000004;
+pub const USER_TEMP_DUPLICATE_ACCOUNT: ULONG = 0x00000008;
+pub const USER_NORMAL_ACCOUNT: ULONG = 0x00000010;
+pub const USER_MNS_LOGON_ACCOUNT: ULONG = 0x00000020;
+pub const USER_INTERDOMAIN_TRUST_ACCOUNT: ULONG = 0x00000040;
+pub const USER_WORKSTATION_TRUST_ACCOUNT: ULONG = 0x00000080;
+pub const USER_SERVER_TRUST_ACCOUNT: ULONG = 0x00000100;
+pub const USER_DONT_EXPIRE_PASSWORD: ULONG = 0x00000200;
+pub const USER_ACCOUNT_AUTO_LOCKED: ULONG = 0x00000400;
+pub const USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED: ULONG = 0x00000800;
+pub const USER_SMARTCARD_REQUIRED: ULONG = 0x00001000;
+pub const USER_TRUSTED_FOR_DELEGATION: ULONG = 0x00002000;
+pub const USER_NOT_DELEGATED: ULONG = 0x00004000;
+pub const USER_USE_DES_KEY_ONLY: ULONG = 0x00008000;
+pub const USER_DONT_REQUIRE_PREAUTH: ULONG = 0x00010000;
+pub const USER_PASSWORD_EXPIRED: ULONG = 0x00020000;
+pub const USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION: ULONG = 0x00040000;
+pub const USER_NO_AUTH_DATA_REQUIRED: ULONG = 0x00080000;
+pub const USER_PARTIAL_SECRETS_ACCOUNT: ULONG = 0x00100000;
+pub const USER_USE_AES_KEYS: ULONG = 0x00200000;
+pub const NEXT_FREE_ACCOUNT_CONTROL_BIT: ULONG = USER_USE_AES_KEYS << 1;
+pub const USER_MACHINE_ACCOUNT_MASK: ULONG = USER_INTERDOMAIN_TRUST_ACCOUNT
+ | USER_WORKSTATION_TRUST_ACCOUNT | USER_SERVER_TRUST_ACCOUNT;
+pub const USER_ACCOUNT_TYPE_MASK: ULONG = USER_TEMP_DUPLICATE_ACCOUNT | USER_NORMAL_ACCOUNT
+ | USER_MACHINE_ACCOUNT_MASK;
+pub const USER_COMPUTED_ACCOUNT_CONTROL_BITS: ULONG = USER_ACCOUNT_AUTO_LOCKED
+ | USER_PASSWORD_EXPIRED;
+pub const SAM_DAYS_PER_WEEK: USHORT = 7;
+pub const SAM_HOURS_PER_WEEK: USHORT = 24 * SAM_DAYS_PER_WEEK;
+pub const SAM_MINUTES_PER_WEEK: USHORT = 60 * SAM_HOURS_PER_WEEK;
+STRUCT!{struct LOGON_HOURS {
+ UnitsPerWeek: USHORT,
+ LogonHours: PUCHAR,
+}}
+pub type PLOGON_HOURS = *mut LOGON_HOURS;
+STRUCT!{struct SR_SECURITY_DESCRIPTOR {
+ Length: ULONG,
+ SecurityDescriptor: PUCHAR,
+}}
+pub type PSR_SECURITY_DESCRIPTOR = *mut SR_SECURITY_DESCRIPTOR;
+STRUCT!{struct USER_ALL_INFORMATION {
+ LastLogon: LARGE_INTEGER,
+ LastLogoff: LARGE_INTEGER,
+ PasswordLastSet: LARGE_INTEGER,
+ AccountExpires: LARGE_INTEGER,
+ PasswordCanChange: LARGE_INTEGER,
+ PasswordMustChange: LARGE_INTEGER,
+ UserName: UNICODE_STRING,
+ FullName: UNICODE_STRING,
+ HomeDirectory: UNICODE_STRING,
+ HomeDirectoryDrive: UNICODE_STRING,
+ ScriptPath: UNICODE_STRING,
+ ProfilePath: UNICODE_STRING,
+ AdminComment: UNICODE_STRING,
+ WorkStations: UNICODE_STRING,
+ UserComment: UNICODE_STRING,
+ Parameters: UNICODE_STRING,
+ LmPassword: UNICODE_STRING,
+ NtPassword: UNICODE_STRING,
+ PrivateData: UNICODE_STRING,
+ SecurityDescriptor: SR_SECURITY_DESCRIPTOR,
+ UserId: ULONG,
+ PrimaryGroupId: ULONG,
+ UserAccountControl: ULONG,
+ WhichFields: ULONG,
+ LogonHours: LOGON_HOURS,
+ BadPasswordCount: USHORT,
+ LogonCount: USHORT,
+ CountryCode: USHORT,
+ CodePage: USHORT,
+ LmPasswordPresent: BOOLEAN,
+ NtPasswordPresent: BOOLEAN,
+ PasswordExpired: BOOLEAN,
+ PrivateDataSensitive: BOOLEAN,
+}}
+pub type PUSER_ALL_INFORMATION = *mut USER_ALL_INFORMATION;
+pub const USER_ALL_PARAMETERS: ULONG = 0x00200000;
+pub const CLEAR_BLOCK_LENGTH: usize = 8;
+STRUCT!{struct CLEAR_BLOCK {
+ data: [CHAR; CLEAR_BLOCK_LENGTH],
+}}
+pub type PCLEAR_BLOCK = *mut CLEAR_BLOCK;
+pub const CYPHER_BLOCK_LENGTH: usize = 8;
+STRUCT!{struct CYPHER_BLOCK {
+ data: [CHAR; CYPHER_BLOCK_LENGTH],
+}}
+pub type PCYPHER_BLOCK = *mut CYPHER_BLOCK;
+STRUCT!{struct LM_OWF_PASSWORD {
+ data: [CYPHER_BLOCK; 2],
+}}
+pub type PLM_OWF_PASSWORD = *mut LM_OWF_PASSWORD;
+pub type LM_CHALLENGE = CLEAR_BLOCK;
+pub type PLM_CHALLENGE = *mut LM_CHALLENGE;
+pub type NT_OWF_PASSWORD = LM_OWF_PASSWORD;
+pub type PNT_OWF_PASSWORD = *mut NT_OWF_PASSWORD;
+pub type NT_CHALLENGE = LM_CHALLENGE;
+pub type PNT_CHALLENGE = *mut NT_CHALLENGE;
+pub const USER_SESSION_KEY_LENGTH: usize = CYPHER_BLOCK_LENGTH * 2;
+STRUCT!{struct USER_SESSION_KEY {
+ data: [CYPHER_BLOCK; 2],
+}}
+pub type PUSER_SESSION_KEY = *mut USER_SESSION_KEY;
+ENUM!{enum NETLOGON_LOGON_INFO_CLASS {
+ NetlogonInteractiveInformation = 1,
+ NetlogonNetworkInformation,
+ NetlogonServiceInformation,
+ NetlogonGenericInformation,
+ NetlogonInteractiveTransitiveInformation,
+ NetlogonNetworkTransitiveInformation,
+ NetlogonServiceTransitiveInformation,
+}}
+STRUCT!{struct NETLOGON_LOGON_IDENTITY_INFO {
+ LogonDomainName: UNICODE_STRING,
+ ParameterControl: ULONG,
+ LogonId: OLD_LARGE_INTEGER,
+ UserName: UNICODE_STRING,
+ Workstation: UNICODE_STRING,
+}}
+pub type PNETLOGON_LOGON_IDENTITY_INFO = *mut NETLOGON_LOGON_IDENTITY_INFO;
+STRUCT!{struct NETLOGON_INTERACTIVE_INFO {
+ Identity: NETLOGON_LOGON_IDENTITY_INFO,
+ LmOwfPassword: LM_OWF_PASSWORD,
+ NtOwfPassword: NT_OWF_PASSWORD,
+}}
+pub type PNETLOGON_INTERACTIVE_INFO = *mut NETLOGON_INTERACTIVE_INFO;
+STRUCT!{struct NETLOGON_SERVICE_INFO {
+ Identity: NETLOGON_LOGON_IDENTITY_INFO,
+ LmOwfPassword: LM_OWF_PASSWORD,
+ NtOwfPassword: NT_OWF_PASSWORD,
+}}
+pub type PNETLOGON_SERVICE_INFO = *mut NETLOGON_SERVICE_INFO;
+STRUCT!{struct NETLOGON_NETWORK_INFO {
+ Identity: NETLOGON_LOGON_IDENTITY_INFO,
+ LmChallenge: LM_CHALLENGE,
+ NtChallengeResponse: STRING,
+ LmChallengeResponse: STRING,
+}}
+pub type PNETLOGON_NETWORK_INFO = *mut NETLOGON_NETWORK_INFO;
+STRUCT!{struct NETLOGON_GENERIC_INFO {
+ Identity: NETLOGON_LOGON_IDENTITY_INFO,
+ PackageName: UNICODE_STRING,
+ DataLength: ULONG,
+ LogonData: PUCHAR,
+}}
+pub type PNETLOGON_GENERIC_INFO = *mut NETLOGON_GENERIC_INFO;
+pub const MSV1_0_PASSTHRU: ULONG = 0x01;
+pub const MSV1_0_GUEST_LOGON: ULONG = 0x02;
+STRUCT!{struct MSV1_0_VALIDATION_INFO {
+ LogoffTime: LARGE_INTEGER,
+ KickoffTime: LARGE_INTEGER,
+ LogonServer: UNICODE_STRING,
+ LogonDomainName: UNICODE_STRING,
+ SessionKey: USER_SESSION_KEY,
+ Authoritative: BOOLEAN,
+ UserFlags: ULONG,
+ WhichFields: ULONG,
+ UserId: ULONG,
+}}
+pub type PMSV1_0_VALIDATION_INFO = *mut MSV1_0_VALIDATION_INFO;
+pub const MSV1_0_VALIDATION_LOGOFF_TIME: ULONG = 0x00000001;
+pub const MSV1_0_VALIDATION_KICKOFF_TIME: ULONG = 0x00000002;
+pub const MSV1_0_VALIDATION_LOGON_SERVER: ULONG = 0x00000004;
+pub const MSV1_0_VALIDATION_LOGON_DOMAIN: ULONG = 0x00000008;
+pub const MSV1_0_VALIDATION_SESSION_KEY: ULONG = 0x00000010;
+pub const MSV1_0_VALIDATION_USER_FLAGS: ULONG = 0x00000020;
+pub const MSV1_0_VALIDATION_USER_ID: ULONG = 0x00000040;
+pub const MSV1_0_SUBAUTH_ACCOUNT_DISABLED: ULONG = 0x00000001;
+pub const MSV1_0_SUBAUTH_PASSWORD: ULONG = 0x00000002;
+pub const MSV1_0_SUBAUTH_WORKSTATIONS: ULONG = 0x00000004;
+pub const MSV1_0_SUBAUTH_LOGON_HOURS: ULONG = 0x00000008;
+pub const MSV1_0_SUBAUTH_ACCOUNT_EXPIRY: ULONG = 0x00000010;
+pub const MSV1_0_SUBAUTH_PASSWORD_EXPIRY: ULONG = 0x00000020;
+pub const MSV1_0_SUBAUTH_ACCOUNT_TYPE: ULONG = 0x00000040;
+pub const MSV1_0_SUBAUTH_LOCKOUT: ULONG = 0x00000080;
+// STATUS_*