Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

PSWORD exit (020)

&pagelevel(3)&pagelevel

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:

  1. 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.

  2. 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:

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

*

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.

SRMFMR1=X'00'

The command is to be executed.

SRMFMR1=X'01'

The command is to be rejected.

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