You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Substitute enum types in dictionaries with DOMStrings (#1392)
* Update PublicKeyCredentialCreationOptions
* Update PublicKeyCredentialRequestOptions
* Update for PublicKeyCredential/transports
* Update for AuthenticatorSelectionCriteria
* Update for PublicKeyCredentialDescriptor
* Update for TokenBinding
* Update for PublicKeyCredentialParameters
* Updates per @agl's review comments
* Use the same 'ignore unknown values' language, which is used 8 times already in the document
* Update ResidentKeyRequirement to be a DOMString, too.
* Address @equalsJeffH's #1392 (comment) and fix linking to infra:map/exists (which was unused)
* Address @equalsJeffH - Add 2.1.1 "Enumerations as DOMString Types"
Addresses #1392 (review)
by adding a new conformance section and referring to it at the description of
each enumeration type.
:: A sequence of zero or more unique {{DOMString}}s, in lexicographical order, that the |authenticator| is believed to support. The values SHOULD be members of {{AuthenticatorTransport}}.
1839
+
:: A sequence of zero or more unique {{DOMString}}s, in lexicographical order, that the |authenticator| is believed to support. The values SHOULD be members of {{AuthenticatorTransport}}, but [=client platforms=] MUST ignore unknown values.
1830
1840
1831
1841
If a user agent does not wish to divulge this information it MAY substitute an arbitrary sequence designed to preserve privacy. This sequence MUST still be valid, i.e. lexicographically sorted and free of duplicates. For example, it may use the empty sequence. Either way, in this case the user agent takes the risk that [=[RP]=] behavior may be suboptimal.
1832
1842
@@ -2354,7 +2364,7 @@ during registration.
2354
2364
:: This operation returns the {{COSEAlgorithmIdentifier}} of the new credential. See [[#sctn-public-key-easy]].
2355
2365
2356
2366
: <dfn>\[[transports]]</dfn>
2357
-
:: This [=internal slot=] contains a sequence of zero or more unique {{DOMString}}s in lexicographical order. These values are the transports that the [=authenticator=] is believed to support, or an empty sequence if the information is unavailable. The values SHOULD be members of {{AuthenticatorTransport}} but [=[RPS]=] MUST accept unknown values.
2367
+
:: This [=internal slot=] contains a sequence of zero or more unique {{DOMString}}s in lexicographical order. These values are the transports that the [=authenticator=] is believed to support, or an empty sequence if the information is unavailable. The values SHOULD be members of {{AuthenticatorTransport}} but [=[RPS]=] MUST ignore unknown values.
2358
2368
</div>
2359
2369
2360
2370
#### Easily accessing credential data #### {#sctn-public-key-easy}
@@ -2413,7 +2423,7 @@ optionally evidence of [=user consent=] to a specific transaction.
2413
2423
2414
2424
<xmp class="idl">
2415
2425
dictionary PublicKeyCredentialParameters {
2416
-
required PublicKeyCredentialType type;
2426
+
required DOMString type;
2417
2427
required COSEAlgorithmIdentifier alg;
2418
2428
};
2419
2429
</xmp>
@@ -2422,7 +2432,7 @@ optionally evidence of [=user consent=] to a specific transaction.
2422
2432
This dictionary is used to supply additional parameters when creating a new credential.
2423
2433
2424
2434
: <dfn>type</dfn>
2425
-
:: This member specifies the type of credential to be created.
2435
+
:: This member specifies the type of credential to be created. The value SHOULD be a member of {{PublicKeyCredentialType}} but [=client platforms=] MUST ignore unknown values, ignoring any {{PublicKeyCredentialParameters}} with an unknown {{PublicKeyCredentialParameters/type}}.
2426
2436
2427
2437
: <dfn>alg</dfn>
2428
2438
:: This member specifies the cryptographic signature algorithm with which the newly generated credential will be used, and
@@ -2493,7 +2503,7 @@ optionally evidence of [=user consent=] to a specific transaction.
2493
2503
: <dfn>attestation</dfn>
2494
2504
:: This member is intended for use by [=[RPS]=] that wish to express their preference for [=attestation conveyance=].
2495
2505
Its values SHOULD be members of {{AttestationConveyancePreference}}.
2496
-
[=Client platforms=] MUST ignore unknown values.
2506
+
[=Client platforms=] MUST ignore unknown values, treating an unknown value as if the [=map/exist|member does not exist=].
:: If this member is [=present|present=], eligible authenticators are filtered to only authenticators attached with the
2633
-
specified [[#enum-attachment]].
2643
+
specified [[#enum-attachment]]. The value SHOULD be a member of {{AuthenticatorAttachment}} but [=client platforms=] MUST ignore unknown values, treating an unknown value as if the [=map/exist|member does not exist=].
2634
2644
2635
2645
: <dfn>requireResidentKey</dfn>
2636
2646
:: Note: This member is retained for backwards compatibility with WebAuthn Level 1 but is deprecated in favour of {{residentKey}}.
@@ -2645,12 +2655,12 @@ attributes.
2645
2655
:: Note: This member supersedes {{requireResidentKey}}. If both are present and the [=client=] understands {{residentKey}}, then
2646
2656
{{residentKey}} is used and {{requireResidentKey}} is ignored.
2647
2657
2648
-
See {{ResidentKeyRequirement}} for the description of {{residentKey}}'s values and semantics.
2658
+
The value SHOULD be a member of {{ResidentKeyRequirement}} but [=client platforms=] MUST ignore unknown values, treating an unknown value as if the [=map/exist|member does not exist=]. See {{ResidentKeyRequirement}} for the description of {{residentKey}}'s values and semantics.
2649
2659
2650
2660
: <dfn>userVerification</dfn>
2651
2661
:: This member describes the [=[RP]=]'s requirements regarding [=user verification=] for the
2652
2662
{{CredentialsContainer/create()}} operation. Eligible authenticators are filtered to only those capable of satisfying this
2653
-
requirement.
2663
+
requirement. The value SHOULD be a member of {{UserVerificationRequirement}} but [=client platforms=] MUST ignore unknown values, treating an unknown value as if the [=map/exist|member does not exist=].
2654
2664
</div>
2655
2665
2656
2666
@@ -2668,6 +2678,8 @@ to [[#sctn-createCredential|create a credential]].
2668
2678
};
2669
2679
</xmp>
2670
2680
2681
+
Note: The {{AuthenticatorAttachment}} enumeration is deliberately not referenced, see [[#sct-domstring-backwards-compatibility]].
@@ -2694,6 +2706,8 @@ credential|credentials=]. The [=client=] and user will then use whichever is ava
2694
2706
};
2695
2707
</xmp>
2696
2708
2709
+
Note: The {{ResidentKeyRequirement}} enumeration is deliberately not referenced, see [[#sct-domstring-backwards-compatibility]].
2710
+
2697
2711
This enumeration's values describe the [=[RP]=]'s requirements for [=client-side discoverable credentials=] (formerly known as [=resident credentials=] or [=resident keys=]):
@@ -2796,8 +2812,7 @@ an assertion. Its {{PublicKeyCredentialRequestOptions/challenge}} member MUST be
2796
2812
2797
2813
: <dfn>userVerification</dfn>
2798
2814
:: This OPTIONAL member describes the [=[RP]=]'s requirements regarding [=user verification=] for the
2799
-
{{CredentialsContainer/get()}} operation. Eligible authenticators are filtered to only those capable of satisfying this
2800
-
requirement.
2815
+
{{CredentialsContainer/get()}} operation. The value SHOULD be a member of {{UserVerificationRequirement}} but [=client platforms=] MUST ignore unknown values, treating an unknown value as if the [=map/exist|member does not exist=]. Eligible authenticators are filtered to only those capable of satisfying this requirement.
2801
2816
2802
2817
: <dfn>extensions</dfn>
2803
2818
:: This OPTIONAL member contains additional parameters requesting additional processing by the client and authenticator.
@@ -2896,7 +2911,7 @@ Note: The {{CollectedClientData}} may be extended in the future. Therefore it's
2896
2911
};
2897
2912
2898
2913
dictionary TokenBinding {
2899
-
required TokenBindingStatus status;
2914
+
required DOMString status;
2900
2915
DOMString id;
2901
2916
};
2902
2917
@@ -2927,7 +2942,7 @@ Note: The {{CollectedClientData}} may be extended in the future. Therefore it's
:: This member SHOULD be a member of {{TokenBindingStatus}} but [=client platforms=] MUST ignore unknown values, treating an unknown value as if the {{CollectedClientData/tokenBinding}}[=map/exist|member does not exist=]. When known, this member is one of the following:
:: This member contains the type of the [=public key credential=] the caller is referring to.
3103
+
:: This member contains the type of the [=public key credential=] the caller is referring to. The value SHOULD be a member of {{PublicKeyCredentialType}} but [=client platforms=] MUST ignore any {{PublicKeyCredentialDescriptor}} with an unknown {{PublicKeyCredentialDescriptor/type}}.
3084
3104
3085
3105
: <dfn>id</dfn>
3086
3106
:: This member contains the [=credential ID=] of the [=public key credential=] the caller is referring to.
@@ -3109,15 +3129,15 @@ parameter to the {{CredentialsContainer/create()}} or {{CredentialsContainer/get
3109
3129
};
3110
3130
</xmp>
3111
3131
3132
+
Note: The {{AuthenticatorTransport}} enumeration is deliberately not referenced, see [[#sct-domstring-backwards-compatibility]].
Note: The {{AuthenticatorTransport}} enumeration is not referenced by other parts of the Web IDL because that would preclude other values from being used without updating this specification and its implementations. It is important for backwards compatibility that [=client platforms=] and [=[RPS]=] handle unknown values. Therefore it exists here for documentation and as a registry. Where transports are represented elsewhere, they are typed as {{DOMString}}s, for example in {{PublicKeyCredentialDescriptor/transports}}.
3120
-
3121
3141
: <dfn>usb</dfn>
3122
3142
:: Indicates the respective [=authenticator=] can be contacted over removable USB.
3123
3143
@@ -3160,6 +3180,8 @@ parameter to the {{CredentialsContainer/create()}} or {{CredentialsContainer/get
3160
3180
A [=[WRP]=] may require [=user verification=] for some of its operations but not for others, and may use this type to express its
3161
3181
needs.
3162
3182
3183
+
Note: The {{UserVerificationRequirement}} enumeration is deliberately not referenced, see [[#sct-domstring-backwards-compatibility]].
0 commit comments