--******************************************************************************************************************** -- Created: 30-Mar-2010 17:02:07 by OpenVMS SDL EV3-3 -- Source: 19-APR-2001 07:18:11 $1$DGA7274:[STARLET_ADA.LIS]UAIDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package UAIDEF is -- module $UAIDEF --+ -- -- Get User Authorization Information Data Identifier Definitions -- -- **** NOTE **** -- -- New items must always be added to the END of each item list -- so that users will not have to relink. -- --- UAI_RTYPE : constant := 1; -- UAF record type UAI_VERSION : constant := 2; -- UAF format version UAI_USRDATOFF : constant := 3; -- offset of counted string of user data UAI_USERNAME : constant := 4; -- username UAI_USERNAME_TAG : constant := 5; -- tag to differentiate records UAI_UIC : constant := 6; -- user ID code UAI_MEM : constant := 7; -- member subfield UAI_GRP : constant := 8; -- group subfield UAI_SUB_ID : constant := 9; -- user sub-identifier UAI_PARENT_ID : constant := 10; -- identifier of owner of this account UAI_ACCOUNT : constant := 11; -- account name UAI_OWNER : constant := 12; -- owner's name UAI_DEFDEV : constant := 13; -- default device UAI_DEFDIR : constant := 14; -- default directory UAI_LGICMD : constant := 15; -- login command file UAI_DEFCLI : constant := 16; -- default command interpreter UAI_CLITABLES : constant := 17; -- user CLI tables UAI_PWD : constant := 18; -- hashed password UAI_PWD2 : constant := 19; -- second password UAI_LOGFAILS : constant := 20; -- count of login failures UAI_SALT : constant := 21; -- random password salt UAI_ENCRYPT : constant := 22; -- primary password hash algorithm UAI_ENCRYPT2 : constant := 23; -- secondary password hash algorithm UAI_PWD_LENGTH : constant := 24; -- minimum password length UAI_EXPIRATION : constant := 25; -- expiration date for account UAI_PWD_LIFETIME : constant := 26; -- password lifetime UAI_PWD_DATE : constant := 27; -- date of password change UAI_PWD2_DATE : constant := 28; -- date of 2nd password change UAI_LASTLOGIN_I : constant := 29; -- date of last interactive login UAI_LASTLOGIN_N : constant := 30; -- date of last non-interactive login UAI_PRIV : constant := 31; -- process privilege vector UAI_DEF_PRIV : constant := 32; -- default process privileges UAI_MIN_CLASS : constant := 33; -- minimum security class UAI_MAX_CLASS : constant := 34; -- maximum security class UAI_FLAGS : constant := 35; -- user flags longword UAI_NETWORK_ACCESS_P : constant := 36; -- hourly network access, primary UAI_NETWORK_ACCESS_S : constant := 37; -- hourly network access, secondary UAI_BATCH_ACCESS_P : constant := 38; -- hourly batch access, primary UAI_BATCH_ACCESS_S : constant := 39; -- hourly batch access, secondary UAI_LOCAL_ACCESS_P : constant := 40; -- hourly local access, primary UAI_LOCAL_ACCESS_S : constant := 41; -- hourly local access, secondary UAI_DIALUP_ACCESS_P : constant := 42; -- hourly dialup access, primary UAI_DIALUP_ACCESS_S : constant := 43; -- hourly dialup access, secondary UAI_REMOTE_ACCESS_P : constant := 44; -- hourly remote access, primary UAI_REMOTE_ACCESS_S : constant := 45; -- hourly remote access, secondary UAI_PRIMEDAYS : constant := 46; -- bits representing primary days UAI_PRI : constant := 47; -- base process priority UAI_QUEPRI : constant := 48; -- maximum job queuing priority UAI_MAXJOBS : constant := 49; -- maximum jobs for UIC allowed UAI_MAXACCTJOBS : constant := 50; -- maximum jobs for account allowed UAI_MAXDETACH : constant := 51; -- maximum detached processes for UIC UAI_PRCCNT : constant := 52; -- subprocess creation limit UAI_BIOLM : constant := 53; -- buffered I/O limit UAI_DIOLM : constant := 54; -- direct I/O limit UAI_TQCNT : constant := 55; -- timer queue entry limit UAI_ASTLM : constant := 56; -- AST queue limit UAI_ENQLM : constant := 57; -- enqueue limit UAI_FILLM : constant := 58; -- open file limit UAI_SHRFILLM : constant := 59; -- shared file limit UAI_WSQUOTA : constant := 60; -- working set size quota UAI_DFWSCNT : constant := 61; -- default working set size UAI_WSEXTENT : constant := 62; -- working set size limit UAI_PGFLQUOTA : constant := 63; -- page file quota UAI_CPUTIM : constant := 64; -- CPU time quota UAI_BYTLM : constant := 65; -- buffered I/O byte count limit UAI_PBYTLM : constant := 66; -- paged buffer I/O byte count limit UAI_JTQUOTA : constant := 67; -- job-wide logical name table creation quota UAI_PROXY_LIM : constant := 68; -- number of proxies user can grant UAI_PROXIES : constant := 69; -- number of proxies granted UAI_ACCOUNT_LIM : constant := 70; -- number of sub-accounts allowed UAI_ACCOUNTS : constant := 71; -- number of sub-accounts in use UAI_USER_DATA : constant := 72; -- user data area UAI_PASSWORD : constant := 73; -- plaintext primary password UAI_PASSWORD2 : constant := 74; -- plaintext secondary password UAI_DEF_CLASS : constant := 75; -- default security classification UAI_AUDIT_FLAGS : constant := 76; -- passed from $SETUAI to UAF$SECURITY_AUDIT -- ADD ITEM-CODES BEFORE THIS COMMENT UAI_MAX_ITEM_CODE : constant := 77; -- maximum legal item code + 1 -- Add UAI$_DEFCHARGE_CODE as an alias for UAI$_ACCOUNT. UAI_DEFCHARGE_CODE : constant := 11; -- default charge code (=account) -- Define the various password hash algorithms. UAI_C_AD_II : constant := 0; -- AUTODIN-II 32 bit crc code UAI_C_PURDY : constant := 1; -- Purdy polynomial over salted input UAI_C_PURDY_V : constant := 2; -- Purdy polynomial + variable length username UAI_C_PURDY_S : constant := 3; -- PURDY_V folded into password length UAI_C_PREFERED_ALGORITHM : constant := 127; UAI_C_PREFERRED_ALGORITHM : constant := 127; -- preferred hash algorithm - use current UAI_C_CUST_ALGORITHM : constant := 128; -- customer algorithm division UAI_C_MAX_PWD_LENGTH : constant := 32; -- maximum plaintext password -- Define the flags for the user flags longword. UAI_M_DISCTLY : constant := 16#00000001#; UAI_M_DEFCLI : constant := 16#00000002#; UAI_M_LOCKPWD : constant := 16#00000004#; UAI_M_RESTRICTED : constant := 16#00000008#; UAI_M_DISACNT : constant := 16#00000010#; UAI_M_DISWELCOM : constant := 16#00000020#; UAI_M_DISMAIL : constant := 16#00000040#; UAI_M_NOMAIL : constant := 16#00000080#; UAI_M_GENPWD : constant := 16#00000100#; UAI_M_PWD_EXPIRED : constant := 16#00000200#; UAI_M_PWD2_EXPIRED : constant := 16#00000400#; UAI_M_AUDIT : constant := 16#00000800#; UAI_M_DISREPORT : constant := 16#00001000#; UAI_M_DISRECONNECT : constant := 16#00002000#; UAI_M_AUTOLOGIN : constant := 16#00004000#; UAI_M_DISFORCE_PWD_CHANGE : constant := 16#00008000#; UAI_M_CAPTIVE : constant := 16#00010000#; UAI_M_DISIMAGE : constant := 16#00020000#; UAI_M_DISPWDDIC : constant := 16#00040000#; UAI_M_DISPWDHIS : constant := 16#00080000#; UAI_M_DEFCLSVAL : constant := 16#00100000#; UAI_M_EXTAUTH : constant := 16#00200000#; UAI_M_MIGRATEPWD : constant := 16#00400000#; UAI_M_VMSAUTH : constant := 16#00800000#; UAI_M_DISPWDSYNCH : constant := 16#01000000#; UAI_M_PWDMIX : constant := 16#02000000#; type UAI_FLAGS_TYPE is -- user flags longword record DISCTLY : BOOLEAN; -- no user control-y DEFCLI : BOOLEAN; -- only allow user default CLI LOCKPWD : BOOLEAN; -- disable SET PASSWORD command RESTRICTED : BOOLEAN; -- restricted account (pre-V5.2 CAPTIVE) DISACNT : BOOLEAN; -- no interactive login DISWELCOM : BOOLEAN; -- skip welcome message DISMAIL : BOOLEAN; -- skip new mail message NOMAIL : BOOLEAN; -- disable mail delivery GENPWD : BOOLEAN; -- passwords must be generated PWD_EXPIRED : BOOLEAN; -- password has expired PWD2_EXPIRED : BOOLEAN; -- 2nd password has expired AUDIT : BOOLEAN; -- audit all actions DISREPORT : BOOLEAN; -- skip last login messages DISRECONNECT : BOOLEAN; -- inhibit reconnections AUTOLOGIN : BOOLEAN; -- auto-login only DISFORCE_PWD_CHANGE : BOOLEAN; -- disable forced password change CAPTIVE : BOOLEAN; -- captive account (no overrides) DISIMAGE : BOOLEAN; -- disable arbitrary image activation DISPWDDIC : BOOLEAN; -- disable password dictionary filter DISPWDHIS : BOOLEAN; -- disable password history search DEFCLSVAL : BOOLEAN; -- default classification is valid EXTAUTH : BOOLEAN; -- external authentication enabled MIGRATEPWD : BOOLEAN; -- migrate UAF pwd to external auth VMSAUTH : BOOLEAN; -- VMS alternative is allowed DISPWDSYNCH : BOOLEAN; -- no ACME password sharing PWDMIX : BOOLEAN; -- enable mixed-case passwords FILLER_1 : UNSIGNED_6; end record; for UAI_FLAGS_TYPE use record DISCTLY at 0 range 0 .. 0; DEFCLI at 0 range 1 .. 1; LOCKPWD at 0 range 2 .. 2; RESTRICTED at 0 range 3 .. 3; DISACNT at 0 range 4 .. 4; DISWELCOM at 0 range 5 .. 5; DISMAIL at 0 range 6 .. 6; NOMAIL at 0 range 7 .. 7; GENPWD at 1 range 0 .. 0; PWD_EXPIRED at 1 range 1 .. 1; PWD2_EXPIRED at 1 range 2 .. 2; AUDIT at 1 range 3 .. 3; DISREPORT at 1 range 4 .. 4; DISRECONNECT at 1 range 5 .. 5; AUTOLOGIN at 1 range 6 .. 6; DISFORCE_PWD_CHANGE at 1 range 7 .. 7; CAPTIVE at 2 range 0 .. 0; DISIMAGE at 2 range 1 .. 1; DISPWDDIC at 2 range 2 .. 2; DISPWDHIS at 2 range 3 .. 3; DEFCLSVAL at 2 range 4 .. 4; EXTAUTH at 2 range 5 .. 5; MIGRATEPWD at 2 range 6 .. 6; VMSAUTH at 2 range 7 .. 7; DISPWDSYNCH at 3 range 0 .. 0; PWDMIX at 3 range 1 .. 1; FILLER_1 at 3 range 2 .. 7; end record; for UAI_FLAGS_TYPE'SIZE use 32; UAI_FLAGS_TYPE_INIT : constant UAI_FLAGS_TYPE := (DISCTLY => FALSE, DEFCLI => FALSE, LOCKPWD => FALSE, RESTRICTED => FALSE, DISACNT => FALSE, DISWELCOM => FALSE, DISMAIL => FALSE, NOMAIL => FALSE, GENPWD => FALSE, PWD_EXPIRED => FALSE, PWD2_EXPIRED => FALSE, AUDIT => FALSE, DISREPORT => FALSE, DISRECONNECT => FALSE, AUTOLOGIN => FALSE, DISFORCE_PWD_CHANGE => FALSE, CAPTIVE => FALSE, DISIMAGE => FALSE, DISPWDDIC => FALSE, DISPWDHIS => FALSE, DEFCLSVAL => FALSE, EXTAUTH => FALSE, MIGRATEPWD => FALSE, VMSAUTH => FALSE, DISPWDSYNCH => FALSE, PWDMIX => FALSE, FILLER_1 => 0); -- Define the flags representing primary days. type UAI_PRIMEDAYS_TYPE is -- bits representing primary days record MONDAY : BOOLEAN; -- bit clear means this is a primary day TUESDAY : BOOLEAN; -- bit set means this is an off day WEDNESDAY : BOOLEAN; THURSDAY : BOOLEAN; FRIDAY : BOOLEAN; SATURDAY : BOOLEAN; SUNDAY : BOOLEAN; FILLER_1 : BOOLEAN; end record; for UAI_PRIMEDAYS_TYPE use record MONDAY at 0 range 0 .. 0; TUESDAY at 0 range 1 .. 1; WEDNESDAY at 0 range 2 .. 2; THURSDAY at 0 range 3 .. 3; FRIDAY at 0 range 4 .. 4; SATURDAY at 0 range 5 .. 5; SUNDAY at 0 range 6 .. 6; FILLER_1 at 0 range 7 .. 7; end record; for UAI_PRIMEDAYS_TYPE'SIZE use 8; UAI_PRIMEDAYS_TYPE_INIT : constant UAI_PRIMEDAYS_TYPE := (MONDAY => FALSE, TUESDAY => FALSE, WEDNESDAY => FALSE, THURSDAY => FALSE, FRIDAY => FALSE, SATURDAY => FALSE, SUNDAY => FALSE, FILLER_1 => FALSE); end UAIDEF;