--******************************************************************************************************************** -- Created: 30-Mar-2010 17:35:27 by OpenVMS SDL EV3-3 -- Source: 12-DEC-1995 10:13:13 $1$DGA7274:[LIB_ADA.LIS]NSAEVTDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package NSAEVTDEF is -- module $NSAEVTDEF --+ -- Non-Discretionary Security Auditing event definitions. This macro defines -- the bits which are used to enable alarm and audit events for each class of -- system security relevant event. This definition also defines the format of -- the mandatory process auditing event vectors. --- NSA_S_NSAAXPDEF : constant := 40; -- Old size name - synonym type NSAAXP_TYPE is record FILLER_1 : UNSIGNED_BYTE_ARRAY (1 .. 8); -- preserve pre-V6.0 layout EVT_FAILURE : UNSIGNED_LONGWORD; -- Access failures event mask EVT_SUCCESS : UNSIGNED_LONGWORD; -- Successful access event mask EVT_SYSPRV : UNSIGNED_LONGWORD; -- Success due to SYSPRV event mask EVT_BYPASS : UNSIGNED_LONGWORD; -- Success due to BYPASS event mask EVT_UPGRADE : UNSIGNED_LONGWORD; -- Success due to UPGRADE event mask EVT_DOWNGRADE : UNSIGNED_LONGWORD; -- Success due to DOWNGRADE event mask EVT_GRPPRV : UNSIGNED_LONGWORD; -- Success due to GRPPRV event mask EVT_READALL : UNSIGNED_LONGWORD; -- Success due to READALL event mask end record; for NSAAXP_TYPE use record FILLER_1 at 0 range 0 .. 63; EVT_FAILURE at 8 range 0 .. 31; EVT_SUCCESS at 12 range 0 .. 31; EVT_SYSPRV at 16 range 0 .. 31; EVT_BYPASS at 20 range 0 .. 31; EVT_UPGRADE at 24 range 0 .. 31; EVT_DOWNGRADE at 28 range 0 .. 31; EVT_GRPPRV at 32 range 0 .. 31; EVT_READALL at 36 range 0 .. 31; end record; for NSAAXP_TYPE'SIZE use 320; NSAAXP_TYPE_INIT : constant NSAAXP_TYPE := (FILLER_1 => (others => 0), EVT_FAILURE => 0, EVT_SUCCESS => 0, EVT_SYSPRV => 0, EVT_BYPASS => 0, EVT_UPGRADE => 0, EVT_DOWNGRADE => 0, EVT_GRPPRV => 0, EVT_READALL => 0); NSA_K_NUM_OBJECT_ACCESS : constant := 8; -- number of privileged access arrays NSA_M_EVT_CREATION : constant := 16#00000001#; NSA_M_EVT_DEACCESS : constant := 16#00000002#; NSA_M_EVT_DELETION : constant := 16#00000004#; NSA_K_NUM_ACC_OTHER : constant := 3; -- number of "other" bits NSA_K_ACCESS_LENGTH : constant := 36; -- size of object access event mask NSA_S_NSAACCDEF : constant := 36; -- Old size name - synonym type NSA_ACC_OTHER_TYPE is -- other object-specific events record EVT_CREATION : BOOLEAN; -- object creation EVT_DEACCESS : BOOLEAN; -- object deaccess EVT_DELETION : BOOLEAN; -- object delete (devices) FILLER_1 : UNSIGNED_29; end record; for NSA_ACC_OTHER_TYPE use record EVT_CREATION at 0 range 0 .. 0; EVT_DEACCESS at 0 range 1 .. 1; EVT_DELETION at 0 range 2 .. 2; FILLER_1 at 0 range 3 .. 31; end record; for NSA_ACC_OTHER_TYPE'SIZE use 32; NSA_ACC_OTHER_TYPE_INIT : constant NSA_ACC_OTHER_TYPE := (EVT_CREATION => FALSE, EVT_DEACCESS => FALSE, EVT_DELETION => FALSE, FILLER_1 => 0); type NSAACC_TYPE is record ACC_FAILURE : UNSIGNED_LONGWORD; -- Access failures event mask ACC_SUCCESS : UNSIGNED_LONGWORD; -- Successful access event mask ACC_SYSPRV : UNSIGNED_LONGWORD; -- Success due to SYSPRV event mask ACC_BYPASS : UNSIGNED_LONGWORD; -- Success due to BYPASS event mask ACC_UPGRADE : UNSIGNED_LONGWORD; -- Success due to UPGRADE event mask ACC_DOWNGRADE : UNSIGNED_LONGWORD; -- Success due to DOWNGRADE event mask ACC_GRPPRV : UNSIGNED_LONGWORD; -- Success due to GRPPRV event mask ACC_READALL : UNSIGNED_LONGWORD; -- Success due to READALL event mask ACC_OTHER : NSA_ACC_OTHER_TYPE; -- other object-specific events end record; for NSAACC_TYPE use record ACC_FAILURE at 0 range 0 .. 31; ACC_SUCCESS at 4 range 0 .. 31; ACC_SYSPRV at 8 range 0 .. 31; ACC_BYPASS at 12 range 0 .. 31; ACC_UPGRADE at 16 range 0 .. 31; ACC_DOWNGRADE at 20 range 0 .. 31; ACC_GRPPRV at 24 range 0 .. 31; ACC_READALL at 28 range 0 .. 31; ACC_OTHER at 32 range 0 .. 31; end record; for NSAACC_TYPE'SIZE use 288; NSAACC_TYPE_INIT : constant NSAACC_TYPE := (ACC_FAILURE => 0, ACC_SUCCESS => 0, ACC_SYSPRV => 0, ACC_BYPASS => 0, ACC_UPGRADE => 0, ACC_DOWNGRADE => 0, ACC_GRPPRV => 0, ACC_READALL => 0, ACC_OTHER => NSA_ACC_OTHER_TYPE_INIT ); NSA_M_EVT_ACL : constant := 16#00000001#; NSA_M_EVT_MOUNT : constant := 16#00000002#; NSA_M_EVT_UAF : constant := 16#00000004#; NSA_M_EVT_INSTAL : constant := 16#00000008#; NSA_M_EVT_AUDIT : constant := 16#00000010#; NSA_M_EVT_CUSTOMER : constant := 16#00000020#; NSA_M_EVT_CSS : constant := 16#00000040#; NSA_M_EVT_LP : constant := 16#00000080#; NSA_M_EVT_SYSTIME : constant := 16#00000100#; NSA_M_EVT_SYSGEN : constant := 16#00000200#; NSA_M_EVT_IDENTIFIER : constant := 16#00000400#; NSA_M_EVT_CONNECTION : constant := 16#00000800#; NSA_M_EVT_NCP : constant := 16#00001000#; NSA_M_EVT_AUTHENTICATION : constant := 16#00002000#; NSA_K_NUM_SYS_EVENTS : constant := 14; -- number of system event types NSA_K_NUM_LOGIN_EVENTS : constant := 4; -- number of login event types NSA_K_NUM_PRIV_EVENTS : constant := 2; -- number of priv audit event types NSA_M_PRC_CREPRC : constant := 16#00000001#; NSA_M_PRC_DELPRC : constant := 16#00000002#; NSA_M_PRC_SCHDWK : constant := 16#00000004#; NSA_M_PRC_CANWAK : constant := 16#00000008#; NSA_M_PRC_WAKE : constant := 16#00000010#; NSA_M_PRC_SUSPND : constant := 16#00000020#; NSA_M_PRC_RESUME : constant := 16#00000040#; NSA_M_PRC_GRANTID : constant := 16#00000080#; NSA_M_PRC_REVOKID : constant := 16#00000100#; NSA_M_PRC_GETJPI : constant := 16#00000200#; NSA_M_PRC_FORCEX : constant := 16#00000400#; NSA_M_PRC_SIGPRC : constant := 16#00000800#; NSA_M_PRC_SETPRI : constant := 16#00001000#; NSA_M_PRC_PRCTERM : constant := 16#00002000#; NSA_M_PRC_CPU_CAPABILITIES : constant := 16#00004000#; NSA_M_PRC_PROCESS_CAPABILITIES : constant := 16#00008000#; NSA_M_PRC_PROCESS_AFFINITY : constant := 16#00010000#; NSA_M_PRC_SET_IMPLICIT_AFFINITY : constant := 16#00020000#; NSA_K_NUM_PROCESS_EVENTS : constant := 18; -- number of process control bits NSA_M_EVT_ILLFORMED : constant := 16#00000001#; NSA_K_NUM_AUDIT_EVENTS : constant := 1; -- number of audit event types NSA_M_PSB_CREATE : constant := 16#00000001#; NSA_M_PSB_DELETE : constant := 16#00000002#; NSA_M_PSB_MODIFY : constant := 16#00000004#; NSA_K_NUM_PERSONA_EVENTS : constant := 3; -- number of persona control bits NSA_C_EVT_LENGTH : constant := 40; -- size of alarm or audit event mask NSA_K_EVT_LENGTH : constant := 40; -- size of alarm or audit event mask NSA_S_NSAEVTDEF : constant := 40; -- Old size name - synonym type NSA_EVT_SYS_TYPE is -- miscellaneous system event mask record EVT_ACL : BOOLEAN; -- ACL requested alarms and audits EVT_MOUNT : BOOLEAN; -- MOUNT and DISMOUNT requests -- modifications made to the system EVT_UAF : BOOLEAN; -- or network authorization files EVT_INSTAL : BOOLEAN; -- INSTALL operations EVT_AUDIT : BOOLEAN; -- SET AUDIT operations (obsolete) EVT_CUSTOMER : BOOLEAN; -- Customer events EVT_CSS : BOOLEAN; -- CSS events EVT_LP : BOOLEAN; -- LP events EVT_SYSTIME : BOOLEAN; -- System time modification EVT_SYSGEN : BOOLEAN; -- SYSGEN parameter modification EVT_IDENTIFIER : BOOLEAN; -- Identifier auditing (as privilege) EVT_CONNECTION : BOOLEAN; -- Connection auditing EVT_NCP : BOOLEAN; -- NCP command line auditing EVT_AUTHENTICATION : BOOLEAN; -- DAS auditing FILLER_1 : UNSIGNED_18; end record; for NSA_EVT_SYS_TYPE use record EVT_ACL at 0 range 0 .. 0; EVT_MOUNT at 0 range 1 .. 1; EVT_UAF at 0 range 2 .. 2; EVT_INSTAL at 0 range 3 .. 3; EVT_AUDIT at 0 range 4 .. 4; EVT_CUSTOMER at 0 range 5 .. 5; EVT_CSS at 0 range 6 .. 6; EVT_LP at 0 range 7 .. 7; EVT_SYSTIME at 1 range 0 .. 0; EVT_SYSGEN at 1 range 1 .. 1; EVT_IDENTIFIER at 1 range 2 .. 2; EVT_CONNECTION at 1 range 3 .. 3; EVT_NCP at 1 range 4 .. 4; EVT_AUTHENTICATION at 1 range 5 .. 5; FILLER_1 at 1 range 6 .. 23; end record; for NSA_EVT_SYS_TYPE'SIZE use 32; NSA_EVT_SYS_TYPE_INIT : constant NSA_EVT_SYS_TYPE := (EVT_ACL => FALSE, EVT_MOUNT => FALSE, EVT_UAF => FALSE, EVT_INSTAL => FALSE, EVT_AUDIT => FALSE, EVT_CUSTOMER => FALSE, EVT_CSS => FALSE, EVT_LP => FALSE, EVT_SYSTIME => FALSE, EVT_SYSGEN => FALSE, EVT_IDENTIFIER => FALSE, EVT_CONNECTION => FALSE, EVT_NCP => FALSE, EVT_AUTHENTICATION => FALSE, FILLER_1 => 0); type NSA_PRIVILEGE_MASKS_TYPE is record PRVAUD_SUCCESS : UNSIGNED_QUADWORD; -- successfull privilege audit mask PRVAUD_FAILURE : UNSIGNED_QUADWORD; -- successfull privilege audit mask end record; for NSA_PRIVILEGE_MASKS_TYPE use record PRVAUD_SUCCESS at 0 range 0 .. 63; PRVAUD_FAILURE at 8 range 0 .. 63; end record; for NSA_PRIVILEGE_MASKS_TYPE'SIZE use 128; NSA_PRIVILEGE_MASKS_TYPE_INIT : constant NSA_PRIVILEGE_MASKS_TYPE := (PRVAUD_SUCCESS => (0, 0), PRVAUD_FAILURE => (0, 0)); type NSA_EVT_PROCESS_TYPE is -- process control auditing record PRC_CREPRC : BOOLEAN; -- Create process PRC_DELPRC : BOOLEAN; -- Delete process PRC_SCHDWK : BOOLEAN; -- Schedule process wakeup PRC_CANWAK : BOOLEAN; -- Cancel process wakeup PRC_WAKE : BOOLEAN; -- Wake process PRC_SUSPND : BOOLEAN; -- Suspend process PRC_RESUME : BOOLEAN; -- Resume process PRC_GRANTID : BOOLEAN; -- Grant identifier PRC_REVOKID : BOOLEAN; -- Revoke identifier PRC_GETJPI : BOOLEAN; -- Get job or process information PRC_FORCEX : BOOLEAN; -- Force image exit PRC_SIGPRC : BOOLEAN; -- Signal process (undocumented) PRC_SETPRI : BOOLEAN; -- Set process priority PRC_PRCTERM : BOOLEAN; -- Detect process termination (undocumented) PRC_CPU_CAPABILITIES : BOOLEAN; -- Change in CPU capability PRC_PROCESS_CAPABILITIES : BOOLEAN; -- Change in process capability PRC_PROCESS_AFFINITY : BOOLEAN; -- Change in process affinity PRC_SET_IMPLICIT_AFFINITY : BOOLEAN; -- Change in implicit affinity FILLER_1 : UNSIGNED_14; end record; for NSA_EVT_PROCESS_TYPE use record PRC_CREPRC at 0 range 0 .. 0; PRC_DELPRC at 0 range 1 .. 1; PRC_SCHDWK at 0 range 2 .. 2; PRC_CANWAK at 0 range 3 .. 3; PRC_WAKE at 0 range 4 .. 4; PRC_SUSPND at 0 range 5 .. 5; PRC_RESUME at 0 range 6 .. 6; PRC_GRANTID at 0 range 7 .. 7; PRC_REVOKID at 1 range 0 .. 0; PRC_GETJPI at 1 range 1 .. 1; PRC_FORCEX at 1 range 2 .. 2; PRC_SIGPRC at 1 range 3 .. 3; PRC_SETPRI at 1 range 4 .. 4; PRC_PRCTERM at 1 range 5 .. 5; PRC_CPU_CAPABILITIES at 1 range 6 .. 6; PRC_PROCESS_CAPABILITIES at 1 range 7 .. 7; PRC_PROCESS_AFFINITY at 2 range 0 .. 0; PRC_SET_IMPLICIT_AFFINITY at 2 range 1 .. 1; FILLER_1 at 2 range 2 .. 15; end record; for NSA_EVT_PROCESS_TYPE'SIZE use 32; NSA_EVT_PROCESS_TYPE_INIT : constant NSA_EVT_PROCESS_TYPE := (PRC_CREPRC => FALSE, PRC_DELPRC => FALSE, PRC_SCHDWK => FALSE, PRC_CANWAK => FALSE, PRC_WAKE => FALSE, PRC_SUSPND => FALSE, PRC_RESUME => FALSE, PRC_GRANTID => FALSE, PRC_REVOKID => FALSE, PRC_GETJPI => FALSE, PRC_FORCEX => FALSE, PRC_SIGPRC => FALSE, PRC_SETPRI => FALSE, PRC_PRCTERM => FALSE, PRC_CPU_CAPABILITIES => FALSE, PRC_PROCESS_CAPABILITIES => FALSE, PRC_PROCESS_AFFINITY => FALSE, PRC_SET_IMPLICIT_AFFINITY => FALSE, FILLER_1 => 0); type NSA_EVT_AUDIT_TYPE is -- miscellaneous audit event mask record EVT_ILLFORMED : BOOLEAN; -- Ill-formed TCB audit FILLER_1 : UNSIGNED_31; end record; for NSA_EVT_AUDIT_TYPE use record EVT_ILLFORMED at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 31; end record; for NSA_EVT_AUDIT_TYPE'SIZE use 32; NSA_EVT_AUDIT_TYPE_INIT : constant NSA_EVT_AUDIT_TYPE := (EVT_ILLFORMED => FALSE, FILLER_1 => 0); type NSA_EVT_PERSONA_TYPE is -- persona auditing record PSB_CREATE : BOOLEAN; -- Create persona PSB_DELETE : BOOLEAN; -- Delete persona PSB_MODIFY : BOOLEAN; -- Modify persona FILLER_1 : UNSIGNED_29; end record; for NSA_EVT_PERSONA_TYPE use record PSB_CREATE at 0 range 0 .. 0; PSB_DELETE at 0 range 1 .. 1; PSB_MODIFY at 0 range 2 .. 2; FILLER_1 at 0 range 3 .. 31; end record; for NSA_EVT_PERSONA_TYPE'SIZE use 32; NSA_EVT_PERSONA_TYPE_INIT : constant NSA_EVT_PERSONA_TYPE := (PSB_CREATE => FALSE, PSB_DELETE => FALSE, PSB_MODIFY => FALSE, FILLER_1 => 0); type NSAEVT_TYPE is record EVT_SYS : NSA_EVT_SYS_TYPE; -- miscellaneous system event mask EVT_LOGB : UNSIGNED_BYTE; -- breakin detection event mask EVT_LOGI : UNSIGNED_BYTE; -- login event mask EVT_LOGF : UNSIGNED_BYTE; -- login failure event mask EVT_LOGO : UNSIGNED_BYTE; -- logout event mask PRIVILEGE_MASKS : NSA_PRIVILEGE_MASKS_TYPE; EVT_PROCESS : NSA_EVT_PROCESS_TYPE; -- process control auditing EVT_AUDIT : NSA_EVT_AUDIT_TYPE; -- miscellaneous audit event mask EVT_PERSONA : NSA_EVT_PERSONA_TYPE; -- persona auditing FILLER_1 : UNSIGNED_LONGWORD; -- spare longword end record; for NSAEVT_TYPE use record EVT_SYS at 0 range 0 .. 31; EVT_LOGB at 4 range 0 .. 7; EVT_LOGI at 5 range 0 .. 7; EVT_LOGF at 6 range 0 .. 7; EVT_LOGO at 7 range 0 .. 7; PRIVILEGE_MASKS at 8 range 0 .. 127; EVT_PROCESS at 24 range 0 .. 31; EVT_AUDIT at 28 range 0 .. 31; EVT_PERSONA at 32 range 0 .. 31; FILLER_1 at 36 range 0 .. 31; end record; for NSAEVT_TYPE'SIZE use 320; NSAEVT_TYPE_INIT : constant NSAEVT_TYPE := ( EVT_SYS => NSA_EVT_SYS_TYPE_INIT, EVT_LOGB => 0, EVT_LOGI => 0, EVT_LOGF => 0, EVT_LOGO => 0, PRIVILEGE_MASKS => NSA_PRIVILEGE_MASKS_TYPE_INIT, EVT_PROCESS => NSA_EVT_PROCESS_TYPE_INIT, EVT_AUDIT => NSA_EVT_AUDIT_TYPE_INIT, EVT_PERSONA => NSA_EVT_PERSONA_TYPE_INIT, FILLER_1 => 0); NSA_M_EVT_LOG_BAT : constant := 16#00000001#; NSA_M_EVT_LOG_DIA : constant := 16#00000002#; NSA_M_EVT_LOG_LOC : constant := 16#00000004#; NSA_M_EVT_LOG_REM : constant := 16#00000008#; NSA_M_EVT_LOG_NET : constant := 16#00000010#; NSA_M_EVT_LOG_SUB : constant := 16#00000020#; NSA_M_EVT_LOG_DET : constant := 16#00000040#; NSA_M_EVT_LOG_SRV : constant := 16#00000080#; NSA_K_NUM_JOB_TYPES : constant := 8; -- number of job types type NSAEVTLOGBITS_TYPE is record EVT_LOG_BAT : BOOLEAN; -- batch EVT_LOG_DIA : BOOLEAN; -- dialup EVT_LOG_LOC : BOOLEAN; -- local EVT_LOG_REM : BOOLEAN; -- remote EVT_LOG_NET : BOOLEAN; -- network EVT_LOG_SUB : BOOLEAN; -- subprocess EVT_LOG_DET : BOOLEAN; -- detached process EVT_LOG_SRV : BOOLEAN; -- server thread end record; for NSAEVTLOGBITS_TYPE use record EVT_LOG_BAT at 0 range 0 .. 0; EVT_LOG_DIA at 0 range 1 .. 1; EVT_LOG_LOC at 0 range 2 .. 2; EVT_LOG_REM at 0 range 3 .. 3; EVT_LOG_NET at 0 range 4 .. 4; EVT_LOG_SUB at 0 range 5 .. 5; EVT_LOG_DET at 0 range 6 .. 6; EVT_LOG_SRV at 0 range 7 .. 7; end record; for NSAEVTLOGBITS_TYPE'SIZE use 8; NSAEVTLOGBITS_TYPE_INIT : constant NSAEVTLOGBITS_TYPE := (EVT_LOG_BAT => FALSE, EVT_LOG_DIA => FALSE, EVT_LOG_LOC => FALSE, EVT_LOG_REM => FALSE, EVT_LOG_NET => FALSE, EVT_LOG_SUB => FALSE, EVT_LOG_DET => FALSE, EVT_LOG_SRV => FALSE); NSA_C_OLD_EVT_LENGTH : constant := 40; NSA_K_OLD_EVT_LENGTH : constant := 40; NSA_S_NSAOLDEVTDEF : constant := 40; -- Old size name - synonym type NSAOLDEVT_TYPE is record FILLER_1 : UNSIGNED_LONGWORD; -- System bits are still the same FILLER_2 : UNSIGNED_LONGWORD; -- Breakin/Login/Logout bytes -- **************************************************************************** -- The following file access masks must be contiguous and in the current order -- **************************************************************************** OLD_EVT_FAILURE : UNSIGNED_LONGWORD; -- Access failures event mask OLD_EVT_SUCCESS : UNSIGNED_LONGWORD; -- Successful access event mask OLD_EVT_SYSPRV : UNSIGNED_LONGWORD; -- Success due to SYSPRV event mask OLD_EVT_BYPASS : UNSIGNED_LONGWORD; -- Success due to BYPASS event mask OLD_EVT_UPGRADE : UNSIGNED_LONGWORD; -- Success due to UPGRADE event mask OLD_EVT_DOWNGRADE : UNSIGNED_LONGWORD; -- Success due to DOWNGRADE event mask OLD_EVT_GRPPRV : UNSIGNED_LONGWORD; -- Success due to GRPPRV event mask OLD_EVT_READALL : UNSIGNED_LONGWORD; -- Success due to READALL event mask -- **************************************************************************** -- End of file access masks -- **************************************************************************** end record; for NSAOLDEVT_TYPE use record FILLER_1 at 0 range 0 .. 31; FILLER_2 at 4 range 0 .. 31; OLD_EVT_FAILURE at 8 range 0 .. 31; OLD_EVT_SUCCESS at 12 range 0 .. 31; OLD_EVT_SYSPRV at 16 range 0 .. 31; OLD_EVT_BYPASS at 20 range 0 .. 31; OLD_EVT_UPGRADE at 24 range 0 .. 31; OLD_EVT_DOWNGRADE at 28 range 0 .. 31; OLD_EVT_GRPPRV at 32 range 0 .. 31; OLD_EVT_READALL at 36 range 0 .. 31; end record; for NSAOLDEVT_TYPE'SIZE use 320; NSAOLDEVT_TYPE_INIT : constant NSAOLDEVT_TYPE := (FILLER_1 => 0, FILLER_2 => 0, OLD_EVT_FAILURE => 0, OLD_EVT_SUCCESS => 0, OLD_EVT_SYSPRV => 0, OLD_EVT_BYPASS => 0, OLD_EVT_UPGRADE => 0, OLD_EVT_DOWNGRADE => 0, OLD_EVT_GRPPRV => 0, OLD_EVT_READALL => 0); NSA_S_ALARM_NAME : constant := 32; -- maximum length of an alarm name NSA_S_AUDIT_NAME : constant := 65; -- maximum length of an audit name NSA_S_IMAGE_NAME : constant := 1022; -- maximum size of an image name (XQP) NSA_S_JOURNAL_NAME : constant := 65; -- maximum length of alarm or audit name NSA_K_MAX_JOURNALS : constant := 1; -- maximum number of alarm or audit journals NSA_S_MSGFILNAM : constant := 32; -- maximum size of message file name NSA_K_SCRATCH_PAGES : constant := 10; -- number of scratch P1 pages (NSA$A_SCRATCH) NSA_K_SCRATCH_LENGTH : constant := 5120; -- byte length of P1 scratch space NSA_S_NSACONDEF : constant := 4; -- Old size name - synonym type NSACON_TYPE is record FILLER_1 : UNSIGNED_LONGWORD; -- dummy structure to pick up NSA$ prefix end record; for NSACON_TYPE use record FILLER_1 at 0 range 0 .. 31; end record; for NSACON_TYPE'SIZE use 32; NSACON_TYPE_INIT : constant NSACON_TYPE := (FILLER_1 => 0); type NSA_SYSUAF_FIELDS_TYPE is -- SYSUAF flags: record SYSUAF_ACCESS : BOOLEAN; -- ACCESS modified (obsolete) SYSUAF_ACCOUNT : BOOLEAN; -- ACCOUNT modified SYSUAF_ASTLM : BOOLEAN; -- ASTLM modified SYSUAF_BATCH : BOOLEAN; -- BATCH modified SYSUAF_BIOLM : BOOLEAN; -- BIOLM modified SYSUAF_BYTLM : BOOLEAN; -- BYTLM modified SYSUAF_CLI : BOOLEAN; -- CLI modified SYSUAF_CLITABLES : BOOLEAN; -- CLITABLES modified SYSUAF_CPUTIME : BOOLEAN; -- CPUTIME modified SYSUAF_DEFPRIVILEGES : BOOLEAN; -- DEFPRIVILEGES modified SYSUAF_DEVICE : BOOLEAN; -- DEVICE modified SYSUAF_DIALUP : BOOLEAN; -- DIALUP modified SYSUAF_DIOLM : BOOLEAN; -- DIOLM modified SYSUAF_DIRECTORY : BOOLEAN; -- DIRECTORY modified SYSUAF_ENQLM : BOOLEAN; -- ENQLM modified SYSUAF_EXPIRATION : BOOLEAN; -- EXPIRATION modified SYSUAF_FILLM : BOOLEAN; -- FILLM modified SYSUAF_FLAGS : BOOLEAN; -- FLAGS modified SYSUAF_INTERACTIVE : BOOLEAN; -- INTERACTIVE modified (obsolete) SYSUAF_JTQUOTA : BOOLEAN; -- JTQUOTA modified SYSUAF_LGICMD : BOOLEAN; -- LGICMD modified SYSUAF_LOCAL : BOOLEAN; -- LOCAL modified SYSUAF_MAXDETACH : BOOLEAN; -- MAXDETACH modified SYSUAF_MAXJOBS : BOOLEAN; -- MAXJOBS modified SYSUAF_MAXACCTJOBS : BOOLEAN; -- MAXACCTJOBS modified SYSUAF_NETWORK : BOOLEAN; -- NETWORK modified SYSUAF_OWNER : BOOLEAN; -- OWNER modified SYSUAF_PASSWORD : BOOLEAN; -- PASSWORD modified SYSUAF_PBYTLM : BOOLEAN; -- PBYTLM modified SYSUAF_PFLAGS : BOOLEAN; -- PFLAGS modified (obsolete) SYSUAF_P_RESTRICT : BOOLEAN; -- P_RESTRICT modified (obsolete) SYSUAF_PGFLQUOTA : BOOLEAN; -- PGFLQUOTA modified SYSUAF_PRCLM : BOOLEAN; -- PRCLM modified SYSUAF_PRIMEDAYS : BOOLEAN; -- PRIMEDAYS modified SYSUAF_PRIORITY : BOOLEAN; -- PRIORITY modified SYSUAF_PRIVILEGES : BOOLEAN; -- PRIVILEGES modified SYSUAF_PWDLIFETIME : BOOLEAN; -- PWDLIFETIME modified SYSUAF_PWDMINIMUM : BOOLEAN; -- PWDMINIMUM modified SYSUAF_QUEPRIORITY : BOOLEAN; -- QUEPRIORITY modified SYSUAF_REMOTE : BOOLEAN; -- REMOTE modified SYSUAF_SFLAGS : BOOLEAN; -- SFLAGS modified (obsolete) SYSUAF_S_RESTRICT : BOOLEAN; -- S_RESTRICT modified (obsolete) SYSUAF_SHRFILLM : BOOLEAN; -- SHRFILLM modified SYSUAF_TQELM : BOOLEAN; -- TQELM modified SYSUAF_UIC : BOOLEAN; -- UIC modified SYSUAF_WSDEFAULT : BOOLEAN; -- WSDEFAULT modified SYSUAF_WSEXTENT : BOOLEAN; -- WSEXTENT modified SYSUAF_WSQUOTA : BOOLEAN; -- WSQUOTA modified SYSUAF_ENCRYPT : BOOLEAN; -- PRIMARY password hash algorithm modified SYSUAF_ENCRYPT2 : BOOLEAN; -- SECONDARY password hash algorithm modified SYSUAF_SALT : BOOLEAN; -- SALT modified SYSUAF_PASSWORD2 : BOOLEAN; -- Secondary PASSWORD modified SYSUAF_PWD_DATE : BOOLEAN; -- Password expiration date SYSUAF_PWD2_DATE : BOOLEAN; -- Secondary password expiration date SYSUAF_LOGFAILS : BOOLEAN; -- LOGFAILS modified SYSUAF_LASTLOGIN_I : BOOLEAN; -- LASTLOGIN_I modified SYSUAF_LASTLOGIN_N : BOOLEAN; -- LASTLOGIN_N modified SYSUAF_MIN_CLASS : BOOLEAN; -- MIN_CLASS modified SYSUAF_MAX_CLASS : BOOLEAN; -- MAX_CLASS modified SYSUAF_USER_DATA : BOOLEAN; -- user data area modified SYSUAF_DEF_CLASS : BOOLEAN; -- DEF_CLASS modified FILLER_1 : UNSIGNED_3; end record; for NSA_SYSUAF_FIELDS_TYPE use record SYSUAF_ACCESS at 0 range 0 .. 0; SYSUAF_ACCOUNT at 0 range 1 .. 1; SYSUAF_ASTLM at 0 range 2 .. 2; SYSUAF_BATCH at 0 range 3 .. 3; SYSUAF_BIOLM at 0 range 4 .. 4; SYSUAF_BYTLM at 0 range 5 .. 5; SYSUAF_CLI at 0 range 6 .. 6; SYSUAF_CLITABLES at 0 range 7 .. 7; SYSUAF_CPUTIME at 1 range 0 .. 0; SYSUAF_DEFPRIVILEGES at 1 range 1 .. 1; SYSUAF_DEVICE at 1 range 2 .. 2; SYSUAF_DIALUP at 1 range 3 .. 3; SYSUAF_DIOLM at 1 range 4 .. 4; SYSUAF_DIRECTORY at 1 range 5 .. 5; SYSUAF_ENQLM at 1 range 6 .. 6; SYSUAF_EXPIRATION at 1 range 7 .. 7; SYSUAF_FILLM at 2 range 0 .. 0; SYSUAF_FLAGS at 2 range 1 .. 1; SYSUAF_INTERACTIVE at 2 range 2 .. 2; SYSUAF_JTQUOTA at 2 range 3 .. 3; SYSUAF_LGICMD at 2 range 4 .. 4; SYSUAF_LOCAL at 2 range 5 .. 5; SYSUAF_MAXDETACH at 2 range 6 .. 6; SYSUAF_MAXJOBS at 2 range 7 .. 7; SYSUAF_MAXACCTJOBS at 3 range 0 .. 0; SYSUAF_NETWORK at 3 range 1 .. 1; SYSUAF_OWNER at 3 range 2 .. 2; SYSUAF_PASSWORD at 3 range 3 .. 3; SYSUAF_PBYTLM at 3 range 4 .. 4; SYSUAF_PFLAGS at 3 range 5 .. 5; SYSUAF_P_RESTRICT at 3 range 6 .. 6; SYSUAF_PGFLQUOTA at 3 range 7 .. 7; SYSUAF_PRCLM at 4 range 0 .. 0; SYSUAF_PRIMEDAYS at 4 range 1 .. 1; SYSUAF_PRIORITY at 4 range 2 .. 2; SYSUAF_PRIVILEGES at 4 range 3 .. 3; SYSUAF_PWDLIFETIME at 4 range 4 .. 4; SYSUAF_PWDMINIMUM at 4 range 5 .. 5; SYSUAF_QUEPRIORITY at 4 range 6 .. 6; SYSUAF_REMOTE at 4 range 7 .. 7; SYSUAF_SFLAGS at 5 range 0 .. 0; SYSUAF_S_RESTRICT at 5 range 1 .. 1; SYSUAF_SHRFILLM at 5 range 2 .. 2; SYSUAF_TQELM at 5 range 3 .. 3; SYSUAF_UIC at 5 range 4 .. 4; SYSUAF_WSDEFAULT at 5 range 5 .. 5; SYSUAF_WSEXTENT at 5 range 6 .. 6; SYSUAF_WSQUOTA at 5 range 7 .. 7; SYSUAF_ENCRYPT at 6 range 0 .. 0; SYSUAF_ENCRYPT2 at 6 range 1 .. 1; SYSUAF_SALT at 6 range 2 .. 2; SYSUAF_PASSWORD2 at 6 range 3 .. 3; SYSUAF_PWD_DATE at 6 range 4 .. 4; SYSUAF_PWD2_DATE at 6 range 5 .. 5; SYSUAF_LOGFAILS at 6 range 6 .. 6; SYSUAF_LASTLOGIN_I at 6 range 7 .. 7; SYSUAF_LASTLOGIN_N at 7 range 0 .. 0; SYSUAF_MIN_CLASS at 7 range 1 .. 1; SYSUAF_MAX_CLASS at 7 range 2 .. 2; SYSUAF_USER_DATA at 7 range 3 .. 3; SYSUAF_DEF_CLASS at 7 range 4 .. 4; FILLER_1 at 7 range 5 .. 7; end record; for NSA_SYSUAF_FIELDS_TYPE'SIZE use 64; NSA_SYSUAF_FIELDS_TYPE_INIT : constant NSA_SYSUAF_FIELDS_TYPE := (SYSUAF_ACCESS => FALSE, SYSUAF_ACCOUNT => FALSE, SYSUAF_ASTLM => FALSE, SYSUAF_BATCH => FALSE, SYSUAF_BIOLM => FALSE, SYSUAF_BYTLM => FALSE, SYSUAF_CLI => FALSE, SYSUAF_CLITABLES => FALSE, SYSUAF_CPUTIME => FALSE, SYSUAF_DEFPRIVILEGES => FALSE, SYSUAF_DEVICE => FALSE, SYSUAF_DIALUP => FALSE, SYSUAF_DIOLM => FALSE, SYSUAF_DIRECTORY => FALSE, SYSUAF_ENQLM => FALSE, SYSUAF_EXPIRATION => FALSE, SYSUAF_FILLM => FALSE, SYSUAF_FLAGS => FALSE, SYSUAF_INTERACTIVE => FALSE, SYSUAF_JTQUOTA => FALSE, SYSUAF_LGICMD => FALSE, SYSUAF_LOCAL => FALSE, SYSUAF_MAXDETACH => FALSE, SYSUAF_MAXJOBS => FALSE, SYSUAF_MAXACCTJOBS => FALSE, SYSUAF_NETWORK => FALSE, SYSUAF_OWNER => FALSE, SYSUAF_PASSWORD => FALSE, SYSUAF_PBYTLM => FALSE, SYSUAF_PFLAGS => FALSE, SYSUAF_P_RESTRICT => FALSE, SYSUAF_PGFLQUOTA => FALSE, SYSUAF_PRCLM => FALSE, SYSUAF_PRIMEDAYS => FALSE, SYSUAF_PRIORITY => FALSE, SYSUAF_PRIVILEGES => FALSE, SYSUAF_PWDLIFETIME => FALSE, SYSUAF_PWDMINIMUM => FALSE, SYSUAF_QUEPRIORITY => FALSE, SYSUAF_REMOTE => FALSE, SYSUAF_SFLAGS => FALSE, SYSUAF_S_RESTRICT => FALSE, SYSUAF_SHRFILLM => FALSE, SYSUAF_TQELM => FALSE, SYSUAF_UIC => FALSE, SYSUAF_WSDEFAULT => FALSE, SYSUAF_WSEXTENT => FALSE, SYSUAF_WSQUOTA => FALSE, SYSUAF_ENCRYPT => FALSE, SYSUAF_ENCRYPT2 => FALSE, SYSUAF_SALT => FALSE, SYSUAF_PASSWORD2 => FALSE, SYSUAF_PWD_DATE => FALSE, SYSUAF_PWD2_DATE => FALSE, SYSUAF_LOGFAILS => FALSE, SYSUAF_LASTLOGIN_I => FALSE, SYSUAF_LASTLOGIN_N => FALSE, SYSUAF_MIN_CLASS => FALSE, SYSUAF_MAX_CLASS => FALSE, SYSUAF_USER_DATA => FALSE, SYSUAF_DEF_CLASS => FALSE, FILLER_1 => 0); type NSA_SYSUAF_FIELDS_TYPE is record SYSUAF_FIELDS : NSA_SYSUAF_FIELDS_TYPE; -- SYSUAF flags: end record; for NSA_SYSUAF_FIELDS_TYPE use record SYSUAF_FIELDS at 0 range 0 .. 63; end record; for NSA_SYSUAF_FIELDS_TYPE'SIZE use 64; NSA_SYSUAF_FIELDS_TYPE_INIT : constant NSA_SYSUAF_FIELDS_TYPE := ( SYSUAF_FIELDS => NSA_SYSUAF_FIELDS_TYPE_INIT ); type NSA_FIELD_TBL_ENTRY_TYPE is record FLD_NAME : UNSIGNED_LONGWORD; -- Address of ascid field name FLD_OFFSET : UNSIGNED_WORD; -- Offset into record FLD_SIZE : UNSIGNED_WORD; -- Size of field FLD_FMT_RTN : ADDRESS; -- Format routine FLD_FMT_P1 : UNSIGNED_LONGWORD; -- Parameter to format rtn end record; for NSA_FIELD_TBL_ENTRY_TYPE use record FLD_NAME at 0 range 0 .. 31; FLD_OFFSET at 4 range 0 .. 15; FLD_SIZE at 6 range 0 .. 15; FLD_FMT_RTN at 8 range 0 .. 31; FLD_FMT_P1 at 12 range 0 .. 31; end record; for NSA_FIELD_TBL_ENTRY_TYPE'SIZE use 128; NSA_FIELD_TBL_ENTRY_TYPE_INIT : constant NSA_FIELD_TBL_ENTRY_TYPE := (FLD_NAME => 0, FLD_OFFSET => 0, FLD_SIZE => 0, FLD_FMT_RTN => ADDRESS_ZERO, FLD_FMT_P1 => 0); NSA_M_SUM_FILE : constant := 16#00000001#; NSA_M_SUM_PRIV : constant := 16#00000002#; NSA_M_SUM_DEJAVU : constant := 16#80000000#; type NSASUMMARYBITS_TYPE is record SUM_FILE : BOOLEAN; -- file access auditing enabled SUM_PRIV : BOOLEAN; -- privilege auditing enabled FILLER_1 : UNSIGNED_29; SUM_DEJAVU : BOOLEAN; -- auditing running in past end record; for NSASUMMARYBITS_TYPE use record SUM_FILE at 0 range 0 .. 0; SUM_PRIV at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 30; SUM_DEJAVU at 3 range 7 .. 7; end record; for NSASUMMARYBITS_TYPE'SIZE use 32; NSASUMMARYBITS_TYPE_INIT : constant NSASUMMARYBITS_TYPE := (SUM_FILE => FALSE, SUM_PRIV => FALSE, FILLER_1 => 0, SUM_DEJAVU => FALSE); end NSAEVTDEF;