ZHCAAD3A September   2020  – June 2026 F29H850DM , F29H850TU , F29H859TU-Q1 , F29P329SM-Q1 , F29P589DM-Q1 , F29P589DU-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.   摘要
  3.   商标
  4. 1 简介
  5. 2 安全闪存启动概述
  6. 3 CMAC 身份验证
  7. 4 安全闪存启动选项
  8. 5 安全闪存启动流程
  9. 6 C2000Ware 示例详细信息
  10. 7 对超过 16KB 的闪存代码进行身份验证
  11. 8 调试资源
  12. 9 其他信息和注意事项
  13. 10C2000 CMAC 算法与 OpenSSL 的对齐
    1. 10.1 C28x 存储器和二进制文件字节顺序
    2. 10.2 闪存二进制字节顺序
    3. 10.3 CMAC 密钥字节顺序
    4. 10.4 CMAC 输出对齐流程
    5. 10.5 工作示例
    6. 10.6 差异总结
  14. 11参考文献
  15. 12修订历史记录

C2000 CMAC 算法与 OpenSSL 的对齐

C2000™ 十六进制实用程序 (hex2000) 会对消息数据(在 CMAC 计算之前)以及生成的身份验证标签(在嵌入闪存映像之前)应用一种专有的字节重排变换,本文档通篇将其称为“swapwords”。节 10.2 对此进行了详细介绍。

由于 OpenSSL 的 AES-128-CMAC 实现方案直接操作未经修改的连续字节流,不进行任何此类重排,因此在原始二进制文件上直接调用 openssl dgst -mac cmac 命令所产生的输出将与 C2000 生成的金标 CMAC 标签不匹配。本节介绍了使 OpenSSL 输出与 C2000 对齐所需的精确操作序列,使开发人员能够使用标准的开源加密工具独立验证或复现金标 CMAC 标签。

请注意、此对齐过程旨在用于开发和验证工作流程,并非替代 hex2000 实用程序来生成生产映像。有关 hex2000 --cmc 标志和密钥文件格式的详细信息,请参阅 [3] 和 [4]。