Hook WebAuthN to //device/u2f to perform credential registration.
This change implements the browser-side of authenticator.mojom to
build and send a U2F-style request to //device/u2f to talk to a
hardware authenticator. This also adds a utility class to map the u2f
response from U2fDevice to a CTAP response per the FIDO2 and WebAuthN specs.
Bug: 664630
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I7d5f9e2308c45fdd8ca9463a8a78c2f88d9aeb80
Reviewed-on: https://chromium-review.googlesource.com/710516
Reviewed-by: Jochen Eisinger <[email protected]>
Reviewed-by: Mike West <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Balazs Engedy <[email protected]>
Commit-Queue: Kim Paulhamus <[email protected]>
Cr-Commit-Position: refs/heads/master@{#518277}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index d64f9b7..b363ac2 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -84,6 +84,7 @@
"//device/geolocation/public/cpp",
"//device/geolocation/public/interfaces",
"//device/screen_orientation/public/interfaces",
+ "//device/u2f",
"//device/vr:mojo_bindings",
"//google_apis",
"//gpu",
@@ -1651,8 +1652,6 @@
"web_contents/web_drag_source_mac.mm",
"web_contents/web_drag_utils_win.cc",
"web_contents/web_drag_utils_win.h",
- "webauth/authenticator_impl.cc",
- "webauth/authenticator_impl.h",
"webauth/cbor/cbor_values.cc",
"webauth/cbor/cbor_values.h",
"webauth/cbor/cbor_writer.cc",
@@ -2160,6 +2159,30 @@
"speech/speech_recognition_engine.h",
"speech/speech_recognizer_impl.cc",
"speech/speech_recognizer_impl.h",
+
+ # Most webauth code is non-Android
+ "webauth/attestation_data.cc",
+ "webauth/attestation_data.h",
+ "webauth/attestation_object.cc",
+ "webauth/attestation_object.h",
+ "webauth/attestation_statement.cc",
+ "webauth/attestation_statement.h",
+ "webauth/authenticator_data.cc",
+ "webauth/authenticator_data.h",
+ "webauth/authenticator_impl.cc",
+ "webauth/authenticator_impl.h",
+ "webauth/authenticator_utils.cc",
+ "webauth/authenticator_utils.h",
+ "webauth/collected_client_data.cc",
+ "webauth/collected_client_data.h",
+ "webauth/ec_public_key.cc",
+ "webauth/ec_public_key.h",
+ "webauth/fido_attestation_statement.cc",
+ "webauth/fido_attestation_statement.h",
+ "webauth/public_key.cc",
+ "webauth/public_key.h",
+ "webauth/register_response_data.cc",
+ "webauth/register_response_data.h",
]
deps += [ "//third_party/flac" ]
}