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.

[参考译文] CC2630:TIMAC 中的 CC26XX 加密:CBC AES

Guru**** 665180 points
Other Parts Discussed in Thread: CC2630, TIMAC, CC2650
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1250392/cc2630-cc26xx-crypto-in-timac-cbc-aes

器件型号:CC2630
主题中讨论的其他器件: TIMAC、CC2650

这适用于现有产品、因此我在硬件、软件或使用的加密类型方面没有灵活性。

我正在为需要 CBC AES 功能的 CC2630编写一个应用程序。 尽管硬件支持这一功能、但 ICall 库以及底层 CryptoCC26XX 库似乎并不支持这一点。

/*!
 *  @brief    CryptoCC26XX Operation Type
 *
 *  This type holds the CryptoCC26XX operation.
 *
 *  Currently supported types are
 *  ::CRYPTOCC26XX_OP_AES_CCM, ::CRYPTOCC26XX_OP_AES_CCMINV,
 *  ::CRYPTOCC26XX_OP_AES_ECB, ::CRYPTOCC26XX_OP_AES_CCM_NOCRYPT,
 *  ::CRYPTOCC26XX_OP_AES_CCMINV_NOCRYPT and ::CRYPTOCC26XX_OP_AES_ECB_NOCRYPT.
 */
typedef uint8_t CryptoCC26XX_Operation;

...

#define CRYPTOCC26XX_OP_AES_CCM            0  /*!< AES-CCM Operation with Cryptation           */
#define CRYPTOCC26XX_OP_AES_CCM_NOCRYPT    1  /*!< AES-CCM Operation without Cryptation        */
#define CRYPTOCC26XX_OP_AES_CCMINV         2  /*!< AES-CCM Inverse Operation with Cryptation   */
#define CRYPTOCC26XX_OP_AES_CCMINV_NOCRYPT 3  /*!< AES-CCM Inverse Operation without Cryptation*/
#define CRYPTOCC26XX_OP_AES_ECB            4  /*!< AES-ECB Operation with Cryptation           */
#define CRYPTOCC26XX_OP_AES_ECB_NOCRYPT    5  /*!< AES-ECB Operation without Cryptation        */

此应用将有一个需要进行 CBC AES 加密和解密的单个调用方(唯一一个会使用加密功能的调用方)。 我应该如何通过库或按照 TI-RTOS 友好约定自行实现这一点?

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

    Daniel、您好!

    TI-RTOS 在 其 TI-RTOS 驱动程序运行时 API 文档中记录了加密实现。

    此致、
    瑞安

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

    此版本适用于2_21_00_04、我遇到 tirtos_simplelink_2_11_01_09、该版本使用 cc26xxware_2_20_06_14829和 cc26xxware_2_00_06_14829 (清单中仅列出了2_20_06_14829)。 看起来这些功能是在稍后添加的、而 TIMAC 未更新。

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

     tirtos_simplelink_2_11_01_09/docs/doxygen/html/_crypto_c_c26_x_x_8h.html 是否无效?  我刚才说的是易于访问的在线版本、但 TI-RTOS 2.11版中仍应提供 Crypto TI 驱动程序、源代码为 tirtos_simplelink_2_11_01_09\packages\ti\drivers\crypto

    此致、
    瑞安

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

    它是有效的、但是该版本中支持的操作缺少与我发布的代码一致的 CBC 操作。

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

    您可以尝试 使用较新版本来更新 TI 驱动程序文件(特别是 Crypto、CryptoCC26XX.c/h)、并将其直接放在您的应用项目工作区内、这样它们就会覆盖原始预构建的 TI 驱动程序。

    此致、
    瑞安

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

    这可能是最好的选择、谢谢。

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

    我能够使用新功能添加 CBC 加密、方法是在 crypto.c、crypto.h、CryptoCC26xx.c 和 CryptoCC26xx.h 的相关部分中进行传播(文件非常接近足以使用差异工具、但确实需要进行一些调整才能编译)。 我从 CC2650 MSA 示例开始、值得注意的是、我不使用其所具有的加密 ICall 接口、我不知道将加密模块与无线电一起使用是否需要使用、因为我不是以这种方式使用。

    原始消息(我意外点击了"这是我的答案"、因此我进行了编辑、而不是再次发布):

    也许有一种方法可以使这项工作发挥作用、但并不简单。 添加相关文件并将其移植到编译器会导致引导崩溃。 第一个具有 CBC 命令 (2.20.00.06)的版本是从"SimpleLink 无线 MCUs"转换到"CC13xx/CC26xx"之后、很多内容似乎发生了变化。 很多电源接口似乎已经从芯片 ROM 转移到定义的代码中、我不知道如何集成它(即使我没有方法投入生产)

    我的另一个选项是一起破解、只是直接操作我希望避免的寄存器。 也许我只能添加我需要的内容到我的当前版本文件,并以同样的方式覆盖它们... 无论哪种方法、我都会更新该主题帖、使其具有最终的功能。