- return_code
-
Direction: Output | Type: Integer |
The return code specifies the general result of the callable
service. Appendix A. ICSF and TSS Return and Reason Codes lists the return codes.
- reason_code
-
Direction: Output | Type: Integer |
The reason code specifies the result of the callable service
that is returned to the application program. Each return code has
different reason codes that indicate specific processing problems. Appendix A. ICSF and TSS Return and Reason Codes lists the reason codes.
- exit_data_length
-
Direction: Input/Output | Type: Integer |
The length of the data that is passed to the installation
exit. The length can be from X'00000000' to X'7FFFFFFF' (2
gigabytes). The data is identified in the exit_data parameter.
- exit_data
-
Direction: Input/Output | Type: String |
The data that is passed to the installation exit.
- key_identifier
-
Direction: Input/Output | Type: String |
The 64-byte key label or internal key token that identifies
a single or double-length MAC generate key, a DATAM key, or a single-length
DATA key. The type of key depends on the MAC process rule in
the rule_array parameter.
- text_length
-
Direction: Input | Type: Integer |
The length of the text you supply in the text parameter.
The maximum length of text is 214783647 bytes. If the text_length is
not a multiple of 8 bytes and if the ONLY or LAST keyword of the rule_array parameter
is called, the text is padded in accordance with the processing rule
specified.
Note:
The MAXLEN value may still be specified
in the options data set, but only the maximum value limit will be
enforced.
- text
-
Direction: Input | Type: String |
The application-supplied text for which the MAC is generated.
- rule_array_count
-
Direction: Input | Type: Integer |
The number of keywords specified in the rule_array parameter.
The value can be 0, 1, 2, or 3.
- rule_array
-
Direction: Input | Type: Character string |
Zero to three keywords that provide control information
to the callable service. The keywords are shown in Table 149.
The keywords must be in 24 bytes of contiguous storage with each of
the keywords left-justified in its own 8-byte location and padded
on the right with blanks. For example,
'X9.9-1 MIDDLE MACLEN4 '
The
order of the rule_array keywords is not fixed.
You can specify
one of the MAC processing rules and then choose one of the segmenting
control keywords and one of the MAC length keywords.
Table 149. Keywords for MAC generate Control InformationKeyword | Meaning |
---|
MAC Process Rules (optional) |
EMVMAC | EMV padding rule with a single-length
MAC key. The key_identifier parameter must identify a
single-length MAC or a single-length DATA key. The text is always
padded with 1 to 8 bytes so that the resulting text length is a multiple
of 8 bytes. The first pad character is X'80'. The remaining
0 to 7 pad characters are X'00'. |
EMVMACD | EMV padding rule with a double-length
MAC key. The key_identifier parameter must identify a
double-length MAC key. The padding rules are the same as for EMVMAC. |
X9.19OPT | ANSI X9.19 optional double key MAC
procedure. The key_identifier parameter must identify
a double-length MAC key. The padding rules are the same as for X9.9-1. |
X9.9-1 | ANSI X9.9-1 and X9.19 basic procedure.
The key_identifier parameter must identify a single-length
MAC or a single-length DATA key. X9.9-1 causes the MAC to be computed
from all of the data. The text is padded only if the text length is
not a multiple of 8 bytes. If padding is required, the pad character X'00' is
used. This is the default value. |
TDES-MAC | ISO 16609 procedure. The key_identifier
must identify a double-length MAC or a double-length DATA key. The
text is padded only if the text length is not a multiple of 8 bytes. |
Segmenting Control (optional) |
FIRST | First call, this is the first segment
of data from the application program. |
LAST | Last call; this is the last data
segment. |
MIDDLE | Middle call; this is an intermediate
data segment. |
ONLY | Only call; segmenting is not employed
by the application program. This is the default value. |
MAC Length and Presentation (optional) |
HEX-8 | Generates a 4-byte MAC value and
presents it as 8 hexadecimal characters. |
HEX-9 | Generates a 4-byte MAC value and
presents it as 2 groups of 4 hexadecimal characters with a space between
the groups. |
MACLEN4 | Generates a 4-byte MAC value. This
is the default value. |
MACLEN6 | Generates a 6-byte MAC value. |
MACLEN8 | Generates an 8-byte MAC value. |
- chaining_vector
-
Direction: Input/Output | Type: String |
An 18-byte string that ICSF uses as a system work area.
Your application program must not change the data in this string.
The chaining vector permits data to be chained from one invocation
call to another.
On the first call, initialize this parameter
as binary zeros.
- mac
-
Direction: Output | Type: String |
The 8-byte or 9-byte field in which the callable service
returns the MAC value if the segmenting rule is ONLY or LAST. Allocate
an 8-byte field for MAC values of 4 bytes, 6 bytes, 8 bytes, or HEX-8.
Allocate a 9-byte MAC field if you specify HEX-9 in the rule_array parameter.
- text_id_in
-
Direction: Input | Type: Integer |
For CSNBMGN1/CSNEMGN1 only, the ALET of the text for which
the MAC is generated.