Class PublicKeyCredential

java.lang.Object
com.codename1.io.webauthn.PublicKeyCredential

public final class PublicKeyCredential extends java.lang.Object

The authenticator's response to a passkey ceremony -- either a registration (type=public-key, response.attestationObject present) or an assertion (response.signature + response.authenticatorData present).

Immutable. The most common usage is to call toJson() and POST the result to your relying-party server, which then runs full signature / origin / counter verification using a server-side library. Do not try to verify the attestation or assertion on the device -- that is the relying party's responsibility.

Since:
7.0.245
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Credential type -- always "public-key" for WebAuthn.
  • Method Summary

    Modifier and Type
    Method
    Description
    Map<String, java.lang.Object>
    Read-only view of the parsed JSON.
    Parses a RegistrationResponseJSON / AuthenticationResponseJSON document returned by the native authenticator.
    response.attestationObject for a registration response, base64url-encoded.
    authenticatorAttachment -- "platform" if a built-in authenticator (Face ID / Touch ID, Android biometrics) handled the request, "cross-platform" for a hardware key, or null if the OS did not report it.
    response.clientDataJSON, base64url-encoded.
    id -- the credential identifier, base64url-encoded.
    rawId -- the same identifier as a base64url-encoded byte array.
    response.signature for an assertion response, base64url-encoded.
    response.userHandle for an assertion response, base64url-encoded.
    boolean
    true if this is a registration (create) response.
    Returns the original JSON.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • TYPE_PUBLIC_KEY

      public static final String TYPE_PUBLIC_KEY
      Credential type -- always "public-key" for WebAuthn.
      See Also:
  • Method Details

    • fromJson

      public static PublicKeyCredential fromJson(String json)
      Parses a RegistrationResponseJSON / AuthenticationResponseJSON document returned by the native authenticator.
    • toJson

      public String toJson()
      Returns the original JSON. POST this back to your relying-party server verbatim.
    • asMap

      public Map<String, java.lang.Object> asMap()
      Read-only view of the parsed JSON.
    • getId

      public String getId()
      id -- the credential identifier, base64url-encoded. Stable across ceremonies for the same authenticator + relying party pair, so this is what you store on the server.
    • getRawId

      public String getRawId()
      rawId -- the same identifier as a base64url-encoded byte array.
    • getAuthenticatorAttachment

      public String getAuthenticatorAttachment()
      authenticatorAttachment -- "platform" if a built-in authenticator (Face ID / Touch ID, Android biometrics) handled the request, "cross-platform" for a hardware key, or null if the OS did not report it.
    • isRegistration

      public boolean isRegistration()
      true if this is a registration (create) response. false for an assertion (get) response.
    • getClientDataJSON

      public String getClientDataJSON()
      response.clientDataJSON, base64url-encoded. Decoded server-side and checked against the original challenge / origin.
    • getAttestationObject

      public String getAttestationObject()
      response.attestationObject for a registration response, base64url-encoded. null on an assertion response.
    • getSignature

      public String getSignature()
      response.signature for an assertion response, base64url-encoded. null on a registration response.
    • getUserHandle

      public String getUserHandle()
      response.userHandle for an assertion response, base64url-encoded. Matches the user.id from the registration ceremony.