Parameters

The parameters for CSNBCKC.

For the definitions of the return_code, reason_code, exit_data_length, and exit_data parameters, see Parameters common to all verbs.

rule_array_count
A pointer to an integer variable containing the number of elements in the rule_array variable. The value must be 0, 1, or 2.
rule_array
A pointer to a string variable containing an array of keywords. The keywords are 8 bytes in length and must be left-aligned and padded on the right with space characters. The rule_array keywords are:
Keyword Meaning
Key wrapping method (one, optional)
USECONFG This is the default. Specifies to wrap the key using the configuration setting for the default wrapping method. The default wrapping method configuration setting may be changed using the TKE. This keyword is ignored for AES keys.
WRAP-ECB Specifies to wrap the key using the legacy wrapping method.
WRAP-ENH Specifies to wrap the key using the enhanced wrapping method.
Translation control (optional). This is valid only with wrapping method WRAP-ENH or with USECONFG when the default wrapping method is WRAP-ENH. This option cannot be used on a key with a control vector valued to binary zeros.
ENH-ONLY Specifies to restrict the key from being wrapped with the legacy wrapping method after it has been wrapped with the enhanced wrapping method. Sets bit 56 (ENH-ONLY) of the control vector to B'1'.
WRAPENH3 Specifies to wrap the key using the enhanced wrapping method with TDES-CMAC and SHA-256. This option sets the CV bit 56 = B’1’ (ENH-ONLY), which is required for the WRAPENH3 wrapping method.
Table 1. WRAPENH3 Key-wrapping matrix for CVV Key Combine
key-A or key-B is wrapped using WRAPENH3 method WRAPENH3 (by keyword or by default) Resulting form of output key or error
No No to both ECB wrapped
Yes No to both Wrap type conflict, 8/2161 (X'871') because ECB wrapping is requested so overall wrapping is weakened.
No Yes to both WRAPENH3, CV bit 56 = B'1' (required for WRAPENH3).
Yes Yes to both WRAPENH3, CV bit 56 = B'1' (required for WRAPENH3).
There are restrictions on the available wrapping methods for the output key derived from the wrapping methods employed and control vector restrictions of the input keys. These are detailed in Table 2.
Table 2. Key-wrapping matrix for the CVV Key Combine verb
key-A or key-B wrapped using WRAP-ENH method key-A or key-B has ENH-ONLY bit on (CV bit 56 = B'1') WRAP-ENH (by keyword or by default) ENH-ONLY keyword Resulting form of output key or error
No No No to both No ECB wrapped
Yes No No to both No Wrap type conflict, 8/2161 (X'871')
No No Yes to either No WRAP-ENH, CV bit 56 = B'0' (NOT set)
Yes No Yes to either No
No No Yes to either Yes WRAP-ENH, CV bit 56 = B'1' (IS set)
Yes No Yes to either Yes
Yes Yes Yes to either No
Yes Yes Yes to either Yes
No No No to both Yes CV bit 56 conflict, 8/2111 (X'83F')
Yes No No to both Yes
Yes Yes No to both No
Yes Yes No to both Yes
key_A_identifier_length
A pointer to an integer variable containing the number of bytes in the key_A_identifier variable. This value must be 64.
key_A_identifier
A pointer to a string variable containing either the operational single-length DES key-token of the key-A key, or the label of such a key token. This key must be a MAC key or a DATA key that can perform MAC operations.
key_B_identifier_length
A pointer to an integer variable containing the number of bytes in the key_B_identifier variable. This value must be 64.
key_B_identifier
A pointer to a string variable containing either the operational single-length DES key-token of the key-B key, or the label of such a key token. This key must be a MAC key or a DATA key that can perform MAC operations.
output_key_identifier_length
A pointer to an integer variable containing the number of bytes in the output_key_identifier variable. This value must be 64.
output_key_identifier
A pointer to a string variable containing a NULL key token, or the key label of a null DES key-token.