In order to obtain shared encryption session key between client and the authenticator, handshake protocol needs to be implemented.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bea027213dfaaf89b487db43c7cf3da897bd11fa commit bea027213dfaaf89b487db43c7cf3da897bd11fa Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Jun 15 02:17:54 2018 Implement FidoCableHandshakeHandler Implement Cable handshake protocol client logic that dispatches control message to the authenticator and validates incoming control messages from connected authenticator. Handshake message sent to and received from the authenticator should together be used to construct a session key with which the FidoCableDevice use to encrypt/decrypt incoming and outgoing messages. Bug: 849307 Change-Id: I818792c7234e039e43de8425ee8f7a30610073a0 Reviewed-on: https://chromium-review.googlesource.com/1089327 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#567518} [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/BUILD.gn [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/BUILD.gn [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_ble_frames.cc [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_ble_frames.h [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_device.cc [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_device.h [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_device_unittest.cc [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_discovery.cc [add] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_handshake_handler.cc [add] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_handshake_handler.h [add] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_handshake_handler_fuzzer.cc [add] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_cable_handshake_handler_unittest.cc [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_constants.cc [modify] https://crrev.com/bea027213dfaaf89b487db43c7cf3da897bd11fa/device/fido/fido_constants.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f96166b9cb09803eb31b0ba09f6fad85d67b183f commit f96166b9cb09803eb31b0ba09f6fad85d67b183f Author: Jun Choi <hongjunchoi@chromium.org> Date: Tue Jun 19 04:06:37 2018 Add handshake protocol to Cable discovery After connecting to Cable authenticator using advertisement/scanning, Cable protocol requires one more round trip of BLE control messages to be sent to establish shared secret key for encryption. Add this handshake protocol to FidoCableDiscovery. Bug: 849307 Change-Id: I388fa43dae60e97e027dafa1f9f430a2569ca981 Reviewed-on: https://chromium-review.googlesource.com/1089794 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#568334} [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/content/browser/webauth/authenticator_type_converters.cc [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_device.cc [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_device_unittest.cc [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_discovery.cc [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_discovery.h [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_discovery_unittest.cc [modify] https://crrev.com/f96166b9cb09803eb31b0ba09f6fad85d67b183f/device/fido/fido_cable_handshake_handler.h
Comment 1 by bugdroid1@chromium.org
, Jun 15 2018