YTM32B1HA0在擦除写入硬件KEY以后通过HCU的MAC生成函数,得出的值与第三方软件不一致
-
根据EFM应用手册, 代码如下:

实际得出的MAC值与第三方不一致:

是不是load的硬件key不对?
CUS_KEY寄存器中的match==1


更换字节顺序也无效
demo工程如下
Flash_Demo.zip
调用的写入擦除函数分别是FLASH_DRV_Program FLASH_DRV_EraseSector -
可以参考下述代码
HCU_DRV_GenerateMAC(plainText, 64, MSG_ALL, &cmacConfig); while(hcuState.cmdInProgress); HCU_DRV_GenerateMAC(plainText + 0, 16, MSG_START, &cmacConfig); while(hcuState.cmdInProgress); HCU_DRV_GenerateMAC(plainText + 4, 16, MSG_MIDDLE, &cmacConfig); while(hcuState.cmdInProgress); HCU_DRV_GenerateMAC(plainText + 8, 16, MSG_MIDDLE, &cmacConfig); while(hcuState.cmdInProgress); HCU_DRV_GenerateMAC(plainText +12, 16, MSG_END, &cmacConfig); while(hcuState.cmdInProgress);
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...


,这里做APP验签时,算出的结果与第三方对不上,单算几个byte是可以过的。有靠谱的第三方验签解密的网站吗,数据流一共0x6def0的长度