Skip to content

Commit

Permalink
Adds optional transport hints to CredentialDescription (#194)
Browse files Browse the repository at this point in the history
* Adds optional transport hints to CredentialDescription

Resolves #6
  • Loading branch information
leshi authored and vijaybh committed Sep 23, 2016
1 parent c9051f9 commit c39954b
Showing 1 changed file with 32 additions and 1 deletion.
33 changes: 32 additions & 1 deletion index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -415,12 +415,14 @@ When this method is invoked, the user agent MUST execute the following algorithm
8. Use {{attestationChallenge}}, |callerOrigin| and |rpId|, along with the token binding key associated with |callerOrigin| (if
any), to create a {{ClientData}} structure representing this request. Choose a hash algorithm for {{ClientData/hashAlg}} and
compute the <a>clientDataJSON</a> and <a>clientDataHash</a>.

9. Initialize |issuedRequests| to an empty list.

10. For each authenticator currently available on this platform: asynchronously invoke the <a>authenticatorMakeCredential</a>
operation on that authenticator with |rpIdHash|, <a>clientDataHash</a>, {{accountInformation}}, |normalizedParameters|,
{{ScopedCredentialOptions/excludeList}} and |clientExtensions| as parameters. Add a corresponding entry to |issuedRequests|.
- For each credential C in {{ScopedCredentialOptions/excludeList}} that has a non-empty |transports| list, optionally use
only the specified transports to test for the existence of C.

11. While |issuedRequests| is not empty, perform the following actions depending upon the |adjustedTimeout| timer and responses
from the authenticators:
Expand Down Expand Up @@ -495,6 +497,8 @@ When this method is invoked, the user agent MUST execute the following algorithm
platform-specific procedure to determine which, if any, credentials listed in {{AssertionOptions/allowList}} might be
present on this authenticator, and set |credentialList| to this filtered list. If no such filtering is possible, set
|credentialList| to an empty list.
- For each credential C within the |credentialList| that has a non-empty |transports| list, optionally use only the
specified transports to get assertions using credential C.
- If the above filtering process concludes that none of the credentials on {{AssertionOptions/allowList}} can possibly be on this
authenticator, do not perform any of the following steps for this authenticator, and proceed to the next authenticator
(if any).
Expand Down Expand Up @@ -840,6 +844,7 @@ by the caller to select a credential for use.
dictionary ScopedCredentialDescription {
required ScopedCredentialType type;
required BufferSource id;
sequence < Transport > transports;
};
</pre>

Expand All @@ -854,6 +859,32 @@ these methods.
</div>


### Credential Transport enumeration (enum <dfn enum>ExternalTransport</dfn>) ### {#transport}

<pre class="idl">
enum Transport {
"usb",
"nfc",
"ble"
};
</pre>

<div dfn-for="Transport">
This enumeration defines the valid transports over which a client might
look for an Authenticator that can provide an assertion for the respective
credential. Note that these are a hint from the Relying Party to the
client as to its best belief of how an authenticator may be reached.
<ul>
<li><dfn>usb</dfn> - the respective authenticator may be contacted over
USB.
<li><dfn>nfc</dfn> - the respective authenticator may be contacted over
Near Field Communication (NFC).
<li><dfn>ble</dfn> - the respective authenticator may be contacted over
Bluetooth Smart (Bluetooth Low Energy / BLE).
</ul>
<div>


### Cryptographic Algorithm Identifier (type {{AlgorithmIdentifier}}) ### {#alg-identifier}

A string or dictionary identifying a cryptographic algorithm and optionally a set of parameters for that algorithm. This type is
Expand Down

0 comments on commit c39954b

Please sign in to comment.