A PSWORD exit routine can accept or reject a MODIFY-USER-PROTECTION command. The data required for checking purposes is supplied in a variable change list. The address of this list is passed in the exit parameter area $SRMSYE after the standard header in the SRMFSYEPT field.
Additional information on the relevant user IDs or on other system values can be queried using the appropriate system interfaces.
The following information is passed to the exit routine:
R1 = A(parameter area $SRMSYE) R2 .... R11 are undefined. R12 = A(TPR program manager) R13 = A(save area) R14 = A(indirect return) R15 = A(exit routine)
The exit routine can be called in two different formats. They can be distinguished by the SRMFFCTV version code (see DSECT, $SRMSYE MF=D).
SRMFFCTV=1
This format is used to call the exit routine when processing the MODIFY-USER-PROTECTION command, when SECOS version V3.0 or higher is in use. As a result, there are two calls in this case:
A change list is produced, showing whether it was established in the exit routine, if the command should be carried out or not.
The change list has the following format:
Identifier for password modification
X'03'
------- not used -------
X'01'
New password (uncoded)
*
8 bytes
Old password
*
8 bytes
End identifier
X'FF'
PVS flag
1 byte
PVS ID
4 bytes
User ID
8 bytes
TID
4 bytes
RUN (first or second call)
1 byte
RESULT(result of the call)
1 byte
*The new password is always provided in unencrypted form at the interface. The old password is encrypted in accordance with the class 2 option ENCRYPT.
In the case of this call, the RUN field has the value 1 and the RESULT field has the value 0.
The return code for the calling system component is supplied via maincode1 of the $SRMSYE parameter area in the rightmost byte of the SRMFSYEHDR field.
SRMFMR1=X'00'
The command is to be executed.
SRMFMR1=X'01'
The command is to be rejected.
Subsequently, further checks are carried out in the system to establish whether the password can be changed or not, e.g. a check on sufficient complexity.
The RESULT field of the change list shows whether or not the password could be successfully changed:
RESULT=1
The password has been successfully changed.
RESULT=2
The password has not been changed.
The RUN field has the value 2.
If the exit routine has rejected the MODIFY-USER-PROTECTION command, the following message is issued:
% SRM2301 COMMAND REJECTED BY SYSTEM EXIT ROUTINE
SRMFFCTV=0
This format is used to call the exit routine when processing the MODIFY-USER-PROTECTION command, either when SECOS is not in use or when a version earlier than V3.0 is being used. When processing the ISP commando, PSWORD, the exit routine is called in this format in any case, regardless of whether SECOS is being used, and which version.
The change list has the following format:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* | The new password is always provided in unencrypted form at the interface. The old password is encrypted in accordance with the class 2 option ENCRYPT. |
The return code for the calling system component is supplied via maincode1 of the $SRMSYE parameter area in the rightmost byte of the SRMFSYEHDR field.
|
|
|
|
If the exit routine has rejected the MODIFY-USER-PROTECTION command, the following message is issued:
% SRM2301 COMMAND REJECTED BY SYSTEM EXIT ROUTINE
DSECT
$SRMSYE MF=D MFTST MF=D,PREFIX=S,MACID=RMF,ALIGN=F, C DMACID=RMF,SUPPORT=(D,C,M,L),DNAME=RMF_MDL SRMF_MDL DSECT , *,##### PREFIX=S, MACID=RMF ##### * parameterarea description SRMFSYEHDR FHDR MF=(C,SRMF),EQUATES=NO Standardheader SRMFSYEHDR DS 0A SRMFFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER * SRMFIFID DS 0A 0 INTERFACE IDENTIFIER SRMFFCTU DS AL2 0 FUNCTION UNIT NUMBER * BIT 15 HEADER FLAG BIT, * MUST BE RESET UNTIL FURTHER NOTICE * BIT 14-12 UNUSED, MUST BE RESET * BIT 11-0 REAL FUNCTION UNIT NUMBER SRMFFCT DS AL1 2 FUNCTION NUMBER SRMFFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER * SRMFRET DS 0A 4 GENERAL RETURN CODE SRMFSRET DS 0AL2 4 SUB RETURN CODE SRMFSR2 DS AL1 4 SUB RETURN CODE 2 SRMFSR1 DS AL1 5 SUB RETURN CODE 1 SRMFMRET DS 0AL2 6 MAIN RETURN CODE SRMFMR2 DS AL1 6 MAIN RETURN CODE 2 SRMFMR1 DS AL1 7 MAIN RETURN CODE 1 SRMFFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * * main return codes SRMFSUCC EQU 0 CMD accepted SRMFREJE EQU 1 CMD rejected * SRMFSYEPT DS A POINTER SRMF# EQU *-SRMFSYEHDR