Define core security token and ACL structures
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 30s
Builds / ExectOS (amd64, release) (push) Successful in 33s
Builds / ExectOS (i686, release) (push) Successful in 39s
Builds / ExectOS (i686, debug) (push) Successful in 37s

This commit is contained in:
2026-08-18 21:40:19 +02:00
parent f9008510f5
commit 61218ad742
2 changed files with 138 additions and 0 deletions

View File

@@ -119,6 +119,15 @@
/* C/C++ specific code */
#ifndef __XTOS_ASSEMBLER__
/* The classification type for a security proxy token */
typedef enum _PROXY_CLASS
{
ProxyFull = 0,
ProxyService,
ProxyTree,
ProxyDirectory
} PROXY_CLASS, *PPROXY_CLASS;
/* Security impersonation levels */
typedef enum _SECURITY_IMPERSONATION_LEVEL
{
@@ -137,6 +146,52 @@ typedef enum _SECURITY_OPERATION_CODE
AssignSecurityDescriptor
} SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE;
/* Access token types enumeration list */
typedef enum _TOKEN_TYPE
{
TokenPrimary = 1,
TokenImpersonation
} TOKEN_TYPE, *PTOKEN_TYPE;
/* Access Control List structure definition */
typedef struct _ACL
{
UCHAR AclRevision;
UCHAR Reserved1;
USHORT AclSize;
USHORT AceCount;
USHORT Reserved2;
} ACL, *PACL;
/* Bitfields for granular security audit policy categories */
typedef struct _AUDIT_POLICY_CATEGORIES
{
UCHAR System:4;
UCHAR Logon:4;
UCHAR ObjectAccess:4;
UCHAR PrivilegeUse:4;
UCHAR DetailedTracking:4;
UCHAR PolicyChange:4;
UCHAR AccountManagement:4;
UCHAR DirectoryServiceAccess:4;
UCHAR AccountLogon:4;
} AUDIT_POLICY_CATEGORIES, *PAUDIT_POLICY_CATEGORIES;
/* Overlay structure for manipulating audit policy bit masks */
typedef struct _AUDIT_POLICY_OVERLAY
{
ULONGLONG PolicyBits:36;
ULONGLONG SetBit:1;
} AUDIT_POLICY_OVERLAY, *PAUDIT_POLICY_OVERLAY;
/* Audit policy structure definition */
typedef union _AUDIT_POLICY
{
AUDIT_POLICY_CATEGORIES PolicyElements;
AUDIT_POLICY_OVERLAY PolicyOverlay;
ULONGLONG Overlay;
} AUDIT_POLICY, *PAUDIT_POLICY;
/* Generic security mapping structure definition */
typedef struct _GENERIC_MAPPING
{
@@ -197,6 +252,13 @@ typedef struct _SID
ULONG SubAuthority[1];
} SID, *PSID;
/* Security Identifier with its corresponding state attributes structure definition */
typedef struct _SID_ATTRIBUTES
{
PSID Sid;
ULONG Attributes;
} SID_ATTRIBUTES, *PSID_ATTRIBUTES;
/* Token source structure definition */
typedef struct _TOKEN_SOURCE
{
@@ -242,6 +304,35 @@ typedef struct _SECURITY_SUBJECT_CONTEXT
PVOID ProcessAuditId;
} SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
/* Per-token audit generation information and access masks structure definition */
typedef struct _SECURITY_TOKEN_AUDIT_DATA
{
ULONG Length;
ULONG GrantMask;
ULONG DenyMask;
} SECURITY_TOKEN_AUDIT_DATA, *PSECURITY_TOKEN_AUDIT_DATA;
/* Security proxy configuration and constraint data structure definition */
typedef struct _SECURITY_TOKEN_PROXY_DATA
{
ULONG Length;
PROXY_CLASS ProxyClass;
UNICODE_STRING PathInfo;
ULONG ContainerMask;
ULONG ObjectMask;
} SECURITY_TOKEN_PROXY_DATA, *PSECURITY_TOKEN_PROXY_DATA;
/* Active references, device mappings, and tokens tracking data structure definition */
typedef struct _SESSION_REFERENCES
{
PSESSION_REFERENCES Next;
LUID LogonId;
ULONG ReferenceCount;
ULONG Flags;
PDEVICE_MAP DeviceMap;
LIST_ENTRY TokenList;
} SESSION_REFERENCES, *PSESSION_REFERENCES;
/* Access state structure definition */
typedef struct _ACCESS_STATE
{
@@ -267,5 +358,41 @@ typedef struct _ACCESS_STATE
UNICODE_STRING ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;
/* The core access token structure definition */
typedef struct _TOKEN
{
TOKEN_SOURCE TokenSource;
LUID TokenId;
LUID AuthenticationId;
LUID ParentTokenId;
LARGE_INTEGER ExpirationTime;
PERESOURCE TokenLock;
AUDIT_POLICY AuditPolicy;
LUID ModifiedId;
ULONG SessionId;
ULONG UserAndGroupCount;
ULONG RestrictedSidCount;
ULONG PrivilegeCount;
ULONG VariableLength;
ULONG DynamicCharged;
ULONG DynamicAvailable;
ULONG DefaultOwnerIndex;
PSID_ATTRIBUTES UserAndGroups;
PSID_ATTRIBUTES RestrictedSids;
PSID PrimaryGroup;
PLUID_AND_ATTRIBUTES Privileges;
PULONG DynamicPart;
PACL DefaultDacl;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
ULONG TokenFlags;
BOOLEAN TokenInUse;
PSECURITY_TOKEN_PROXY_DATA ProxyData;
PSECURITY_TOKEN_AUDIT_DATA AuditData;
PSESSION_REFERENCES LogonSession;
LUID OriginatingLogonSession;
ULONG VariablePart;
} TOKEN, *PTOKEN;
#endif /* __XTOS_ASSEMBLER__ */
#endif /* __XTDK_SETYPES_H */