如果OTP被编程,配对会失败

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
Bojanpotocnik.
离线
最后一次露面:3周6天前
加入:2019-11-26 11:41
如果OTP被编程,配对会失败

你好,

我们的应用程序基于BLE_APP_ALL_IN_ONE,一切正常工作(PC,Android,iOS设备,user_cfg_feat_sec_req在DA14580DEVKT-P_VC开发期间,在开发期间设置为GAP_SEC1_SEC_PAIR_ENC或GAP_SEC1_AUTH_PAIR_ENC),但在部署在现有板上时,配对停止工作。

如果user_cfg_feat_sec_req设置为gap_sec1_auth_pair_enc,则该配对将失败:
>状态BLE_GAP_SEC_STATUS_CONFIRM_VALUE使用状态失败

如果user_cfg_feat_sec_req设置为gap_sec1_sec_pair_enc,则该配对将失败:
>状态BLE_GAP_SEC_STATUS_DHKEY_FAILURE使用State验证失败

借助许多DA14585_WLCSP34和DA14585_QFN40 Dautheboards,我们找到了原因:使用相同的FW和SmartSnippets Toolbox - Booter,我们发现所有具有OTP编程的失败配对过程的Dautheboard,以及带有空OTP的所有Dauthebles都成功配对。

哪个OTP字段/值导致其解决方法是什么?我们无法调试,因为...... OTP,除非我们有100个欺骗力量。

谢谢,
Bojan.

设备:
PM_DIALOG.
离线
最后一次露面:2天7小时前
职员
加入:2018-02-08 11:03
嗨bojanpotocnik,

嗨bojanpotocnik,

谢谢你的问题在线。请阅读OTP标题,您将看到没有任何与安全性相关的文件。此行为与OTP无关。是否有可能使用BLE嗅探器并共享日志文件,以便我们可以了解在空中发生的事情?

谢谢,PM_DIALOG.

Bojanpotocnik.
离线
最后一次露面:3周6天前
加入:2019-11-26 11:41
事实证明它不是

事实证明,它不是OTP的直接错误。

正如评论中在此C代码片段中,如果OTP未编程,则CFG_NVDS_TAG_BD_ADDRESS将用于获取BD地址值。它只是恰好CFG_NVDS_TAG_BD_ADDRESS的值与我们的测试BD地址相同,因此它永远不会实际更改。

当我们开始实际设置真实的BD地址时,CFG_NVDS_TAG_BD_ADDRESS的值不正确,并且在运行时更改地址 - 导致配对失败,如单独的问题中所述 -更改设备BD地址后配对失败。因此,当FW在具有OTP未编程的生产设备上运行时,通过命令设置BD地址 - 导致配对失败。但是,当使用OTP编程的DAUTHEBLES测试时 - OTP中的地址与我们的测试地址(与CFG_NVDS_TAG_BDDRESS相同)不同,再次触发地址更改(将其更改为我们的测试地址) - 将失败进行对。

它没有帮助将CFG_NVDS_TAG_BD_ADDRESS设置为所有0(CO_NULL_BDADDR),行为是相同的。如果更改NVDS_GET_FUNC以返回NVDS_FAIL,则默认对话框BT地址应用于ROM(A8:89:67:45:...)。

PM_DIALOG.
离线
最后一次露面:2天7小时前
职员
加入:2018-02-08 11:03
嗨Bojan,

嗨Bojan,

我们已从论坛中聘请了这条脱机 - 在您的注册地址发送了一封电子邮件。

谢谢,PM_DIALOG.