From patchwork Wed Apr 1 10:24:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= X-Patchwork-Id: 197187 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ADFEC2D0E7 for ; Wed, 1 Apr 2020 10:25:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F145320678 for ; Wed, 1 Apr 2020 10:25:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=silvair-com.20150623.gappssmtp.com header.i=@silvair-com.20150623.gappssmtp.com header.b="FAOyyzZA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732150AbgDAKZB (ORCPT ); Wed, 1 Apr 2020 06:25:01 -0400 Received: from mail-lf1-f54.google.com ([209.85.167.54]:44739 "EHLO mail-lf1-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730720AbgDAKZB (ORCPT ); Wed, 1 Apr 2020 06:25:01 -0400 Received: by mail-lf1-f54.google.com with SMTP id 131so641429lfh.11 for ; Wed, 01 Apr 2020 03:25:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silvair-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=vYAMV5v1hwqkVPZnIXGU7A7cDowgkZ7nZYotsfKt4II=; b=FAOyyzZAuqS4tljVV93j/My5c7dQ0iI9VU5adosCtaWmd4hhvFYzh9JIV2nuFdV4KB 0fYNV6xyNp4uympH/mgYWF+Fx+ye5CYTQuu3PWrzBVSN1Ywixp8TbDJjmH7w2onH7oyj 4PM9zjDHVvyck/knzxbFqccb3gN+LFsmx1hlNMhjAsRByvMKWKn1oMIkR9jH/suoeMt0 9JXsnR/V6zuY6tpYlzmBCULRlOUB3LrFDx0YeNjKEjvIGNG+bd1aJCQSwrUqhJbTDol8 ckcBNoIg3Gd2S30yH9HvaVNePEdJzsePCihqMjxo0IPrtLI+pZ5JjI2qlRKoVBcvMusE Wq+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vYAMV5v1hwqkVPZnIXGU7A7cDowgkZ7nZYotsfKt4II=; b=Ync5t60MppUTTcOhOa/wscRnnf+GddS9A2trG93mInTN4g2kWcaV1dhq5rds2oCKL+ 8LHALFsNf8UyPgFF86XmWzwWxs8pwcwVYZSdudpCiYKAerp5gS2HJ+pBLnbbZ+yrSMLt e7J5drMWJ267wTEuEZNo46nUAXXHaVfMbrMUJwoILoBwifQhjckmkD6K+0foWLXDiBA9 2E7rSH0JaPFEXFscHHKVli+FZSbzYSumBQQRYDI46bpulX0RCppP8LISMbrqnzp4+aRG KtrQJ2rLJ2zQ1pJ/NDF7YfB5Q3Xa7GY3hXzM9IoXYKCtdl7V598b6Q2nBRg1vtwrgapR Gscw== X-Gm-Message-State: AGi0PuZ26kUgKKreS9iXdgap/8E4z4K0BZrf6uBv4BWmWiZFTLtFLNr3 gcO+SDOdejHuN2Asmd6x1TCKfZhR3Lc= X-Google-Smtp-Source: APiQypIO5QD4gdZLwbIYpQqMAjGd7oJz6LhocEjRyukS5WihCWGTjr1x0xzhRBv9O8jnlEiYyYkkcg== X-Received: by 2002:a05:6512:202d:: with SMTP id s13mr14243275lfs.19.1585736699107; Wed, 01 Apr 2020 03:24:59 -0700 (PDT) Received: from mlowasrzechonek2133.silvair.lan ([217.153.94.18]) by smtp.gmail.com with ESMTPSA id r16sm922217ljj.40.2020.04.01.03.24.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2020 03:24:58 -0700 (PDT) From: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v2 3/6] mesh: Clean up naming of provisioning callbacks Date: Wed, 1 Apr 2020 12:24:59 +0200 Message-Id: <20200401102502.746-4-michal.lowas-rzechonek@silvair.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> References: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org --- mesh/prov-initiator.c | 18 +++++++++--------- mesh/provision.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mesh/prov-initiator.c b/mesh/prov-initiator.c index d5bae114a..f2ebff69e 100644 --- a/mesh/prov-initiator.c +++ b/mesh/prov-initiator.c @@ -77,10 +77,10 @@ enum int_state { #define MAT_SECRET (MAT_REMOTE_PUBLIC | MAT_LOCAL_PRIVATE) struct mesh_prov_initiator { - mesh_prov_initiator_complete_func_t cmplt; - mesh_prov_initiator_data_req_func_t get_prov_data; + mesh_prov_initiator_complete_func_t complete_cb; + mesh_prov_initiator_data_req_func_t data_req_cb; prov_trans_tx_t trans_tx; - void *agent; + struct mesh_agent *agent; void *caller_data; void *trans_data; struct mesh_node *node; @@ -125,7 +125,7 @@ static void int_prov_close(void *user_data, uint8_t reason) struct mesh_prov_node_info info; if (reason != PROV_ERR_SUCCESS) { - prov->cmplt(prov->caller_data, reason, NULL); + prov->complete_cb(prov->caller_data, reason, NULL); initiator_free(); return; } @@ -135,7 +135,7 @@ static void int_prov_close(void *user_data, uint8_t reason) info.unicast = prov->unicast; info.num_ele = prov->conf_inputs.caps.num_ele; - prov->cmplt(prov->caller_data, PROV_ERR_SUCCESS, &info); + prov->complete_cb(prov->caller_data, PROV_ERR_SUCCESS, &info); initiator_free(); } @@ -738,7 +738,7 @@ static void int_prov_rx(void *user_data, const uint8_t *data, uint16_t len) goto failure; } - if (!prov->get_prov_data(prov->caller_data, + if (!prov->data_req_cb(prov->caller_data, prov->conf_inputs.caps.num_ele)) { l_error("Provisioning Failed-Data Get"); fail_code[1] = PROV_ERR_CANT_ASSIGN_ADDR; @@ -819,7 +819,7 @@ bool initiator_start(enum trans_type transport, uint16_t max_ele, uint32_t timeout, /* in seconds from mesh.conf */ struct mesh_agent *agent, - mesh_prov_initiator_data_req_func_t get_prov_data, + mesh_prov_initiator_data_req_func_t data_req_cb, mesh_prov_initiator_complete_func_t complete_cb, void *node, void *caller_data) { @@ -836,8 +836,8 @@ bool initiator_start(enum trans_type transport, prov->to_secs = timeout; prov->node = node; prov->agent = agent; - prov->cmplt = complete_cb; - prov->get_prov_data = get_prov_data; + prov->complete_cb = complete_cb; + prov->data_req_cb = data_req_cb; prov->caller_data = caller_data; prov->previous = -1; diff --git a/mesh/provision.h b/mesh/provision.h index d6f6e0ab0..43f53f935 100644 --- a/mesh/provision.h +++ b/mesh/provision.h @@ -120,7 +120,7 @@ bool initiator_start(enum trans_type transport, uint16_t max_ele, uint32_t timeout, /* in seconds from mesh.conf */ struct mesh_agent *agent, - mesh_prov_initiator_data_req_func_t get_prov_data, + mesh_prov_initiator_data_req_func_t data_req_cb, mesh_prov_initiator_complete_func_t complete_cb, void *node, void *caller_data); void initiator_prov_data(uint16_t net_idx, uint16_t primary, void *caller_data); From patchwork Wed Apr 1 10:25:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= X-Patchwork-Id: 197185 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9A182C2D0E7 for ; Wed, 1 Apr 2020 10:25:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6FB3A20678 for ; Wed, 1 Apr 2020 10:25:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=silvair-com.20150623.gappssmtp.com header.i=@silvair-com.20150623.gappssmtp.com header.b="bkVh2R2f" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732169AbgDAKZE (ORCPT ); Wed, 1 Apr 2020 06:25:04 -0400 Received: from mail-lf1-f51.google.com ([209.85.167.51]:45111 "EHLO mail-lf1-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732154AbgDAKZE (ORCPT ); Wed, 1 Apr 2020 06:25:04 -0400 Received: by mail-lf1-f51.google.com with SMTP id v4so19941866lfo.12 for ; Wed, 01 Apr 2020 03:25:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silvair-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=DygyTHIv6tTK38tMsaaq2FSgilJWE1kf4cxPQwtvpCU=; b=bkVh2R2fccPBtzJCBgY2jAaP9PtIyXmNLNu9AVDdZ5EUnOOB0e86/HpySfBXzW+fFD VRj7XgBagmHoADG6u4SMsjaYCL6J2jnU0szdZLWwaTaEpeHIkQG+5CjgTbq+Wu8zENIs /D6yrtiN0t9rWhDNglG9vFGqT80Wqsazw6dbX+d4IIekbbPMiIZcBcpVV1HTRsU5dZAJ dM7/aEu76W1ie37erph6vpVzVVDgrC/Wwa59VLbwvNJvfvpAtMYCgxj79avAv9/FVajz 8wk6lWjaDxqhruT80UXLKulcIbuadV/2y78+4t/NpF4O0iTIvUDGUN2JzUCEEdZdiKzI S3zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DygyTHIv6tTK38tMsaaq2FSgilJWE1kf4cxPQwtvpCU=; b=Xipj62obMqIe/nbRtu4gio+T/MDz+rGrlXYpl2Yz07sX/438AQ1ptBP6OS12ku8lcM 8dqIPooceNhCdepVTXBmgboErwIFArrf1MW6Svk3/bHN3unifu7mj0lmUOJet/GDAmol rARGpQGtslP1Ky614sfD+lUhUes24+WhfpziMtr9MPHIUq0pzOwb7p60uBMBd6odCEME TyT1Ck+0tHW8d1nEdn0bTA+yeU028hKy5bjWnR+bbiAj9Pe31R2OJuvOn1rdsmQiV31z w1VAREzRgLyTufRbSMlAh5T+NDn/lJlQiGeZre82brVRKjGprMs+BBT0kLkYwuBNjwLM 8Wmg== X-Gm-Message-State: AGi0Pua3jKoB8JoasTTW8wJlqzPkblXFGqXN7gq+oLSn1cCfys4n6u1v byMgHuSxrezRpwbdi+llZHmY2Pv5/FA= X-Google-Smtp-Source: APiQypK/B86ixQM+rShyKe+ToEvSoq/o4xsQtxHvhJ3QYCD8r9eZ9IXG6bVuZJyxU8YM4trkfRdY8w== X-Received: by 2002:ac2:51de:: with SMTP id u30mr990793lfm.170.1585736700862; Wed, 01 Apr 2020 03:25:00 -0700 (PDT) Received: from mlowasrzechonek2133.silvair.lan ([217.153.94.18]) by smtp.gmail.com with ESMTPSA id r16sm922217ljj.40.2020.04.01.03.25.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2020 03:25:00 -0700 (PDT) From: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v2 5/6] mesh: Honor provisioner's capabilities Date: Wed, 1 Apr 2020 12:25:01 +0200 Message-Id: <20200401102502.746-6-michal.lowas-rzechonek@silvair.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> References: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org This patch makes the daemon select authentication method based from capabilities supported by both provisioned node and provisioner application. --- mesh/prov-initiator.c | 82 ++++++++++++++++++++++++++---------------- tools/mesh-cfgclient.c | 7 ++++ 2 files changed, 58 insertions(+), 31 deletions(-) diff --git a/mesh/prov-initiator.c b/mesh/prov-initiator.c index 17bda6521..8d523e9c0 100644 --- a/mesh/prov-initiator.c +++ b/mesh/prov-initiator.c @@ -38,6 +38,8 @@ #include "mesh/agent.h" #include "mesh/error.h" +#define MIN(x, y) ((x) < (y) ? (x) : (y)) + /* Quick size sanity check */ static const uint16_t expected_pdu_size[] = { 2, /* PROV_INVITE */ @@ -587,6 +589,44 @@ failure: int_prov_close(prov, fail_code[1]); } +static void int_prov_start_auth(const struct mesh_agent_prov_caps *prov_caps, + const struct mesh_net_prov_caps *dev_caps, + struct prov_start *start) +{ + uint8_t pub_type = prov_caps->pub_type & dev_caps->pub_type; + uint8_t static_type = prov_caps->static_type & dev_caps->static_type; + uint16_t output_action = prov_caps->output_action & + L_BE16_TO_CPU(dev_caps->output_action); + uint8_t output_size = MIN(prov_caps->output_size, + dev_caps->output_size); + uint16_t input_action = prov_caps->input_action & + L_BE16_TO_CPU(dev_caps->input_action); + uint8_t input_size = MIN(prov_caps->input_size, dev_caps->input_size); + + if (pub_type) + start->pub_key = 0x01; + + /* Parse OOB Options, prefer static, then out, then in */ + if (static_type) { + start->auth_method = 0x01; + return; + } + + if(output_size && output_action) { + start->auth_method = 0x02; + start->auth_action = u16_high_bit(output_action); + start->auth_size = MIN(output_size, 8); + return; + } + + if (input_size && input_action) { + start->auth_method = 0x03; + start->auth_action = u16_high_bit(input_action); + start->auth_size = MIN(input_size, 8); + return; + } +} + static void int_prov_rx(void *user_data, const uint8_t *data, uint16_t len) { struct mesh_prov_initiator *rx_prov = user_data; @@ -638,43 +678,23 @@ static void int_prov_rx(void *user_data, const uint8_t *data, uint16_t len) goto failure; } - /* If Public Key available Out of Band, use it */ - if (prov->conf_inputs.caps.pub_type) { - prov->conf_inputs.start.pub_key = 0x01; + /* + * Select auth mechanism from methods supported by both + * parties. + */ + int_prov_start_auth(mesh_agent_get_caps(prov->agent), + &prov->conf_inputs.caps, + &prov->conf_inputs.start); + + if (prov->conf_inputs.start.pub_key == 0x01) { prov->expected = PROV_CONFIRM; /* Prompt Agent for remote Public Key */ mesh_agent_request_public_key(prov->agent, pub_key_cb, prov); - /* Nothing else for us to do now */ } else prov->expected = PROV_PUB_KEY; - /* Parse OOB Options, prefer static, then out, then in */ - if (prov->conf_inputs.caps.static_type) { - - prov->conf_inputs.start.auth_method = 0x01; - - } else if (prov->conf_inputs.caps.output_size && - prov->conf_inputs.caps.output_action) { - - prov->conf_inputs.start.auth_method = 0x02; - prov->conf_inputs.start.auth_action = - u16_high_bit(l_get_be16(data + 6)); - prov->conf_inputs.start.auth_size = - (data[5] > 8 ? 8 : data[5]); - - } else if (prov->conf_inputs.caps.input_size && - prov->conf_inputs.caps.input_action) { - - prov->conf_inputs.start.auth_method = 0x03; - prov->conf_inputs.start.auth_action = - u16_high_bit(l_get_be16(data + 9)); - prov->conf_inputs.start.auth_size = - (data[8] > 8 ? 8 : data[8]); - - } - out = l_malloc(1 + sizeof(prov->conf_inputs.start)); out[0] = PROV_START; memcpy(out + 1, &prov->conf_inputs.start, @@ -789,7 +809,7 @@ static void int_prov_ack(void *user_data, uint8_t msg_num) switch (prov->state) { case INT_PROV_START_SENT: prov->state = INT_PROV_START_ACKED; - if (prov->conf_inputs.caps.pub_type == 0) + if (!prov->conf_inputs.start.pub_key) send_pub_key(prov); break; @@ -798,7 +818,7 @@ static void int_prov_ack(void *user_data, uint8_t msg_num) break; case INT_PROV_KEY_SENT: - if (prov->conf_inputs.caps.pub_type == 1) + if (prov->conf_inputs.start.pub_key) int_prov_auth(); break; diff --git a/tools/mesh-cfgclient.c b/tools/mesh-cfgclient.c index 43588852b..6083b2b1f 100644 --- a/tools/mesh-cfgclient.c +++ b/tools/mesh-cfgclient.c @@ -617,6 +617,13 @@ static bool register_agent(void) return false; } + if (!l_dbus_object_add_interface(dbus, app.agent_path, + L_DBUS_INTERFACE_PROPERTIES, NULL)) { + l_error("Failed to add interface %s", + L_DBUS_INTERFACE_PROPERTIES); + return false; + } + return true; } From patchwork Wed Apr 1 10:25:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= X-Patchwork-Id: 197186 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DE33C2D0F1 for ; Wed, 1 Apr 2020 10:25:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 32CC520678 for ; Wed, 1 Apr 2020 10:25:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=silvair-com.20150623.gappssmtp.com header.i=@silvair-com.20150623.gappssmtp.com header.b="ui+D+d7L" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732166AbgDAKZE (ORCPT ); Wed, 1 Apr 2020 06:25:04 -0400 Received: from mail-lf1-f46.google.com ([209.85.167.46]:33482 "EHLO mail-lf1-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732146AbgDAKZE (ORCPT ); Wed, 1 Apr 2020 06:25:04 -0400 Received: by mail-lf1-f46.google.com with SMTP id x200so12816079lff.0 for ; Wed, 01 Apr 2020 03:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silvair-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=r3KIKeOoCXTzCSOwCnlRZi5CXO6ooZd8wIikiuhvKRk=; b=ui+D+d7L3Gez0LsxDdnjkAllAvmleueRmEwwCFOCFvI5lNTuY/Cj0L4W3WIJMaH+oe r94JEBsUg7/Ok1DUcIHcv3ABe8YUY32wR713KCNpSS1cEVxYFQj/ibRntyYPgx7X6aLk lrxKnrRh31D2vdyr6rFvAtzkfwwXn7FbS3KGpwKLoWzM77/4lA/d+DRlbF9oywjMPlmA uu8czFgkQ35hKPfVOVh6F2V1CreQsoEkdxceZj/y6YunXcXMVIGBYAjbZZ7C1gEwuKkX V9oejSarf1g2xTmGfC52BUeWfudTHhjgbBf4H+U171DEXfrREFFmyZkHllmLbKc2EmK/ ecMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=r3KIKeOoCXTzCSOwCnlRZi5CXO6ooZd8wIikiuhvKRk=; b=KaCZkJTxrsXsalVzq7ZOl8g2X0KUw9cmojcZbfPEjjSXWaz8ol4qK4A6XNOCXP1tZO mYkf0FLmv2WAp4BZm415b+bcx7giAP5Yh/GQkZmYZY+x4B2oDHZpBp8iKxr3MBU76RD2 rzynqtCVCqdwQd2tQhQTUZvY0FjcNKMgO12Jwm8aXSwfNO35MimmiIHa/JgKjqgxqiCI 7kw29UnPvA+umXjJ0EPZFofcwCu5gF67yAWJ3u2wwPAYbFkWun6+V6DPpf9KExcfaUd4 JivRVAvKLktgRjzmrMbRSnjq/JQi2xDaYJdZZ6s8eSXrMl3KC8a1g6TojiszTiVKbbxK s4rw== X-Gm-Message-State: AGi0PuZcstJDr5d2qz3mQzzqOqSMb2E28sDBOpq3BYPpuR/ImaVt20eQ LlUgE9r6cezAYDJBLYmtdQ9EYjeXo90= X-Google-Smtp-Source: APiQypKiN+wvgVJIbOgtRkNMTrdl16j1UyX8eSwivDHbRiGAD+Q8ffr6nsIIk66ldit7lt3/B7zoWg== X-Received: by 2002:ac2:4342:: with SMTP id o2mr14117163lfl.195.1585736701939; Wed, 01 Apr 2020 03:25:01 -0700 (PDT) Received: from mlowasrzechonek2133.silvair.lan ([217.153.94.18]) by smtp.gmail.com with ESMTPSA id r16sm922217ljj.40.2020.04.01.03.25.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2020 03:25:01 -0700 (PDT) From: =?utf-8?q?Micha=C5=82_Lowas-Rzechonek?= To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ v2 6/6] doc/mesh-api: OOB Information field is 16 bit, not 32 Date: Wed, 1 Apr 2020 12:25:02 +0200 Message-Id: <20200401102502.746-7-michal.lowas-rzechonek@silvair.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> References: <20200401102502.746-1-michal.lowas-rzechonek@silvair.com> MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org --- doc/mesh-api.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt index 848106335..513b021d8 100644 --- a/doc/mesh-api.txt +++ b/doc/mesh-api.txt @@ -950,7 +950,7 @@ Object path freely definable The data parameter is a variable length byte array, that may have 1, 2 or 3 distinct fields contained in it including the 16 - byte remote device UUID (always), a 32 bit mask of OOB + byte remote device UUID (always), a 16 bit mask of OOB authentication flags (optional), and a 32 bit URI hash (if URI bit set in OOB mask). Whether these fields exist or not is a decision of the remote device.