https://www.w3.org/TR/webauthn/#idl-index [SecureContext, Exposed=Window] interface PublicKeyCredential : Credential { [SameObject] readonly attribute ArrayBuffer rawId; [SameObject] readonly attribute AuthenticatorResponse response; AuthenticationExtensionsClientOutputs getClientExtensionResults(); }; partial dictionary CredentialCreationOptions { PublicKeyCredentialCreationOptions publicKey; }; partial dictionary CredentialRequestOptions { PublicKeyCredentialRequestOptions publicKey; }; partial interface PublicKeyCredential { static Promise<boolean> isUserVerifyingPlatformAuthenticatorAvailable(); }; [SecureContext, Exposed=Window] interface AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer clientDataJSON; }; [SecureContext, Exposed=Window] interface AuthenticatorAttestationResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer attestationObject; sequence<DOMString> getTransports(); ArrayBuffer getAuthenticatorData(); ArrayBuffer? getPublicKey(); COSEAlgorithmIdentifier getPublicKeyAlgorithm(); }; [SecureContext, Exposed=Window] interface AuthenticatorAssertionResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer authenticatorData; [SameObject] readonly attribute ArrayBuffer signature; [SameObject] readonly attribute ArrayBuffer? userHandle; }; dictionary PublicKeyCredentialParameters { required DOMString type; required COSEAlgorithmIdentifier alg; }; dictionary PublicKeyCredentialCreationOptions { required PublicKeyCredentialRpEntity rp; required PublicKeyCredentialUserEntity user; required BufferSource challenge; required sequence<PublicKeyCredentialParameters> pubKeyCredParams; unsigned long timeout; sequence<PublicKeyCredentialDescriptor> excludeCredentials = []; AuthenticatorSelectionCriteria authenticatorSelection; DOMString attestation = "none"; AuthenticationExtensionsClientInputs extensions; }; dictionary PublicKeyCredentialEntity { required DOMString name; }; dictionary PublicKeyCredentialRpEntity : PublicKeyCredentialEntity { DOMString id; }; dictionary PublicKeyCredentialUserEntity : PublicKeyCredentialEntity { required BufferSource id; required DOMString displayName; }; dictionary AuthenticatorSelectionCriteria { DOMString authenticatorAttachment; DOMString residentKey; boolean requireResidentKey = false; DOMString userVerification = "preferred"; }; enum AuthenticatorAttachment { "platform", "cross-platform" }; enum ResidentKeyRequirement { "discouraged", "preferred", "required" }; enum AttestationConveyancePreference { "none", "indirect", "direct", "enterprise" }; dictionary PublicKeyCredentialRequestOptions { required BufferSource challenge; unsigned long timeout; USVString rpId; sequence<PublicKeyCredentialDescriptor> allowCredentials = []; DOMString userVerification = "preferred"; AuthenticationExtensionsClientInputs extensions; }; dictionary AuthenticationExtensionsClientInputs { }; dictionary AuthenticationExtensionsClientOutputs { }; dictionary CollectedClientData { required DOMString type; required DOMString challenge; required DOMString origin; boolean crossOrigin; TokenBinding tokenBinding; }; dictionary TokenBinding { required DOMString status; DOMString id; }; enum TokenBindingStatus { "present", "supported" }; enum PublicKeyCredentialType { "public-key" }; dictionary PublicKeyCredentialDescriptor { required DOMString type; required BufferSource id; sequence<DOMString> transports; }; enum AuthenticatorTransport { "usb", "nfc", "ble", "internal" }; typedef long COSEAlgorithmIdentifier; enum UserVerificationRequirement { "required", "preferred", "discouraged" }; partial dictionary AuthenticationExtensionsClientInputs { USVString appid; }; partial dictionary AuthenticationExtensionsClientOutputs { boolean appid; }; partial dictionary AuthenticationExtensionsClientInputs { USVString appidExclude; }; partial dictionary AuthenticationExtensionsClientOutputs { boolean appidExclude; }; partial dictionary AuthenticationExtensionsClientInputs { boolean uvm; }; typedef sequence<unsigned long> UvmEntry; typedef sequence<UvmEntry> UvmEntries; partial dictionary AuthenticationExtensionsClientOutputs { UvmEntries uvm; }; partial dictionary AuthenticationExtensionsClientInputs { boolean credProps; }; dictionary CredentialPropertiesOutput { boolean rk; }; partial dictionary AuthenticationExtensionsClientOutputs { CredentialPropertiesOutput credProps; }; partial dictionary AuthenticationExtensionsClientInputs { AuthenticationExtensionsLargeBlobInputs largeBlob; }; enum LargeBlobSupport { "required", "preferred", }; dictionary AuthenticationExtensionsLargeBlobInputs { DOMString support; boolean read; BufferSource write; }; partial dictionary AuthenticationExtensionsClientOutputs { AuthenticationExtensionsLargeBlobOutputs largeBlob; }; dictionary AuthenticationExtensionsLargeBlobOutputs { boolean supported; ArrayBuffer blob; boolean written; };