BLE的各种KEY都有什么用?
时间:10-02
整理:3721RD
点击:
在gapbondmgr.h中定义了如下内容:
/** @defgroup GAPBOND_KEY_DIST_DEFINES GAP Bond Manager Key Distribution * @{ */ #define GAPBOND_KEYDIST_SENCKEY 0x01 //!< Slave Encryption Key #define GAPBOND_KEYDIST_SIDKEY 0x02 //!< Slave IRK and ID information #define GAPBOND_KEYDIST_SSIGN 0x04 //!< Slave CSRK #define GAPBOND_KEYDIST_SLINK 0x08 //!< Slave Link Key #define GAPBOND_KEYDIST_MENCKEY 0x10 //!< Master Encrypton Key #define GAPBOND_KEYDIST_MIDKEY 0x20 //!< Master IRK and ID information #define GAPBOND_KEYDIST_MSIGN 0x40 //!< Master CSRK #define GAPBOND_KEYDIST_MLINK 0x80 //!< Master Link Key /** @} End GAPBOND_IO_CAP_DEFINES */
总结下来,就是Encryption Key, IRK, SRK, Link Key。我想问如下5个问题:
1. IRK、SRK若不设置,是不是不影响绑定和通讯?这两个Key会影响什么?
2. Encryption Key和Link Key的区别是什么?手机上输入的000000是Link Key吗?
3. 若密码是123456,输入后空中数据是否被加密传输了?这个加密的Key是由123456在底层自动生成的吗?
4. Encryption Key是在哪一层加密的?已经绑定还要再加个Encryption Key吗?
5. AES这个外设在哪个Key调用了?手动调用还是设置好了Key,用了API函数后自动调用?
希望能得到各位高手的详细解答,谢谢!
Haitao Bi,
实际上你应用开发的时候并不太需要关心这些Key,但如果你有兴趣,可以参考一下这篇文章:
http://bbs.21ic.com/blog-1827100-160300.html
这里面有对常用到的Key的一些解释,以及在什么地方用到。
谢谢 Y !
您推荐的这篇文章很好用,感谢解答!
hi 你好 我现在碰到了flash紧缺想把你说的这些key去掉,如你之前说的 去掉后会影响连接吗?
不能去掉,这些是蓝牙协议需要的。