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

Issue 798573 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug

Blocking:
issue 831712



Sign in to add a comment

Add support for inter-operability between CTAP and U2F requests

Project Member Reported by hongjunchoi@chromium.org, Jan 2 2018

Issue description

CTAP requests parameters should be converted to corresponding U2F request parameters if connected authenticator only supports U2F protocol. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 27 2018

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

Comment 2 by engedy@chromium.org, Mar 31 2018

Labels: -Pri-3 M-68 Pri-1
Status: Started (was: Untriaged)
Blocking: 831712
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 23 2018

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

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 25 2018

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

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 25 2018

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

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 27 2018

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

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 27 2018

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

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 27 2018

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

Project Member

Comment 10 by bugdroid1@chromium.org, May 3 2018

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

Project Member

Comment 11 by bugdroid1@chromium.org, May 4 2018

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

Project Member

Comment 12 by bugdroid1@chromium.org, May 25 2018

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

Project Member

Comment 13 by bugdroid1@chromium.org, May 25 2018

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

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 8 2018

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

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 8 2018

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

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 8 2018

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

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 21 2018

Status: Fixed (was: Started)

Sign in to add a comment