WalletServerProvider

class WalletServerProvider(context: Context, storage: Storage, secureAreaProvider: SecureAreaProvider<AndroidKeystoreSecureArea>, settingsModel: SettingsModel, getWalletApplicationCapabilities: suspend () -> WalletApplicationCapabilities)

An object used to connect to a remote wallet server.

Wallet app can function in two modes: full wallet server mode and minimalistic server mode.

In full wallet server mode, wallet app communicates to the wallet server and the wallet server communicates to the actual issuing authority server(s). The advantage of this mode is that the system tends to be much more robust when the app needs to communicate to its own server only. In particular this allows wallet app vendor to decouple evolution of the wallet app from the evolution of the multitude of the issuing authority servers. Also, wallet server functionality only needs to be implemented once and not for every client/mobile platform.

In minimalistic server mode, the bulk of the "wallet server" functionality runs on the client and thus the wallet app communicates to the issuing authority servers directly. Only the functionality that cannot be done on the client is delegated on the server. The advantage of this mode is that it tends to be easier to set up and use for development. Also, this mode has less potential privacy issues, in particular if proofing data and credentials are not end-to-end encrypted.

Constructors

Link copied to clipboard
constructor(context: Context, storage: Storage, secureAreaProvider: SecureAreaProvider<AndroidKeystoreSecureArea>, settingsModel: SettingsModel, getWalletApplicationCapabilities: suspend () -> WalletApplicationCapabilities)

Types

Link copied to clipboard
class ApplicationSupportConnection(val applicationSupport: ApplicationSupport, val clientId: String, val deviceAttestationId: String)
Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Functions

Link copied to clipboard
fun addResetListener(listener: () -> Unit)
Link copied to clipboard
suspend fun createOpenid4VciIssuingAuthorityByUri(credentialIssuerUri: String, credentialConfigurationId: String): IssuingAuthority

Creates an Issuing Authority by the credentialIssuerUri and credentialConfigurationId, caching instances. If unable to connect, suspend and wait until connecting is possible.

Link copied to clipboard

Gets ApplicationSupport object and data necessary to make use of it. It always comes from the server (either full wallet server or minimal wallet server).

Link copied to clipboard
suspend fun getIssuingAuthority(issuingAuthorityId: String): IssuingAuthority

Gets issuing authority by its id, caching instances. If unable to connect, suspend and wait until connecting is possible.

Link copied to clipboard

Connects to the remote wallet server.