Usage notes
Read the contained usage notes and related information for the CSNBKGN2 verb, especially about the key type and key form specifications.
- Operational (OP)
- The key value is enciphered under a master key. The result is placed into an internal key token. The key is then operational at the local system.
- Importable (IM)
- The key value is enciphered under an importer key-encrypting key. The result is placed into an external key token. The corresponding key_encrypting_key_identifier_n parameter must contain an AES IMPORTER key token or label.
- Exportable (EX)
- The key value is enciphered under an exporter key-encrypting key. The result is placed into an external key token. The corresponding key_encrypting_key_identifier_n parameter must contain an AES EXPORTER key token or label.
Key type specifications: Generated AES and HMAC keys returned in an internal key token are enciphered with the AES master key, while generated keys returned in an external key token are enciphered under an AES key-encrypting key.
- One or two key type keywords are examined depending on the value of the key form rule-array keyword. Table 1 shows the permissible key type and key form keyword combinations to generate a single copy of a key. Table 2 shows the permissible key type and key form keyword combinations to generate two copies of a key.
- Use the TOKEN keyword and provide a key token to be updated or a skeleton key-token to be completed.
key_type_1 | Required key usage | Key form OP | Key form IM or EX |
---|---|---|---|
CIPHER | DECRYPT and ENCRYPT | X | X |
DKYGENKY* | D-ALL | X | X |
DKYGENKY* | D-CIPHER | X | X |
DKYGENKY* | D-MAC | X | X |
KDKGENKY (KDKTYPEA) | KDKGENKY (KDKTYPEB) | X | X |
KDKGENKY (KDKTYPEB) | KDKGENKY (KDKTYPEA) | X | X |
MAC* | GENERATE and VERIFY | X | X |
PINCALC* | GENONLY | X | X |
Note:
|
key_type_1 (usage) | key_type_2 (usage) | key_form | ||||
---|---|---|---|---|---|---|
OPOP | OPOP, OPIM, IMIM | OPEX | EXEX | IMEX | ||
CIPHER | CIPHER | X | X | X | X | |
CIPHER | CIPHER (DECRYPT) | X | X | X | X | |
CIPHER | CIPHER (ENCRYPT) | X | X | X | X | |
CIPHER | CIPHER (DECRYPT C-XLATE) | X | X | X | X | |
CIPHER | CIPHER (ENCRYPT C-XLATE) | X | X | X | X | |
CIPHER | CIPHER (DECRYPT ENCRYPT C-XLATE) | X | X | X | X | |
CIPHER (DECRYPT) | CIPHER | X | X | X | X | |
CIPHER (DECRYPT) | CIPHER (DECRYPT) | |||||
CIPHER (DECRYPT) | CIPHER (ENCRYPT) | X | X | X | X | |
CIPHER (DECRYPT) | CIPHER (DECRYPT C-XLATE) | |||||
CIPHER (DECRYPT) | CIPHER (ENCRYPT C-XLATE) | X | X | X | X | |
CIPHER (DECRYPT) | CIPHER (DECRYPT ENCRYPT C-XLATE) | |||||
CIPHER (ENCRYPT) | CIPHER | X | X | X | X | |
CIPHER (ENCRYPT) | CIPHER (DECRYPT) | X | X | X | X | |
CIPHER (ENCRYPT) | CIPHER (ENCRYPT) | |||||
CIPHER (ENCRYPT) | CIPHER (DECRYPT C-XLATE) | X | X | X | X | |
CIPHER (ENCRYPT) | CIPHER (ENCRPYT C-XLATE) | |||||
CIPHER (ENCRYPT) | CIPHER (DECRYPT ENCRYPT C-XLATE) | |||||
CIPHER (DECRYPT C-XLATE) | CIPHER | X | E | X | E | |
CIPHER (DECRYPT C-XLATE) | CIPHER (DECRYPT) | |||||
CIPHER (DECRYPT C-XLATE) | CIPHER (ENCRYPT) | X | E | X | E | |
CIPHER (DECRYPT C-XLATE) | CIPHER (DECRYPT C-XLATE) | |||||
CIPHER (DECRYPT C-XLATE) | CIPHER (ENCRYPT C-XLATE) | E | X | E | ||
CIPHER (DECRYPT C-XLATE) | CIPHER (DECRYPT ENCRYPT C-XLATE) | |||||
CIPHER (ENCRYPT C-XLATE) | CIPHER | X | E | X | E | |
CIPHER (ENCRYPT C-XLATE) | CIPHER (DECRYPT) | X | E | X | E | |
CIPHER (ENCRYPT C-XLATE) | CIPHER (ENCRYPT) | |||||
CIPHER (ENCRYPT C-XLATE) | CIPHER (DECRYPT C-XLATE) | E | X | E | ||
CIPHER (ENCRYPT C-XLATE) | CIPHER (ENCRYPT C-XLATE) | |||||
CIPHER (ENCRYPT C-XLATE) | CIPHER (DECRYPT ENCRYPT C-XLATE) | |||||
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER | X | E | X | E | |
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER (DECRYPT) | |||||
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER (ENCRYPT) | |||||
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER (DECRYPT C-XLATE) | |||||
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER (ENCRPYT C-XLATE) | |||||
CIPHER (DECRYPT ENCRYPT C-XLATE) | CIPHER (DECRYPT ENCRYPT C-XLATE) | E | X | E | ||
MAC* (GENERATE) | MAC* (GENERATE) | X | X | X | X | |
MAC* (GENERATE) | MAC* (VERIFY) | X | X | X | X | |
MAC* (VERIFY) | MAC* (GENERATE) | X | X | X | X | |
MAC* (GENONLY) | MAC* (VERIFY) | X | X | X | X | |
MAC* (VERIFY) | MAC* (GENONLY) | X | X | X | X | |
MAC* (GENERATE) | MAC* (GENONLY) | X | X | X | X | |
MAC* (GENONLY) | MAC* (GENERATE) | X | X | X | X | |
IMPORTER | EXPORTER | X | X | X | X | |
EXPORTER | IMPORTER | X | X | X | ||
DKYGENKY* | DKYGENKY* | X | X | X | X | |
DKYGENKY* (DMAC:MMSAUTH1) | DKYGENKY* (DMAC:MMSAUTH2) | X | ||||
PINPROT (ENCRYPT, REFORMAT, NOFLDFMT, ISO-4) | PINPROT (DECRYPT, EPINVER, NOFLDFMT, ISO-4) | F | ||||
PINPROT (DECRYPT EPINVER NOFLDFMT ISO-4) | PINPROT (ENCRYPT REFORMAT NOFLDFMT ISO-4) | F | ||||
Note:
|
For AES keys, the AES KEK must be at least as strong as the key being generated to be considered sufficient strength.
For HMAC keys, the AES KEK must be sufficient strength as described in the following table:
Key-usage field 2 in the HMAC key contains | Minimum strength of AES KEK to adequately protect the HMAC key |
---|---|
SHA-256, SHA-384, or SHA-512 | 256 bits |
SHA-224 | 192 bits |
SHA-1 | 128 bits |
generated_key_identifier_1 | generated_key_identifier_2 | key_form | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
key_type_1 | KUF 1 high-order byte | KUF 2 high-order byte | KUF 3 high-order byte | key_type_2 | KUF 1 high-order byte | KUF 2 high-order byte | KUF 3 high-order byte | OPOP OPIM IMIM | OPEX IMEX | EXEX | OP EX IM |
When using Key Generate2 to generate one or two DK keys that have DKPINOP, DKPINOPP, DKPINAD1, or DKPINAD2 on in key-usage field 3 of at least one skeleton key-token, the following table rows show the valid key usage for each DK key and the required access control command required for each key_form keyword. | |||||||||||
PINPROT | ENCRYPT | Any usage | DKPINOP | PINPROT | DECRYPT | Any usage | DKPINOP | % | x | ||
PINPROT | DECRYPT | Any usage | DKPINOP | PINPROT | ENCRYPT | Any usage | DKPINOP | % | |||
PINPROT | ENCRYPT | Any usage | DKPINOP | CIPHER | DECRYPT | Any usage | No DK user | % | * | ||
CIPHER | DECRYPT | Any usage | No DK user | PINPROT | ENCRYPT | Any usage | DKPINOP | % | |||
PINPROT | ENCRYPT | Any usage | DKPINAD1 | PINPROT | DECRYPT | Any usage | DKPINAD1 | % | & | ||
PINPROT | DECRYPT | Any usage | DKPINAD1 | PINPROT | ENCRYPT | Any usage | DKPINAD1 | % | |||
MAC | GENONLY | Any usage | DKPINOP | MAC | VERIFY | Any usage | DKPINOP | % | x | ||
MAC | VERIFY | Any usage | DKPINOP | MAC | GENONLY | Any usage | DKPINOP | % | |||
MAC | GENONLY | Any usage | DKPINAD1 | MAC | VERIFY | Any usage | DKPINAD1 | ~ | ~ | ||
MAC | VERIFY | Any usage | DKPINAD1 | MAC | GENONLY | Any usage | DKPINAD1 | ~ | |||
MAC | GENONLY | Any usage | DKPINAD2 | MAC | VERIFY | Any usage | DKPINAD2 | % | $ | ||
MAC | VERIFY | Any usage | DKPINAD2 | MAC | GENONLY | Any usage | DKPINAD2 | % | |||
PINPRW | GENONLY | Any usage | DKPINOP | PINPRW | VERIFY | Any usage | DKPINOP | x | x | ||
PINPRW | VERIFY | Any usage | DKPINOP | PINPRW | GENONLY | Any usage | DKPINOP | x | |||
PINCALC | GENONLY | Any usage | DKPINOP | # | |||||||
The symbols in the key_form columns are as follows:
|
The DKPINAD1 MAC keys are special. They are the only keys listed as needing no special permission to be generated as OPOP, OPIM, or IMIM pairs. Those keys are needed for generating and verifying the value EPB_M_FUS in some DK functions. Those functions run on the same system (Generating Unit) and are the only functions that use the DKPINAD1 keys. Since the entire key pair is required on the same system, special permission should not be needed in order to generate a complete key pair on the same system.
DKPINAD2 MAC key pairs can be generated with GENONLY and VERIFY key usage in key form OPOP, OPIM, and IMIM (those formats that render possible the existence of the entire key pair on one system) only with an appropriate access control point (%) set.