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.

[参考译文] CC3220SF:OTA 捆绑包私钥错误:密钥文件错误

Guru**** 2481535 points
Other Parts Discussed in Thread: UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1355129/cc3220sf-ota-bundle-private-key-error-wrong-key-file

器件型号:CC3220SF
主题中讨论的其他器件:UNIFLASH

您好!

尝试实施 OTA 更新。 mcuflashimg.bin 已签名并成功通过 UART 刷写 OTP 和供应商目录。 功能、不会出现任何安全/证书问题。
当我尝试通过 OTA 进行刷写时、该过程失败、并显示 OtaArchive status=-20199。 我认为这是因为 OTA 是在没有安全/私钥的情况下创建的。 尝试使用供应商私钥创建 OTA 时、失败并显示"Error:Create Basic OTA Error:Wrong key file"。

我正在使用

SExplosink SDK 6.10

UniFlash 8.6

创建 OTA

我应该使用哪个键?  

谢谢!

塞巴斯

蒂安
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请阅读 OTA 文档(具体请参阅  /docs/simplelink_mcu_sdk Over_The_Air_Update_Guide)。

    安全映像证书只能使用 ECC 密钥(secp256r1椭圆曲线私钥)、因为使用 不支持 RSA 的 CC32xx 加密实用程序验证完整的图像真实性-请参阅"程序员指南"的第17章中的更多详细信息(代码可在 /source/ti/net/ota/source/ota_archive.c)。

    若要启用此功能、您还需要在尝试加载映像之前将证书编程到 CC32xx 文件系统(将其命名为 dummy_ota_vendor_cert.der"或更改定义"ota_archive、c")。

    对于开发,您可以使用" /tools/cc32xx_tools/ota-example-cert /"。 对于生产、您将需要基于支持椭圆曲线创建密钥对。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Kobi、

    我明天会检查一下假日。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kobi 为了进行测试、我使用了虚拟 OTA 密钥和证书、将证书添加到了供应商证书目录中。 虚拟 OTA 证书包含在用户文件中、otaArchive.c ota_certificate_name 根据 OTA 证书进行修改。 可通过 Uniflash 刷写该器件以更新证书目录。
    已成功创建 OTA 映像。 OTA 更新本身在-20199版本下仍然失败。
    是否有必要通过供应商密钥对 OTA 证书签名?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不可以。 OTA 证书必须为自签名(root)。

    如果已更改   OTA_CERTIFICATE_NAME -您将需要重新编译 OTA 库(在编译应用之前)。  

    在构建 OTA 库之前、还请取消注释"otauser.h"中的"#define sl_enable_ota_debug_traces"-这将添加一些日志。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我做了这两件事。 但是、我注意到调试信息仅在刷写映像时显示在控制台中、而不是在 JTAG 调试期间显示。 我现在已经取得了进展,能够追溯到过时和无效的服务器数据和一个错误的代码中没有停止过程,尽管没有.tar 文件。 使用虚拟 OTA 密钥/证书、它现在可以运行了! 但是、我现在正忙于处理我自己的密钥/认证。 OTA 会以-12291出现故障。 以下是我生成密钥的方式:

    openssl ecparam -名称 secp256k1 - genkey - noout -out ota_key.pem

    我在证书中生成了 CN = OTA_CERT:

    openssl req -extensions v3_ca -key ota_key.pem -new -x509 -days 3650 -out ota_cert -outform der -nodes

    你有什么提示吗?

    非常感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尝试使用 secp256r1而不是  secp256k1 。

    openssl ecparam -名称 secp256r1 - genkey - noout - outform der - out key.der

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    太垃圾了!  就是这样! 现在它可以工作了! 感谢您的观看和耐心等待!

    此致
    塞巴斯

    蒂安