Skip to content

Commit 49da4d6

Browse files
authored
Merge pull request #495 from w3c/jeffh-fixup-algs-contd-2
Algorithm Fix-up (Continued, #2)
2 parents 68cc609 + 14010fa commit 49da4d6

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

index.bs

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
<h1>Web Authentication:<br>An API for accessing Public Key Credentials<br>[Level 1]</h1>
12
<pre class='metadata'>
2-
Title: Web Authentication: An API for accessing Public Key Credentials
33
Status: ED
44
Prepare for TR: true
55
TR: https://www.w3.org/TR/webauthn/
@@ -11,7 +11,7 @@ Previous Version: https://www.w3.org/TR/2016/WD-webauthn-20160928/
1111
Previous Version: https://www.w3.org/TR/2016/WD-webauthn-20160902/
1212
Previous Version: https://www.w3.org/TR/2016/WD-webauthn-20160531/
1313
Shortname: webauthn
14-
Level:
14+
Level: 1
1515
Editor: Vijay Bharadwaj, w3cid 55440, Microsoft, [email protected]
1616
Editor: Hubert Le Van Gong, w3cid 84817, PayPal, [email protected]
1717
Editor: Dirk Balfanz, w3cid 47648, Google, [email protected]
@@ -627,7 +627,7 @@ When this method is invoked, the user agent MUST execute the following algorithm
627627
1. Let |clientDataHash| be the [=hash of the serialized client data=] represented by |clientDataJSON|.
628628

629629
1. Let |currentlyAvailableAuthenticators| be a new [=ordered set=] consisting of all [=authenticators=]
630-
available on this platform.
630+
currently available on this platform.
631631

632632
1. Let |selectedAuthenticators| be a new [=ordered set=].
633633

@@ -834,20 +834,39 @@ When this method is invoked, the user agent MUST execute the following algorithm
834834
1. If |allowCredentialDescriptorList|
835835
<dl class="switch">
836836
: [=list/is not empty=]
837-
:: [=in parallel=], [=list/for each=] credential descriptor |C| in |allowCredentialDescriptorList|:
838-
1. If <code>|C|.{{transports}}</code> [=list/is not empty=], the client SHOULD select one |transport| from
839-
{{transports}}. Then, using |transport|, invoke the [=authenticatorGetAssertion=] operation on
840-
|authenticator|, with |rpId|, |clientDataHash|, |allowCredentialDescriptorList|, and
841-
|authenticatorExtensions| as parameters.
842-
843-
1. Otherwise, using local configuration knowledge of the appropriate transport to use with |authenticator|,
844-
invoke the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|,
845-
|clientDataHash|, |allowCredentialDescriptorList|, and |clientExtensions| as parameters.
837+
:: 1. Let |distinctTransports| be a new [=ordered set=].
838+
839+
1. [=list/For each=] credential descriptor |C| in |allowCredentialDescriptorList|,
840+
[=set/append=] each value, if any, of <code>|C|.{{transports}}</code> to |distinctTransports|.
841+
842+
Note: This will aggregate only distinct values of {{transports}} (for this [=authenticator=]) in
843+
|distinctTransports| due to the properties of [=ordered sets=].
844+
845+
1. If |distinctTransports|
846+
<dl class="switch">
847+
: [=list/is not empty=]
848+
:: The client selects one |transport| value from |distinctTransports|, possibly incorporating local
849+
configuration knowledge of the appropriate transport to use with |authenticator| in making its
850+
selection.
851+
852+
Then, using |transport|, invoke [=in parallel=] the [=authenticatorGetAssertion=] operation on
853+
|authenticator|, with |rpId|, |clientDataHash|, |allowCredentialDescriptorList|, and
854+
|authenticatorExtensions| as parameters.
855+
856+
: [=list/is empty=]
857+
:: Using local configuration knowledge of the appropriate transport to use with |authenticator|,
858+
invoke [=in parallel=] the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|,
859+
|clientDataHash|, |allowCredentialDescriptorList|, and |clientExtensions| as parameters.
860+
</dl>
846861

847862
: [=list/is empty=]
848863
:: Using local configuration knowledge of the appropriate transport to use with |authenticator|, invoke
849864
[=in parallel=] the [=authenticatorGetAssertion=] operation on |authenticator| with |rpId|, |clientDataHash|,
850865
and |clientExtensions| as parameters.
866+
867+
Note: In this case, the [=[RP]=] did not supply a list of acceptable credential descriptors. Thus the
868+
authenticator is being asked to exercise any credential it may possess that is bound to
869+
the [=[RP]=], as identified by |rpId|.
851870
</dl>
852871

853872
1. [=set/Append=] |authenticator| to |issuedRequests|.
@@ -1019,7 +1038,7 @@ optionally evidence of [=user consent=] to a specific transaction.
10191038
required sequence<PublicKeyCredentialParameters> parameters;
10201039

10211040
unsigned long timeout;
1022-
sequence<PublicKeyCredentialDescriptor> excludeCredentials;
1041+
sequence<PublicKeyCredentialDescriptor> excludeCredentials = [];
10231042
AuthenticatorSelectionCriteria authenticatorSelection;
10241043
AuthenticationExtensions extensions;
10251044
};

0 commit comments

Comments
 (0)