加密通讯问题
协调器和单一终端通讯,终端工作在低功耗模式
配置如下:
zgPreConfigKeys = TRUE
加密:SECURE=1 ,ZG_SECURE_DYNAMIC=1;
不能入网了终端,ZG_SECURE_DYNAMIC=0也试过还是不能通讯,终端入网过后立即就退网了,不晓得怎么回事
在这个osal_memcpy( zgPreConfigKey, defaultKey, SEC_KEY_LEN );加入断点,主机的defaultKey和终端的defaultKey,都是一样的
status = osal_nv_item_init( ZCD_NV_PRECFGKEY, SEC_KEY_LEN, zgPreConfigKey );运行过后返回status 的值是0x09
默认例子是开启了security的,如Z-Stack Home 1.2.2a.44539的sampleSwitch和Samplelight。
抓个包看看,为什么拒绝入网?
我使用的是zstack2.5.0版本0005.aa.psd
大神我的加密还没有解决,我认为现象是秘钥出了问题,有没有在调试的过程中看到当前网络秘钥的办法
http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/106224/287155.aspx#287155
这个链接的帖子也是我发的,但是还是没有解决掉的嘛
你在TI的原始协议栈上面测试过没有问题,那肯定是你自己添加的代码出问题了,你再查查那部分添加以后会出问题。
这个我晓得,我已经检查了好几天了。没有弄出来。不晓得是咋个回事。
原始协议栈肯定没有问题,这个您们肯定测试过很多次
主要是不能看到当前的KEY值,所以出现问题不晓得如何处理。后期我加的程序还是比较多。而且目前测试都没有打的问题,只要加密合适就可以使用了。
可以告诉我秘钥的地址位么?
我利用osal_nv_read( 98, 0, 16, bufferdata );函数读的秘钥协调器和终端都是一样的。都是DDEFAULT_KEY定义的数,但是还是连不上
你代码改动的地方,有没有跟加密这块相关的。 建议还是和原始协议栈做一一对比。
哪些部分和加密有关?
原因大概找到了,但是不晓得咋个解决。
osal_nv_read(ZCD_NV_SECURITY_LEVEL, 0, 16, bufferdata );
osal_nv_read(ZCD_NV_PRECFGKEY, 0, 16, bufferdata );
osal_nv_read( ZCD_NV_PRECFGKEYS_ENABLE, 0, 16, bufferdata );
osal_nv_read( ZCD_NV_SECURITY_MODE, 0, 16, bufferdata );
osal_nv_read( ZCD_NV_SECURE_PERMIT_JOIN, 0, 16, bufferdata );
我发现协调器和终端的ZCD_NV_SECURITY_LEVEL和ZCD_NV_PRECFGKEY相同。ZCD_NV_PRECFGKEYS_ENABLE, ZCD_NV_SECURITY_MODE和ZCD_NV_SECURE_PERMIT_JOIN不一样。不过我不知道后面三个参数在哪里改变的。
这个问题已经解决就是让协调器和终端的NV_INIT定义一样就可以了,不过没有解决加密后不能联网的问题
你用的是Preconfig Key对吧?然后两边配置的preconfig key不一样?
不能联网,具体发生了什么?节点有没有搜网,有没有找到网络,找到网络有没有发Association,发了以后有没有transport key?
VV大神帮忙看看这个帖子呗 http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/107939/291863.aspx#291863