我正在尽可能密切地跟踪连接管理器。它显示了一个如下的保证请求:
//开始配对/粘合
==>[13:34:39.042]发送<====
Src Task:0x3f(任务应用程序)
Dst任务:0xe(任务\u GAPC)
消息Id:0x3812(GAPC\u BOND\u CMD)
Oob:0x0
Io帽:0x3
身份验证:0x1
密钥大小:0x10
iKey距离:0x1
rKey距离:0x1
秒请求:0x0
有效载荷:12 38 0e 00 3f 00 08 00 0b 03 00 01 10 01 00
据我所知,有效负载中的0x0b是命令GAPC\u BOND的命令操作GAPC\u BOND\u CMD。在连接管理器中,将收到以下两个响应:
==>[13:34:40.656]接收<====
Src任务:0x000e(任务\u GAPC)
Dst任务:0x003f(任务应用程序)
消息Id:0x3815(GAPC\U BOND\U IND)
信息:0x7
数据.auth:0x30
数据.原因:0x30
==>[13:34:40.676]接收<====
Src任务:0x000e(任务\u GAPC)
Dst任务:0x003f(任务应用程序)
消息Id:0x3813(GAPC\U BOND\U REQU IND)
请求:0x7
授权请求:0x10
密钥大小:0x10
tk\ U型:0x10
有效载荷:13 38 3f 00 0e 00 02 00 07 10
第一种方法是至少在您相信info值7=GAPC\u LTK\u EXCH的情况下呈现LTK。
我做了完全相同的事情,因为我可以告诉在我的债券申请,但我得到了一个非常不同的结果;而不是一个GAPC\u LTK\u EXCH我得到了一个GAPC\u IRK\u EXCH(和我没有得到一个GAPC\u债券要求在所有)!
这是我的要求:
结构gapc\u bond\u cmd*bond\u cmd=KE\u MSG\u ALLOC(gapc\u bond\u cmd,
创建ID(任务GAPC,设备->conidx),任务应用程序,
gapc债券(cmd);
arch_printf(“\r\n在时间%u开始配对和绑定”,lld_evt_time_get());
bond\u cmd->operation=GAPC\u bond;//这是0x0b
债券指令->配对.oob=GAP\u OOB\u AUTH\u DATA\u NOT\u PRESENT;//这是0x00
债券指令->配对.iocap=GAP\u IO\u CAP\u NO\u INPUT\u NO\u OUTPUT;//这是0x03
债券指令->配对.auth=GAP\u AUTH\u REQ\u NO\u MITM\u BOND;//这是0x01
债券指令->配对密钥大小=16;//这是0x10
债券指令->配对.ikey\u区=GAP_KDIST_IDKEY;//分发中的加密密钥0x01
债券指令->配对.rkey\u区=GAP_KDIST_IDKEY;//不确定这是什么,但也是0x01
债券指令->需要配对.sec\u=GAP_NO_SEC;//最低设备安全要求为0x00
发送消息(bond命令);
其中GAP_KDIST_IDKEY=1。据我所知,这个请求和连接管理器中显示的请求没有区别(下面重复)
Src Task:0x3f(任务应用程序)
Dst任务:0xe(任务\u GAPC)
消息Id:0x3812(GAPC\u BOND\u CMD)
Oob:0x0
Io帽:0x3
身份验证:0x1
密钥大小:0x10
iKey距离:0x1
rKey距离:0x1
秒请求:0x0
有效载荷:12 38 0e 00 3f 00 08 00 0b 03 00 01 10 01 00
解决了我自己的问题。我没有,另一双眼睛有。GAP\u KDIST\u IDKEY应该是GAP\u KDIST\u ENCKEY。我看了多少天没看到?
嗨,布莱恩,
你能告诉我这个案子用的是什么源代码吗?以及如何使用连接管理器来获取索引。真的,我正在研究DSP的源代码,但我不知道如何使用连接管理器来获得键合的索引。
谢谢和问候,
蓝色