SPRACT3A September   2020  – June 2026 F29H850TU , F29H859TU-Q1 , F29P329SM-Q1 , TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Secure Flash Boot Overview
  6. CMAC Authentication
  7. Secure Flash Boot Options
  8. Secure Flash Boot Flow
  9. C2000Ware Example Details
  10. Authenticating Flash Code Beyond 16 KB
  11. Debug Resources
  12. Additional Information and Points to Consider
  13. 10Alignment of C2000 CMAC Algorithm to OpenSSL
    1. 10.1 C28x Memory and Binary File Byte Ordering
    2. 10.2 Flash Binary Byte Ordering
    3. 10.3 CMAC Key Byte Ordering
    4. 10.4 CMAC Output Alignment Procedure
    5. 10.5 Worked Example
    6. 10.6 Summary of Differences
  14. 11References
  15. 12Revision History

CMAC Key Byte Ordering

The 128-bit CMAC key is provisioned in the DCSM Zone 1 OTP as four 32-bit registers (DCSM_Z1_CMACKEY0 through DCSM_Z1_CMACKEY3), where CMACKEY0 holds the most-significant 32 bits and CMACKEY3 holds the least-significant 32 bits.

The hex2000 key text file format concatenates these four values in order from most-significant to least-significant and prepends the "0x" prefix. OpenSSL's -macopt hexkey:<32-hex-key> option accepts the same 32-character hexadecimal string directly, without any additional reordering of the bytes. Table 10-1 illustrates the correspondence between OTP register values, the hex2000 key file format, and the OpenSSL hexkey argument.

Table 10-1 CMAC Key Byte Order Correspondence
OTP Register Value (Example) Role
DCSM_Z1_CMACKEY0 0x2b7e1516 Key bits [127:96] (MSW)
DCSM_Z1_CMACKEY1 0x28aed2a6 Key bits [95:64]
DCSM_Z1_CMACKEY2 0xabf71588 Key bits [63:32]
DCSM_Z1_CMACKEY3 0x09cf4f3c Key bits [31:0] (LSW)
hex2000 key file 0x2b7e151628aed2a6abf7158809cf4f3c Single-line, 0x-prefixed
OpenSSL hexkey 2b7e151628aed2a6abf7158809cf4f3c Same value, no 0x-prefix