验签流程
固件的验签流程如下图所示。
该流程具体描述如下:
- 公钥校验:用户通过GProgrammer将RSA_Public_Key传递给Application Image。下载Application Image到Flash后,RSA_Public_Key将与eFuse中的RSA_PUBLIC_KEY_HASH进行校验。eFuse具有一次性烧写特性,因此在更新、升级等过程中,Application Image中的RSA_Public_Key生成的HASH值与eFuse中存储的RSA_PUBLIC_KEY_HASH必须保持一致,否则校验将无法通过。
- 验证签名:芯片使用RSA_Public_Key对固件的签名进行解密,以获得解密后的HASH值,并对Application Image进行单向散列函数计算得到HASH值。对比解密后的HASH值和单向散列函数计算得到的HASH值,如果结果一致则验签通过。