All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bluez PATCH v2 1/3] adapter: Use PeripheralLongTermKey to store LTK
@ 2021-11-03  9:02 Archie Pusaka
  2021-11-03  9:02 ` [Bluez PATCH v2 2/3] doc: Add PeripheralLongTermKey for storing LTK Archie Pusaka
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Archie Pusaka @ 2021-11-03  9:02 UTC (permalink / raw)
  To: linux-bluetooth, Luiz Augusto von Dentz, Marcel Holtmann
  Cc: CrosBT Upstreaming, Archie Pusaka, Sonny Sasaka

From: Archie Pusaka <apusaka@chromium.org>

Introducing PeripheralLongTermKey group for storing LTK info to
replace the less inclusive term. Currently we still need to write/read
from both to ensure smooth transition, but later we should deprecate
the old term.

Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
---

Changes in v2:
- Add reason to keep duplicates as comment

 src/adapter.c | 47 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 38 insertions(+), 9 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index d0d38621b8..114ae84c10 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3868,7 +3868,14 @@ static struct smp_ltk_info *get_peripheral_ltk_info(GKeyFile *key_file,
 
 	DBG("%s", peer);
 
-	ltk = get_ltk(key_file, peer, bdaddr_type, "SlaveLongTermKey");
+	/* Peripheral* is the proper term, but for now read both entries
+	 * so it won't break when user up/downgrades. Remove the other
+	 * term after a few releases.
+	 */
+	ltk = get_ltk(key_file, peer, bdaddr_type, "PeripheralLongTermKey");
+	if (!ltk)
+		ltk = get_ltk(key_file, peer, bdaddr_type, "SlaveLongTermKey");
+
 	if (ltk)
 		ltk->central = false;
 
@@ -8415,13 +8422,12 @@ static void new_link_key_callback(uint16_t index, uint16_t length,
 	bonding_complete(adapter, &addr->bdaddr, addr->type, 0);
 }
 
-static void store_longtermkey(struct btd_adapter *adapter, const bdaddr_t *peer,
+static void store_ltk_group(struct btd_adapter *adapter, const bdaddr_t *peer,
 				uint8_t bdaddr_type, const unsigned char *key,
-				uint8_t central, uint8_t authenticated,
+				const char *group, uint8_t authenticated,
 				uint8_t enc_size, uint16_t ediv,
 				uint64_t rand)
 {
-	const char *group = central ? "LongTermKey" : "SlaveLongTermKey";
 	char device_addr[18];
 	char filename[PATH_MAX];
 	GKeyFile *key_file;
@@ -8431,11 +8437,6 @@ static void store_longtermkey(struct btd_adapter *adapter, const bdaddr_t *peer,
 	char *str;
 	int i;
 
-	if (central != 0x00 && central != 0x01) {
-		error("Unsupported LTK type %u", central);
-		return;
-	}
-
 	ba2str(peer, device_addr);
 
 	snprintf(filename, PATH_MAX, STORAGEDIR "/%s/%s/info",
@@ -8475,6 +8476,34 @@ static void store_longtermkey(struct btd_adapter *adapter, const bdaddr_t *peer,
 	g_key_file_free(key_file);
 }
 
+static void store_longtermkey(struct btd_adapter *adapter, const bdaddr_t *peer,
+				uint8_t bdaddr_type, const unsigned char *key,
+				uint8_t central, uint8_t authenticated,
+				uint8_t enc_size, uint16_t ediv,
+				uint64_t rand)
+{
+	if (central != 0x00 && central != 0x01) {
+		error("Unsupported LTK type %u", central);
+		return;
+	}
+
+	if (central) {
+		store_ltk_group(adapter, peer, bdaddr_type, key, "LongTermKey",
+				authenticated, enc_size, ediv, rand);
+	} else {
+		/* Peripheral* is the proper term, but for now keep duplicates
+		 * so it won't break when user up/downgrades. Remove the other
+		 * term after a few releases.
+		 */
+		store_ltk_group(adapter, peer, bdaddr_type, key,
+				"PeripheralLongTermKey", authenticated,
+				enc_size, ediv, rand);
+		store_ltk_group(adapter, peer, bdaddr_type, key,
+				"SlaveLongTermKey", authenticated,
+				enc_size, ediv, rand);
+	}
+}
+
 static void new_long_term_key_callback(uint16_t index, uint16_t length,
 					const void *param, void *user_data)
 {
-- 
2.33.1.1089.g2158813163f-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Bluez PATCH v2 2/3] doc: Add PeripheralLongTermKey for storing LTK
  2021-11-03  9:02 [Bluez PATCH v2 1/3] adapter: Use PeripheralLongTermKey to store LTK Archie Pusaka
@ 2021-11-03  9:02 ` Archie Pusaka
  2021-11-03  9:02 ` [Bluez PATCH v2 3/3] adapter: Remove "Master" entry from LTK storage Archie Pusaka
  2021-11-03  9:38 ` [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK bluez.test.bot
  2 siblings, 0 replies; 5+ messages in thread
From: Archie Pusaka @ 2021-11-03  9:02 UTC (permalink / raw)
  To: linux-bluetooth, Luiz Augusto von Dentz, Marcel Holtmann
  Cc: CrosBT Upstreaming, Archie Pusaka, Sonny Sasaka

From: Archie Pusaka <apusaka@chromium.org>

Update doc to reflect update in adapter.c.

Reviewed-by: Sonny Sasaka <sonnysasaka@chromium.org>
---

(no changes since v1)

 doc/settings-storage.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/settings-storage.txt b/doc/settings-storage.txt
index 1d96cd66d9..3c637c3521 100644
--- a/doc/settings-storage.txt
+++ b/doc/settings-storage.txt
@@ -314,9 +314,9 @@ Long term key) related to a remote device.
   Rand			Integer		Randomizer
 
 
-[SlaveLongTermKey] group contains:
+[PeripheralLongTermKey] group contains:
 
-  Same as the [LongTermKey] group, except for slave keys.
+  Same as the [LongTermKey] group, except for peripheral keys.
 
 
 [ConnectionParameters] group contains:
-- 
2.33.1.1089.g2158813163f-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Bluez PATCH v2 3/3] adapter: Remove "Master" entry from LTK storage
  2021-11-03  9:02 [Bluez PATCH v2 1/3] adapter: Use PeripheralLongTermKey to store LTK Archie Pusaka
  2021-11-03  9:02 ` [Bluez PATCH v2 2/3] doc: Add PeripheralLongTermKey for storing LTK Archie Pusaka
@ 2021-11-03  9:02 ` Archie Pusaka
  2021-11-03  9:38 ` [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK bluez.test.bot
  2 siblings, 0 replies; 5+ messages in thread
From: Archie Pusaka @ 2021-11-03  9:02 UTC (permalink / raw)
  To: linux-bluetooth, Luiz Augusto von Dentz, Marcel Holtmann
  Cc: CrosBT Upstreaming, Archie Pusaka

From: Archie Pusaka <apusaka@chromium.org>

The entry has been deprecated since 2014 and it's time to remove them
altogether.

Signed-off-by: Archie Pusaka <apusaka@chromium.org>
---


(no changes since v1)

 src/adapter.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index 114ae84c10..508917e58d 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3779,8 +3779,6 @@ static struct smp_ltk_info *get_ltk(GKeyFile *key_file, const char *peer,
 					uint8_t peer_type, const char *group)
 {
 	struct smp_ltk_info *ltk = NULL;
-	GError *gerr = NULL;
-	bool central;
 	char *key;
 	char *rand = NULL;
 
@@ -3836,12 +3834,6 @@ static struct smp_ltk_info *get_ltk(GKeyFile *key_file, const char *peer,
 									NULL);
 	ltk->ediv = g_key_file_get_integer(key_file, group, "EDiv", NULL);
 
-	central = g_key_file_get_boolean(key_file, group, "Master", &gerr);
-	if (gerr)
-		g_error_free(gerr);
-	else
-		ltk->central = central;
-
 	ltk->is_blocked = is_blocked_key(HCI_BLOCKED_KEY_TYPE_LTK,
 								ltk->val);
 
@@ -5907,7 +5899,6 @@ static void convert_ltk_entry(GKeyFile *key_file, void *value)
 	g_free(str);
 
 	g_key_file_set_integer(key_file, "LongTermKey", "Authenticated", auth);
-	g_key_file_set_integer(key_file, "LongTermKey", "Master", central);
 	g_key_file_set_integer(key_file, "LongTermKey", "EncSize", enc_size);
 	g_key_file_set_integer(key_file, "LongTermKey", "EDiv", ediv);
 
@@ -8448,9 +8439,6 @@ static void store_ltk_group(struct btd_adapter *adapter, const bdaddr_t *peer,
 		g_error_free(gerr);
 	}
 
-	/* Old files may contain this so remove it in case it exists */
-	g_key_file_remove_key(key_file, "LongTermKey", "Master", NULL);
-
 	for (i = 0; i < 16; i++)
 		sprintf(key_str + (i * 2), "%2.2X", key[i]);
 
-- 
2.33.1.1089.g2158813163f-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* RE: [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK
  2021-11-03  9:02 [Bluez PATCH v2 1/3] adapter: Use PeripheralLongTermKey to store LTK Archie Pusaka
  2021-11-03  9:02 ` [Bluez PATCH v2 2/3] doc: Add PeripheralLongTermKey for storing LTK Archie Pusaka
  2021-11-03  9:02 ` [Bluez PATCH v2 3/3] adapter: Remove "Master" entry from LTK storage Archie Pusaka
@ 2021-11-03  9:38 ` bluez.test.bot
  2021-11-04  0:39   ` Luiz Augusto von Dentz
  2 siblings, 1 reply; 5+ messages in thread
From: bluez.test.bot @ 2021-11-03  9:38 UTC (permalink / raw)
  To: linux-bluetooth, apusaka

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=574639

---Test result---

Test Summary:
CheckPatch                    PASS      4.46 seconds
GitLint                       PASS      3.02 seconds
Prep - Setup ELL              PASS      49.79 seconds
Build - Prep                  PASS      0.54 seconds
Build - Configure             PASS      9.54 seconds
Build - Make                  PASS      216.71 seconds
Make Check                    PASS      9.87 seconds
Make Distcheck                PASS      251.91 seconds
Build w/ext ELL - Configure   PASS      8.81 seconds
Build w/ext ELL - Make        PASS      198.37 seconds



---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK
  2021-11-03  9:38 ` [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK bluez.test.bot
@ 2021-11-04  0:39   ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 5+ messages in thread
From: Luiz Augusto von Dentz @ 2021-11-04  0:39 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Archie Pusaka

Hi Archie,

On Wed, Nov 3, 2021 at 2:39 AM <bluez.test.bot@gmail.com> wrote:
>
> This is automated email and please do not reply to this email!
>
> Dear submitter,
>
> Thank you for submitting the patches to the linux bluetooth mailing list.
> This is a CI test results with your patch series:
> PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=574639
>
> ---Test result---
>
> Test Summary:
> CheckPatch                    PASS      4.46 seconds
> GitLint                       PASS      3.02 seconds
> Prep - Setup ELL              PASS      49.79 seconds
> Build - Prep                  PASS      0.54 seconds
> Build - Configure             PASS      9.54 seconds
> Build - Make                  PASS      216.71 seconds
> Make Check                    PASS      9.87 seconds
> Make Distcheck                PASS      251.91 seconds
> Build w/ext ELL - Configure   PASS      8.81 seconds
> Build w/ext ELL - Make        PASS      198.37 seconds
>
>
>
> ---
> Regards,
> Linux Bluetooth

Applied, thanks.

-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-11-04  0:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-03  9:02 [Bluez PATCH v2 1/3] adapter: Use PeripheralLongTermKey to store LTK Archie Pusaka
2021-11-03  9:02 ` [Bluez PATCH v2 2/3] doc: Add PeripheralLongTermKey for storing LTK Archie Pusaka
2021-11-03  9:02 ` [Bluez PATCH v2 3/3] adapter: Remove "Master" entry from LTK storage Archie Pusaka
2021-11-03  9:38 ` [Bluez,v2,1/3] adapter: Use PeripheralLongTermKey to store LTK bluez.test.bot
2021-11-04  0:39   ` Luiz Augusto von Dentz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.