CTAP requests parameters should be converted to corresponding U2F request parameters if connected authenticator only supports U2F protocol.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b4438bc565571936e489abf6b928cd24637d1400 commit b4438bc565571936e489abf6b928cd24637d1400 Author: Jun Choi <hongjunchoi@chromium.org> Date: Tue Feb 27 00:20:34 2018 Add encoding logic to U2fRequest interface Add encoding logic in U2fRequest that creates APDU encoded byte array given U2fRequest parameters. U2fRequest::CreateApduEncoded{Register,Sign}Command() is defined in U2fRequest interface--not its implementing classes-- as sign operation is needed in both U2fRegister and U2fSign classes. Bug: 798573 Change-Id: Ib675114b6e0d8d10d3243895c36fe220e45911a5 Reviewed-on: https://chromium-review.googlesource.com/847963 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#539336} [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/BUILD.gn [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_authenticator_request_param.cc [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_authenticator_request_param.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_constants.h [add] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_empty_authenticator_request.cc [add] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_empty_authenticator_request.h [rename] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_get_assertion_request.cc [add] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_get_assertion_request.h [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_get_assertion_request_param.h [rename] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_make_credential_request.cc [add] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_make_credential_request.h [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_make_credential_request_param.h [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_request_param.cc [delete] https://crrev.com/67fc2a14cb39b85ef532170c16b420cb84bd0a04/device/fido/ctap_request_param.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/ctap_request_unittest.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/public_key_credential_params.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/public_key_credential_params.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/public_key_credential_rp_entity.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/public_key_credential_rp_entity.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_device.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_register.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_register.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_register_unittest.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_request.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_request.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_request_unittest.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_sign.cc [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_sign.h [modify] https://crrev.com/b4438bc565571936e489abf6b928cd24637d1400/device/fido/u2f_sign_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/19b944e93f1290ed1646395b3faf3aed5ea8e078 commit 19b944e93f1290ed1646395b3faf3aed5ea8e078 Author: Jun Choi <hongjunchoi@chromium.org> Date: Mon Apr 23 20:20:20 2018 Rename u2f_parsing_utils.h to fido_parsing_utils.h Bug: 798573 , 808637 Change-Id: I43d93e8b7ec295324901305e168e31506c1a547e Reviewed-on: https://chromium-review.googlesource.com/1022831 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#552809} [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/BUILD.gn [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/BUILD.gn [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/attested_credential_data.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/authenticator_data.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/authenticator_get_assertion_response.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/authenticator_make_credential_response.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/ec_public_key.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fake_hid_impl_for_testing.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_attestation_statement.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_ble_device_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_ble_frames.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_hid_device_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_hid_message.cc [rename] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_parsing_utils.cc [rename] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_parsing_utils.h [rename] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/fido_parsing_utils_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/get_assertion_handler_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/get_assertion_task_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/make_credential_handler_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/make_credential_task_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/mock_fido_device.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/u2f_register_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/u2f_sign_unittest.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/virtual_fido_device.cc [modify] https://crrev.com/19b944e93f1290ed1646395b3faf3aed5ea8e078/device/fido/virtual_u2f_device.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/85b2872303e3f7a4ff73639684393ee891d0372c commit 85b2872303e3f7a4ff73639684393ee891d0372c Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed Apr 25 21:24:50 2018 Implement logic to extract U2F parameters Implement anonymous set of functions that extract U2F request commands from WebAuthN style Ctap{MakeCredential GetAssertion} Request. Bug: 798573 Change-Id: I3431b0769db20b39a2e590d5a7d4136a3a920fe8 Reviewed-on: https://chromium-review.googlesource.com/1018739 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#553754} [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/BUILD.gn [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/BUILD.gn [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/ctap_request_unittest.cc [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/fido_constants.h [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/fido_test_data.h [add] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/u2f_command_constructor.cc [add] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/u2f_command_constructor.h [add] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/u2f_command_constructor_unittest.cc [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/u2f_request.cc [modify] https://crrev.com/85b2872303e3f7a4ff73639684393ee891d0372c/device/fido/u2f_sign.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2fc05b8e8e178670873723f8cbbf76a450ac1885 commit 2fc05b8e8e178670873723f8cbbf76a450ac1885 Author: Jun Choi <hongjunchoi@chromium.org> Date: Wed Apr 25 22:10:06 2018 Add CreateSHA256Hash() to fido_parsing_utils As hashing function is used frequently in converting parsing device response, add CreateSHA256Hash() to fido_parsing_utils scope. Bug: 798573 Change-Id: Ifc6ed40db6aca682548a75068701f6c0af7cfdce Reviewed-on: https://chromium-review.googlesource.com/1024924 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#553785} [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/fido_parsing_utils.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/fido_parsing_utils.h [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/fido_parsing_utils_unittest.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/response_data.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/u2f_command_constructor.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/u2f_sign_unittest.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/virtual_fido_device.cc [modify] https://crrev.com/2fc05b8e8e178670873723f8cbbf76a450ac1885/device/fido/virtual_u2f_device.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0 commit 8a5f1bdbf188b01c8430a4d61e7a5e392af161d0 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Apr 27 00:49:15 2018 Remove U2F version logic and constants As U2F version request is never sent to the authenticator, remove all related constants and functions. Bug: 798573 Change-Id: I182b5ec6c6105cfa1b9382af9b967075da7a09cf Reviewed-on: https://chromium-review.googlesource.com/1028750 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#554233} [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/fido_constants.cc [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/fido_constants.h [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/fido_hid_device_unittest.cc [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/mock_fido_device.cc [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/mock_fido_device.h [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/u2f_request.cc [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/u2f_request.h [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/u2f_request_unittest.cc [modify] https://crrev.com/8a5f1bdbf188b01c8430a4d61e7a5e392af161d0/device/fido/virtual_u2f_device.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/57a12be2c92f463afd7929cc5328d308f67f1ab2 commit 57a12be2c92f463afd7929cc5328d308f67f1ab2 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Apr 27 04:18:58 2018 Refactor tests on U2F parameters Code clean-up and refactor for U2f{Request, Register, Sign} and its tests. More specifically, this CL - Moves all tests related to creating U2f{Register, Sign, BogusRegistration}Command to uf_command_constructor_unittest.cc - Moves all tests related to parsing/serializing responses to ctap_response_unittest.cc This refactoring is prepares for migration of U2f{Register, Sign} to U2f{Register, Sign}Operation. Bug: 798573 Change-Id: I24ab0a2c5796571b9ff06fe062e5823ed779c725 Reviewed-on: https://chromium-review.googlesource.com/1024868 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#554300} [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/ctap_response_unittest.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/fido_test_data.h [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_command_constructor.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_command_constructor.h [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_command_constructor_unittest.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_register.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_register_unittest.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_request.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_request.h [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_sign.cc [modify] https://crrev.com/57a12be2c92f463afd7929cc5328d308f67f1ab2/device/fido/u2f_sign_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c556883aade91df18aa7ed182165ef13ee072d03 commit c556883aade91df18aa7ed182165ef13ee072d03 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Apr 27 23:51:03 2018 Implement {Device, CtapRegister}Operation interface DeviceOperation is an interface for Ctap{Register, Sign}Operation and U2f{Register, Sign}Operation, and will be a branching point for separation of logic between CTAP and U2F requests. CtapRegisterOperation is an implementation of DeviceOperation and is owned by MakeCredentialTask to handle dispatching CTAP MakeCredential request to an authenticator. Bug: 798573 Change-Id: I290ab7b3f686d4418d783723a0ab510f27362462 Reviewed-on: https://chromium-review.googlesource.com/1028792 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#554565} [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/BUILD.gn [add] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/ctap_register_operation.cc [add] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/ctap_register_operation.h [add] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/device_operation.h [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/fido_device.h [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/get_assertion_request_handler.h [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/get_assertion_task.h [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/make_credential_request_handler.h [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/make_credential_task.cc [modify] https://crrev.com/c556883aade91df18aa7ed182165ef13ee072d03/device/fido/make_credential_task.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/31474e8b10fd51100843d29b9b0d8b5742dd26cb commit 31474e8b10fd51100843d29b9b0d8b5742dd26cb Author: Jun Choi <hongjunchoi@chromium.org> Date: Thu May 03 20:48:32 2018 Implement ConvertTou2fCheckOnlySignCommand() Implement function to extract U2F check only sign command from CtapMakeCredentialRequest. This is used to iterate through key handles in the exclude list to prevent duplicate registration. Bug: 798573 Change-Id: I51ab3dc21c6a7229e99dd513dae4ec9322014a75 Reviewed-on: https://chromium-review.googlesource.com/1032257 Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Cr-Commit-Position: refs/heads/master@{#555863} [modify] https://crrev.com/31474e8b10fd51100843d29b9b0d8b5742dd26cb/device/fido/u2f_command_constructor.cc [modify] https://crrev.com/31474e8b10fd51100843d29b9b0d8b5742dd26cb/device/fido/u2f_command_constructor.h [modify] https://crrev.com/31474e8b10fd51100843d29b9b0d8b5742dd26cb/device/fido/u2f_command_constructor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/02ad4da0a9f494fe6325aee0c267b1143208d483 commit 02ad4da0a9f494fe6325aee0c267b1143208d483 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri May 04 00:57:41 2018 Move FidoDiscovery::Start() invocation Currently FidoDiscovery::Start() is called in the constructor of FidoRequestHandlerBase class. This potentially leads to crash in authenticator_impl_unittest.cc when FakeU2fDevice is used. When FakeU2fDevice is used, the device is added in a synchronous manner as soon as discovery starts. This leads to invocation of FidoRequestHandlerBase::DeviceAdded() which then calls CreateTaskForNewDevice() which is a pure abstract function. This has been a non-issue until now as may unit tests does not actually call AuthenticatorImpl::{MakeCredential, GetAssertion}() and because AuthenticatorImpl constructor we used in unit tests has empty |protocols_| field. This should be changed as we add more end to end tests in future. Thus this CL moves invocation of FidoDiscovery::Start() from base class constructor to constructor of implementing class and add hid transport to AuthenticatorImpl::protocols_ in constructor. Bug: 798573 Change-Id: Iaca4978dd06233f670b44b52a30ec192b5f2cb51 Reviewed-on: https://chromium-review.googlesource.com/1032258 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#555939} [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/content/browser/webauth/authenticator_impl.cc [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/device/fido/fido_request_handler_base.cc [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/device/fido/fido_request_handler_base.h [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/device/fido/fido_request_handler_unittest.cc [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/device/fido/get_assertion_request_handler.cc [modify] https://crrev.com/02ad4da0a9f494fe6325aee0c267b1143208d483/device/fido/make_credential_request_handler.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4260e6090b67ba97febb370a195f6783bbc630e0 commit 4260e6090b67ba97febb370a195f6783bbc630e0 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri May 25 17:58:58 2018 Code improvement in authenticator_impl_unittest.cc Refactor repeated code to construct Authenticator with timer into a function. Bug: 798573 Change-Id: I5b3ecedb4cc56a30f5b32ed3872a709e18545cee Reviewed-on: https://chromium-review.googlesource.com/1034096 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#561941} [modify] https://crrev.com/4260e6090b67ba97febb370a195f6783bbc630e0/content/browser/webauth/authenticator_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/03ba9b3804b2077e1fc98a7e826240b37db2a80e commit 03ba9b3804b2077e1fc98a7e826240b37db2a80e Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri May 25 18:33:39 2018 Consolidate kRpId and kClientDataHash constants in unittest Replace current use of relying party ID and client data hash constants in unit tests to constants in fido_test_data.h that is consistent with example 5, 6 of the CTAP spec.[1] [1]: https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-client-to-authenticator-protocol-v2.0-rd-20170927.html Bug: 798573 Change-Id: I55d0ab5a54a1dd9d1718afeea0ddd503140876c6 Reviewed-on: https://chromium-review.googlesource.com/1034291 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#561954} [modify] https://crrev.com/03ba9b3804b2077e1fc98a7e826240b37db2a80e/device/fido/fido_test_data.h [modify] https://crrev.com/03ba9b3804b2077e1fc98a7e826240b37db2a80e/device/fido/get_assertion_handler_unittest.cc [modify] https://crrev.com/03ba9b3804b2077e1fc98a7e826240b37db2a80e/device/fido/get_assertion_task_unittest.cc [modify] https://crrev.com/03ba9b3804b2077e1fc98a7e826240b37db2a80e/device/fido/make_credential_handler_unittest.cc [modify] https://crrev.com/03ba9b3804b2077e1fc98a7e826240b37db2a80e/device/fido/make_credential_task_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f45741ded48af21dbb56588e52f0e394c463e53a commit f45741ded48af21dbb56588e52f0e394c463e53a Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Jun 08 20:58:31 2018 Move U2F Register logic to MakeCredentialTask Make CTAP MakeCredential request be backwards compatible with U2F devices. Remove u2f_register.h file and migrate all U2F register logic to DeviceRegisterOperation under MakeCredential{Handler, Task} infrastructure. With this change, all input and output validation for MakeCredential and U2F Register request are moved from AuthenticatorImpl to MakeCredentialTask. Bug: 798573 Change-Id: I896a2cd0d119f9f63aaf4ab9eed16792d9c1f1bf Reviewed-on: https://chromium-review.googlesource.com/1027202 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Reilly Grant <reillyg@chromium.org> Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Cr-Commit-Position: refs/heads/master@{#565737} [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/browser/BUILD.gn [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/browser/webauth/authenticator_impl.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/browser/webauth/authenticator_impl_unittest.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/browser/webauth/webauth_browsertest.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/public/common/content_features.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/public/common/content_features.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/content/test/BUILD.gn [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/BUILD.gn [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/base/features.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/base/features.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/BUILD.gn [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/ctap_make_credential_request.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/ctap_make_credential_request.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/device_operation.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/fido_constants.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/fido_constants.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/fido_task.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/make_credential_handler_unittest.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/make_credential_task.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/make_credential_task.h [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/make_credential_task_unittest.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/u2f_command_constructor.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/u2f_command_constructor.h [delete] https://crrev.com/cf453ab08ab1df252e6454128356dbf33344e43f/device/fido/u2f_register.cc [delete] https://crrev.com/cf453ab08ab1df252e6454128356dbf33344e43f/device/fido/u2f_register.h [add] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/u2f_register_operation.cc [add] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/u2f_register_operation.h [add] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/device/fido/u2f_register_operation_unittest.cc [delete] https://crrev.com/cf453ab08ab1df252e6454128356dbf33344e43f/device/fido/u2f_register_unittest.cc [modify] https://crrev.com/f45741ded48af21dbb56588e52f0e394c463e53a/third_party/WebKit/LayoutTests/TestExpectations
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215 commit 7b96c4f3d34ee04ebaadafa83fbe4349c6d23215 Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Jun 08 21:15:08 2018 Refactor DeviceOperation logic As DeviceOperation is templated with request and request, we can subsume all logic in CtapRegisterOperation and same corresponding logic for CtapGetAssertion to DeviceOperation. Remove CtapRegisterOperation and add logic for dispatching request/ receiving response in DeviceOperation interface. Bug: 798573 Change-Id: I38a36ce53149a473736c0c1dbc0a4c7b65ea130b Reviewed-on: https://chromium-review.googlesource.com/1034387 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#565742} [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/BUILD.gn [add] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/ctap2_device_operation.h [delete] https://crrev.com/af684eb199c6ee1de118c54d5ea95af5e4a215bd/device/fido/ctap_register_operation.cc [delete] https://crrev.com/af684eb199c6ee1de118c54d5ea95af5e4a215bd/device/fido/ctap_register_operation.h [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/device_operation.h [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/get_assertion_task.cc [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/get_assertion_task.h [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/make_credential_task.cc [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/make_credential_task.h [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/u2f_register_operation.cc [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/u2f_register_operation.h [modify] https://crrev.com/7b96c4f3d34ee04ebaadafa83fbe4349c6d23215/device/fido/u2f_register_operation_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0e56e5dd601010e68cf45c77a170a7e735a0dfde commit 0e56e5dd601010e68cf45c77a170a7e735a0dfde Author: Jun Choi <hongjunchoi@chromium.org> Date: Fri Jun 08 21:27:34 2018 Migrate U2F sign logic to GetAssertionTask Remove U2fSign and U2fRequest and migrate all U2F sign request logic to U2fSignOperation within GetAssertionTask. With this migration, all error handling for incorrect parameters, invalid credentials, and unsupported algorithms are now handled by GetAssertionTask and removed from AuthenticatorImpl. Also content feature flag features::kWebAuthCtap2 is removed and feature flag device::kNewCtap2Device under device/base is used to gate U2F/CTAP logic. Bug: 798573 Change-Id: I009e6e34b251308f1f5eb3a99d8c5b7b7001bae9 Reviewed-on: https://chromium-review.googlesource.com/1070707 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org> Reviewed-by: Kim Paulhamus <kpaulhamus@chromium.org> Reviewed-by: Balazs Engedy <engedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#565745} [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/content/browser/webauth/authenticator_impl.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/content/browser/webauth/authenticator_impl.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/content/browser/webauth/authenticator_impl_unittest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/content/browser/webauth/webauth_browsertest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/BUILD.gn [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/BUILD.gn [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/ctap_get_assertion_request.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/ctap_get_assertion_request.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/fido_request_handler.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/fido_request_handler_base.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/fido_test_data.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/get_assertion_handler_unittest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/get_assertion_task.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/get_assertion_task_unittest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/make_credential_task_unittest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/mock_fido_device.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/mock_fido_device.h [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/u2f_command_constructor.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/u2f_register_operation_unittest.cc [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_request.cc [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_request.h [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_request_unittest.cc [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_sign.cc [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_sign.h [add] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/u2f_sign_operation.cc [add] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/u2f_sign_operation.h [add] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/device/fido/u2f_sign_operation_unittest.cc [delete] https://crrev.com/c5452aa311a789eada5e0582b07925b046ee56c1/device/fido/u2f_sign_unittest.cc [modify] https://crrev.com/0e56e5dd601010e68cf45c77a170a7e735a0dfde/third_party/WebKit/LayoutTests/TestExpectations
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d19453d06f2261a95537701f43db796d100f8933 commit d19453d06f2261a95537701f43db796d100f8933 Author: Jun Choi <hongjunchoi@chromium.org> Date: Thu Jun 21 23:16:39 2018 Enable by-default support of CTAP2 devices This CL changes chrome://enable-webauthentication-ctap2-support flag to be enabled by default. Bug: 798573 Change-Id: I0eb29e0cffacf88d6cccbc09281a713c1eab94c3 Reviewed-on: https://chromium-review.googlesource.com/1110547 Commit-Queue: Jun Choi <hongjunchoi@chromium.org> Commit-Queue: Balazs Engedy <engedy@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@{#569432} [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/content/browser/webauth/webauth_browsertest.cc [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/device/base/features.cc [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/device/fido/get_assertion_handler_unittest.cc [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/device/fido/get_assertion_task_unittest.cc [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/device/fido/make_credential_handler_unittest.cc [modify] https://crrev.com/d19453d06f2261a95537701f43db796d100f8933/device/fido/make_credential_task_unittest.cc
Comment 1 by bugdroid1@chromium.org
, Feb 27 2018