RESOLVED FIXED 190784
[WebAuthN] Import CTAP device request/response converters from Chromium
https://bugs.webkit.org/show_bug.cgi?id=190784
Summary [WebAuthN] Import CTAP device request/response converters from Chromium
Jiewen Tan
Reported 2018-10-21 18:37:25 PDT
Import CTAP device request/response converters from Chromium such that we can convert WebAuthN request into proper binaries that CTAP devices could understand and understand their binary responses.
Attachments
Patch (144.45 KB, patch)
2018-10-21 19:10 PDT, Jiewen Tan
no flags
Patch (144.64 KB, patch)
2018-10-22 18:33 PDT, Jiewen Tan
no flags
Patch (144.64 KB, patch)
2018-10-22 18:38 PDT, Jiewen Tan
no flags
Patch (145.11 KB, patch)
2018-10-22 19:06 PDT, Jiewen Tan
no flags
Patch (145.01 KB, patch)
2018-10-30 19:02 PDT, Jiewen Tan
no flags
Patch (145.18 KB, patch)
2018-10-31 12:22 PDT, Jiewen Tan
no flags
Patch (145.19 KB, patch)
2018-10-31 12:43 PDT, Jiewen Tan
no flags
Patch (145.20 KB, patch)
2018-10-31 13:56 PDT, Jiewen Tan
bfulgham: review+
Patch for landing (144.72 KB, patch)
2018-11-08 01:33 PST, Jiewen Tan
jiewen_tan: commit-queue-
Patch for landing (144.62 KB, patch)
2018-11-08 01:50 PST, Jiewen Tan
no flags
Jiewen Tan
Comment 1 2018-10-21 19:10:29 PDT
EWS Watchlist
Comment 2 2018-10-21 19:12:30 PDT Comment hidden (obsolete)
Radar WebKit Bug Importer
Comment 3 2018-10-22 11:38:21 PDT
Jiewen Tan
Comment 4 2018-10-22 18:33:33 PDT
EWS Watchlist
Comment 5 2018-10-22 18:36:07 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 6 2018-10-22 18:38:00 PDT
EWS Watchlist
Comment 7 2018-10-22 18:41:24 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 8 2018-10-22 19:06:51 PDT
EWS Watchlist
Comment 9 2018-10-22 19:09:35 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 10 2018-10-30 19:02:55 PDT
EWS Watchlist
Comment 11 2018-10-30 19:04:57 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 12 2018-10-31 12:22:26 PDT
EWS Watchlist
Comment 13 2018-10-31 12:25:45 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 14 2018-10-31 12:43:10 PDT
EWS Watchlist
Comment 15 2018-10-31 12:45:37 PDT Comment hidden (obsolete)
Jiewen Tan
Comment 16 2018-10-31 13:56:09 PDT
EWS Watchlist
Comment 17 2018-10-31 13:58:10 PDT
Attachment 353527 [details] did not pass style-queue: ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3586: developmentRegion is not en. [xcodeproj/settings] [5] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61: Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line. [build/webcore_export] [4] Total errors found: 13 in 30 files If any of these errors are false positives, please file a bug against check-webkit-style.
Brent Fulgham
Comment 18 2018-11-07 13:47:37 PST
Comment on attachment 353527 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=353527&action=review Looks good. I had a minor suggestion for the decode logic (labelling), but not necessary to land the code. > Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:98 > + auto it = decodedMap.find(CBOR(1)); It seems like these ordinal values for the decodeMap might be more meaningful with constant definitions. Is the only meaning of this map entry that it is the first of 'n' values? Or is the first value always a specific piece of information? Just like the request map is accessed through keys, it would be nice to access the response with keys, too (for legibility). Still, since this is Google code, maybe we want to keep it as pristine as possible to aid in porting over changes.
Jiewen Tan
Comment 19 2018-11-07 14:18:03 PST
Comment on attachment 353527 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=353527&action=review Thanks Brent for r+ the patch. > Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h:42 > + std::optional<UserVerificationRequirement> userVerification { UserVerificationRequirement::Preferred }; It doesn't need to be std::optional since it has a default value. >> Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:98 >> + auto it = decodedMap.find(CBOR(1)); > > It seems like these ordinal values for the decodeMap might be more meaningful with constant definitions. Is the only meaning of this map entry that it is the first of 'n' values? Or is the first value always a specific piece of information? Just like the request map is accessed through keys, it would be nice to access the response with keys, too (for legibility). > > Still, since this is Google code, maybe we want to keep it as pristine as possible to aid in porting over changes. Agreed. The original code is using auto, and I didn't think too much when I changed the coding style. > Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:34 > +#include <wtf/Ref.h> Should have remove this.
Jiewen Tan
Comment 20 2018-11-08 01:33:02 PST
Created attachment 354221 [details] Patch for landing
EWS Watchlist
Comment 21 2018-11-08 01:34:47 PST Comment hidden (obsolete)
Jiewen Tan
Comment 22 2018-11-08 01:50:34 PST
Created attachment 354222 [details] Patch for landing
WebKit Commit Bot
Comment 23 2018-11-08 02:30:06 PST
Comment on attachment 354222 [details] Patch for landing Clearing flags on attachment: 354222 Committed r237983: <https://trac.webkit.org/changeset/237983>
Jiewen Tan
Comment 24 2018-11-08 11:42:29 PST
Landed a build fix for iOS device build: Committed r237993: <https://trac.webkit.org/changeset/237993>
Jiewen Tan
Comment 25 2018-11-08 16:24:46 PST
Landed a proper build fix: Committed r238010: <https://trac.webkit.org/changeset/238010>
Note You need to log in before you can comment on or make changes to this bug.