Class PublicKeyCredential<A extends AuthenticatorResponse,B extends ClientExtensionOutputs>

java.lang.Object
com.yubico.webauthn.data.PublicKeyCredential<A,B>

public final class PublicKeyCredential<A extends AuthenticatorResponse,B extends ClientExtensionOutputs> extends Object
The PublicKeyCredential interface inherits from Credential [CREDENTIAL-MANAGEMENT-1], and contains the attributes that are returned to the caller when a new credential is created, or a new assertion is requested.
See Also:
  • Method Details

    • builder

    • parseRegistrationResponseJson

      Parse a PublicKeyCredential object from JSON.

      The json should be of the following format:

       {
         "id": "(resp.id)",
         "response": {
           "attestationObject": "(Base64Url encoded resp.attestationObject)",
           "clientDataJSON": "(Base64Url encoded resp.clientDataJSON)"
         },
         "clientExtensionResults": { (resp.getClientExtensionResults()) },
         "type": "public-key"
       }
       
      resp:
      The PublicKeyCredential object returned from a registration ceremony.
      id:
      The string value of resp.id
      response.attestationObject:
      The value of resp.attestationObject, Base64Url encoded as a string
      response.clientDataJSON:
      The value of resp.clientDataJSON, Base64Url encoded as a string
      clientExtensionResults:
      The return value of resp.getClientExtensionResults()
      type:
      The literal string value "public-key"
      Parameters:
      json - a JSON string of the above format
      Throws:
      IOException - if the json is invalid or cannot be decoded as a PublicKeyCredential
    • parseAssertionResponseJson

      Parse a PublicKeyCredential object from JSON.

      The json should be of the following format:

       {
         "id": "(resp.id)",
         "response": {
           "authenticatorData": "(Base64Url encoded resp.authenticatorData)",
           "signature": "(Base64Url encoded resp.signature)",
           "clientDataJSON": "(Base64Url encoded resp.clientDataJSON)",
           "userHandle": "(null, undefined or Base64Url encoded resp.userHandle)"
         },
         "clientExtensionResults": { (resp.getClientExtensionResults()) },
         "type": "public-key"
       }
       
      resp:
      The PublicKeyCredential object returned from an authentication ceremony.
      id:
      The string value of resp.id
      response.authenticatorData:
      The value of resp.authenticatorData, Base64Url encoded as a string
      response.signature:
      The value of resp.signature, Base64Url encoded as a string
      response.clientDataJSON:
      The value of resp.clientDataJSON, Base64Url encoded as a string
      response.userHandle:
      The value of resp.userHandle Base64Url encoded as a string if present, otherwise null or undefined
      clientExtensionResults:
      The return value of resp.getClientExtensionResults()
      type:
      The literal string value "public-key"
      Parameters:
      json - a JSON string of the above format
      Throws:
      IOException - if the json is invalid or cannot be decoded as a PublicKeyCredential
    • toBuilder

    • getId

      @NonNull public @NonNull ByteArray getId()
      The raw Credential ID of this credential, corresponding to the rawId attribute in the WebAuthn API.
    • getResponse

      @NonNull public A getResponse()
      The authenticator's response to the client’s request to either create a public key credential, or generate an authentication assertion.

      If the PublicKeyCredential was created in response to navigator.credentials.create(), this attribute’s value will be an AuthenticatorAttestationResponse, otherwise, the PublicKeyCredential was created in response to navigator.credentials.get(), and this attribute’s value will be an AuthenticatorAssertionResponse.

    • getClientExtensionResults

      @NonNull public B getClientExtensionResults()
      A map containing extension identifier → client extension output entries produced by the extension’s client extension processing.
    • getType

      @NonNull public @NonNull PublicKeyCredentialType getType()
      The PublicKeyCredential's type value is the string "public-key".
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object