12/2020 WebAuthn Implementation report

This is an implementation report for WebAuthn, as of December 2020.

New features of WebAuthn 2 are:

WPT

As of 31 March 2021.

Path Chrome 91/Linux Edge 91/Win10 Firefox 89/Linux Safari 122 preview/MacOS10
createcredential-badargs-attestation.https.html7 / 77 / 76 / 66 / 6
createcredential-badargs-authnrselection.https.html14 / 1414 / 1413 / 1313 / 13
createcredential-badargs-challenge.https.html7 / 77 / 76 / 66 / 6
createcredential-badargs-rp.https.html14 / 1414 / 1410 / 130 / 1
createcredential-badargs-user.https.html18 / 1818 / 1817 / 170 / 1
createcredential-excludecredentials.https.html8 / 88 / 82 / 70 / 1
createcredential-extensions.https.html7 / 77 / 71 / 60 / 1
createcredential-getpublickey.https.html3 / 33 / 30 / 20 / 1
createcredential-large-blob-not-supported.https.html7 / 77 / 70 / 60 / 1
createcredential-large-blob-supported.https.html5 / 55 / 50 / 40 / 1
createcredential-passing.https.html39 / 3939 / 390 / 380 / 1
createcredential-pubkeycredparams.https.html11 / 1111 / 118 / 1010 / 10
createcredential-resident-key.https.html16 / 1616 / 160 / 160 / 1
createcredential-timeout.https.html2 / 22 / 22 / 20 / 1
getcredential-badargs-rpid.https.html8 / 88 / 80 / 70 / 1
getcredential-badargs-userverification.https.html7 / 77 / 70 / 60 / 1
getcredential-extensions.https.html9 / 99 / 90 / 80 / 1
getcredential-large-blob-not-supported.https.html6 / 66 / 60 / 50 / 1
getcredential-large-blob-supported.https.html4 / 44 / 40 / 30 / 1
getcredential-passing.https.html12 / 1212 / 120 / 110 / 1
getcredential-rk-passing.https.html4 / 44 / 40 / 30 / 1
getcredential-timeout.https.html2 / 22 / 20 / 20 / 1
idlharness.https.window.html70 / 7070 / 7066 / 7066 / 70
securecontext.http.html2 / 22 / 22 / 22 / 2
securecontext.https.html2 / 22 / 22 / 22 / 2
webauthn-testdriver-basic.https.html5 / 55 / 50 / 50 / 1

For more details, see the web-platform-tests snapshot of March 2, 2021.

Notes

Chrome and edge share IDL and then get turned into other things down the line. Thus chrome and windows are different in their code. (see WebAuthn minutes 31 March 2021).

getTransports isn't tested but is implemented by Chrome/Edge (as shown in the idl_harness test).

Enterprise Attestation, Apple Attestation aren't testable using WPT, but have been implemented in Chrome.

microsoft/webauthn includes Win32 headers for communicating to Windows Hello and external security keys as part of WebAuthN and CTAP specification. This has been tested but not integrated yet (see WebAuthn minutes 31 March 2021).