Releases: AndroidPoet/passkeys-kmp
v0.2.0
Adds the server half of passkeys as a new published module.
Added
passkeys-server— an installable Kotlin/JVM WebAuthn Relying Party that mints ceremony options and verifies the responses the clients produce. Wraps java-webauthn-server behind a thin, explicit API (PasskeyRelyingPartywith begin/finish registration and authentication); the underlying library is kept internal. Bring-your-own storage viaPasskeyCredentialStore/PasskeyChallengeStoreSPIs with in-memory defaults;passkeyRoutes()mounts the four ceremony endpoints on Ktor. A full register→authenticate round-trip is verified end-to-end against an in-process software authenticator. Runnable demo + browser test page in:sample:server.
passkeys and passkeys-compose are unchanged; they republish at 0.2.0 because the version is shared.
implementation("io.github.androidpoet:passkeys:0.2.0")
implementation("io.github.androidpoet:passkeys-compose:0.2.0")
implementation("io.github.androidpoet:passkeys-server:0.2.0")v0.1.2
First release of the macOS-native JVM desktop backend and the Linux/Windows native targets to reach Maven Central. The 0.1.1 tag was never published — its release build failed because the macOS CI/publish runners could not resolve the libfido2 headers the linuxX64 cinterop needs, and the JVM desktop test asserted a host-specific failure type.
Fixed
- CI / publish — install libfido2 (Homebrew) on the macOS runners that run apiCheck and publishAndReleaseToMavenCentral.
- Linux native cinterop — add the Debian/Ubuntu multiarch include path (/usr/include/x86_64-linux-gnu) to libfido2.def and install libssl-dev on the Linux runner, so the linuxX64 cinterop resolves openssl/opensslconf.h.
- JVM desktop test — JvmPasskeyClientTest now asserts the per-host failure contract (Unexpected where the native backend is present, Unsupported otherwise).
Maven Central: io.github.androidpoet:passkeys:0.1.2 and io.github.androidpoet:passkeys-compose:0.1.2
v0.1.1
What's new in 0.1.1
- Full KDoc on the public API —
PasskeyClient,PasskeyResult,PasskeyException(all typed cases), and every model/property are now documented. No ABI changes. - Documentation site published at https://androidpoet.github.io/passkeys-kmp/
- Code of Conduct added (Contributor Covenant).
No source-compatible API changes — a safe patch upgrade from 0.1.0.
Full Changelog: v0.1.0...v0.1.1
v0.1.0 — first release
First public release of Passkeys KMP — one common passkeys (WebAuthn) API for Kotlin Multiplatform, backed by real native authenticators on every target.
📦 Maven Central
implementation("io.github.androidpoet:passkeys:0.1.0") // core SDK
implementation("io.github.androidpoet:passkeys-compose:0.1.0") // rememberPasskeyClient()Platforms
- Android — Credential Manager (fingerprint / face / PIN)
- iOS / macOS — AuthenticationServices (Face ID / Touch ID), incl.
largeBlob&prf - JVM / Compose Desktop — native macOS Touch ID via a bundled Swift + JNI backend
- Windows — Windows Hello / security keys via the OS WebAuthn API
- Linux — roaming USB/NFC security keys via libfido2
- Browser (Wasm) —
navigator.credentials
Highlights
- One
create/authenticate→PasskeyResultcontract, identical on every platform rememberPasskeyClient()(Compose Multiplatform) resolves the platform client + UI anchor for you- Standard WebAuthn JSON in and out — pairs with any WebAuthn server library
- Typed
PasskeyExceptionhierarchy
See the CHANGELOG for full details.