Package-level declarations

Settings: which issuers you accept (TrustedIssuers), which verifiers a wallet names (TrustedVerifiers), where credentials come from (IssuerConfig), who you are to wallets (ReaderIdentityConfig), and a check before sharing (ShareGuard).

Types

Link copied to clipboard

Access-token policy for OpenID4VCI issuance.

Link copied to clipboard
data class IssuerConfig(val baseUrl: String, val clientId: String, val redirectUri: String, val dpopPolicy: DpopPolicy = DpopPolicy.ALLOW_BEARER_FALLBACK)

Points the wallet at the integrator's OpenID4VCI issuance endpoint.

Link copied to clipboard
data class IssuerDisplayName(val certificatePem: String, val displayName: String)

A display name for an issuer root certificate (PEM), e.g. "Example Licensing Authority".

Link copied to clipboard
data class PendingShare(val credentialId: String, val docType: String, val displayName: String, val portrait: ByteArray?, val requesterName: String?)

What is about to be shared.

Link copied to clipboard
data class ProximityConfig(val offerCentralClientMode: Boolean = true)

In-person presentment (QR engagement + BLE).

Link copied to clipboard
data class ReaderIdentityConfig(val privateKeyBase64: String, val certChainPem: List<String>)

The verifier's own reader-auth signing identity. privateKeyBase64 is the request-signing EC private key (CBOR-encoded, base64); certChainPem is its certificate chain, leaf-first, whose root a holder trusts via TrustConfig.readerRical / TrustConfig.readerRootsPem.

Link copied to clipboard
data class SdkConfig(val issuer: IssuerConfig, val trust: TrustConfig, val secureArea: SecureAreaKind = SecureAreaKind.HARDWARE, val iosAppGroupId: String? = null, val readerIdentity: ReaderIdentityConfig? = null, val proximity: ProximityConfig = ProximityConfig(), val credentialTypes: List<CredentialType> = emptyList(), val shareGuard: ShareGuard? = null)

Integrator-supplied configuration. Trust anchors and issuer details are injected here, never hardcoded in the SDK.

Link copied to clipboard
Link copied to clipboard
interface ShareGuard

A check the wallet runs after the holder approves sharing and before anything leaves the phone, for the credential types it names. The optional sdk-face module supplies the one customers use: a selfie liveness check plus a face match against the credential's own photo ("prove it's you").

Link copied to clipboard
sealed interface ShareGuardResult

Outcome of a ShareGuard check.

Link copied to clipboard
data class TrustConfig(val issuerRootsPem: List<String> = emptyList(), val readerRootsPem: List<String> = emptyList(), val issuerVical: ByteArray? = null, val readerRical: ByteArray? = null, val issuerDisplayNames: List<IssuerDisplayName> = emptyList())

Trust anchors for both roles. As a verifier, issuerRootsPem validates the credential's issuer chain; as a holder, readerRootsPem authenticates the reader before releasing data. Both are runtime-provisioned and rotatable.

Link copied to clipboard

The issuers a verifier app accepts: credentials signed by anyone else are rejected.

Link copied to clipboard

The verifiers a wallet app names on its consent sheet ("Verify is asking for…"). Requests from anyone else are shown as an unknown verifier; the holder can still decide.