! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! + ! ! 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. ! ! - DECLARE LONG CONSTANT UAI$_RTYPE = 1 ! UAF record type DECLARE LONG CONSTANT UAI$_VERSION = 2 ! UAF format version DECLARE LONG CONSTANT UAI$_USRDATOFF = 3 ! offset of counted string of user data DECLARE LONG CONSTANT UAI$_USERNAME = 4 ! username DECLARE LONG CONSTANT UAI$_USERNAME_TAG = 5 ! tag to differentiate records DECLARE LONG CONSTANT UAI$_UIC = 6 ! user ID code DECLARE LONG CONSTANT UAI$_MEM = 7 ! member subfield DECLARE LONG CONSTANT UAI$_GRP = 8 ! group subfield DECLARE LONG CONSTANT UAI$_SUB_ID = 9 ! user sub-identifier DECLARE LONG CONSTANT UAI$_PARENT_ID = 10 ! identifier of owner of this account DECLARE LONG CONSTANT UAI$_ACCOUNT = 11 ! account name DECLARE LONG CONSTANT UAI$_OWNER = 12 ! owner's name DECLARE LONG CONSTANT UAI$_DEFDEV = 13 ! default device DECLARE LONG CONSTANT UAI$_DEFDIR = 14 ! default directory DECLARE LONG CONSTANT UAI$_LGICMD = 15 ! login command file DECLARE LONG CONSTANT UAI$_DEFCLI = 16 ! default command interpreter DECLARE LONG CONSTANT UAI$_CLITABLES = 17 ! user CLI tables DECLARE LONG CONSTANT UAI$_PWD = 18 ! hashed password DECLARE LONG CONSTANT UAI$_PWD2 = 19 ! second password DECLARE LONG CONSTANT UAI$_LOGFAILS = 20 ! count of login failures DECLARE LONG CONSTANT UAI$_SALT = 21 ! random password salt DECLARE LONG CONSTANT UAI$_ENCRYPT = 22 ! primary password hash algorithm DECLARE LONG CONSTANT UAI$_ENCRYPT2 = 23 ! secondary password hash algorithm DECLARE LONG CONSTANT UAI$_PWD_LENGTH = 24 ! minimum password length DECLARE LONG CONSTANT UAI$_EXPIRATION = 25 ! expiration date for account DECLARE LONG CONSTANT UAI$_PWD_LIFETIME = 26 ! password lifetime DECLARE LONG CONSTANT UAI$_PWD_DATE = 27 ! date of password change DECLARE LONG CONSTANT UAI$_PWD2_DATE = 28 ! date of 2nd password change DECLARE LONG CONSTANT UAI$_LASTLOGIN_I = 29 ! date of last interactive login DECLARE LONG CONSTANT UAI$_LASTLOGIN_N = 30 ! date of last non-interactive login DECLARE LONG CONSTANT UAI$_PRIV = 31 ! process privilege vector DECLARE LONG CONSTANT UAI$_DEF_PRIV = 32 ! default process privileges DECLARE LONG CONSTANT UAI$_MIN_CLASS = 33 ! minimum security class DECLARE LONG CONSTANT UAI$_MAX_CLASS = 34 ! maximum security class DECLARE LONG CONSTANT UAI$_FLAGS = 35 ! user flags longword DECLARE LONG CONSTANT UAI$_NETWORK_ACCESS_P = 36 ! hourly network access, primary DECLARE LONG CONSTANT UAI$_NETWORK_ACCESS_S = 37 ! hourly network access, secondary DECLARE LONG CONSTANT UAI$_BATCH_ACCESS_P = 38 ! hourly batch access, primary DECLARE LONG CONSTANT UAI$_BATCH_ACCESS_S = 39 ! hourly batch access, secondary DECLARE LONG CONSTANT UAI$_LOCAL_ACCESS_P = 40 ! hourly local access, primary DECLARE LONG CONSTANT UAI$_LOCAL_ACCESS_S = 41 ! hourly local access, secondary DECLARE LONG CONSTANT UAI$_DIALUP_ACCESS_P = 42 ! hourly dialup access, primary DECLARE LONG CONSTANT UAI$_DIALUP_ACCESS_S = 43 ! hourly dialup access, secondary DECLARE LONG CONSTANT UAI$_REMOTE_ACCESS_P = 44 ! hourly remote access, primary DECLARE LONG CONSTANT UAI$_REMOTE_ACCESS_S = 45 ! hourly remote access, secondary DECLARE LONG CONSTANT UAI$_PRIMEDAYS = 46 ! bits representing primary days DECLARE LONG CONSTANT UAI$_PRI = 47 ! base process priority DECLARE LONG CONSTANT UAI$_QUEPRI = 48 ! maximum job queuing priority DECLARE LONG CONSTANT UAI$_MAXJOBS = 49 ! maximum jobs for UIC allowed DECLARE LONG CONSTANT UAI$_MAXACCTJOBS = 50 ! maximum jobs for account allowed DECLARE LONG CONSTANT UAI$_MAXDETACH = 51 ! maximum detached processes for UIC DECLARE LONG CONSTANT UAI$_PRCCNT = 52 ! subprocess creation limit DECLARE LONG CONSTANT UAI$_BIOLM = 53 ! buffered I/O limit DECLARE LONG CONSTANT UAI$_DIOLM = 54 ! direct I/O limit DECLARE LONG CONSTANT UAI$_TQCNT = 55 ! timer queue entry limit DECLARE LONG CONSTANT UAI$_ASTLM = 56 ! AST queue limit DECLARE LONG CONSTANT UAI$_ENQLM = 57 ! enqueue limit DECLARE LONG CONSTANT UAI$_FILLM = 58 ! open file limit DECLARE LONG CONSTANT UAI$_SHRFILLM = 59 ! shared file limit DECLARE LONG CONSTANT UAI$_WSQUOTA = 60 ! working set size quota DECLARE LONG CONSTANT UAI$_DFWSCNT = 61 ! default working set size DECLARE LONG CONSTANT UAI$_WSEXTENT = 62 ! working set size limit DECLARE LONG CONSTANT UAI$_PGFLQUOTA = 63 ! page file quota DECLARE LONG CONSTANT UAI$_CPUTIM = 64 ! CPU time quota DECLARE LONG CONSTANT UAI$_BYTLM = 65 ! buffered I/O byte count limit DECLARE LONG CONSTANT UAI$_PBYTLM = 66 ! paged buffer I/O byte count limit DECLARE LONG CONSTANT UAI$_JTQUOTA = 67 ! job-wide logical name table creation quota DECLARE LONG CONSTANT UAI$_PROXY_LIM = 68 ! number of proxies user can grant DECLARE LONG CONSTANT UAI$_PROXIES = 69 ! number of proxies granted DECLARE LONG CONSTANT UAI$_ACCOUNT_LIM = 70 ! number of sub-accounts allowed DECLARE LONG CONSTANT UAI$_ACCOUNTS = 71 ! number of sub-accounts in use DECLARE LONG CONSTANT UAI$_USER_DATA = 72 ! user data area DECLARE LONG CONSTANT UAI$_PASSWORD = 73 ! plaintext primary password DECLARE LONG CONSTANT UAI$_PASSWORD2 = 74 ! plaintext secondary password DECLARE LONG CONSTANT UAI$_DEF_CLASS = 75 ! default security classification DECLARE LONG CONSTANT UAI$_AUDIT_FLAGS = 76 ! passed from $SETUAI to UAF$SECURITY_AUDIT ! ADD ITEM-CODES BEFORE THIS COMMENT DECLARE LONG CONSTANT UAI$_MAX_ITEM_CODE = 77 ! maximum legal item code + 1 ! Add UAI$_DEFCHARGE_CODE as an alias for UAI$_ACCOUNT. DECLARE LONG CONSTANT UAI$_DEFCHARGE_CODE = 11 ! default charge code (=account) ! Define the various password hash algorithms. DECLARE LONG CONSTANT UAI$C_AD_II = 0 ! AUTODIN-II 32 bit crc code DECLARE LONG CONSTANT UAI$C_PURDY = 1 ! Purdy polynomial over salted input DECLARE LONG CONSTANT UAI$C_PURDY_V = 2 ! Purdy polynomial + variable length username DECLARE LONG CONSTANT UAI$C_PURDY_S = 3 ! PURDY_V folded into password length DECLARE LONG CONSTANT UAI$C_PREFERED_ALGORITHM = 127 DECLARE LONG CONSTANT UAI$C_PREFERRED_ALGORITHM = 127 ! preferred hash algorithm - use current DECLARE LONG CONSTANT UAI$C_CUST_ALGORITHM = 128 ! customer algorithm division DECLARE LONG CONSTANT UAI$C_MAX_PWD_LENGTH = 32 ! maximum plaintext password ! Define the flags for the user flags longword. DECLARE LONG CONSTANT UAI$M_DISCTLY = x'00000001' DECLARE LONG CONSTANT UAI$M_DEFCLI = x'00000002' DECLARE LONG CONSTANT UAI$M_LOCKPWD = x'00000004' DECLARE LONG CONSTANT UAI$M_RESTRICTED = x'00000008' DECLARE LONG CONSTANT UAI$M_DISACNT = x'00000010' DECLARE LONG CONSTANT UAI$M_DISWELCOM = x'00000020' DECLARE LONG CONSTANT UAI$M_DISMAIL = x'00000040' DECLARE LONG CONSTANT UAI$M_NOMAIL = x'00000080' DECLARE LONG CONSTANT UAI$M_GENPWD = x'00000100' DECLARE LONG CONSTANT UAI$M_PWD_EXPIRED = x'00000200' DECLARE LONG CONSTANT UAI$M_PWD2_EXPIRED = x'00000400' DECLARE LONG CONSTANT UAI$M_AUDIT = x'00000800' DECLARE LONG CONSTANT UAI$M_DISREPORT = x'00001000' DECLARE LONG CONSTANT UAI$M_DISRECONNECT = x'00002000' DECLARE LONG CONSTANT UAI$M_AUTOLOGIN = x'00004000' DECLARE LONG CONSTANT UAI$M_DISFORCE_PWD_CHANGE = x'00008000' DECLARE LONG CONSTANT UAI$M_CAPTIVE = x'00010000' DECLARE LONG CONSTANT UAI$M_DISIMAGE = x'00020000' DECLARE LONG CONSTANT UAI$M_DISPWDDIC = x'00040000' DECLARE LONG CONSTANT UAI$M_DISPWDHIS = x'00080000' DECLARE LONG CONSTANT UAI$M_DEFCLSVAL = x'00100000' DECLARE LONG CONSTANT UAI$M_EXTAUTH = x'00200000' DECLARE LONG CONSTANT UAI$M_MIGRATEPWD = x'00400000' DECLARE LONG CONSTANT UAI$M_VMSAUTH = x'00800000' DECLARE LONG CONSTANT UAI$M_DISPWDSYNCH = x'01000000' DECLARE LONG CONSTANT UAI$M_PWDMIX = x'02000000' DECLARE LONG CONSTANT UAI$S_FLAGS = 4 record FLAGS ! user flags longword ! no user control-y ! only allow user default CLI ! disable SET PASSWORD command ! restricted account (pre-V5.2 CAPTIVE) ! no interactive login ! skip welcome message ! skip new mail message ! disable mail delivery ! passwords must be generated ! password has expired ! 2nd password has expired ! audit all actions ! skip last login messages ! inhibit reconnections ! auto-login only ! disable forced password change ! captive account (no overrides) ! disable arbitrary image activation ! disable password dictionary filter ! disable password history search ! default classification is valid ! external authentication enabled ! migrate UAF pwd to external auth ! VMS alternative is allowed ! no ACME password sharing ! enable mixed-case passwords LONG DISCTLY_bits ! COMMENT ADDED BY SDL - DISCTLY_bits contains bits DISCTLY through FILL_59_ end record FLAGS ! Define the flags representing primary days. DECLARE LONG CONSTANT UAI$S_PRIMEDAYS = 1 record PRIMEDAYS ! bits representing primary days ! bit clear means this is a primary day ! bit set means this is an off day BYTE MONDAY_bits ! COMMENT ADDED BY SDL - MONDAY_bits contains bits MONDAY through FILL_60_ end record PRIMEDAYS