Parameters

The parameters for CSNBOWH.

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. This value must be 1 or 2.
rule_array
These keywords provide control information to the verb. The optional chaining flag keyword indicates whether calls to this verb are chained together logically to overcome buffer size limitations. Each keyword is left-aligned in an 8-byte field and padded on the right with blanks. All keywords must be in contiguous storage. The rule_array keywords are described in Table 1.
Table 1. Keywords for One-Way Hash control information
Keyword Description
Hash method (One, required). The SHA-based hashing functions use CPACF by default. For details about CPACF, see CPACF support.
MD5 Hash algorithm is MD5 algorithm. Use this hash method for PKCS-1.0 and PKCS-1.1. Length of hash generated is 16 bytes.
RPMD-160 Hash algorithm is RIPEMD-160. Length of hash generated is 20 bytes.
SHA-1 Hash algorithm is SHA-1 algorithm. Length of hash generated is 20 bytes.
SHA-224 Hash algorithm is SHA-224 algorithm. Length of hash generated is 20 bytes.
SHA-256 Hash algorithm is SHA-256 algorithm. Length of hash generated is 20 bytes.
SHA-384 Hash algorithm is SHA-384 algorithm. Length of hash generated is 20 bytes.
SHA-512 Hash algorithm is SHA-512 algorithm. Length of hash generated is 20 bytes.
SHA3-224 Specifies the use of the SHA3-224 method.
SHA3-256 Specifies the use of the SHA3-256 method.
SHA3-384 Specifies the use of the SHA3-384 method.
SHA3-512 Specifies the use of the SHA3-512 method.
Chaining flag (One, optional)
FIRST Specifies this is the first call in a series of chained calls. Intermediate results are stored in the hash field.
LAST Specifies this is the last call in a series of chained calls.
MIDDLE Specifies this is a middle call in a series of chained calls. Intermediate results are stored in the hash field.
ONLY Specifies this is the only call and the call is not chained. This is the default.
text_length
The length of the text parameter in bytes.
Note: If you specify the FIRST or MIDDLE keyword, the text length must be a multiple of the block size of the hash method. For MD5, RPMD-160, and SHA-1, this is a multiple of 64 bytes.

For ONLY and LAST, this verb performs the required padding according to the algorithm specified.

text
The application-supplied text on which this verb performs the hash.
chaining_vector_length
The byte length of the chaining_vector parameter. If any of the SHA3 methods is specified, the value must be 256. Otherwise, the value must be 128.
chaining_vector
This field is a 128-byte work area. Your application must not change the data in this string. The chaining vector permits chaining data from one call to another.
hash_length
The length of the supplied hash parameter in bytes. This length must be at least large enough to contain the hash output as shown in Table 2:
Table 2. Length of hash outputs
Hash method Hash output (bytes)
MD5 16
RPMD-160 20
SHA-1 20
SHA-224 28
SHA-256 32
SHA-384 48
SHA-512 64
SHA3-224 28
SHA3-256 32
SHA3-384 48
SHA3-512 64

On output, this variable contains the number of bytes of data returned by the verb in the hash parameter.

hash
This field contains the hash, left-aligned. The processing of the rest of the field depends on the implementation. If you specify the FIRST or MIDDLE keyword, this field contains the intermediate hash value. Your application must not change the data in this field between the sequence of FIRST, MIDDLE, and LAST calls for a specific message.