== Known Issues

WebAuthn is state of the art technology. Therefore, there are still some limitations products utilizing it have.
This section tells you issues known at the time of Dec 2019 that might be encountered if you try to use products
utilizing WebAuthn technology.


=== Safari's WebAuthn support

On macOS, WebAuthn is supported from Safari 13.
on iPhone/iPad, WebAuthn is supported from Safari on iOS13.3.
Both implementation only support external authenticators. TouchID and FaceID is not yet supported at this moment.

=== Android's resident key support

Android's FIDO API has not supported resident key yet. It means Chrome for Android and Firefox for Android
don't provide username-less authentication experience at the time of authentication.

NOTE: You can mimic such the experience by storing credentialId onto LocalStorage on registration and read it on
authentication. However, it doesn't works if a user uses Roaming Authenticator for authentication.

=== Firefox

Firefox supports CTAP2 Authenticators by using OS standard WebAuthn API from Windows 10 1903.
However, on macOS and Linux, only FIDO U2F authenticators are supported.

=== Implementation differences between browsers

Browser vendors has been struggling to support WebAuthn. However, it is nothing unusual that the feature supported
by some platforms are not supported by other platforms. Considering it, it is recommended to prepare some fallback
mechanism for your users using platforms not supporting the feature you expected to support.

For example, if you utilize ResidentKey to omit entering user account's ID, it might be better to support two-factor
authentication requiring password authentication for users using Chrome and Firefox, and two-factor authentication
without WebAuthn for users using browsers without WebAuthn support.

=== WebAuthn4J's ECDAA support

WebAuthn4J has not yet supported ECDAA (Elliptic Curve based Direct Anonymous Attestation) algorithm. There is no plan
to support it for the time being because ECDAA algorithm support is optional by WebAuthn specification and major
browsers have not yet supported it.


=== WebAuthn4J's PS256/PS384/PS512 support

WebAuthn4J has not yet supported PS256, PS384, and PS512 algorithms. There is no plan to support it for the time being
because these algorithms support is optional by WebAuthn specification and standard Providers of Java Crypto API
have not yet supported it.
