diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/interfaces/webauthn.idl | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/interfaces/webauthn.idl')
-rw-r--r-- | testing/web-platform/tests/interfaces/webauthn.idl | 387 |
1 files changed, 387 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/webauthn.idl b/testing/web-platform/tests/interfaces/webauthn.idl new file mode 100644 index 0000000000..cf1a2fbdc4 --- /dev/null +++ b/testing/web-platform/tests/interfaces/webauthn.idl @@ -0,0 +1,387 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Web Authentication: An API for accessing Public Key Credentials - Level 3 (https://w3c.github.io/webauthn/) + +[SecureContext, Exposed=Window] +interface PublicKeyCredential : Credential { + [SameObject] readonly attribute ArrayBuffer rawId; + [SameObject] readonly attribute AuthenticatorResponse response; + readonly attribute DOMString? authenticatorAttachment; + AuthenticationExtensionsClientOutputs getClientExtensionResults(); + static Promise<boolean> isConditionalMediationAvailable(); + PublicKeyCredentialJSON toJSON(); +}; + +typedef DOMString Base64URLString; +// The structure of this object will be either +// RegistrationResponseJSON or AuthenticationResponseJSON +typedef object PublicKeyCredentialJSON; + +dictionary RegistrationResponseJSON { + required Base64URLString id; + required Base64URLString rawId; + required AuthenticatorAttestationResponseJSON response; + DOMString authenticatorAttachment; + required AuthenticationExtensionsClientOutputsJSON clientExtensionResults; + required DOMString type; +}; + +dictionary AuthenticatorAttestationResponseJSON { + required Base64URLString clientDataJSON; + required Base64URLString authenticatorData; + required sequence<DOMString> transports; + // The publicKey field will be missing if pubKeyCredParams was used to + // negotiate a public-key algorithm that the user agent doesn't + // understand. (See section “Easily accessing credential data” for a + // list of which algorithms user agents must support.) If using such an + // algorithm then the public key must be parsed directly from + // attestationObject or authenticatorData. + Base64URLString publicKey; + required long long publicKeyAlgorithm; + // This value contains copies of some of the fields above. See + // section “Easily accessing credential data”. + required Base64URLString attestationObject; +}; + +dictionary AuthenticationResponseJSON { + required Base64URLString id; + required Base64URLString rawId; + required AuthenticatorAssertionResponseJSON response; + DOMString authenticatorAttachment; + required AuthenticationExtensionsClientOutputsJSON clientExtensionResults; + required DOMString type; +}; + +dictionary AuthenticatorAssertionResponseJSON { + required Base64URLString clientDataJSON; + required Base64URLString authenticatorData; + required Base64URLString signature; + Base64URLString userHandle; +}; + +dictionary AuthenticationExtensionsClientOutputsJSON { +}; + +partial dictionary CredentialCreationOptions { + PublicKeyCredentialCreationOptions publicKey; +}; + +partial dictionary CredentialRequestOptions { + PublicKeyCredentialRequestOptions publicKey; +}; + +partial interface PublicKeyCredential { + static Promise<boolean> isUserVerifyingPlatformAuthenticatorAvailable(); +}; + +partial interface PublicKeyCredential { + static Promise<PublicKeyCredentialClientCapabilities> getClientCapabilities(); +}; + +typedef record<DOMString, boolean> PublicKeyCredentialClientCapabilities; + +partial interface PublicKeyCredential { + static PublicKeyCredentialCreationOptions parseCreationOptionsFromJSON(PublicKeyCredentialCreationOptionsJSON options); +}; + +dictionary PublicKeyCredentialCreationOptionsJSON { + required PublicKeyCredentialRpEntity rp; + required PublicKeyCredentialUserEntityJSON user; + required Base64URLString challenge; + required sequence<PublicKeyCredentialParameters> pubKeyCredParams; + unsigned long timeout; + sequence<PublicKeyCredentialDescriptorJSON> excludeCredentials = []; + AuthenticatorSelectionCriteria authenticatorSelection; + sequence<DOMString> hints = []; + DOMString attestation = "none"; + sequence<DOMString> attestationFormats = []; + AuthenticationExtensionsClientInputsJSON extensions; +}; + +dictionary PublicKeyCredentialUserEntityJSON { + required Base64URLString id; + required DOMString name; + required DOMString displayName; +}; + +dictionary PublicKeyCredentialDescriptorJSON { + required Base64URLString id; + required DOMString type; + sequence<DOMString> transports; +}; + +dictionary AuthenticationExtensionsClientInputsJSON { +}; + +partial interface PublicKeyCredential { + static PublicKeyCredentialRequestOptions parseRequestOptionsFromJSON(PublicKeyCredentialRequestOptionsJSON options); +}; + +dictionary PublicKeyCredentialRequestOptionsJSON { + required Base64URLString challenge; + unsigned long timeout; + DOMString rpId; + sequence<PublicKeyCredentialDescriptorJSON> allowCredentials = []; + DOMString userVerification = "preferred"; + sequence<DOMString> hints = []; + AuthenticationExtensionsClientInputsJSON extensions; +}; + +[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; + sequence<DOMString> hints = []; + DOMString attestation = "none"; + sequence<DOMString> attestationFormats = []; + 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"; + sequence<DOMString> hints = []; + AuthenticationExtensionsClientInputs extensions; +}; + +dictionary AuthenticationExtensionsClientInputs { +}; + +dictionary AuthenticationExtensionsClientOutputs { +}; + +dictionary CollectedClientData { + required DOMString type; + required DOMString challenge; + required DOMString origin; + DOMString topOrigin; + boolean crossOrigin; +}; + +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", + "smart-card", + "hybrid", + "internal" +}; + +typedef long COSEAlgorithmIdentifier; + +enum UserVerificationRequirement { + "required", + "preferred", + "discouraged" +}; + +enum ClientCapability { + "conditionalCreate", + "conditionalMediation", + "hybridTransport", + "passkeyPlatformAuthenticator", + "userVerifyingPlatformAuthenticator", +}; + +enum PublicKeyCredentialHints { + "security-key", + "client-device", + "hybrid", +}; + +partial dictionary AuthenticationExtensionsClientInputs { + USVString appid; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + boolean appid; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + USVString appidExclude; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + boolean appidExclude; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean credProps; +}; + +dictionary CredentialPropertiesOutput { + boolean rk; + USVString authenticatorDisplayName; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + CredentialPropertiesOutput credProps; +}; + +dictionary AuthenticationExtensionsPRFValues { + required BufferSource first; + BufferSource second; +}; + +dictionary AuthenticationExtensionsPRFInputs { + AuthenticationExtensionsPRFValues eval; + record<USVString, AuthenticationExtensionsPRFValues> evalByCredential; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + AuthenticationExtensionsPRFInputs prf; +}; + +dictionary AuthenticationExtensionsPRFOutputs { + boolean enabled; + AuthenticationExtensionsPRFValues results; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + AuthenticationExtensionsPRFOutputs prf; +}; + +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; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean uvm; +}; + +typedef sequence<unsigned long> UvmEntry; +typedef sequence<UvmEntry> UvmEntries; + +partial dictionary AuthenticationExtensionsClientOutputs { + UvmEntries uvm; +}; + +dictionary AuthenticationExtensionsSupplementalPubKeysInputs { + required sequence<DOMString> scopes; + DOMString attestation = "indirect"; + sequence<DOMString> attestationFormats = []; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + AuthenticationExtensionsSupplementalPubKeysInputs supplementalPubKeys; +}; + +dictionary AuthenticationExtensionsSupplementalPubKeysOutputs { + required sequence<ArrayBuffer> signatures; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + AuthenticationExtensionsSupplementalPubKeysOutputs supplementalPubKeys; +}; |