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.

[参考译文] AM625:Keyrev API - Keywriter

Guru**** 2392905 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494163/am625-keyrev-api---keywriter

器件型号:AM625

工具/软件:

尊敬的团队:

我一直在努力更新安全器件上的 KEYREV 值、以应对需要使主密钥无效的情况。

出于测试目的、我已经刷写了示例中提供的密钥(使用一个同时包含 SMPK 和 BMPK 的简短示例生成了证书)。

此外、我还实施了keyrevkeycnt的读取 API、这种 API 运行良好。

现在、我想实现的写入 API forkeyrev (TISCI_MSG_WRITE_KEYREV)、它需要3个输入参数:( keyvalue、 cert_addr_lo (u32):、(u32)) cert_addr_hi 。

我的问题是:使用一短格式创建我自己的证书时、在哪里可以找到这些地址? 如何找到较低和较高的32位地址?

 

谢谢。此致、

- RJ

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

    您好:

    请参阅以下示例:

    https://github.com/TexasInstruments/mcupsdk-core-k3/tree/k3_main/examples/otp/runtime_keyrev/

    BR, Prashant

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

    您好、Prashant、

    感谢您的示例!、

    我已经卸载了 Keywriter、已经生成了双签名证书 根据示例(dual_cert_keyrev.h)、如何生成双签名证书?

    附加我用于创建 Keywriter 的步骤、

    1 ./gen_keywr_cert.sh -g
    2 /gen_keywr_cert.sh -t tifek/ti_fek_public.pem --msv 0xC0FFE -b keys/bmpk.pem 
    --bmek keys/bmek.key -s keys/smpk.pem --smek keys/smek.key --keycnt 2 --keyrev 1
    3 python3 ../../../../../tools/bin2c/bin2c.py final_certificate.bin keycert.h KEYCERT
    4  make -sj PROFILE=debug
    Im using a custom board , so i edited vpp function .

    Unknown 说:
    我的问题是:使用一短格式创建我自己的证书时、在哪里可以找到这些地址? 如何找到较低和较高的32位地址?

    此致、

    RJ

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

    您好:

    Unknown 说:
    如何找到较低和较高的32位地址?

    这只是包含双签名证书的数组的基地址。

    KEYREV 更新示例现在也集成在 SDK 中:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/11_00_00_16/exports/docs/api_guide_am62x/EXAMPLES_RUNTIME_KEYREV.html

    此致、

    Prashant

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

    您好 Prashant、

    我遇到了一个使用 Python 脚本生成双签名证书的示例。 此脚本会创建一个名为 dual_cert_keyrev.bin 的文件、然后该文件被转换为 dual_cert_keyrev.h
    我将此过程与 Keywriter 进行比较、它会生成一个 final_certificate.bin、然后将其转换为 keycert.h keycert.h 包含 smpk 和 bmpk 哈希值。

    keycert.h 和 dual_cert_keyrev.h 是否基本上是同一个文件?

    正如我提到的、我使用 PTA 从 Linux 应用程序编写 keyrev。 您能否说明高32位和低32位地址的来源? 我已经使用 sblkeywriter 生成了双签名证书。 希望我的问题很清楚、我在这里遗漏了什么吗? 您能说明一下这一点吗?

    谢谢。此致、

    - RJ

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

    您好:

    keycert.h 和 dual_cert_keyrev.h 基本上是同一个文件吗?

    不、它们并不相同。 前一个证书(keycert.h)用于密钥写入、而后一个证书(dual_cert_keyrev.h)用于 keyrev 更新。

    您能说明高32位和低32位地址的来源吗?

    我已在上一次的回应中解释过这点。

    这只是包含双签名证书的数组的基址。

    以下常见问题解答包含用于 keyrev 更新的 OPTEE 补丁。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487308/faq-sysfw-api-on-key-revoke-in-optee-on-am62x

    您只需在应用常见问题解答中的补丁后生成双签名证书并构建 OPTEE。

    BR, Prashant