微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC254x鉴权和配对问题

CC254x鉴权和配对问题

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

向各位大侠请教一个问题:我想让我的BLE从设备具备连接配对,和读特征值要求鉴权读。就是当iPhone连接设备时,弹出输密码的界面,然后读特征值时也要弹出输密码的界面。目前我实现了连接时弹框输密码的功能,但是设定了GATT_PERMIT_AUTHEN_READ权限的特征值,读的时候,不会要求输密码。是不是因为在连接的时候已经配过对了?要怎样才能实现iPhone在两个地方都弹出输密码的?

hi xiaoming,

是的,在连接的时候已经配对过了。

GATT_PERMIT_AUTHEN_READ 只是说读这个值要求链路是经过鉴权,也就是配对过的, 而并不会在读的时候要求你输密码。

Yan,谢谢。那是不是就是说没办法做到,两个地方同时要求输密码?

把特征值设置成GATT_PERMIT_AUTHOR_READ,行不行呢?

又或者有没有什么办法,让连接配完对后,让两边都“忘记”自己已经配过对,读的时候,再发起一次配对?

1. 我在程序中GAP Bond Manger配置如下: 

// Setup the GAP Bond Manager
  {
    uint32 passkey = 0; // passkey "000000"
    uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE;
    uint8 mitm = TRUE;
    uint8 ioCap = GAPBOND_IO_CAP_DISPLAY_YES_NO;
    uint8 bonding = FALSE;
    GAPBondMgr_SetParameter( GAPBOND_DEFAULT_PASSCODE, sizeof ( uint32 ), &passkey );
    GAPBondMgr_SetParameter( GAPBOND_PAIRING_MODE, sizeof ( uint8 ), &pairMode );
    GAPBondMgr_SetParameter( GAPBOND_MITM_PROTECTION, sizeof ( uint8 ), &mitm );
    GAPBondMgr_SetParameter( GAPBOND_IO_CAPABILITIES, sizeof ( uint8 ), &ioCap );
    GAPBondMgr_SetParameter( GAPBOND_BONDING_ENABLED, sizeof ( uint8 ), &bonding );
  }

2.在xxxProfile_ReadAttrCB的读特征值的回调函数中加入下面一段代码

 if ( gattPermitAuthenRead( pAttr->permissions ) )
  {
    // Insufficient authorization
    return ( ATT_ERR_INSUFFICIENT_AUTHOR );
  }
  3.可以实现iphone与设备连接时要求输密码配对,读取设置为GATT_PERMIT_AUTHEN_READ的特征值时,会弹出要是密码配对的框,但是当输入正确的密码后,还是不断重复弹出要求配对的框。请问一下这是这么回事呀?要怎样改才能输入正确密码一次就能读到数据?

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

网站地图

Top