一、前言
本篇会延续上一篇文章“手把手教你:BLE 传统配对 Pairing Confirm 指令深度解析”的内容,主要讲解配对第二阶段中的Pairing Confirm指令中的Confirm Value。
备注:本文采用的配对方式为为传统配对(LE legacy pairing)Just Work方式,也就是最低等级的加密配对。主要针对设备双方都没有输入和输出能力的时候,所谓没有输入和输出能力,也就是没有键盘和显示屏。
二、阅读说明
1、泰凌微芯片学习者,前期使用过该芯片。
2、能够知道怎么进行创建工程,下载代码。
3、有一块开发板,板上的芯片可以是8251,8253或者8258。
三、正文
1、使用的SDK
使用的sdk和demo为该篇文章描述的“手把手教你:BLE设备如何和手机进行加密配对绑定”;
2、配对第二阶段所处的位置
3、Pairing Confirm报文结构
该报文结构由一个code值和Confirm Value的值产生,其中code为0x03占据一个字节,Confirm Value占据16个字节。
4、Confirm Value详解
4.1、主机产生的Mconfirm
如上图所示,Mconfirm是由c1算法的来的,其中c1算法需要传入以下内容:
- TK,这里的TK为0
- Mrand:主机产生的随机数,128 bit
- Pairing Request command:配对请求命令,56 bit
- Pairing Response command:配对响应命令,56 bit
- initiating device address type:主机地址类型,1 bit
- initiating device address:主机地址,48 bit
- responding device address type:从机地址类型,1bit
- responding device address:从机地址,48 bit
4.2、主机产生的Sconfirm
如上图所示,Sconfirm是由c1算法的来的,其中c1算法需要传入以下内容:
- TK,这里的TK为0
- Srand:从机产生的随机数,128 bit
- Pairing Request command:配对请求命令,56 bit
- Pairing Response command:配对响应命令,56 bit
- initiating device address type:主机地址类型,1 bit
- initiating device address:主机地址,48 bit
- responding device address type:从机地址类型,1bit
- responding device address:从机地址,48 bit
由4.1和4.2可以看出,Mconfirm和Sconfirm的计算方法都是一样,其中只有一个数据不一样就是Mrand和Srand。
五、结尾
本篇讲解了Pairing Confirm指令中的Confirm Value值的计算方法,下一篇讲解Mrand和Srand。
175