Skip to content

Releases: AndroidPoet/passkeys-kmp

v0.2.0

19 Jun 16:29
988c415

Choose a tag to compare

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 (PasskeyRelyingParty with begin/finish registration and authentication); the underlying library is kept internal. Bring-your-own storage via PasskeyCredentialStore / PasskeyChallengeStore SPIs 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

19 Jun 07:01
e45effe

Choose a tag to compare

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

18 Jun 12:30
e93059c

Choose a tag to compare

What's new in 0.1.1

  • Full KDoc on the public APIPasskeyClient, 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

17 Jun 18:48
0d73488

Choose a tag to compare

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 / authenticatePasskeyResult contract, 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 PasskeyException hierarchy

See the CHANGELOG for full details.