大家好、
下载具有有效签名的 Tar 文件时、通过 OtaArchive_Process 函数对该文件进行分区会导致签名失败错误-12291。
关于可能出错的任何提示?
- 谢谢、
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
下载具有有效签名的 Tar 文件时、通过 OtaArchive_Process 函数对该文件进行分区会导致签名失败错误-12291。
关于可能出错的任何提示?
您是否安装了最新的 SP? (修复了 Service Pack 后修复的相关错误)。
您是否对验证所需的证书进行了编程(编程到器件闪存)? 它由 ota_certificate_name (在 ota_archive.c 中)定义、默认为 "dummy_ota_vendor_cert.der"(如果您只对 SDK 中可用的虚拟证书进行编程、则会起作用)。 如果您使用自己自己的自签名证书进行验证、则应更新 OTA_CERTIFICE_NAME 并重建 OTA 库(然后是您的应用程序)。 或者 、您可以在将证书编程到器件闪存时调用"dummy_ota_vendor_cert.der"。
您好、Kobi、
谢谢你。 添加 dummy_ota_vendor_cert.der 解决了第一个错误。 但是、在函数 verifySignature 中、
状态= sl_NetUtilCmd (sl_NETUTIL_crype_CMD_verify_MSG、(_u8 *)&verAttrib、sizeof (SlNetUtilCryptoCmdVerifyAttrib_t)、SigyBuf、SHA256_Digize_Size + verifFileSize、 (_u8 *)&verifyResult、&resultLen);返回-12298 (sl_error_NETUTIL_crypto_General)。 我没有找到有关此错误的说明。 这可以是什么?
BR、
要进行验证,您需要将 tar 文件的所有字节发送到 OtaArchive_process()。 确保您没有跳过任何字节或发送任何复制。
这假设证书(dummy_ota_vendor_cert.der)对应于用于签名映像的私钥(dummy_ota_vendor_key.der)、并符合 OTA 指南(secp256r1椭圆曲线私钥-请参阅)中定义的限制 /docs/simplelink_mcu_sdk/Over_The_Air_Update_Guide.html)。 请使用 dummy_ota_vendor。 在测试您自己的自签名密钥对之前获取 SDK 中的密钥和证书。