Array of PublicKeyCredentialDescriptor that are existing credential
mapped to user
{
type (DOMString/Required): 'public-key',
id (BufferSource/Required): Credential ID (rawID
of PublicKeyCredential),
transports ([]DOMString/Optional): Applicable AuthenticatorTransport
(usb/nfc/ble/hybrid/internal)
}
Guidance
New credential not created on authenticator for giver user.id + rp.id if given credential(s)
already
exists
on the authenticator.
Guide user to use a diff authenticator or error if that fails.
Need to provide credential raw id (is that a security/privacy issue?)TODO: Need analysis
Server side
credential: there is no way for RP to know if credential is server side or not & so does
not
know if
creating a second cred with same handle will evict the first (TODO: does this mean that
excluded
cred must be provided explicitly)
Attestation conveyance definition is cyclic in the specification
Values
none: RP not interested due to
avoid user consent
save round trip to attestation CA or Anon CA
If authenticator generates self-attestation, it is passed through by
client. All other attestations are replaced with none by client.
indirect: client (e.g. browser) decided which attestation statement is
provided.
Client may replace authenticator attestation with anonymous attestation (for
privacy).
No guarantee of receiving verifiable attestation (may receive self-attestation).
direct: receive exactly what was generated by authenticator. ??what if there
is
nothing generated??
enterprise: attestation may include uniquely identifying information.
Typically,
explicitly configured in client/user agent for specific RP (Relying Party) ID
(domain).
Client/user agent should not change the value.
Basic/Batch - Authenticator of same model share same attestation key pair
Self - uses credential private key to create attestation signature
Attestation CA (AttCA) - Endorsement key stored in TPM used to communicate
with
Attestation/Privacy CA
and get Attestation Identity Key (AIK) Certificate signed. AIK can be generated for
each
credential and shared
as attestation cert with RP. Most recent cert is called "Active"
Anonymization CA (AnonCA) - dynamically generated per-credential certificate
Array of PublicKeyCredentialDescriptor that are existing credential
mapped to user
{
type (DOMString/Required): 'public-key',
id (BufferSource/Required): Credential ID (rawID
of PublicKeyCredential),
transports ([]DOMString/Optional): Applicable AuthenticatorTransport
(usb/nfc/ble/hybrid/internal)
}
Guidance
If user id identified: SHOULD include all credential records (including transport where
possible) in the user account
No check for user verification is needed. Client will automatically enforce it.
Non-empty client MUST return error if none could be used