CreatePublicKeyCredentialRequest


class CreatePublicKeyCredentialRequest : CreateCredentialRequest


A request to register a passkey from the user's public key credential provider.

Summary

Public constructors

CreatePublicKeyCredentialRequest(
    requestJson: String,
    clientDataHash: ByteArray?,
    preferImmediatelyAvailableCredentials: Boolean,
    origin: String?,
    isAutoSelectAllowed: Boolean
)

Constructs a CreatePublicKeyCredentialRequest to register a passkey from the user's public key credential provider.

CreatePublicKeyCredentialRequest(
    requestJson: String,
    clientDataHash: ByteArray?,
    preferImmediatelyAvailableCredentials: Boolean,
    origin: String?,
    preferDefaultProvider: String?,
    isAutoSelectAllowed: Boolean
)

Constructs a CreatePublicKeyCredentialRequest to register a passkey from the user's public key credential provider.

Public properties

ByteArray?

a clientDataHash value to sign over in place of assembling and hashing clientDataJSON during the signature request; only meaningful when origin is set

String

the request in JSON format in the standard webauthn web json.

Inherited properties

From androidx.credentials.CreateCredentialRequest
Bundle

the partial request data in the Bundle format that will be sent to the provider during the initial candidate query stage, which should not contain sensitive user credential information (note: bundle keys in the form of androidx.credentials.* are reserved for internal library use)

Bundle

the request data in the Bundle format

CreateCredentialRequest.DisplayInfo

the information to be displayed on the screen

Boolean

whether a create option will be automatically chosen if it is the only one available to the user

Boolean

true if must only be fulfilled by a system provider and false otherwise

String?

the origin of a different application if the request is being made on behalf of that application (Note: for API level >=34, setting a non-null value for this parameter will throw a SecurityException if android.permission.CREDENTIAL_MANAGER_SET_ORIGIN is not present)

Boolean

true if you prefer the operation to return immediately when there is no available passkey registration offering instead of falling back to discovering remote options, and false (preferred by default) otherwise

String

the credential type determined by the credential-type-specific subclass (e.g. the type for CreatePasswordRequest is PasswordCredential.TYPE_PASSWORD_CREDENTIAL and for CreatePublicKeyCredentialRequest is PublicKeyCredential.TYPE_PUBLIC_KEY_CREDENTIAL)

Public constructors

CreatePublicKeyCredentialRequest

Added in 1.2.0
CreatePublicKeyCredentialRequest(
    requestJson: String,
    clientDataHash: ByteArray? = null,
    preferImmediatelyAvailableCredentials: Boolean = false,
    origin: String? = null,
    isAutoSelectAllowed: Boolean = false
)

Constructs a CreatePublicKeyCredentialRequest to register a passkey from the user's public key credential provider.

Parameters
requestJson: String

the privileged request in JSON format in the standard webauthn web json.

clientDataHash: ByteArray? = null

a hash that is used to verify the relying party identity

preferImmediatelyAvailableCredentials: Boolean = false

true if you prefer the operation to return immediately when there is no available passkey registration offering instead of falling back to discovering remote options, and false (default) otherwise

origin: String? = null

the origin of a different application if the request is being made on behalf of that application (Note: for API level >=34, setting a non-null value for this parameter will throw a SecurityException if android.permission.CREDENTIAL_MANAGER_SET_ORIGIN is not present)

isAutoSelectAllowed: Boolean = false

whether a create option will be automatically chosen if it is the only one available to the user (note that there is a chance that the crendeiatl provider does not support auto-select even if you turn this bit on)

Throws
kotlin.NullPointerException

If requestJson is null

kotlin.IllegalArgumentException

If requestJson is empty, or if it is not a valid JSON, or if it doesn't have a valid user.name defined according to the webauthn spec (https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson)

CreatePublicKeyCredentialRequest

Added in 1.2.0
CreatePublicKeyCredentialRequest(
    requestJson: String,
    clientDataHash: ByteArray?,
    preferImmediatelyAvailableCredentials: Boolean,
    origin: String?,
    preferDefaultProvider: String?,
    isAutoSelectAllowed: Boolean
)

Constructs a CreatePublicKeyCredentialRequest to register a passkey from the user's public key credential provider.

Parameters
requestJson: String

the privileged request in JSON format in the standard webauthn web json.

clientDataHash: ByteArray?

a hash that is used to verify the relying party identity

preferImmediatelyAvailableCredentials: Boolean

true if you prefer the operation to return immediately when there is no available passkey registration offering instead of falling back to discovering remote options, and false (preferably) otherwise

origin: String?

the origin of a different application if the request is being made on behalf of that application (Note: for API level >=34, setting a non-null value for this parameter will throw a SecurityException if android.permission.CREDENTIAL_MANAGER_SET_ORIGIN is not present)

preferDefaultProvider: String?

the preferred default provider component name to prioritize in the selection UI flows (Note: tour app must have the permission android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS to specify this, or it would not take effect; also this bit may not take effect for Android API level 33 and below, depending on the pre-34 provider(s) you have chosen)

isAutoSelectAllowed: Boolean

whether a create option will be automatically chosen if it is the only one available to the user (note that there is a chance that the credential provider does not support auto-select even if you turn this bit on)

Throws
kotlin.NullPointerException

If requestJson is null

kotlin.IllegalArgumentException

If requestJson is empty, or if it doesn't have a valid user.name defined according to the webauthn spec

Public properties

clientDataHash

Added in 1.2.0
val clientDataHashByteArray?

a clientDataHash value to sign over in place of assembling and hashing clientDataJSON during the signature request; only meaningful when origin is set

requestJson

Added in 1.2.0
val requestJsonString

the request in JSON format in the standard webauthn web json.