Bug 238154

Summary: [WebAuthn] Support getAssertion for virtual HID authenticators
Product: WebKit Reporter: pascoe <pascoe>
Component: WebKit Misc.Assignee: pascoe <pascoe>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch for landing ews-feeder: commit-queue-

pascoe@apple.com
Reported 2022-03-21 14:30:48 PDT
Virtual authenticators for WebAuthn support different transprots: nfc, usb, internal, and ble. Currently, we only fully support the internal transport and makeCredential for usb-transport. The default transport for web-platform-tests is usb. We should support getAssertion for the usb transport to run more WPT tests.
Attachments
Patch (19.28 KB, patch)
2022-03-21 14:35 PDT, pascoe@apple.com
no flags
Patch for landing (19.49 KB, patch)
2022-03-21 16:07 PDT, pascoe@apple.com
ews-feeder: commit-queue-
Radar WebKit Bug Importer
Comment 1 2022-03-21 14:31:00 PDT
pascoe@apple.com
Comment 2 2022-03-21 14:35:48 PDT
Brent Fulgham
Comment 3 2022-03-21 15:41:09 PDT
Comment on attachment 455276 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=455276&action=review r=me, but please correct the pass-by-value mistake. > Source/WebCore/ChangeLog:9 > + Virtual authenticators for WebAuthn support different transprots: nfc, usb, internal, *transports > Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp:91 > + Nit: Extra blank line here. > Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:62 > + VirtualCredential cred = credential; Weird that you have to make this copy! > Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:66 > +Vector<VirtualCredential> VirtualAuthenticatorManager::credentialsMatchingList(const String& authenticatorId, const String& rpId, Vector<Vector<uint8_t>> credentialIds) credentialIds should be passed as a const& since you only read it. > Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.h:39 > +Vector<uint8_t> signatureForPrivateKey(RetainPtr<SecKeyRef> privateKey, const Vector<uint8_t>& authData, const Vector<uint8_t> clientDataHash); clientDataHash should be a const referenced, not just a const vector.
pascoe@apple.com
Comment 4 2022-03-21 16:07:51 PDT
Created attachment 455293 [details] Patch for landing
EWS
Comment 5 2022-03-22 08:41:05 PDT
ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.
pascoe@apple.com
Comment 6 2022-03-22 09:14:39 PDT
pascoe@apple.com
Comment 7 2022-03-30 15:32:05 PDT
*** Bug 237857 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.