! *** 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 ! + ! ! Miscellaneous constants ! ! - DECLARE LONG CONSTANT acme$k_maxchar_ITEM = 16383 ! Maximum length (in characters) ! of an item DECLARE LONG CONSTANT acme$k_maxchar_doi_name = 32 ! Maximum length (in characters) ! of a DOI name string DECLARE LONG CONSTANT acme$k_maxchar_principal_name = 512 ! Maximum length (in characters) ! of a principal name string DECLARE LONG CONSTANT acme$k_max_num_agents = 32 ! Maximum number of ACME agents ! that can be loaded DECLARE LONG CONSTANT acme$k_max_cred_type = 32 ! Maximum number of credential ! types supported ! + ! ! ACME agent id ! ! An ACME agent id is a 32-bit unsigned value, encoded as follows: ! ! Remote host address type is a 16-bit unsigned value, encoded as follows: ! ! 3 2 2 1 1 ! 1 4 3 6 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^.............................^ ^ ^...........................^ ! | | | | | ! | | | +---------------------------+-- Bit [14:0] = ACME number ! | | | ! | | +-------------------------------- Bit [15] = 0 ==> Ancillary agent ! | | 1 ==> Registered DOI ! | | ! +-----------------------------+---------------------------------- Bit [31:16] = Server number ! ! - DECLARE LONG CONSTANT acmeid$m_acme_num = x'00007FFF' DECLARE LONG CONSTANT acmeid$m_doi_designator = x'00008000' DECLARE LONG CONSTANT acmeid$m_server_num = x'FFFF0000' DECLARE LONG CONSTANT acmeid$s_acmeid = 4 record acmeid group acmeid$r_fill_20_ variant case LONG acmeid$l_agent_id ! Composite id case group acmeid$r_fill_21_ ! ACME agent number ! Registered DOI ! Server number LONG acme_num_bits ! COMMENT ADDED BY SDL - acme_num_bits contains bits acme_num through server_num end group acmeid$r_fill_21_ end variant end group acmeid$r_fill_20_ end record acmeid DECLARE LONG CONSTANT acmeid$k_length = 4 ! + ! ! $ACM Function Codes and Modifiers ! ! Function code plus modifiers form a 32-bit unsigned value, encoded ! as follows: ! ! 3 2 2 1 1 ! 1 4 3 6 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^.............................^ ^.................^ ^.........^ ! | | | | | | ! | | | | +---------+-- Bit [5:0] = function code ! | | | | ! | | +-----------------+-------------- Bit [15:06] = cross function modifiers ! | | ! +-----------------------------+---------------------------------- Bit [31:16] = function specific modifiers ! - ! ! Function codes ! ! Function code values DECLARE LONG CONSTANT acme$_authenticate_principal = 1 ! AUTHENTICATE_PRINCIPAL DECLARE LONG CONSTANT acme$_change_password = 2 ! CHANGE_PASSWORD DECLARE LONG CONSTANT acme$_release_credentials = 3 ! RELEASE_CREDENTIALS DECLARE LONG CONSTANT acme$_query = 4 ! QUERY DECLARE LONG CONSTANT acme$_event = 5 ! EVENT ! Function code value DECLARE LONG CONSTANT acme$_free_context = 63 ! FREE_CONTEXT ! Function code values DECLARE LONG CONSTANT acme$_fc_authenticate_principal = 1 ! AUTHENTICATE_PRINCIPAL DECLARE LONG CONSTANT acme$_fc_change_password = 2 ! CHANGE_PASSWORD DECLARE LONG CONSTANT acme$_fc_release_credentials = 3 ! RELEASE_CREDENTIALS DECLARE LONG CONSTANT acme$_fc_query = 4 ! QUERY DECLARE LONG CONSTANT acme$_fc_event = 5 ! EVENT ! Function code value DECLARE LONG CONSTANT acme$_fc_free_context = 63 ! FREE_CONTEXT DECLARE LONG CONSTANT acmefc$m_function = x'0000003F' DECLARE LONG CONSTANT acmefc$m_modifiers = x'FFFFFFC0' DECLARE LONG CONSTANT acme$m_noaudit = x'00000040' DECLARE LONG CONSTANT acme$m_timeout = x'00000080' DECLARE LONG CONSTANT acme$m_ucs2_4 = x'00008000' DECLARE LONG CONSTANT acme$m_acquire_credentials = x'00010000' DECLARE LONG CONSTANT acme$m_merge_persona = x'00020000' DECLARE LONG CONSTANT acme$m_copy_persona = x'00040000' DECLARE LONG CONSTANT acme$m_override_mapping = x'00080000' DECLARE LONG CONSTANT acme$m_native_authentication = x'00100000' DECLARE LONG CONSTANT acme$m_noauthorization = x'00200000' DECLARE LONG CONSTANT acme$m_foreign_policy_hints = x'00400000' DECLARE LONG CONSTANT acme$m_default_principal = x'00800000' DECLARE LONG CONSTANT acmefc$s_acmefc = 4 record acmefc group acmefc$r_overlay variant ! ! Overall function code/modifiers structure ! case group acmefc$r_fill_22_ variant case LONG acmefc$l_fcode_struct ! Composite field case group acmefc$r_fill_23_ ! Function code ! Function modifiers LONG function_bits ! COMMENT ADDED BY SDL - function_bits contains bits function through modifiers end group acmefc$r_fill_23_ end variant end group acmefc$r_fill_22_ ! ! Modifiers applicable to all function codes ! case group acmefc$r_fill_24_ variant case LONG acme$l_gen_mod case group acme$r_fill_25_ ! Suppress auditing ! Timed operation ! Strings are in 4-byte UCS-2 format LONG gen_mod_fill_1_bits ! COMMENT ADDED BY SDL - gen_mod_fill_1_bits contains bits gen_mod_fill_1 & ! through gen_mod_fill_3 end group acme$r_fill_25_ end variant end group acmefc$r_fill_24_ ! ! Modifiers applicable to AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD ! case group acmefc$r_fill_26_ variant case LONG acme$l_auth_mod case group acme$r_fill_27_ ! Acquire credentials ! Merge with base credentials ! Copy base credentials ! Override VMS username mapping checks ! Allow native DOI authentication ! Skip authorization checks ! Honor NOAUDIT and NOAUTHORIZATION ! for non-native authentications ! Use principal name and DOI ! designator defined by the ! primary persona extension LONG auth_mod_fill_1_bits ! COMMENT ADDED BY SDL - auth_mod_fill_1_bits contains bits & ! auth_mod_fill_1 through auth_mod_fill_2 end group acme$r_fill_27_ end variant end group acmefc$r_fill_26_ end variant end group acmefc$r_overlay end record acmefc DECLARE LONG CONSTANT acmefc$k_length = 4 ! + ! ! $ACM Item Codes ! ! Item codes are 16-bit unsigned values, encoded as follows: ! ! 1 ! 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^ ^ ^ ^ ^ ! | | | | | ! | | | +-----------------------+-- Bit [12:0] = item ! | | | ! | | +---------------------------- Bit [13] = 0 ==> not subject to VTF-7 <-> UCS conversion ! | | 1 ==> subject to VTF-7 <-> UCS conversion ! | | ! | +------------------------------ Bit [14] = 0 ==> input item ! | 1 ==> output item ! | ! +-------------------------------- Bit [15] = 0 ==> common item ! 1 ==> ACME specific item ! ! - ! Specialty ! Cross function ! AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD ! RELEASE_CREDENTIALS ! QUERY ! EVENT DECLARE LONG CONSTANT acmeic$M_ITEM = x'00001FFF' DECLARE LONG CONSTANT acmeic$m_ucs = x'00002000' DECLARE LONG CONSTANT acmeic$m_output = x'00004000' DECLARE LONG CONSTANT acmeic$m_acme_specific = x'00008000' DECLARE LONG CONSTANT acmeic$s_acmeic = 2 record acmeic group acmeic$r_fill_28_ variant case WORD acmeic$w_item_code ! Composite field case group acmeic$r_fill_29_ ! Ranged value ! 0 ==> not subject to VTF-7 <-> UCS conversion ! 1 ==> subject to VTF-7 <-> UCS conversion ! 0 ==> input item ! 1 ==> output item ! 0 ==> common item ! 1 ==> ACME specific item WORD ITEM_bits ! COMMENT ADDED BY SDL - ITEM_bits contains bits ITEM through acme_specific end group acmeic$r_fill_29_ end variant end group acmeic$r_fill_28_ end record acmeic DECLARE LONG CONSTANT acmeic$k_length = 2 ! ! Input item codes not subject to VTF-7 <-> UCS conversion ! DECLARE LONG CONSTANT acme$_min_spec_in = 1 ! Specialty items DECLARE LONG CONSTANT acme$_null = 1 ! Place holder item (skip entry in item list) DECLARE LONG CONSTANT acme$_chain = 2 ! Chain to another item list segment DECLARE LONG CONSTANT acme$_max_spec_in = 2 DECLARE LONG CONSTANT acme$_min_gen_in = 256 ! Generic items DECLARE LONG CONSTANT acme$_access_mode = 256 ! Access mode for persona operations DECLARE LONG CONSTANT acme$_dialogue_support = 257 ! Dialogue capabilities DECLARE LONG CONSTANT acme$_context_acme_id = 258 ! ID of ACME for specific context DECLARE LONG CONSTANT acme$_persona_handle_in = 259 ! Target persona DECLARE LONG CONSTANT acme$_target_doi_id = 260 ! ID of DOI for a directed call DECLARE LONG CONSTANT acme$_timeout_interval = 261 ! Timeout interval in seconds DECLARE LONG CONSTANT acme$_max_gen_in = 261 DECLARE LONG CONSTANT acme$_min_auth_pwd_in = 512 ! AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD items DECLARE LONG CONSTANT acme$_auth_mechanism = 512 ! Authentication mechanism DECLARE LONG CONSTANT acme$_challenge_data = 513 ! Challenge data DECLARE LONG CONSTANT acme$_logon_type = 514 ! Logon type DECLARE LONG CONSTANT acme$_new_password_flags = 515 ! New password request/control flags DECLARE LONG CONSTANT acme$_remote_host_address = 516 ! Remote host address DECLARE LONG CONSTANT acme$_remote_host_address_type = 517 ! Remote host address type/format DECLARE LONG CONSTANT acme$_response_data = 518 ! Response data DECLARE LONG CONSTANT acme$_max_auth_pwd_in = 518 DECLARE LONG CONSTANT acme$_min_rel_cred_in = 768 ! RELEASE_CREDENTIALS items DECLARE LONG CONSTANT acme$_credentials_type = 768 ! Index associated with persona extension DECLARE LONG CONSTANT acme$_max_rel_cred_in = 768 DECLARE LONG CONSTANT acme$_min_query_in = 1024 ! QUERY items DECLARE LONG CONSTANT acme$_query_key_type = 1024 ! Key type DECLARE LONG CONSTANT acme$_query_key_value = 1025 ! Key value DECLARE LONG CONSTANT acme$_query_type = 1026 ! Type of data to be returned via QUERY_DATA DECLARE LONG CONSTANT acme$_max_query_in = 1026 DECLARE LONG CONSTANT acme$_min_event_in = 1280 ! EVENT items DECLARE LONG CONSTANT acme$_event_data_in = 1280 ! Event function input data DECLARE LONG CONSTANT acme$_event_type = 1281 ! Event type DECLARE LONG CONSTANT acme$_max_event_in = 1281 ! ! Input item codes subject to VTF-7 <-> UCS conversion ! DECLARE LONG CONSTANT acme$_min_gen_in_ucs = 8448 ! Generic items DECLARE LONG CONSTANT acme$_context_acme_name = 8448 ! Name of ACME for specific context DECLARE LONG CONSTANT acme$_locale = 8449 ! Language specifier (location) DECLARE LONG CONSTANT acme$_target_doi_name = 8450 ! Name of DOI for a directed call DECLARE LONG CONSTANT acme$_server_name_in = 8451 ! ACME relative server name DECLARE LONG CONSTANT acme$_service_name = 8452 ! Caller's service name DECLARE LONG CONSTANT acme$_max_gen_in_ucs = 8452 DECLARE LONG CONSTANT acme$_min_auth_pwd_in_ucs = 8704 ! AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD items DECLARE LONG CONSTANT acme$_access_port = 8704 ! Access port name DECLARE LONG CONSTANT acme$_new_password_1 = 8705 ! New primary password DECLARE LONG CONSTANT acme$_new_password_2 = 8706 ! New secondary password DECLARE LONG CONSTANT acme$_new_password_system = 8707 ! New system password DECLARE LONG CONSTANT acme$_password_1 = 8708 ! Primary password DECLARE LONG CONSTANT acme$_password_2 = 8709 ! Secondary password DECLARE LONG CONSTANT acme$_password_system = 8710 ! System password DECLARE LONG CONSTANT acme$_principal_name_in = 8711 ! Principal name DECLARE LONG CONSTANT acme$_remote_host_fullname = 8712 ! Remote host expanded name DECLARE LONG CONSTANT acme$_remote_host_name = 8713 ! Remote host name DECLARE LONG CONSTANT acme$_remote_username = 8714 ! Remote username DECLARE LONG CONSTANT acme$_max_auth_pwd_in_ucs = 8714 DECLARE LONG CONSTANT acme$_min_rel_cred_in_ucs = 8960 ! RELEASE_CREDENTIALS items DECLARE LONG CONSTANT acme$_credentials_name = 8960 ! Name associated with persona extension DECLARE LONG CONSTANT acme$_max_rel_cred_in_ucs = 8960 ! ! Output item codes not subject to VTF-7 <-> UCS conversion ! DECLARE LONG CONSTANT acme$_min_spec_out = 16385 ! Specialty items DECLARE LONG CONSTANT acme$_phase_transition = 16385 DECLARE LONG CONSTANT acme$_max_spec_out = 16385 DECLARE LONG CONSTANT acme$_min_gen_out = 16640 ! Generic items DECLARE LONG CONSTANT acme$_persona_handle_out = 16640 ! Persona acted upon DECLARE LONG CONSTANT acme$_max_gen_out = 16640 DECLARE LONG CONSTANT acme$_min_auth_pwd_out = 16896 ! AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD items DECLARE LONG CONSTANT acme$_authenticating_doi_id = 16896 ! ID of DOI accepting principal DECLARE LONG CONSTANT acme$_logon_information = 16897 ! Logon information DECLARE LONG CONSTANT acme$_mapping_acme_id = 16898 ! ID of ACME mapping principal DECLARE LONG CONSTANT acme$_max_auth_pwd_out = 16898 DECLARE LONG CONSTANT acme$_min_query_out = 17408 ! QUERY items DECLARE LONG CONSTANT acme$_query_data = 17408 ! Query function output data DECLARE LONG CONSTANT acme$_max_query_out = 17408 DECLARE LONG CONSTANT acme$_min_event_out = 17664 ! EVENT items DECLARE LONG CONSTANT acme$_event_data_out = 17664 ! Event function output data DECLARE LONG CONSTANT acme$_max_event_out = 17664 ! ! Output item codes subject to VTF-7 <-> UCS conversion ! DECLARE LONG CONSTANT acme$_min_gen_out_ucs = 24832 ! Generic items DECLARE LONG CONSTANT acme$_server_name_out = 24832 ! ACME relative server name DECLARE LONG CONSTANT acme$_max_gen_out_ucs = 24832 DECLARE LONG CONSTANT acme$_min_auth_pwd_out_ucs = 25088 ! AUTHENTICATE_PRINCIPAL/CHANGE_PASSWORD items DECLARE LONG CONSTANT acme$_authenticating_doi_name = 25088 ! Name of DOI accepting principal DECLARE LONG CONSTANT acme$_mapped_vms_username = 25089 ! Resultant VMS Username DECLARE LONG CONSTANT acme$_mapping_acme_name = 25090 ! Name of ACME mapping principal DECLARE LONG CONSTANT acme$_principal_name_out = 25091 ! Processed principal name DECLARE LONG CONSTANT acme$_max_auth_pwd_out_ucs = 25091 ! ! Logon (Job) Type Values ! DECLARE LONG CONSTANT acme$k_network = 1 DECLARE LONG CONSTANT acme$k_batch = 2 DECLARE LONG CONSTANT acme$k_local = 3 DECLARE LONG CONSTANT acme$k_dialup = 4 DECLARE LONG CONSTANT acme$k_remote = 5 ! + ! ! Revision Level ! ! Revision level is a 16-bit unsigned value, encoded as follows: ! ! 1 ! 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^.............^ ^.............^ ! | | | | ! | | +-------------+-- Bit [7:0] = revision minor id ! | | ! +-------------+------------------ Bit [15:8] = revision major id ! ! - DECLARE LONG CONSTANT acmerevlvl$k_minor_id_bitpos = 0 DECLARE LONG CONSTANT acmerevlvl$k_major_id_bitpos = 8 DECLARE LONG CONSTANT acmerevlvl$s_acmerevlvl = 2 record acmerevlvl group acmerevlvl$r_fill_30_ variant case WORD acmerevlvl$w_revision_level ! Composite field case group acmerevlvl$r_fill_31_ BYTE acmerevlvl$b_minor_id ! Revision level minor id BYTE acmerevlvl$b_major_id ! Revision level major id end group acmerevlvl$r_fill_31_ end variant end group acmerevlvl$r_fill_30_ end record acmerevlvl DECLARE LONG CONSTANT acmerevlvl$k_length = 2 ! + ! ! Authentication Mechanism ! ! Authentication mechanism is a 16-bit unsigned value, encoded as follows: ! ! 3 2 2 1 1 ! 1 4 3 6 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^.............................^ ^ ^...........................^ ! | | | | | ! | | | +---------------------------+-- Bit [14:0] = authentication mechanism ! | | | ! | | +-------------------------------- Bit [15] = 0 ==> standard mechanism ! | | 1 ==> vendor specific mechanism ! | | ! +-----------------------------+---------------------------------- Bit [31:16] = vendor's facility code ! ! - ! ! Standard mechanism types ! DECLARE LONG CONSTANT acmemech$k_password = 1 ! Username-Password DECLARE LONG CONSTANT acmemech$k_challenge_response = 2 ! Challenge-Response DECLARE LONG CONSTANT acmemech$m_mechanism_type = x'00007FFF' DECLARE LONG CONSTANT acmemech$m_facility_specific = x'00008000' DECLARE LONG CONSTANT acmemech$s_acmemech = 4 record acmemech group acmemech$r_fill_32_ variant case WORD acmemech$w_mechanism ! Composite field case group acmemech$r_fill_33_ ! Authentication mechanism ! 0 ==> standard mechanism ! 1 ==> facility specific mechanism WORD mechanism_type_bits ! COMMENT ADDED BY SDL - mechanism_type_bits contains bits mechanism_type through & ! facility_specific end group acmemech$r_fill_33_ end variant end group acmemech$r_fill_32_ WORD acmemech$w_facility ! Vendor's assigned facility code end record acmemech DECLARE LONG CONSTANT acmemech$k_length = 4 ! + ! ! Remote Host Address Type ! ! Remote host address type is a 16-bit unsigned value, encoded as follows: ! ! 3 2 2 1 1 ! 1 4 3 6 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^.............................^ ^ ^...........................^ ! | | | | | ! | | | +---------------------------+-- Bit [14:0] = network protocol (address format) ! | | | ! | | +-------------------------------- Bit [15] = 0 ==> standard protocol ! | | 1 ==> vendor specific protocol ! | | ! +-----------------------------+---------------------------------- Bit [31:16] = vendor's facility code ! ! - ! ! Standard protocol types ! DECLARE LONG CONSTANT acmehat$k_decnet_iv = 1 ! DECnet Phase IV DECLARE LONG CONSTANT acmehat$k_decnet_osi = 2 ! DECnet OSI DECLARE LONG CONSTANT acmehat$k_ip_v4 = 3 ! Internet Protocol V4 DECLARE LONG CONSTANT acmehat$k_ip_v6 = 4 ! Internet Protocol V6 DECLARE LONG CONSTANT acmehat$m_protocol_type = x'00007FFF' DECLARE LONG CONSTANT acmehat$m_facility_specific = x'00008000' DECLARE LONG CONSTANT acmehat$s_acmehat = 4 record acmehat group acmehat$r_fill_34_ variant case WORD acmehat$w_protocol ! Composite field case group acmehat$r_fill_35_ ! Network protocol/address format ! 0 ==> standard protocol ! 1 ==> facility specific protocol WORD protocol_type_bits ! COMMENT ADDED BY SDL - protocol_type_bits contains bits protocol_type through & ! facility_specific end group acmehat$r_fill_35_ end variant end group acmehat$r_fill_34_ WORD acmehat$w_facility ! Vendor's assigned facility code end record acmehat DECLARE LONG CONSTANT acmehat$k_length = 4 ! + ! ! Password change request control flags ! ! - DECLARE LONG CONSTANT acmepwdflg$k_system = 0 DECLARE LONG CONSTANT acmepwdflg$m_system = x'00000001' DECLARE LONG CONSTANT acmepwdflg$k_password_1 = 1 DECLARE LONG CONSTANT acmepwdflg$m_password_1 = x'00000002' DECLARE LONG CONSTANT acmepwdflg$k_password_2 = 2 DECLARE LONG CONSTANT acmepwdflg$m_password_2 = x'00000004' DECLARE LONG CONSTANT acmepwdflg$k_max_flags = 3 DECLARE LONG CONSTANT acmepwdflg$k_specified = 31 DECLARE LONG CONSTANT acmepwdflg$m_specified = x'80000000' DECLARE LONG CONSTANT acmepwdflg$m_valid_flags = x'00000007' DECLARE LONG CONSTANT acmepwdflg$m_password_flags = x'7FFFFFFF' DECLARE LONG CONSTANT acmepwdflg$s_acmepwdflg = 4 record acmepwdflg group acmepwdflg$r_overlay variant case group acmepwdflg$r_fill_36_ variant case LONG acmepwdflg$l_flags_struct ! Composite field case group acmepwdflg$r_fill_37_ ! Request system password change ! Request password 1 change ! Request password 2 change ! Used internally by the service ! to indicate flags reflect caller ! specified NEW_PASSWORD_FLAGS item ! Caller's setting is ignored LONG system_bits ! COMMENT ADDED BY SDL - system_bits contains bits system through specified end group acmepwdflg$r_fill_37_ end variant end group acmepwdflg$r_fill_36_ case ! Currently defined flags ! Non-reserved flags BYTE valid_flags_bits ( 4 ) ! COMMENT ADDED BY SDL - valid_flags_bits contains bits valid_flags through & ! password_flags end variant end group acmepwdflg$r_overlay end record acmepwdflg DECLARE LONG CONSTANT acmepwdflg$k_length = 4 ! + ! ! $ACM Item Set Message Category ! ! Message Categories are 16-bit unsigned values, encoded as follows: ! ! 1 ! 5 8 7 0 ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! | | | | | | | | | | | | | | | | | ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ^ ^ ^ ^ ! | | | | ! | | +-------------------------+-- Bit [13:0] = message type ! | | ! | +------------------------------ Bit [14] = 0 ==> not subject to VTF-7 <-> UCS conversion ! | = 1 ==> subject to VTF-7 <-> UCS conversion ! | ! +-------------------------------- Bit [15] = 0 ==> common item ! 1 ==> ACME specific item ! ! - DECLARE LONG CONSTANT acmemc$m_type = x'00003FFF' DECLARE LONG CONSTANT acmemc$m_ucs = x'00004000' DECLARE LONG CONSTANT acmemc$m_acme_specific = x'00008000' DECLARE LONG CONSTANT acmemc$s_acmemc = 2 record acmemc group acmemc$r_fill_38_ variant case WORD acmemc$w_msg_code ! Composite field case group acmemc$r_fill_39_ ! Ranged value ! 0 ==> not subject to VTF-7 <-> UCS conversion ! 1 ==> subject to VTF-7 <-> UCS conversion ! 0 ==> common category ! 1 ==> ACME specific category WORD type_bits ! COMMENT ADDED BY SDL - type_bits contains bits type through acme_specific end group acmemc$r_fill_39_ end variant end group acmemc$r_fill_38_ end record acmemc DECLARE LONG CONSTANT acmemc$k_length = 2 ! ! Generic output message categories ! ! These are all subject to UCS conversion ! DECLARE LONG CONSTANT acmemc$k_min_gen_msg = 16384 DECLARE LONG CONSTANT acmemc$k_general = 16384 ! General text DECLARE LONG CONSTANT acmemc$k_header = 16385 ! Header text DECLARE LONG CONSTANT acmemc$k_trailer = 16386 ! Trailer text DECLARE LONG CONSTANT acmemc$k_selection = 16387 ! Acceptable choices DECLARE LONG CONSTANT acmemc$k_dialogue_alert = 16388 ! Alert (advisory) DECLARE LONG CONSTANT acmemc$k_max_gen_msg = 16388 ! ! LOGINOUT related output message categories ! ! These are all subject to UCS conversion ! DECLARE LONG CONSTANT acmemc$k_min_logon_msg = 16640 DECLARE LONG CONSTANT acmemc$k_system_identification = 16640 ! System identification text DECLARE LONG CONSTANT acmemc$k_system_notices = 16641 ! System notices DECLARE LONG CONSTANT acmemc$k_welcome_notices = 16642 ! Welcome notices, DECLARE LONG CONSTANT acmemc$k_logon_notices = 16643 ! Logon notices DECLARE LONG CONSTANT acmemc$k_password_notices = 16644 ! Password notices DECLARE LONG CONSTANT acmemc$k_mail_notices = 16645 ! MAIL notices DECLARE LONG CONSTANT acmemc$k_max_logon_msg = 16645 ! + ! ! ACMESB - ACM Status Block ! ! - DECLARE LONG CONSTANT acmesb$s_acmesb = 16 record acmesb LONG acmesb$l_status ! Primary status LONG acmesb$l_secondary_status ! Auxillary (privileged) status acmeid acmesb$l_acme_id ! ID of ACME/DOI reporting specific status LONG acmesb$l_acme_status ! ACME/DOI specific status end record acmesb DECLARE LONG CONSTANT acmesb$k_length = 16 ! + ! ! ACMECB - ACM Communications Buffer ! ! - DECLARE LONG CONSTANT acmedlogflg$m_input = x'00000001' DECLARE LONG CONSTANT acmedlogflg$m_noecho = x'00000002' DECLARE LONG CONSTANT acmedlogflg$m_specified = x'80000000' DECLARE LONG CONSTANT acmedlogflg$m_valid_flags = x'00000003' DECLARE LONG CONSTANT acmedlogflg$m_dialogue_flags = x'7FFFFFFF' DECLARE LONG CONSTANT acmedlogflg$s_acmedlogflg = 4 record acmedlogflg group acmedlogflg$r_overlay variant case group acmedlogflg$r_fill_40_ variant case LONG acmedlogflg$l_flags_struct ! Composite field case group acmedlogflg$r_fill_41_ ! Response required ! When prompting, do not echo response ! Used internally by the service ! to indicate flags reflect caller ! specified DIALOGUE_SUPPORT item ! Caller's setting is ignored LONG input_bits ! COMMENT ADDED BY SDL - input_bits contains bits input through specified end group acmedlogflg$r_fill_41_ end variant end group acmedlogflg$r_fill_40_ case ! Currently defined flags ! Non-reserved flags BYTE valid_flags_bits ( 4 ) ! COMMENT ADDED BY SDL - valid_flags_bits contains bits valid_flags through & ! dialogue_flags end variant end group acmedlogflg$r_overlay end record acmedlogflg DECLARE LONG CONSTANT acmedlogflg$k_length = 4 DECLARE LONG CONSTANT acmeis$s_acmeitmset = 24 record acmeitmset acmedlogflg acmeis$l_flags ! Item set processing flags acmeic acmeis$w_item_code ! Item code reflecting the nature of ! information provided/requested group acmeis$r_itm_msg_ctl variant case WORD acmeis$w_max_length ! Maximum length of an input data case acmemc acmeis$w_msg_type ! Message category for output data end variant end group acmeis$r_itm_msg_ctl BASIC$QUADWORD acmeis$q_data_1 ! Data 1 (prompt text) BASIC$QUADWORD acmeis$q_data_2 ! Data 2 (default response) end record acmeitmset DECLARE LONG CONSTANT acmeis$k_length = 24 DECLARE LONG CONSTANT acmecb$k_minor_id_000 = 0 DECLARE LONG CONSTANT acmecb$k_minor_id = 0 DECLARE LONG CONSTANT acmecb$k_major_id_001 = 1 DECLARE LONG CONSTANT acmecb$k_major_id = 1 DECLARE LONG CONSTANT acmecb$k_revision = 256 DECLARE LONG CONSTANT acmecb$s_acmecb = 24 record acmecb BASIC$QUADWORD acmecb$q_context_id ! ID of associated ACM Request Block WORD acmecb$w_size ! Structure size, in bytes acmerevlvl acmecb$w_revision_level ! Structure revision level acmeid acmecb$l_acme_id ! ID of ACME/DOI requesting dialogue LONG acmecb$l_item_set_count ! Number of item set entries LONG acmecb$ps_item_set ! Pointer to item set array end record acmecb DECLARE LONG CONSTANT acmecb$k_length = 24 ! + ! ! ACMELI - ACM Logon Information Block ! ! - DECLARE LONG CONSTANT acmelgiflg$k_min_logon_flag = -1 DECLARE LONG CONSTANT acmelgiflg$k_new_mail_at_login = 0 DECLARE LONG CONSTANT acmelgiflg$m_new_mail_at_login = x'00000001' DECLARE LONG CONSTANT acmelgiflg$k_password_changed = 1 DECLARE LONG CONSTANT acmelgiflg$m_password_changed = x'00000002' DECLARE LONG CONSTANT acmelgiflg$k_password_expired = 2 DECLARE LONG CONSTANT acmelgiflg$m_password_expired = x'00000004' DECLARE LONG CONSTANT acmelgiflg$k_password_warning = 3 DECLARE LONG CONSTANT acmelgiflg$m_password_warning = x'00000008' DECLARE LONG CONSTANT acmelgiflg$k_password2_changed = 4 DECLARE LONG CONSTANT acmelgiflg$m_password2_changed = x'00000010' DECLARE LONG CONSTANT acmelgiflg$k_password2_expired = 5 DECLARE LONG CONSTANT acmelgiflg$m_password2_expired = x'00000020' DECLARE LONG CONSTANT acmelgiflg$k_password2_warning = 6 DECLARE LONG CONSTANT acmelgiflg$m_password2_warning = x'00000040' DECLARE LONG CONSTANT acmelgiflg$k_max_logon_flag = 6 DECLARE LONG CONSTANT acmelgiflg$s_acmelgiflg = 4 record acmelgiflg group acmelgiflg$r_fill_42_ variant case LONG acmelgiflg$l_logon_flags ! Composite field case group acmelgiflg$r_fill_43_ ! User had new MAIL message(s) ! Primary password changed ! Primary password expired on login ! Primary password expiration imminent ! Secondary password changed ! Secondary password expired on login ! Secondary password expiration imminent LONG new_mail_at_login_bits ! COMMENT ADDED BY SDL - new_mail_at_login_bits contains bits & ! new_mail_at_login through lgi_flg_fill_1 end group acmelgiflg$r_fill_43_ end variant end group acmelgiflg$r_fill_42_ end record acmelgiflg DECLARE LONG CONSTANT acmelgiflg$k_length = 4 DECLARE LONG CONSTANT acmelivms$k_minor_id_000 = 0 DECLARE LONG CONSTANT acmelivms$k_minor_id = 0 DECLARE LONG CONSTANT acmelivms$k_major_id_001 = 1 DECLARE LONG CONSTANT acmelivms$k_major_id = 1 DECLARE LONG CONSTANT acmelivms$k_revision = 256 DECLARE LONG CONSTANT acmelivms$s_acmelivms = 48 record acmelivms acmeid acmelivms$l_acme_id ! ID of ACME which reported logon information LONG acmelivms$l_phase ! Phase during which information was reported WORD acmelivms$w_size ! Structure size, in bytes acmerevlvl acmelivms$w_revision_level ! Structure revision level LONG acmelivms$l_logfail_count ! Number of failed logon attempts UTCBLK acmelivms$o_logon_int ! Time of last interactive logon UTCBLK acmelivms$o_logon_nonint ! Time of last non-interactive logon end record acmelivms DECLARE LONG CONSTANT acmelivms$k_length = 48 DECLARE LONG CONSTANT acmelidoi$k_minor_id_000 = 0 DECLARE LONG CONSTANT acmelidoi$k_minor_id = 0 DECLARE LONG CONSTANT acmelidoi$k_major_id_001 = 1 DECLARE LONG CONSTANT acmelidoi$k_major_id = 1 DECLARE LONG CONSTANT acmelidoi$k_revision = 256 DECLARE LONG CONSTANT acmelidoi$s_acmelidoi = 112 record acmelidoi acmeid acmelidoi$l_acme_id ! ID of ACME which reported logon information LONG acmelidoi$l_phase ! Phase during which information was reported WORD acmelidoi$w_size ! Structure size, in bytes acmerevlvl acmelidoi$w_revision_level ! Structure revision level LONG acmelidoi$l_logfail_count ! Number of failed logon attempts UTCBLK acmelidoi$o_logon ! Time of last logon UTCBLK acmelidoi$o_logon_int ! Time of last interactive logon UTCBLK acmelidoi$o_logon_nonint ! Time of last non-interactive logon UTCBLK acmelidoi$o_logfail ! Time of last logon failure UTCBLK acmelidoi$o_logfail_int ! Time of last interactive logon failure UTCBLK acmelidoi$o_logfail_nonint ! Time of last non-interactive logon failure end record acmelidoi DECLARE LONG CONSTANT acmelidoi$k_length = 112 DECLARE LONG CONSTANT acmeli$k_minor_id_000 = 0 DECLARE LONG CONSTANT acmeli$k_minor_id = 0 DECLARE LONG CONSTANT acmeli$k_major_id_001 = 1 DECLARE LONG CONSTANT acmeli$k_major_id = 1 DECLARE LONG CONSTANT acmeli$k_revision = 256 DECLARE LONG CONSTANT acmeli$s_acmeli = 184 record acmeli group acmeli$r_li_doi variant case BASIC$QUADWORD acmeli$pq_logon_info_doi64 ! Non-native (non-OpenVMS) logon information case group acmeli$r_li_doi32 LONG acmeli$ps_logon_info_doi32 ! Non-native (non-OpenVMS) logon information LONG acmeli$l_logon_info_doi32se ! Sign extension field end group acmeli$r_li_doi32 end variant end group acmeli$r_li_doi WORD acmeli$w_size ! Structure size, in bytes acmerevlvl acmeli$w_revision_level ! Structure revision level acmelgiflg acmeli$l_logon_flags ! Logon flags group acmeli$r_li_vms variant case BASIC$QUADWORD acmeli$pq_logon_info_vms64 ! Native (OpenVMS) logon information case group acmeli$r_li_vms32 LONG acmeli$ps_logon_info_vms32 ! Native (OpenVMS) logon information LONG acmeli$l_logon_info_vms32se ! Sign extension field end group acmeli$r_li_vms32 end variant end group acmeli$r_li_vms acmelivms acmeli$r_logon_info_vms ! Native (OpenVMS) logon information acmelidoi acmeli$r_logon_info_doi ! Non-native (non-OpenVMS) logon information end record acmeli DECLARE LONG CONSTANT acmeli$k_length = 184 DECLARE LONG CONSTANT acme$k_query_revision_level = 1 ! Service revision level DECLARE LONG CONSTANT acme$k_query_acme_count = 2 ! Number of registered agents DECLARE LONG CONSTANT acme$k_query_acme_id = 3 ! Specify/report agent id DECLARE LONG CONSTANT acme$k_query_acme_name = 4 ! Specify/reprot agent name DECLARE LONG CONSTANT acme$k_service_revision_001_000 = 256 ! ! Pre-$ACM definitions... ! ! Definitions for the $AUTHENTICATE[W], $LOGON[W], and $SET_PASSWORD[W] ! system services. ! ! ! $LOGON[W] function codes. ! DECLARE LONG CONSTANT ACME$_MAP_TO_USERNAME = 1 ! Map userid to username DECLARE LONG CONSTANT ACME$_VERIFY_PASSWORD_ONLY = 2 ! Authenticate password DECLARE LONG CONSTANT ACME$_MAX_FUNCTION_CODE = 3 ! maximum legal function code + 1 ! ! Item codes. Codes specific to a particular service are noted: ! ! $AU = $AUTHENTICATE[W] ! $LO = $LOGON[W] ! $SP = $SET_PASSWORD[W] ! DECLARE LONG CONSTANT ACME$_DOMAIN = 2 ! Authentication domain DECLARE LONG CONSTANT ACME$_USERID = 3 ! User ID DECLARE LONG CONSTANT ACME$_PASSWORD = 4 ! Single password DECLARE LONG CONSTANT ACME$_PASSWORD_LIST = 5 ! Password list DECLARE LONG CONSTANT ACME$_NEW_PASSWORD = 6 ! New password ($SP) DECLARE LONG CONSTANT ACME$_OUTPUT_VMS_USERNAME = 7 ! Mapped OpenVMS username ($LO) DECLARE LONG CONSTANT ACME$_NOAUTHENTICATION = 8 ! No password authentication ($SP) DECLARE LONG CONSTANT ACME$_OVERRIDE_POLICY = 9 ! Override password policy ($SP) DECLARE LONG CONSTANT ACME$_SYNCHRONIZE = 10 ! Set password in all domains ($SP) DECLARE LONG CONSTANT ACME$_REASON_CODE = 11 ! ACME-specific reason code DECLARE LONG CONSTANT ACME$_VALIDATE_ONLY = 12 ! Validate user can login ($LO) DECLARE LONG CONSTANT ACME$_UAF_RECORD_LOCKED = 13 ! Advisory that UAF record is locked ($LO) DECLARE LONG CONSTANT ACME$_RESERVED_ITEM_1 = 14 ! Reserved 1 DECLARE LONG CONSTANT ACME$_RESERVED_ITEM_2 = 15 ! Reserved 2 DECLARE LONG CONSTANT ACME$_MAX_ITEM_CODE = 16 ! maximum legal item code + 1 ! ! Structures and constants. ! DECLARE LONG CONSTANT ACME$C_MAJOR_VERSION = 1 ! Major ACME version DECLARE LONG CONSTANT ACME$C_MINOR_VERSION = 0 ! Minor ACME version DECLARE LONG CONSTANT ACME$S_MAX_DOMAIN = 256 ! Maximum domain length DECLARE LONG CONSTANT ACME$S_MAX_USERID = 256 ! Maximum userid length DECLARE LONG CONSTANT ACME$S_MAX_PASSWORD = 256 ! Maximum password length ! ! The PASSWORD_LIST item code requires a list of password items with each ! item specified by a PWDITM structure definition. The list is terminated ! by a longword zero. ! DECLARE LONG CONSTANT ACME$S_PWDITM = 12 record ACME$R_PWDITM group ACME$R_PWDTRM variant case LONG ACME$L_TERMINATOR ! Termination longword case group ACME$R_PWDNUM_FIELDS WORD ACME$W_PWDNUM ! Password number (1=primary, etc.) WORD ACME$W_RSRVD1 ! reserved for future use, MBZ end group ACME$R_PWDNUM_FIELDS end variant end group ACME$R_PWDTRM LONG ACME$A_OLDPWD ! Descriptor address for old password LONG ACME$A_NEWPWD ! Descriptor address for new password end record ACME$R_PWDITM ! ! Maximum password number to be used in password list ! DECLARE LONG CONSTANT ACME$C_MAX_PASSWORD_NUM = 8