Implement CA-BLE discovery mechanism. CA-BLE discovery should first advertise client EID passed from the relying party. Once advertisement has been successfully registered, normal BLE discovery should follow.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a6bde7802a10b262ee4914757d6bbe1f615589b4 commit a6bde7802a10b262ee4914757d6bbe1f615589b4 Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed May 16 03:58:36 2018 Implement FidoCaBleDiscovery Implement discovery mechanism for cloud assisted BLE. Unlike regular BLE discovery, Ca-BLE must first advertise using client EID passed on from the relying party as an extension. Shared logic between FidoBleDiscovery and FidoCaBleDiscovery is refactored into FidoBleDiscoveryBase interface. Bug: 837088 Change-Id: I3d47130501a5a8397bd0560b8b471659a3fafda9 Reviewed-on: https://chromium-review.googlesource.com/1029428 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#558968} [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/BUILD.gn [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/BUILD.gn [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_discovery.cc [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_discovery.h [add] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_discovery_base.cc [add] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_discovery_base.h [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_uuids.cc [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_ble_uuids.h [add] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_cable_discovery.cc [add] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_cable_discovery.h [add] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_cable_discovery_unittest.cc [modify] https://crrev.com/a6bde7802a10b262ee4914757d6bbe1f615589b4/device/fido/fido_discovery.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/659f4ca4f5cc7f936ea11c015805b63fdaacba8d commit 659f4ca4f5cc7f936ea11c015805b63fdaacba8d Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed May 23 19:03:07 2018 Use UUID formatted string for Cable Discovery MacOS BLE implementation assumes UUID formatted string for advertisement parameter. Properly convert byte array into UUID formatted string. Bug: 837088 Change-Id: I6892ff72b736838093661fc1fec4e30dcf28b25b Reviewed-on: https://chromium-review.googlesource.com/1068241 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Tim Song <tengs@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#561188} [modify] https://crrev.com/659f4ca4f5cc7f936ea11c015805b63fdaacba8d/device/fido/fido_cable_discovery.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f commit b8ea8ca8d489f6535b88a4b5121d860fcd56e87f Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed May 23 19:54:47 2018 Add CableDiscovery to AuthenticatorImpl transports Add support for Cable discovery to AuthenticatorImpl GetAssertion API. Cable transport protocol should only be enabled if feature flag kWebAuthCtap and kWebAuthCable are enabled. Bug: 837088 Change-Id: I57966c00e591fa4e773d471cbd8a49cbbdd415d7 Reviewed-on: https://chromium-review.googlesource.com/1058910 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org> Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Cr-Commit-Position: refs/heads/master@{#561219} [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/browser/webauth/authenticator_impl.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/browser/webauth/authenticator_impl_unittest.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/browser/webauth/authenticator_type_converters.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/browser/webauth/authenticator_type_converters.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/public/common/content_features.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/content/public/common/content_features.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/ctap_get_assertion_request.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/ctap_get_assertion_request.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fake_fido_discovery.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fake_fido_discovery.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fido_cable_discovery.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fido_discovery.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fido_request_handler_base.cc [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fido_request_handler_base.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/fido_transport_protocol.h [modify] https://crrev.com/b8ea8ca8d489f6535b88a4b5121d860fcd56e87f/device/fido/get_assertion_request_handler.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8dacb0eb29b9f4371c1476b1621a479d6a4d5bc1 commit 8dacb0eb29b9f4371c1476b1621a479d6a4d5bc1 Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed May 23 20:06:32 2018 Process Cable advertisement prior to scanning In current implementation of discovering Cable devices, we invoke advertisement and discovery scanning process simultaneously. While this conforms to the Cable spec, this can potentially be problematic since 1) There is no need to start scanning process if all advertisements fail. 2) Simultaneously starting advertisement/scanning process may cause undefined behavior in OS level. Change discovery process so that device scanning process is only started once 1) All advertisement process is complete. 2) At least one of the advertisement process is successful. Bug: 837088 Change-Id: I29a4ee4dc7c2e7d725c3ae736929b738a56e7873 Reviewed-on: https://chromium-review.googlesource.com/1067782 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Tim Song <tengs@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#561223} [modify] https://crrev.com/8dacb0eb29b9f4371c1476b1621a479d6a4d5bc1/device/fido/fido_cable_discovery.cc [modify] https://crrev.com/8dacb0eb29b9f4371c1476b1621a479d6a4d5bc1/device/fido/fido_cable_discovery.h [modify] https://crrev.com/8dacb0eb29b9f4371c1476b1621a479d6a4d5bc1/device/fido/fido_cable_discovery_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/24507dbc3084650cae351431c3682ec3f5d2730d commit 24507dbc3084650cae351431c3682ec3f5d2730d Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed May 23 22:39:01 2018 Add advertisement UUID for MAC BLE implementation in MacOS does not permit two 128 bit form UUID's for advertisement. Thus, shorter form advertisement UUID is required for Mac. Bug: 837088 Change-Id: I2eaa5c429c00dae53ade1c5f6be8c32af9a203b3 Reviewed-on: https://chromium-review.googlesource.com/1068510 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Tim Song <tengs@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#561285} [modify] https://crrev.com/24507dbc3084650cae351431c3682ec3f5d2730d/device/fido/fido_ble_uuids.cc [modify] https://crrev.com/24507dbc3084650cae351431c3682ec3f5d2730d/device/fido/fido_cable_discovery.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/92431377727675829f2d1389a96c14698b708966 commit 92431377727675829f2d1389a96c14698b708966 Author: Kim Paulhamus <kpaulhamus@chromium.org> Date: Fri Jul 20 02:25:47 2018 Add chrome://flags#enable-web-authentication-cable-support caBLE is a transport option for the WebAuthN API Bug: 837088 Change-Id: I81ea955bb95848161a927fb2a1b84773cf572d24 Reviewed-on: https://chromium-review.googlesource.com/1144418 Commit-Queue: Kim Paulhamus <kpaulhamus@chromium.org> Reviewed-by: Jun Choi <hongjunchoi@chromium.org> Cr-Commit-Position: refs/heads/master@{#576756} [modify] https://crrev.com/92431377727675829f2d1389a96c14698b708966/chrome/browser/about_flags.cc [modify] https://crrev.com/92431377727675829f2d1389a96c14698b708966/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/92431377727675829f2d1389a96c14698b708966/chrome/browser/flag_descriptions.h [modify] https://crrev.com/92431377727675829f2d1389a96c14698b708966/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380 commit 1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380 Author: Jan Wilken Doerrie <jdoerrie@chromium.org> Date: Fri Aug 24 13:34:05 2018 [webauthn] Create caBLE Win Feature Flag This change adds a feature flag for caBLE for Windows and disables it by default. Bug: 821766 , 837088 Change-Id: I2f87be1854a3fc64d23c9a0493eaecf0ee73668b Reviewed-on: https://chromium-review.googlesource.com/1187146 Commit-Queue: Balazs Engedy <engedy@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#585821} [modify] https://crrev.com/1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380/content/browser/webauth/authenticator_impl.cc [modify] https://crrev.com/1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380/content/browser/webauth/authenticator_impl_unittest.cc [modify] https://crrev.com/1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380/content/public/common/content_features.cc [modify] https://crrev.com/1b7fa9edfe15a60ad81a6e80d5b6c0c9e8ae5380/content/public/common/content_features.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e50a792d8c51a567ff57dbdf417eefc15b9b0528 commit e50a792d8c51a567ff57dbdf417eefc15b9b0528 Author: Jan Wilken Doerrie <jdoerrie@chromium.org> Date: Thu Aug 30 15:43:52 2018 [fido] Update Windows Advertisement Payload for Cable This change updates the Windows Advertisement Payload for Cable to match a more recent version of the Cable spec. TBR=arnarb@chromium.org,kpaulhamus@chromium.org Bug: 837088 Change-Id: Id670a6534c9d23cdeea241c364e3350f6c05cf1e Reviewed-on: https://chromium-review.googlesource.com/1196512 Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#587597} [modify] https://crrev.com/e50a792d8c51a567ff57dbdf417eefc15b9b0528/device/fido/cable/fido_cable_discovery.cc [modify] https://crrev.com/e50a792d8c51a567ff57dbdf417eefc15b9b0528/device/fido/cable/fido_cable_discovery_unittest.cc
Comment 1 by kpaulhamus@chromium.org
, May 6 2018