--******************************************************************************************************************** -- Created: 30-Mar-2010 17:01:51 by OpenVMS SDL EV3-3 -- Source: 20-JUL-2005 11:53:49 $1$DGA7274:[STARLET_ADA.LIS]ISSDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package ISSDEF is -- module $ISSDEF --+ -- $PERSONA_CREATE, $PERSONA_CREATE_INT itemlist item codes -- These item codes must match the TLV item codes in [LIB]PSBDEF.SDL -- --- --+ -- At the time of this modules creation there are four CHP$ item codes which -- must have the same value as their ISS$ counterparts. They are as follows: -- -- ISS$_WORKPRIV = CHP$_PRIV = 3 -- ISS$_CLASS = CHP$_CLASS = 5 -- ISS$_ADD_RIGHTS = CHP$_ADD_RIGHTS = 7 -- ISS$_UIC = CHP$_UIC = 22 -- -- This is to preserve backward comptibility with $CREATE_USER_PROFILE. --- ISS_FLAGS : constant := 1; -- 1 Persona flags ISS_ARBFLAGS : constant := 2; -- 2 Unused ISS_WORKPRIV : constant := 3; -- 3 Working privileges ISS_MODE : constant := 4; -- 4 Access mode ISS_WORKCLASS : constant := 5; -- 5 Working classification ISS_RIGHTS : constant := 6; -- 6 Rights ISS_ADD_RIGHTS : constant := 7; -- 7 Add to the Rights ISS_ADD_AUTHRIGHTS : constant := 8; -- 8 Add to the AuthRights ISS_USERNAME : constant := 9; -- 9 Username ISS_ACCOUNT : constant := 10; -- 10 Account ISS_NOAUDIT : constant := 11; -- 11 No Audit setting ISS_AUTHPRIV : constant := 12; -- 12 Authorized privileges ISS_PERMPRIV : constant := 13; -- 13 Permanent privileges ISS_IMAGE_WORKPRIV : constant := 14; -- 14 Image working privileges ISS_ENABLED : constant := 15; -- 15 Rights enabled mask ISS_AUTHRIGHTS : constant := 16; -- 16 Authorized rights ISS_MINCLASS : constant := 17; -- 17 Minimum classification ISS_MAXCLASS : constant := 18; -- 18 Maximum classification ISS_UID : constant := 19; -- 19 UID ISS_PERSONA_ID : constant := 20; -- 20 Persona ID ISS_PRINCIPAL : constant := 21; -- 21 Principal Name ISS_UIC : constant := 22; -- 22 UIC ISS_SWITCH_EXTENSION : constant := 23; -- 23 Switch Extension directive ISS_PRIMARY_EXTENSION : constant := 24; -- 24 PSB Primary Extension ISS_EXTENSION_COUNT : constant := 25; -- 25 Count of valid extensions ISS_EXTENSION_ARRAY : constant := 26; -- 26 Array of valid extension IDs ISS_RIGHTS_INDEX : constant := 27; -- 27 Rights Chain Index - sets the -- chain for all rights list -- operations. ISS_INPUT_DATA : constant := 28; -- 28 Generic buffer for IN/OUT query ISS_POSIX_UID : constant := 29; -- 29 POSIX User ID ISS_POSIX_GID : constant := 30; -- 30 POSIX Group ID ISS_MIN_ITEM_CODE : constant := 1; ISS_MAX_ITEM_CODE : constant := 30; --+ -- Bits within item code ISS$_FLAGS --- ISS_M_FLAG_PERMANENT : constant := 16#00000001#; ISS_M_FLAG_SECAUDIT : constant := 16#00000002#; type ISSFLAGS_TYPE is record FLAG_PERMANENT : BOOLEAN; FLAG_SECAUDIT : BOOLEAN; FILLER_1 : UNSIGNED_30; end record; for ISSFLAGS_TYPE use record FLAG_PERMANENT at 0 range 0 .. 0; FLAG_SECAUDIT at 0 range 1 .. 1; FILLER_1 at 0 range 2 .. 31; end record; for ISSFLAGS_TYPE'SIZE use 32; ISSFLAGS_TYPE_INIT : constant ISSFLAGS_TYPE := (FLAG_PERMANENT => FALSE, FLAG_SECAUDIT => FALSE, FILLER_1 => 0); -- Codes that represent common attributes that are normally -- present in all persona extensions ISS_COMMON_FLAGS : constant := 1024; -- Flags ISS_COMMON_USERNAME : constant := 1025; -- Username ISS_COMMON_ACCOUNT : constant := 1026; -- Account ISS_DOMAIN : constant := 1027; -- Domain ISS_COMMON_PRINCIPAL : constant := 1028; -- principal ISS_DOI : constant := 1029; ISS_EXTENSION : constant := 1030; -- Extension name ISS_MAKE_TLV : constant := 1031; -- For NSA$MAKE_TLV ISS_MIN_COMMON_ITEM_CODE : constant := 1024; ISS_MAX_COMMON_ITEM_CODE : constant := 1031; -- Codes that represent attributes specific to each persona extension. -- These codes are shared by all extensions. -- NT Persona extension item codes ISS_NT_TOKEN : constant := 8192; -- token ISS_NT_SECURITY_SUBJECT : constant := 8193; -- securtiy context ISS_NT_FLAGS : constant := 8194; ISS_NT_USER_REFCOUNT : constant := 8195; ISS_NT_PRINCIPAL : constant := 8196; ISS_NT_CREDENTIALS : constant := 8197; -- access token + security context ISS_NT_NT_OWF_PASSWORD : constant := 8198; -- ISS_NT_LM_OWF_PASSWORD : constant := 8199; -- ISS_NT_UNPACK_CRED_SIZE : constant := 8200; ISS_NT_TOKEN_TOKENID : constant := 8201; ISS_NT_TOKEN_IMPERSONATELEVEL : constant := 8202; ISS_NT_TOKEN_AUTHENTICATIONID : constant := 8203; ISS_NT_TOKEN_USERANDGROUPCOUNT : constant := 8204; ISS_NT_TOKEN_VARIABLELENGTH : constant := 8205; ISS_NT_TOKEN_USERANDGROUPS : constant := 8206; ISS_NT_TOKEN_USERANDGROUPS_SID : constant := 8207; ISS_NT_TOKEN_PRIMARYGROUP : constant := 8208; ISS_NT_TOKEN_PRIVILEGES : constant := 8209; ISS_NT_TOKEN_DEFAULTDACL : constant := 8210; ISS_NT_TOKEN_UNIXUID : constant := 8211; ISS_NT_TOKEN_UNIXGID : constant := 8212; ISS_NT_TOKEN_GIDINFO : constant := 8213; ISS_NT_TOKEN_GIDINFO_GIDS : constant := 8214; ISS_NT_TOKEN_UNIXNAME : constant := 8215; ISS_NT_TOKEN_DOMAINNAME : constant := 8216; ISS_NT_TOKEN_USERNAME : constant := 8217; ISS_NT_TOKEN_USERSESSIONKEY : constant := 8218; ISS_NT_TOKEN_LMSESSIONKEY : constant := 8219; ISS_NT_TOKEN_VARIABLEPART : constant := 8220; ISS_NT_TOKEN_GROUP_LIST : constant := 8221; ISS_NT_TOKEN_PRIVILEGES_LIST : constant := 8222; ISS_NT_SECURITY_SIGNATURE : constant := 8223; ISS_NT_SECURITY_SMBUID : constant := 8224; ISS_NT_SECURITY_PROCESSAUDITID : constant := 8225; ISS_NT_SECURITY_PROCESSID : constant := 8226; ISS_NT_SECURITY_LOGONID : constant := 8227; ISS_NT_SECURITY_LOGONTYPE : constant := 8228; ISS_NT_SECURITY_SUBJECTFLAGS : constant := 8229; ISS_NT_SECURITY_CONTEXT_OTHER : constant := 8230; ISS_MIN_NT_ITEM_CODE : constant := 8192; ISS_MAX_NT_ITEM_CODE : constant := 8230; --+ -- Bits within item code ISS$_ENABLED --- ISS_M_ENABLED_PERSONA : constant := 16#00000001#; ISS_M_ENABLED_SUBSYSTEM : constant := 16#00000002#; ISS_M_ENABLED_IMAGE : constant := 16#00000004#; ISS_M_ENABLED_SYSTEM : constant := 16#00000008#; ISS_M_ENABLED_TEMPORARY : constant := 16#00000010#; type ISSENABLED_TYPE is record ENABLED_PERSONA : BOOLEAN; ENABLED_SUBSYSTEM : BOOLEAN; ENABLED_IMAGE : BOOLEAN; ENABLED_SYSTEM : BOOLEAN; ENABLED_TEMPORARY : BOOLEAN; FILLER_1 : UNSIGNED_27; end record; for ISSENABLED_TYPE use record ENABLED_PERSONA at 0 range 0 .. 0; ENABLED_SUBSYSTEM at 0 range 1 .. 1; ENABLED_IMAGE at 0 range 2 .. 2; ENABLED_SYSTEM at 0 range 3 .. 3; ENABLED_TEMPORARY at 0 range 4 .. 4; FILLER_1 at 0 range 5 .. 31; end record; for ISSENABLED_TYPE'SIZE use 32; ISSENABLED_TYPE_INIT : constant ISSENABLED_TYPE := (ENABLED_PERSONA => FALSE, ENABLED_SUBSYSTEM => FALSE, ENABLED_IMAGE => FALSE, ENABLED_SYSTEM => FALSE, ENABLED_TEMPORARY => FALSE, FILLER_1 => 0); -- ARB_SUPPORT constants ISS_C_ARB_UNSPECIFIED : constant := -1; ISS_C_ARB_NONE : constant := 0; ISS_C_ARB_CLEAR : constant := 1; ISS_C_ARB_READ_ONLY : constant := 2; ISS_C_ARB_FULL : constant := 3; ISS_C_ARB_FORCE : constant := 4; -- Ignore multiple usermode persona check ISS_C_ARB_MAX_CODE : constant := 4; ISS_C_ARB_MIN_CODE : constant := 0; -- Reserved Persona Ids ISS_C_ID_NATURAL : constant := 1; ISS_C_ID_POSIX_REAL : constant := -2; ISS_C_ID_IMAGE_PERSONA : constant := -2; --+ -- Persona services control flags --- ISS_M_IMP_FLAGS : constant := 16#0000007F#; ISS_M_ASSUME_NODEREF_OLD : constant := 16#00010000#; ISS_M_ASSUME_NOREF_NEW : constant := 16#00020000#; ISS_M_CREATE_DEFPRIV : constant := 16#00000008#; ISS_M_CREATE_DEFCLASS : constant := 16#00000010#; ISS_M_CREATE_AUTHPRIV : constant := 16#00000020#; ISS_M_NOACCESS : constant := 16#00100000#; type ISS_ASSUME_FLAGS_TYPE is record FILLER_1 : UNSIGNED_16; -- Start past common flags ASSUME_NODEREF_OLD : BOOLEAN; -- Do not drop a reference to -- the old (pre-ASSUME) persona ASSUME_NOREF_NEW : BOOLEAN; -- Do not add a reference to -- the new (post-ASSUME) persona FILLER_2 : BOOLEAN; -- Reserved for the future. FILLER_3 : BOOLEAN; -- Reserved for the future. FILLER_4 : UNSIGNED_12; end record; for ISS_ASSUME_FLAGS_TYPE use record FILLER_1 at 0 range 0 .. 15; ASSUME_NODEREF_OLD at 2 range 0 .. 0; ASSUME_NOREF_NEW at 2 range 1 .. 1; FILLER_2 at 2 range 2 .. 2; FILLER_3 at 2 range 3 .. 3; FILLER_4 at 2 range 4 .. 15; end record; for ISS_ASSUME_FLAGS_TYPE'SIZE use 32; ISS_ASSUME_FLAGS_TYPE_INIT : constant ISS_ASSUME_FLAGS_TYPE := (FILLER_1 => 0, ASSUME_NODEREF_OLD => FALSE, ASSUME_NOREF_NEW => FALSE, FILLER_2 => FALSE, FILLER_3 => FALSE, FILLER_4 => 0); type ISS_CREATE_FLAGS_TYPE is record FILLER_1 : BOOLEAN; FILLER_2 : BOOLEAN; FILLER_3 : BOOLEAN; CREATE_DEFPRIV : BOOLEAN; -- Create psb w/ def. privs. CREATE_DEFCLASS : BOOLEAN; -- Create psb w/ def. class. CREATE_AUTHPRIV : BOOLEAN; -- Create psb w/ auth. privs. FILLER_4 : UNSIGNED_14; -- Start past common flags -- and the assume flags. NOACCESS : BOOLEAN; -- When set, do not access -- the SYSUAF or RIGHTSLIST. -- This is similar to -- CREATE_USER_PROFILE. FILLER_5 : BOOLEAN; -- Reserved for the future. FILLER_6 : BOOLEAN; -- Reserved for the future. FILLER_7 : UNSIGNED_9; end record; for ISS_CREATE_FLAGS_TYPE use record FILLER_1 at 0 range 0 .. 0; FILLER_2 at 0 range 1 .. 1; FILLER_3 at 0 range 2 .. 2; CREATE_DEFPRIV at 0 range 3 .. 3; CREATE_DEFCLASS at 0 range 4 .. 4; CREATE_AUTHPRIV at 0 range 5 .. 5; FILLER_4 at 0 range 6 .. 19; NOACCESS at 2 range 4 .. 4; FILLER_5 at 2 range 5 .. 5; FILLER_6 at 2 range 6 .. 6; FILLER_7 at 2 range 7 .. 15; end record; for ISS_CREATE_FLAGS_TYPE'SIZE use 32; ISS_CREATE_FLAGS_TYPE_INIT : constant ISS_CREATE_FLAGS_TYPE := (FILLER_1 => FALSE, FILLER_2 => FALSE, FILLER_3 => FALSE, CREATE_DEFPRIV => FALSE, CREATE_DEFCLASS => FALSE, CREATE_AUTHPRIV => FALSE, FILLER_4 => 0, NOACCESS => FALSE, FILLER_5 => FALSE, FILLER_6 => FALSE, FILLER_7 => 0); type ISSSRVCFLG_TYPE is record IMP_FLAGS : UNSIGNED_7; -- Previously defined IMP flags FILLER_1 : UNSIGNED_25; ----Component(s) below are defined as comments since they ----overlap other fields ---- -- -- ASSUME service control flags -- ----ASSUME_FLAGS : ISS_ASSUME_FLAGS_TYPE; -- -- CREATE service control flags -- ----CREATE_FLAGS : ISS_CREATE_FLAGS_TYPE; end record; for ISSSRVCFLG_TYPE use record IMP_FLAGS at 0 range 0 .. 6; FILLER_1 at 0 range 7 .. 31; ----Component representation spec(s) below are defined as ----comments since they overlap other fields ---- ----ASSUME_FLAGS at 0 range 0 .. 31; ----CREATE_FLAGS at 0 range 0 .. 31; end record; for ISSSRVCFLG_TYPE'SIZE use 32; ISSSRVCFLG_TYPE_INIT : constant ISSSRVCFLG_TYPE := (IMP_FLAGS => 0, FILLER_1 => 0); -- NT TLV version number ISS_K_NT_VERSION_1 : constant := 1; end ISSDEF;