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.

[参考译文] CC2745R10-Q1:GAPBond ECCKeys () 中的 Mgr_Generate 密钥生成

Guru**** 2507315 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1536902/cc2745r10-q1-ecc-key-generation-in-gapbondmgr_generateecckeys

器件型号:CC2745R10-Q1


工具/软件:

您好、

您能告诉我们以下内容吗?

在“simplelink_lowpower_f3_SDK_9_10_00_83"中“中按照以下顺序执行 ECC 密钥生成、但 ECC 密钥生成尚未完成。

(1) 接收 GAP_DEVICE_INIT_DONE_EVENT(器件初始化完成)

(2) 使用 GAPBond.EccKeys () 生成 Mgr_Generate 密钥(生成结果:成功)

(3) 我们没有收到 GAPBOND_GENERATE_ECC_DONE 的通知

对于 simplelink_cc13xx_cc26xx_sdk_6_30_01_03、GAPBOND_GENERATE_ECC_DONE 按上述相同顺序收到通知。

是否应该在单独的事件中执行 ECC 密钥生成?

■参考资料

C:\ti\simplelink_lowpower_f3_sdk_9_10_00_83\source\ti\ble\host\gapbondmgr\gapbondmgr\gapbondmgr.c src

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

    您好:

    您需要  将 BLEAPPUTIL_GENERATE_ECC_DONE 事件添加到您的配对事件处理程序中:

    BLEAppUtil_EventHandler_t PairingPairStateHandler =
    {
        .handlerType    = BLEAPPUTIL_PAIR_STATE_TYPE,
        .pEventHandler  = Pairing_pairStateHandler,
        .eventMask      = BLEAPPUTIL_PAIRING_STATE_STARTED |
                          BLEAPPUTIL_PAIRING_STATE_COMPLETE |
                          BLEAPPUTIL_PAIRING_STATE_ENCRYPTED |
                          BLEAPPUTIL_PAIRING_STATE_BOND_SAVED |
                          BLEAPPUTIL_GENERATE_ECC_DONE,
    };
    

    您可以在    basic_ble  工程中的 app_pairing.c 文件中找到此代码。

    此致、

    Nima Behmanesh

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

    您好、

    我们的工程不使用 BLEAppUtil。我们未使用 BLEAppUtil、而是尝试使用 GAPBondMgr 回调函数接收 ECC 密钥生成完成通知 (GAPBOND_GENERATE_ECC_DONE)。
    添加 BLEAppUtil 需要进行重大更改、因此我们想避免这种情况。 我们正在考虑一种只使用 GAPBondMgr 函数即可实现此目的的方法。

    步骤 A:ECC 密钥生成未完成

    1.使用 Mgr_Register () 注册回调函数。
    2.当 iCall 事件 GAP_DEVICE_INIT_DONE_EVENT 发生时,调用 GAPBond Mgr_Generate EccKeys()。
    3.不通知回调函数 GAPBOND_GENERATE_ECC_DONE。

    步骤 B:ECC 密钥生成完成

    1.使用 Mgr_Register () 注册回调函数。
    2.发生 iCall 事件 GAP_DEVICE_INIT_DONE_EVENT 时不执行任何操作。
    3.通过 Mgr_Generate 进行连接,当 iCall 事件 GAP_LINK_RESIDEND_EVENT 发生时,调用 GAPBond BEccKeys ()。
    4.回调函数接收 GAPBOND_GENERATE_ECC_DONE 通知。

    如果只通过 GAPBondMgr 回调函数接收到 ECC 密钥生成完成通知、那么在 GAPBond.EccKeys () 在 GAP_DEVICE_INIT_DONE_EVENT 发生后立即调用 Mgr_Generate、是否存在阻止完成 ECC 密钥生成的限制?

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

    你好、Nakamura-San、  

    ECC 密钥在建立连接并发起配对后生成。 这就是建立连接后该函数按预期工作的原因。

    当您尝试在 GAP_Devic_init_done_event 之后生成 ECC 密钥时、没有连接、GAP 层刚刚完成初始化。 由于没有连接、因此没有要生成的密钥。  

    此外、仅当连接中的两个器件都启用了绑定时、才会生成 ECC 密钥。  

    谢谢、
    Isaac