DA14581中央安全

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
3个帖子/ 0新
最后一篇
andrzej richert
离线
最后一次露面:11个月2周前
加入:2017-04-21 12:12
DA14581中央安全

你好,
我尝试使用安全连接的中央设备实现DA14581,并遇到问题。
My Da Cental连接到外设,然后请求安全(我尝试app_easy_security_request(),app_security_request_op()或default_app_on_connection()),但没有成功。
在My user_process_catch()for message gapc_cmp_evt中,对于GAPC_SECURY_REQ操作,我始终获得状态0x42 - (我猜这是GAP_ERR_NOT_SUPPORTED),安全过程未启动(无回调......)。
我通过成功与其他中央(不是DA芯片)的安全性测试了我的外围设备(具有DA芯片或其他)的连接。
中央项目配置:

#define cfg_app_security.

struct security_configuration.
.iocap = gap_cap_no_input_no_output,
.oob = gap_oob_auth_data_not_present,
.auth = gap_auth_req_no_mitm_bond,
.sec_req = gap_sec1_noauth_pair_enc,
.key_size = key_len,
.ikey_dist = gap_kdist_enckey |GAP_KDIST_IDKEY,
.rkey_dist = gap_kdist_enckey |GAP_KDIST_IDKEY,

struct gapm_configuration.
。role = gap_central_mst,
.flags = 0.

struct default_handlers_configuration.
.security_request_scenario = def_sec_req_on_connect.

struct central_configuration.
.code = gapm_connection_direct,
.ddr_src = gapm_public_addr,

回调配置:
static const struct app_callbacks user_app_callbacks = {
.app_on_connection = user_on_connection,
.app_on_disconnect = user_on_disconnect,
.app_on_update_params_rejected = null,
.app_on_update_params_complete = null,
.app_on_set_dev_config_complete = user_on_set_dev_config_complete,
.app_on_adv_undirect_complete = null,
.app_on_adv_direct_complete = null,
.app_on_adv_nonconn_complete = null,
.app_on_db_init_complete = default_app_on_db_init_complete,
.app_on_scanning_completed = user_on_scanning_Completed,
.app_on_adv_report_ind = user_on_adv_report_ind,
.app_on_pairing_request = user_on_pairing_request,
.app_on_tk_exch_nomitm = default_app_on_tk_exch_nomitm,
.app_on_irk_exch = null,
.app_on_csrk_exch = default_app_on_csrk_exch,
.app_on_ltk_exch = default_app_on_ltk_exch,
.app_on_pairing_succeded = user_on_pairing_succeeded,
.app_on_encrypt_ind = user_on_encrypt_ind,
.app_on_mitm_passcode_req = user_on_mitm_passcode_req,
.app_on_encrypt_req_ind = user_on_encrypt_req_ind,
.app_on_security_req_ind = user_on_security_req_ind,
};

任何提示?

亲切的问候,
andrzej.

设备:
mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨Andrzej Richert,

嗨Andrzej Richert,

由于您是一个中央,因此无法从外设请求安全性。如果外设实现安全性,则中心将通过以下方式理解它:

  • 要么尝试读取或写入或订阅其特征时,外围设备将响应错误,该错误将指示此特征要求的安全性以便读取,然后堆栈将开始配对过程。
  • 外围设备将指示它需要在Connetion上要求安全性(您尝试从中央发送的消息)。这条消息是通过App_easy_security_Request()发送到堆栈它发送了一个GAPC_SECURITY_CMD,因为您的设备作为Central运行。

因此,您必须从连接序列中删除它(符合GAP_ERROR_NOT_SUPPORTED消息),因为您具有安全建立的回调,则在外围设备的安全请求的情况下,堆栈将通过a ping应用程序层gapc_security_ind意味着外设发送安全请求,之后中央应该发送GAPC_BOND_CMD以启动配对过程。

谢谢mt_dialog.

andrzej richert
离线
最后一次露面:11个月2周前
加入:2017-04-21 12:12
谢谢你的解释

感谢您的解释,当外设发送安全请求它的工作原理。