Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
CAN/CSA-ISO/IEC 11889-4:16, officially titled Information technology — Trusted Platform Module Library — Part 4: Supporting Routines, specifies the low-level cryptographic and utility functions that enable the operation of a Trusted Platform Module (TPM). This standard is the Canadian adoption of ISO/IEC 11889-4:2015, which itself is identical to the Trusted Computing Group’s TPM 2.0 Library Part 4. The routines covered include hashing, HMAC, symmetric encryption, random number generation, parameter encryption, and session management. Every TPM command relies on one or more of these supporting routines, making Part 4 essential for any compliant TPM 2.0 implementation. The standard targets developers of TPM firmware and software stacks, ensuring interoperability across platforms and applications, such as secure boot, disk encryption, and platform attestation.
The standard defines precise algorithms, data structures, and function prototypes for each supporting routine. Implementors must adhere to the following key requirements:
All function prototypes use C-language bindings with explicit context structures to support multiple concurrent sessions. The standard also specifies error codes and state transitions for each routine to ensure robust error handling.
| Routine Category | Algorithms | Key Lengths (bits) | Approval Status |
|---|---|---|---|
| HASH | SHA-256, SHA-384, SHA-512 | N/A | Mandatory |
| HMAC | HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512 | 256–512 | Mandatory |
| Symmetric Encryption | AES-128-CBC, AES-256-CBC, AES-128-CFB, AES-256-CFB | 128, 256 | Mandatory |
| RNG | Hash_DRBG, HMAC_DRBG, CTR_DRBG | N/A | Mandatory (at least one) |
| Parameter Encryption | XOR, AES-CFB | 128, 256 | Conditionally mandatory |
Table 1: Summary of core supporting routine categories and their algorithms as specified in CAN/CSA-ISO/IEC 11889-4:16.
Developing a compliant implementation requires careful attention to both security and interoperability. The standard mandates side-channel resistance for all routines that handle secret keys, especially AES and HMAC. Context structures must be initialised securely and wiped after use to prevent key leakage. The use of enumeration types for algorithm selection allows the TPM to be extensible while maintaining backward compatibility. Implementation should follow the exact function naming and parameter ordering given in the standard to avoid deviations that could break conformance tests. The standard also specifies how supporting routines interact with the command dispatcher, including the handling of session-based authorisation and parameter encryption. To reduce development effort, teams can wrap existing cryptographic libraries, but must validate that the wrapping layer meets all interface and error-handling requirements.
To claim compliance with CAN/CSA-ISO/IEC 11889-4:16, an implementation must pass the relevant conformance tests provided by either the Trusted Computing Group (TCG) or an accredited certification body. In Canada, certification is typically coordinated through the Standards Council of Canada or recognised laboratories such as those accredited by the Canadian Association for Laboratory Accreditation (CALA). A full compliance assessment covers:
The standard includes informative annexes with guidance on integration, but these are not normative. Any deviation from the normative text—such as using different algorithm identifiers or omitting required functions—will invalidate compliance. Since the standard is adopted unchanged from the ISO/IEC version, global certification is generally accepted.
Article published 2026. This content is for informational purposes and should be verified against the official CAN/CSA-ISO/IEC 11889-4:16 document for precise requirements.