Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 11 Password Encryption API : Encryption API for z/OS

Encryption API for z/OS
Location of the API
The encryption API invokes the HDRSCXIT module. A combined default and sample version of this module is shipped with TIBCO Object Service Broker. The default version does not perform any encryption and the sample version performs a simple encryption algorithm.
As shipped in the ASM distribution data set, the module HDRSCXIT contains code, which could produce certain behavior, that is currently disabled. This code can be enabled by changing a constant in the module and re-assembling and re-linking it. To enable this behavior, refer to comments in the source code.
Supported Functions
The encryption API supports the following functions:
For the syntax of each of these functions, refer to HDRSCXIT Module.
Initialize
Perform any necessary initialization when the Execution Environment is initialized. Return an address to a working storage memory block for use by subsequent encryption functions.
Terminate
Perform any cleanup necessary as a result of initialization when the Execution Environment shuts down.
Encrypt
Encrypt a clear text password that is supplied when a user logs in to the TIBCO Object Service Broker system. This encrypted password is compared to the value stored in the MetaStor. If the value is the same, the user can log in. If the value is different, the VersionMismatch function is invoked.
The encryption algorithm is at your discretionary control and can be one-way or two-way. The encrypted output must have a minimum length equal to the clear text input. The maximum encrypted length is specified by an input parameter.
Decrypt
Decrypt a given encrypted password. You must use this function for @SCHEDULEMODEL access and for external security under IMS TM.
If you choose to implement a one-way encryption algorithm, Decrypt always fails with a 0x04 return code.
VersionMismatch
Encrypt a clear text password using the previously supported algorithm. Compare this encrypted value to the previous value stored in the MetaStor for this user. If the two values are the same, the password in the MetaStor is updated with the value returned from the Encrypt function.
If the default encryption loadable module supplied with TIBCO Object Service Broker is replaced by a customer encryption loadable module, you must support, in the VersionMismatch function, clear text as the back-level encryption algorithm.
HDRSCXIT Module
Use the module HDRSCXIT, supplied as a member of the ASM distribution data set, as the sample for the customized API. After modifying the code, re-assemble HDRSCXIT and link it into your TIBCO Object Service Broker load library. It replaces the module shipped with TIBCO Object Service Broker.
Although it is at your discretion, we suggest that the functions ensure that the routine calling them is authorized to do so. To be authorized themselves, the functions must be re-entrant and linked as AMODE(31) RMODE(31).
Parameters
The parameter list for the API is a list of addresses pointed to by Register 1 (R1). All functions expect all parameters, even though some could be unused. The parameters are as follows:
Special Considerations
Both the initialization call and the termination call occur only once per startup or shutdown of the Execution Environment. The other calls can occur many times in a multi-tasking environment such as CICS or a Native Execution Environment. Therefore, your exits must take the following points into consideration:
Required resources, such as working storage, must be obtained and freed by each function as you determine it to be necessary.

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved