Introduction to TR-31 symmetric key management

The format of a TR-31 key block has been standardized in ANSI X9.143-2022 and was originally defined in ASC X9 TR 31-2018: Interoperable Secure Key Exchange Block Specification.

The TR-31 key block is a format defined by the ANSI Standards Committee to support interchange of symmetric keys in a secure manner and with key attributes included in the exchanged data. CCA supports the management of DES keys, AES keys, and HMAC keys using TR-31. Table 1 lists the verbs and shortly describes the provided services. You can read an explanation of TR-31 and a detailed description of each of the available verbs in TR-31 symmetric key management. Additionally, TR-31 key block header and optional block data describes the TR-31 key block header format and contains information about TR-31 optional block data.
Table 1. TR-31 symmetric key management verbs
Verb Page Service Service location
TR31 Key Create TR31 Key Create (CSNBT31C) Generates AES, DES, and HMAC keys in TR-31 blocks or creates a skeleton TR-31 key block header, as defined in the ANSI X9.143 specification. cryptographic engine
TR31 Translate TR31 Translate (CSNBT31X) Translates a CCA external or internal symmetric key token, converting it into an external X9 TR-31 key block format. Also translates a TR-31 internal key token, converting it into an external TR-31 key token. Or translates a TR-31 external key token into an internal or another external TR-31 key token. cryptographic engine
TR31 Key Import TR31 Key Import (CSNBT31I) Imports an external X9 TR-31 key block, converting it into a CCA external or internal symmetric key-token. cryptographic engine
TR31 Key Token Parse TR31 Key Token Parse (CSNBT31P) Parses the information from the standard predefined fields of the TR-31 key block header without importing the key. security API host software
TR31 Optional Data Build TR31 Optional Data Build (CSNBT31O) Constructs the optional blocks of a TR-31 key block, one block at a time. security API host software
TR31 Optional Data Read TR31 Optional Data Read (CSNBT31R) Obtains the contents of any optional fields of a TR-31 key block header. security API host software