AccessControlProfile.Builder

public final class AccessControlProfile.Builder


A builder for AccessControlProfile.

Summary

Public constructors

Builder(@NonNull AccessControlProfileId accessControlProfileId)

Each access control profile has numeric identifier that must be unique within the context of a Credential and may be used to reference the profile.

Public methods

@NonNull AccessControlProfile

Creates a new AccessControlProfile from the data supplied to the builder.

@NonNull AccessControlProfile.Builder

Sets the reader certificate to use when checking access control.

@NonNull AccessControlProfile.Builder
setUserAuthenticationRequired(boolean userAuthenticationRequired)

Set whether user authentication is required.

@NonNull AccessControlProfile.Builder
setUserAuthenticationTimeout(long userAuthenticationTimeoutMillis)

Sets the authentication timeout to use.

Public constructors

Builder

Added in 1.0.0-alpha04
public Builder(@NonNull AccessControlProfileId accessControlProfileId)

Each access control profile has numeric identifier that must be unique within the context of a Credential and may be used to reference the profile.

By default, the resulting AccessControlProfile will require user authentication with a timeout of zero, thus requiring the holder to authenticate for every presentation where data elements using this access control profile is used.

Parameters
@NonNull AccessControlProfileId accessControlProfileId

the access control profile identifier.

Public methods

build

Added in 1.0.0-alpha04
public @NonNull AccessControlProfile build()

Creates a new AccessControlProfile from the data supplied to the builder.

Returns
@NonNull AccessControlProfile

The created AccessControlProfile object.

setReaderCertificate

Added in 1.0.0-alpha04
public @NonNull AccessControlProfile.Builder setReaderCertificate(@NonNull X509Certificate readerCertificate)

Sets the reader certificate to use when checking access control.

If set, this is checked against the certificate chain presented by reader. The access check is fulfilled only if the public key from one of the certificates in the chain, matches the public key in the certificate set by this method.

The default behavior of a AccessControlProfile created from a builder is to not use reader authentication.

Parameters
@NonNull X509Certificate readerCertificate

the certificate to use for the access control check.

Returns
@NonNull AccessControlProfile.Builder

The builder.

setUserAuthenticationRequired

Added in 1.0.0-alpha04
public @NonNull AccessControlProfile.Builder setUserAuthenticationRequired(boolean userAuthenticationRequired)

Set whether user authentication is required.

This should be used sparingly since disabling user authentication on just a single data element can easily create a Relay Attack if the device on which the credential is stored is compromised.

The default behavior of a AccessControlProfile created from a builder is to require user authentication.

Parameters
boolean userAuthenticationRequired

Set to true if user authentication is required, false otherwise.

Returns
@NonNull AccessControlProfile.Builder

The builder.

setUserAuthenticationTimeout

Added in 1.0.0-alpha04
public @NonNull AccessControlProfile.Builder setUserAuthenticationTimeout(long userAuthenticationTimeoutMillis)

Sets the authentication timeout to use.

The authentication timeout specifies the amount of time, in milliseconds, for which a user authentication is valid, if user authentication is required (see setUserAuthenticationRequired).

If the timeout is zero, then authentication is always required for each reader session.

The default behavior of a AccessControlProfile created from a builder is to use a timeout of 0.

Parameters
long userAuthenticationTimeoutMillis

the authentication timeout, in milliseconds.

Returns
@NonNull AccessControlProfile.Builder

The builder.