All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ v2 0/8] Support Sixaxis gamepad with classic bonded only
@ 2025-04-23 14:40 Ludovico de Nittis
  2025-04-23 14:40 ` [PATCH BlueZ v2 1/8] src: Add new SixaxisCablePairing property Ludovico de Nittis
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Ludovico de Nittis @ 2025-04-23 14:40 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ludovico de Nittis

This series adds a new "SixaxisCablePairing" property to allow us to
indentify sixaxis devices that have been paired using the canonical USB
cable method. With that information, we can dynamically enforce
encryption to drastically reduce the attack surface, compared to just
disabling the "ClassicBondedOnly" property.

The "SixaxisCablePairing" property is exposed via D-Bus to allow
clients to potentually show this information to end users.

As far as I can tell, starting the listening input server with
BT_IO_SEC_LOW and then bumping it in `hidp_add_connection()` should not
have any negative effect regarding the overall security. However,
please let me know if it turns out not being the case. 

The last commit "input: Validate the Sixaxis HID report descriptor" can
probably be reviewed and merged separately if needed.

Addresses https://github.com/bluez/bluez/issues/1165

Changes in v2:
 - Start the listening input server with BT_IO_SEC_LOW only if we
   actually have a known sixaxis device

Ludovico de Nittis (8):
  src: Add new SixaxisCablePairing property
  client: Print SixaxisCablePairing value if BlueZ was compiled with
    sixaxis
  plugins: Set SixaxisCablePairing property when pairing a sixaxis with
    USB
  adapter: Add btd_adapter_has_sixaxis_cable_pairing()
  input: Automatically use security level low when using a sixaxis
    device
  adapter: Set server security level in load_devices()
  sixaxis: Set security level when adding a sixaxis device
  input: Validate the Sixaxis HID report descriptor

 client/main.c            |  3 ++
 configure.ac             |  3 ++
 doc/org.bluez.Device.rst |  6 ++++
 plugins/sixaxis.c        |  8 ++++-
 profiles/input/device.c  | 77 ++++++++++++++++++++++++++++++++++++++--
 profiles/input/manager.c |  3 +-
 profiles/input/server.c  | 62 ++++++++++++++++++++++++++++++--
 profiles/input/server.h  |  3 +-
 src/adapter.c            | 24 +++++++++++++
 src/adapter.h            |  1 +
 src/device.c             | 44 +++++++++++++++++++++++
 src/device.h             |  3 ++
 12 files changed, 229 insertions(+), 8 deletions(-)

-- 
2.49.0


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

end of thread, other threads:[~2025-04-24 14:45 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-23 14:40 [PATCH BlueZ v2 0/8] Support Sixaxis gamepad with classic bonded only Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 1/8] src: Add new SixaxisCablePairing property Ludovico de Nittis
2025-04-23 14:48   ` Luiz Augusto von Dentz
2025-04-23 14:40 ` [PATCH BlueZ v2 2/8] client: Print SixaxisCablePairing value if BlueZ was compiled with sixaxis Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 3/8] plugins: Set SixaxisCablePairing property when pairing a sixaxis with USB Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 4/8] adapter: Add btd_adapter_has_sixaxis_cable_pairing() Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 5/8] input: Automatically use security level low when using a sixaxis device Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 6/8] adapter: Set server security level in load_devices() Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 7/8] sixaxis: Set security level when adding a sixaxis device Ludovico de Nittis
2025-04-23 14:40 ` [PATCH BlueZ v2 8/8] input: Validate the Sixaxis HID report descriptor Ludovico de Nittis
2025-04-23 14:56   ` Luiz Augusto von Dentz
2025-04-24 14:37     ` Ludovico de Nittis
2025-04-24 14:45       ` 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.