• S32K的Csec硬件安全模块计算CMAC


    通过实际操作发现,完全相同的形式(同样的flash起始地址和同样的size),不同的API去计算CMAC(not Boot-MAC)的值,得到的结果显然是不一样的。

    原因如下:
    CSEC_DRV_GenerateMAC 这个API是按照每次1字节去读取数据的。
    CSEC_DRV_GenerateMACAddrMode 猜想这个API是按照每次4个字节去读取数据的。

    因为S32K系列的MCU是little-endian模式(默认情况下)。一个0x12345678的十六进制数被认为是[0x78, 0x56, 0x34, 0x12]。不同的角度去读取数值,得到的结果是不一样的。

    也就是说,完全相同的形式(同样的flash起始地址和同样的size),得到的结果必定是不一样的。但是用户可以从不同的角度去“解读”计算得到的结果,可以认为两者都是对的。

    所以结果不一致在这个芯片下是“正常”的。

  • 相关阅读:
    IDEA下同时使用Git和svn
    IDEA进行activiti-archetype-unittest脚手架的安装
    正则表达式
    关于JS堆栈与拷贝
    按值传递--
    JS---变量、作用域和内存问题
    laod
    待解决
    闭包2
    闭包1
  • 原文地址:https://www.cnblogs.com/praiseslow/p/16147641.html
Copyright © 2020-2023  润新知