New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 763303 link

Starred by 6 users

Issue metadata

Status: Started
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 3
Type: Feature



Sign in to add a comment

Implement support for U2F security keys over BLE

Project Member Reported by pkalinnikov@chromium.org, Sep 8 2017

Issue description

Use the existing U2F protocol implementation in "device/u2f/". At the moment it focuses on USB/HID security keys, but it is possible to factor out transport-specific part of the implementation, and plug in another transport, i.e., Bluetooth Low Energy (BLE). Primitives from "device/bluetooth/" should be utilized.

The specification of U2F over BLE can be found here: https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-bt-protocol-v1.2-ps-20170411.html
 
Description: Show this description
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f59e1bccbe29215db1afc07ade58d5682aaf2a0

commit 0f59e1bccbe29215db1afc07ade58d5682aaf2a0
Author: Pavel Kalinnikov <pkalinnikov@chromium.org>
Date: Fri Sep 08 20:31:17 2017

[u2f] Add TODO, fix style and a typo.

Bug: 763303
Change-Id: I0a47ef951651f026527211b62a25186175d2be25
Reviewed-on: https://chromium-review.googlesource.com/657181
Commit-Queue: Pavel Kalinnikov <pkalinnikov@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500646}
[modify] https://crrev.com/0f59e1bccbe29215db1afc07ade58d5682aaf2a0/device/u2f/u2f_apdu_command.h
[modify] https://crrev.com/0f59e1bccbe29215db1afc07ade58d5682aaf2a0/device/u2f/u2f_request.h

Cc: jdoerrie@chromium.org
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c625ef805b023d2977672684f855c453b78e8e43

commit c625ef805b023d2977672684f855c453b78e8e43
Author: jdoerrie <jdoerrie@chromium.org>
Date: Fri Oct 13 09:52:27 2017

[u2f] Introduce U2F Discovery

This change makes |U2fRequest| transport agnostic by introducing the
concept of U2F discoveries and moving HID specific code into a
|U2fHidDiscovery| class.

U2fDiscovery is designed as a general interface, which can be used to
support other methods of transportation as well, such as BLE.

Bug: 763303
Change-Id: If6976a9e3c786f2df5713c5d00219dc6df63c665
Reviewed-on: https://chromium-review.googlesource.com/700637
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Pavel Kalinnikov <pkalinnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508659}
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/BUILD.gn
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/BUILD.gn
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/mock_u2f_device.h
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/mock_u2f_discovery.cc
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/mock_u2f_discovery.h
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_device.h
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_discovery.cc
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_discovery.h
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_discovery_unittest.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_hid_device.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_hid_device.h
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_hid_discovery.cc
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_hid_discovery.h
[add] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_hid_discovery_unittest.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_register.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_register.h
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_register_unittest.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_request.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_request.h
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_request_unittest.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_sign.cc
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_sign.h
[modify] https://crrev.com/c625ef805b023d2977672684f855c453b78e8e43/device/u2f/u2f_sign_unittest.cc

Cc: -jdoerrie@chromium.org pkalinnikov@chromium.org
Owner: jdoerrie@chromium.org
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f65910061187911a5b54d5465c50aee56cbbcfe

commit 9f65910061187911a5b54d5465c50aee56cbbcfe
Author: Pavel Kalinnikov <pkalinnikov@chromium.org>
Date: Wed Nov 01 22:09:18 2017

[u2f] Add BLE device discovery.

Bug: 763303
Change-Id: If6f2549b302b06587c87268d78f4392dbce6aa59
Reviewed-on: https://chromium-review.googlesource.com/684514
Commit-Queue: Pavel Kalinnikov <pkalinnikov@chromium.org>
Reviewed-by: Vincent Scheib <scheib@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513296}
[modify] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/BUILD.gn
[modify] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/bluetooth/test/bluetooth_test.cc
[modify] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/bluetooth/test/bluetooth_test.h
[modify] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/bluetooth/test/bluetooth_test_bluez.cc
[modify] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/u2f/BUILD.gn
[add] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/u2f/u2f_ble_discovery.cc
[add] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/u2f/u2f_ble_discovery.h
[add] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/u2f/u2f_ble_discovery_unittest.cc
[add] https://crrev.com/9f65910061187911a5b54d5465c50aee56cbbcfe/device/u2f/u2f_ble_uuids.h

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/403b66267eb4ce35c8cbfd529df473548c574bc1

commit 403b66267eb4ce35c8cbfd529df473548c574bc1
Author: jdoerrie <jdoerrie@chromium.org>
Date: Tue Nov 28 11:11:20 2017

[u2f] Clean Up U2F Device

This change improves U2fDevice by:
- Migrating to base::BindOnce() and OnceCallbacks
- Using more appropriate datastructures
- Removing dead code
- Fixing #includes to be absolute

Bug: 763303, 714018, 730593, 729950
Change-Id: If577c7f5484896a6115af997fade0c51e555df60
Reviewed-on: https://chromium-review.googlesource.com/787451
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519650}
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/mock_u2f_device.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/mock_u2f_device.h
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_ble_discovery.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_device.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_device.h
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_hid_device.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_hid_device.h
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_hid_device_unittest.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_register_unittest.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_request_unittest.cc
[modify] https://crrev.com/403b66267eb4ce35c8cbfd529df473548c574bc1/device/u2f/u2f_sign_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Dec 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c9396bf17a48277285fc9fde83b362943f292bd3

commit c9396bf17a48277285fc9fde83b362943f292bd3
Author: jdoerrie <jdoerrie@chromium.org>
Date: Mon Dec 11 13:42:41 2017

[u2f] Introduce U2F BLE Connection

This change introduces a U2F BLE connection abstraction. Given an device
address it attempts to connect to the device, checking if expected
services and characteristics are present. Furthermore it provides APIs
to read from and write to the device.

Bug: 763303
Change-Id: I586f0b2150d676959e119b0ce3c775b47a20c003
Reviewed-on: https://chromium-review.googlesource.com/774742
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Vincent Scheib <scheib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523086}
[modify] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/BUILD.gn
[modify] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/u2f/BUILD.gn
[add] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/u2f/u2f_ble_connection.cc
[add] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/u2f/u2f_ble_connection.h
[add] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/u2f/u2f_ble_connection_unittest.cc
[modify] https://crrev.com/c9396bf17a48277285fc9fde83b362943f292bd3/device/u2f/u2f_ble_uuids.h

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b0f5bbf69e92bc128686e8ae29947c930556bb9a

commit b0f5bbf69e92bc128686e8ae29947c930556bb9a
Author: jdoerrie <jdoerrie@chromium.org>
Date: Mon Dec 11 20:33:08 2017

[u2f] Improve Interface of U2fDiscovery

This change improves the usability of U2fDiscovery. Mainly it moves the
responsibility of owning devices from U2fRequest to the individual
discoveries. Furthermore, U2fRequest does not own the discoveries
anymore, but simply registers as a observer.

Bug: 763303
Change-Id: Ibb2eb45569094b85dc80de615caee540cd3b82c1
Reviewed-on: https://chromium-review.googlesource.com/819413
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523192}
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/content/browser/webauth/authenticator_impl.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/content/browser/webauth/authenticator_impl.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/mock_u2f_discovery.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/mock_u2f_discovery.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_ble_discovery.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_ble_discovery.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_ble_discovery_unittest.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_discovery.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_discovery.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_discovery_unittest.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_hid_discovery.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_hid_discovery_unittest.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_register.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_register.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_register_unittest.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_request.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_request.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_request_unittest.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_sign.cc
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_sign.h
[modify] https://crrev.com/b0f5bbf69e92bc128686e8ae29947c930556bb9a/device/u2f/u2f_sign_unittest.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Dec 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/52fec7bca1cafb6d7641ece04f14c0328d780def

commit 52fec7bca1cafb6d7641ece04f14c0328d780def
Author: jdoerrie <jdoerrie@chromium.org>
Date: Fri Dec 15 18:45:35 2017

[u2f] Fix U2F BLE UUIDs

This change modifies the U2F BLE UUIDs to have extern linkage and
renames them to comply with the style guide naming conventions for
constants.

Bug: 763303
Change-Id: Ica2cb8f62c83d3a2fdcb4cdfc265735675e9e6af
Reviewed-on: https://chromium-review.googlesource.com/829175
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524421}
[modify] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/BUILD.gn
[modify] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/u2f_ble_connection.cc
[modify] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/u2f_ble_connection_unittest.cc
[modify] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/u2f_ble_discovery.cc
[add] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/u2f_ble_uuids.cc
[modify] https://crrev.com/52fec7bca1cafb6d7641ece04f14c0328d780def/device/u2f/u2f_ble_uuids.h

Project Member

Comment 13 by bugdroid1@chromium.org, Dec 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab9780a8d60162354e16cd7457a4c1bc259a97a3

commit ab9780a8d60162354e16cd7457a4c1bc259a97a3
Author: jdoerrie <jdoerrie@chromium.org>
Date: Thu Dec 28 18:16:18 2017

[u2f] Introduce U2fBleDevice

This change introduces the U2fBleDevice class. It derives from U2fDevice
and encapsulates BLE specific logic. Furthermore, this change adds a
U2fBleTransaction helper class, encapsulating logic responsible for a
single U2F BLE request and response. Lastly this change introduces a
Mock for U2fBleConnection, simplifying unit tests.

Bug: 763303
Change-Id: I73f0a1097697b7f570d0328e73f18f3b99017ce7
Reviewed-on: https://chromium-review.googlesource.com/834029
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526307}
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/BUILD.gn
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/BUILD.gn
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/mock_u2f_ble_connection.cc
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/mock_u2f_ble_connection.h
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_connection.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_connection.h
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_connection_unittest.cc
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_device.cc
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_device.h
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_device_unittest.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_discovery.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_frames.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_frames.h
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_frames_fuzzer.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_frames_unittest.cc
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_transaction.cc
[add] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_ble_transaction.h
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_device.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_device.h
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_hid_device.cc
[modify] https://crrev.com/ab9780a8d60162354e16cd7457a4c1bc259a97a3/device/u2f/u2f_hid_device.h

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745

commit 46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745
Author: jdoerrie <jdoerrie@chromium.org>
Date: Tue Jan 02 18:56:49 2018

[u2f] Small Bug Fixes in BLE classes

This change fixes small issues in the U2F BLE classes.

Bug: 763303
Change-Id: Ib4b54b05d6952dbecb35b18ee53601b8d8c0ea67
Reviewed-on: https://chromium-review.googlesource.com/847477
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526511}
[modify] https://crrev.com/46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745/device/u2f/u2f_ble_connection.cc
[modify] https://crrev.com/46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745/device/u2f/u2f_ble_device.cc
[modify] https://crrev.com/46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745/device/u2f/u2f_ble_device.h
[modify] https://crrev.com/46ed4e9c6105bbd624bfe7d7d1b79ccf43c38745/device/u2f/u2f_ble_discovery.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5df550fb031d7975bbae1a3bb28b7d82d1dd01c9

commit 5df550fb031d7975bbae1a3bb28b7d82d1dd01c9
Author: jdoerrie <jdoerrie@chromium.org>
Date: Tue Jan 16 15:46:08 2018

[u2f] Require explicit Connect() in U2fBleDevice

This change modifies U2fBleDevice to not immediately create a connection
in the constructor. Now an explicit call to Connect() needs to happen
before a GATT connection is attempted.

Bug: 763303
Change-Id: Iec9d8f5d8cc89137ee3ca10e19827e43d5535bbe
Reviewed-on: https://chromium-review.googlesource.com/867034
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529430}
[modify] https://crrev.com/5df550fb031d7975bbae1a3bb28b7d82d1dd01c9/device/u2f/u2f_ble_device.cc
[modify] https://crrev.com/5df550fb031d7975bbae1a3bb28b7d82d1dd01c9/device/u2f/u2f_ble_device.h
[modify] https://crrev.com/5df550fb031d7975bbae1a3bb28b7d82d1dd01c9/device/u2f/u2f_ble_device_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35657d55a0204aaaf092dfe11f2b95032c5b062d

commit 35657d55a0204aaaf092dfe11f2b95032c5b062d
Author: Jan Wilken Dörrie <jdoerrie@chromium.org>
Date: Wed Jan 31 21:48:34 2018

[webauthn] Enable usage of BLE Security Keys

This change enables the usage of U2F BLE security keys for the Web
Authentication API. It introduces a new enum representing supported
U2F transport protocols and changes U2fRequest to own the device
discoveries.

Bug:  664630 , 763303

Change-Id: Ic2ba03f8bb2e9e097501fe453627c85796d39434
Reviewed-on: https://chromium-review.googlesource.com/887482
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533424}
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/content/browser/webauth/authenticator_impl.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/content/browser/webauth/authenticator_impl.h
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/BUILD.gn
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_register.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_register.h
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_register_unittest.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_request.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_request.h
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_request_unittest.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_sign.cc
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_sign.h
[modify] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_sign_unittest.cc
[add] https://crrev.com/35657d55a0204aaaf092dfe11f2b95032c5b062d/device/u2f/u2f_transport_protocol.h

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71358f6e0300b5bb854de890455048900f8ca18c

commit 71358f6e0300b5bb854de890455048900f8ca18c
Author: jdoerrie <jdoerrie@chromium.org>
Date: Thu Apr 12 12:02:26 2018

[fido] Introduce SplitSpan()

This change introduces SplitSpan() to u2f_parsing_utils. This method
takes a span and chunks it into smaller parts.

Bug: 763303
Change-Id: I13deb5efca224ae00c8dc5ac8ee2df7fc418ccfd
Reviewed-on: https://chromium-review.googlesource.com/1005183
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550153}
[modify] https://crrev.com/71358f6e0300b5bb854de890455048900f8ca18c/device/fido/fido_ble_frames.cc
[modify] https://crrev.com/71358f6e0300b5bb854de890455048900f8ca18c/device/fido/fido_hid_message.cc
[modify] https://crrev.com/71358f6e0300b5bb854de890455048900f8ca18c/device/fido/u2f_parsing_utils.cc
[modify] https://crrev.com/71358f6e0300b5bb854de890455048900f8ca18c/device/fido/u2f_parsing_utils.h
[modify] https://crrev.com/71358f6e0300b5bb854de890455048900f8ca18c/device/fido/u2f_parsing_utils_unittest.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89affa5adf0729e589a3325385a9359f1cd59ff2

commit 89affa5adf0729e589a3325385a9359f1cd59ff2
Author: jdoerrie <jdoerrie@chromium.org>
Date: Sat Apr 14 10:23:11 2018

[fido] Fix Crash when BLE Security Key responds after Timeout

This change fixes a crash when a BLE Security Key responds after
kDeviceTimeout has passed. In the case of a timeout all future messages
from the device will be ignored.

Bug: 763303
Change-Id: I62ec334195324cadddedc8fea56830147001e555
Reviewed-on: https://chromium-review.googlesource.com/1007083
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550891}
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_device.cc
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_device_unittest.cc
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_transaction.cc

Labels: Merge-Request-67 M-67
Requesting merge of r550891 into M67 (branch 3396).
Project Member

Comment 20 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89affa5adf0729e589a3325385a9359f1cd59ff2

commit 89affa5adf0729e589a3325385a9359f1cd59ff2
Author: jdoerrie <jdoerrie@chromium.org>
Date: Sat Apr 14 10:23:11 2018

[fido] Fix Crash when BLE Security Key responds after Timeout

This change fixes a crash when a BLE Security Key responds after
kDeviceTimeout has passed. In the case of a timeout all future messages
from the device will be ignored.

Bug: 763303
Change-Id: I62ec334195324cadddedc8fea56830147001e555
Reviewed-on: https://chromium-review.googlesource.com/1007083
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550891}
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_device.cc
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_device_unittest.cc
[modify] https://crrev.com/89affa5adf0729e589a3325385a9359f1cd59ff2/device/fido/fido_ble_transaction.cc

Pls apply appropriate OSs label. Thank you.
Pls apply appropriate OSs label. Thank you.
Labels: OS-Chrome OS-Linux OS-Mac OS-Windows
Project Member

Comment 24 by sheriffbot@chromium.org, Apr 18 2018

Labels: -Merge-Request-67 Merge-Approved-67 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M67. Please go ahead and merge the CL to branch 3396 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Pls merge your change to M67 branch 3396 ASAP so we can pick it up for next M67 Dev/Beta release.

If already merged to M67 and nothing is pending, pls remove "Merge=Approved-67" label. Thank you.
Project Member

Comment 26 by bugdroid1@chromium.org, Apr 19 2018

Labels: -merge-approved-67 merge-merged-3396
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb99c3c0c8f58019abfb91e37082a36226533da6

commit eb99c3c0c8f58019abfb91e37082a36226533da6
Author: jdoerrie <jdoerrie@chromium.org>
Date: Thu Apr 19 07:58:35 2018

[fido] Fix Crash when BLE Security Key responds after Timeout

This change fixes a crash when a BLE Security Key responds after
kDeviceTimeout has passed. In the case of a timeout all future messages
from the device will be ignored.

Bug: 763303
Change-Id: I62ec334195324cadddedc8fea56830147001e555
Reviewed-on: https://chromium-review.googlesource.com/1007083
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#550891}(cherry picked from commit 89affa5adf0729e589a3325385a9359f1cd59ff2)
Reviewed-on: https://chromium-review.googlesource.com/1018800
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/branch-heads/3396@{#119}
Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428}
[modify] https://crrev.com/eb99c3c0c8f58019abfb91e37082a36226533da6/device/fido/fido_ble_device.cc
[modify] https://crrev.com/eb99c3c0c8f58019abfb91e37082a36226533da6/device/fido/fido_ble_device_unittest.cc
[modify] https://crrev.com/eb99c3c0c8f58019abfb91e37082a36226533da6/device/fido/fido_ble_transaction.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Jun 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4ab253913731306b4b37faebf1d82a2f76dd7736

commit 4ab253913731306b4b37faebf1d82a2f76dd7736
Author: jdoerrie <jdoerrie@chromium.org>
Date: Sun Jun 24 14:13:45 2018

[fido] Add FidoBleDevice::IsInPairingMode()

This change introduces the possibility to query a FidoBleDevice whether
or not it is currently in pairing mode. In accordance with the CTAP spec
this is done by looking at the advertisment data flags if possible, and
falling back to investigating service data if required.

Bug: 763303
Change-Id: I373151a10d63e83ca2ac57f7b53c1269b9d60cfc
Reviewed-on: https://chromium-review.googlesource.com/1096234
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569929}
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/chromeos/components/proximity_auth/bluetooth_low_energy_connection_finder_unittest.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/bluetooth_adapter_android.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/bluetooth_adapter_mac.mm
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/bluetooth_adapter_winrt.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/bluetooth_device.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/bluetooth_device.h
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/bluetooth/test/fake_central.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_ble_connection.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_ble_connection.h
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_ble_device.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_ble_device.h
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_ble_device_unittest.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_cable_discovery_unittest.cc
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/fido_constants.h
[modify] https://crrev.com/4ab253913731306b4b37faebf1d82a2f76dd7736/device/fido/mock_fido_ble_connection.h

Project Member

Comment 28 by bugdroid1@chromium.org, Aug 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f1de5e3048dc559db1d1704243437e6dd04cc9c5

commit f1de5e3048dc559db1d1704243437e6dd04cc9c5
Author: jdoerrie <jdoerrie@chromium.org>
Date: Thu Aug 09 12:23:32 2018

[fido] Don't Get Adapter in FidoBleConnection

This change simplifies FidoBleConnection by passing the obtained
BluetoothAdapter from FidoBleDiscovery through the FidoBleDevice to the
FidoBleConnection. This removes the need to query for the adapter within
FidoBleConnection and simplifies the implementation.

Bug: 763303
Change-Id: I83e0c5e715246db4c3ac0dc0427797c8d783853c
Reviewed-on: https://chromium-review.googlesource.com/1167056
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581874}
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/BUILD.gn
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_connection.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_connection.h
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_connection_unittest.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_device.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_device.h
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_device_unittest.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/fido_ble_discovery.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/mock_fido_ble_connection.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/ble/mock_fido_ble_connection.h
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_device.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_device.h
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_device_unittest.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_discovery.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_handshake_handler_fuzzer.cc
[modify] https://crrev.com/f1de5e3048dc559db1d1704243437e6dd04cc9c5/device/fido/cable/fido_cable_handshake_handler_unittest.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Aug 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/817bb8fcdc556d07e8322494c6d10fc655e9602e

commit 817bb8fcdc556d07e8322494c6d10fc655e9602e
Author: Jan Wilken Dörrie <jdoerrie@chromium.org>
Date: Mon Aug 13 12:20:11 2018

[fido] Only WriteWithoutResponse on macOS

This change restricts the usage of WriteWithoutResponse to macOS. On
macOS this is required for performance reasons, but on other platforms
this can lead to misbehavior. This results in requests not being
handled correctly.

Bug: 763303
Change-Id: I5b609fd70eafdf4b9abad680218a9e04ac302703
Reviewed-on: https://chromium-review.googlesource.com/1167515
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582555}
[modify] https://crrev.com/817bb8fcdc556d07e8322494c6d10fc655e9602e/device/bluetooth/test/mock_bluetooth_gatt_characteristic.h
[modify] https://crrev.com/817bb8fcdc556d07e8322494c6d10fc655e9602e/device/fido/ble/fido_ble_connection.cc
[modify] https://crrev.com/817bb8fcdc556d07e8322494c6d10fc655e9602e/device/fido/ble/fido_ble_connection_unittest.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3502ff078793e8b244baa565b528bfad16c0d43e

commit 3502ff078793e8b244baa565b528bfad16c0d43e
Author: Jan Wilken Doerrie <jdoerrie@chromium.org>
Date: Thu Aug 30 10:13:26 2018

[fido] Don't hair-pin Callbacks in Fido Ble Connection

This change modifies FidoBleConnection to no longer hairpin callbacks
and updates the appropriate tests.

Bug: 763303
Change-Id: I85149d600e8c5f510958d117fdaac6de49111107
Reviewed-on: https://chromium-review.googlesource.com/1193860
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587506}
[modify] https://crrev.com/3502ff078793e8b244baa565b528bfad16c0d43e/device/fido/ble/fido_ble_connection.cc
[modify] https://crrev.com/3502ff078793e8b244baa565b528bfad16c0d43e/device/fido/ble/fido_ble_connection_unittest.cc

Sign in to add a comment