微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530加密失败

CC2530加密失败

时间:10-02 整理:3721RD 点击:

您好:

为什么配置了加密后还是没有产生加密的感觉

然后让协调器和路由器通信,修改协调器的key后为什么二者还可以通信,理论上是不行的。

不清楚应该修改哪个key才能测试是否加了密

/* Default security key. */
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"

这个?


// This is the default pre-configured Trust Center Link key,
// change this to make a unique key, SEC_KEY_LEN is defined in ssp.h.
CONST byte defaultTCLinkKey[SEC_KEY_LEN] =
{
  0x56, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
  0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77
};

这个?

CONST byte defaultKey[SEC_KEY_LEN] =
{
#if defined ( APP_TP ) || defined ( APP_TP2 )
  // Key for ZigBee Conformance Testing
  0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
//  0xb1, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
  0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
#else
  // Key for In-House Testing
  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
#endif
};

还是这个?

谢谢指导

另外请假一下关于AES加密的API调用问题,这方面没有什么资料

你上传的图片看不到,如果没有使能uint8 zgPreConfigKeys = FALSE;的话,那么节点在入网的时候,Key是有父设备发送给子设备的。

所以你协调器改了,路由也会改,也可以通信。

加密和解密是有硬件完成的。

您好,已使能zgPreConfigKeys

说一下我的配置吧。

@@@@@@@@@@@@@@@@@@@@@

/* Set to 0 for no security, otherwise non-0 */
//-DSECURE=0
-DZG_SECURE_DYNAMIC=0
-DSECURE=1
//-DZG_SECURE_DYNAMIC=1

@@@@@@@@@@@@@@@@@@@@@

// If true, preConfigKey should be configured on all devices on the network
// If false, it is configured only on the coordinator and sent to other
// devices upon joining.
//uint8 zgPreConfigKeys = FALSE;// TRUE;
uint8 zgPreConfigKeys = TRUE;

@@@@@@@@@@@@@@@@@@@@@

// This is the default pre-configured key,
// change this to make a unique key
// SEC_KEY_LEN is defined in ssp.h.
CONST byte defaultKey[SEC_KEY_LEN] =
{
#if defined ( APP_TP ) || defined ( APP_TP2 )
  // Key for ZigBee Conformance Testing
  0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
//  0xb1, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
  0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
#else
  // Key for In-House Testing
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
//    0x01, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
    0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
#endif
};

// This is the default pre-configured Trust Center Link key,
// change this to make a unique key, SEC_KEY_LEN is defined in ssp.h.
CONST byte defaultTCLinkKey[SEC_KEY_LEN] =
{
//  0x56, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
  0x57, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
  0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77
};

@@@@@@@@@@@@@@@@@@@@@

其他没动,这有什么问题么。现在的问题是,配置了之后,就算两者密码不同,还是能正确通信。

还是很多宏定义

如NONWK,#if defined ( APP_TP ) || defined ( APP_TP2 ),

//--------------------------------------------------------------------
// Security modes
//--------------------------------------------------------------------
#define ZG_SECURITY_NONE         0
#define ZG_SECURITY_RESIDENTIAL  1
#define ZG_SECURITY_PRO_STANDARD 1  // For now, same as residential
#define ZG_SECURITY_PRO_HIGH     3
#define ZG_SECURITY_SE_STANDARD 4

#if ( SECURE == 0 )
  #undef ZG_SECURITY_MODE
  #define ZG_SECURITY_MODE ZG_SECURITY_NONE
#else
  #if !defined ( ZG_SECURITY_MODE )
    #if defined ( SE_PROFILE )
      #define ZG_SECURITY_MODE ZG_SECURITY_SE_STANDARD
    #else
      #if !defined ( ZIGBEEPRO )
        #define ZG_SECURITY_MODE ZG_SECURITY_RESIDENTIAL
      #else
//        #define ZG_SECURITY_MODE ZG_SECURITY_PRO_HIGH
        #define ZG_SECURITY_MODE ZG_SECURITY_PRO_STANDARD  // Default for Pro Release is Standard (residential)
      #endif
    #endif
  #endif
#endif

这些宏定义的意思都不是很了解。TI官方有协议栈的API及宏定义的使用手册么,感觉TI这方面做的不是很好,

我们使用的时候都是在猜或上网看其他人写,这个API或许是对的,或许又不对,又没有官方的编程手册。难道真心是让用户猜么?

求解答,谢了。求官方正确的配置过程,谢了。

第一次在客户那里听到说TI在文档在文档方面做的不好,呵呵!

#if defined ( DEFAULT_KEY )
CONST uint8 defaultKey[SEC_KEY_LEN] = DEFAULT_KEY;
#else
CONST uint8 defaultKey[SEC_KEY_LEN] =
{
#if defined ( APP_TP ) || defined ( APP_TP2 )
// Key for ZigBee Conformance Testing
0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
#else
// Key for In-House Testing
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
#endif
};
#endif

代码里面有个宏定义DEFAULT_KEY,如果已经定义了这个的话,那么就不在使用下面的数组了。

DEFAULT_KEY定义在f8wconfig.cfg文档里面

/* Default security key. */
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"

所有的API的文档,宏定义的解释都在协议栈安装目录下Documents里面。

我是按着你们这么说的设置的,但设置完后,协调器和终端之间,不能实现组网,是个新手,不太明白问题出在哪里

多年前的问题,刚刚遇到,也解决不了

我也遇到这个问题,所有以上相关配置也做好同样的修改,组网成功可是在连续发送数据失败后就断开连接,无法正常通讯。反之把zgPreConfigKeys改回FALSE就可以通讯,这问题困扰我一个月了,求解。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top