PasskeyCredentialInfo

@Serializable
data class PasskeyCredentialInfo(val id: String, val type: String = "public-key", val userHandle: String? = null, val publicKey: JwkPublicKey? = null, val signCount: Int = 0, val transports: List<String>? = null, val createdAt: String? = null, val lastUsedAt: String? = null)

Standard passkey credential information for backup metadata.

This follows the industry-standard WebAuthn credential structure used by Google, Apple, GitHub, and other major implementations.

SECURITY: This structure contains only PUBLIC information. The PRF secret (encryption key) is NEVER stored here.

Constructors

Link copied to clipboard
constructor(id: String, type: String = "public-key", userHandle: String? = null, publicKey: JwkPublicKey? = null, signCount: Int = 0, transports: List<String>? = null, createdAt: String? = null, lastUsedAt: String? = null)

Properties

Link copied to clipboard
@SerialName(value = "created_at")
val createdAt: String?

ISO8601 timestamp when credential was created

Link copied to clipboard
val id: String

Base64URL-encoded credential ID (primary identifier)

Link copied to clipboard
@SerialName(value = "last_used_at")
val lastUsedAt: String?

ISO8601 timestamp when credential was last used

Link copied to clipboard
@SerialName(value = "public_key")
val publicKey: JwkPublicKey?

JWK-format public key for signature verification

Link copied to clipboard
@SerialName(value = "sign_count")
val signCount: Int

Signature counter (for replay protection)

Link copied to clipboard

Supported transport methods (e.g., "internal", "usb", "nfc")

Link copied to clipboard

Always "public-key" per WebAuthn spec

Link copied to clipboard
@SerialName(value = "user_handle")
val userHandle: String?

Opaque user identifier (backend-generated)