Start Encryption
2016-03-16 15:00:47 0 举报
Start Encryption
作者其他创作
大纲/内容
是
接收到master发送过来的加密LL_START_ENC_RSP PDU,该设备将构建LL_START_ENC_RSP PDU,并进行加密发送
本地设备是否支持LE Encryption特性?
完成当前数据包的发送以及附加数据包的发送,发送完毕后,将只能接收几种特定的数据包类型
否
构建LL_REJECT_IN D 或LL_REJECT_IND_EXT PDU,并发送给master。
开始
接收到加密过程中的非法数据包,退出Connection State,进入Standby State
连接将继续保持,但是后续的通信将任然使用的数据包不会进行加密。
根据应答包中的SKDs、IVs,和SKDm、IVm计算得出SKD和IV,使用SKD和IV以及Host提供的LTK,使用加密引擎计算出sessionKey。等待接收Slave发来的数据包。
接收到LL_ENC_REQ PDU?
结束
构建LL_START_ENC_REQ PDU,并在进行非加密发送给master。等待接受加密的数据包。
slave不支持加密特性,无法进行加密。该连接将继续,并使用非加密的数据包进行传送。
Host是否提供LTK?
接收Slave的应答包。
接收到应答,退出Connection State,进入Standby State。
接收到LL_TERMINATE_IND PDU,发送应答,并退出Connection State,进入Standby State。
接收到的数据包是LL_REJECT_IND或LL_REJECT_IND_EXT PDU?
应答包类型为LL_ENC_RSP?
Master设备端
Slave设备端
构建LL_ENC_REQ PDU,并在其中填充IVs和SKDs,并发送给Master。
接收到Slave发送过来的加密LL_START_ENC_RSP PDU,加密正式成功完成,后续的数据包将会采用加密的方式进行传送。
之前执行过Pause Encryption Procedure。
接收到的数据包是 LL_START_ENC_REQ?
构建LL_TERMINATE_IND PDU,并发送给对方设备,并等待应答
根据接收到的数据包中的SKDm、IVm,和本地的SKDs和IVs计算得出SKD、IV,使用SKD、IV和Host提供的LTK使用加密引擎生成sessionKey。
构建LL_START_ENC_RSP PDU,加密并发送,并设置硬件为加密接收。等待接收Slave发送的应答数据包。
Host提供SKDm、IVm、Rand、EDIV,链路层根据这些参数构建LL_ENC_REQ PDU。并发送给slave。
数据包类型为LL_REJECT_IN D或LL_REJECT_IND_EXT?
加密正式成功完成,后续的数据包将会采用加密的方式进行传送。
key无效或者Host对应的event不可用?
收藏
收藏
0 条评论
下一页