Repository navigation
Security fixes and a redesigned macOS app. Thanks to @Lakr233 (#8).
Download and install
- Apple Silicon, macOS 14 or later: download
swpasskey-0.2.0-macos-arm64.zip. - Extract the ZIP, move
swpasskeyd.appto/Applications(replacing 0.1.0), then open it.
The app is Developer ID signed (team 32B45SMMQL), Apple notarized, and has a stapled notarization ticket. It uses the same bundle ID as 0.1.0, so existing passkeys and settings carry over. SHA-256 checksums are in SHA256SUMS.txt. No Intel Mac or Linux binaries.
Security
- hmac-secret without user presence (medium): a getAssertion with
up=falsereturned hmac-secret output with no prompt. It is now released only after user presence (also for getNextAssertion). - CTAPHID framer (low): channel ownership is checked before BCNT, so an oversized INIT from another channel can no longer wipe the transaction in progress.
- Log file (low): the LaunchAgents no longer log to the shared
/tmp/swpasskeyd.log; the daemon writes~/Library/Logs/swpasskey/swpasskeyd.log(0700 dir, 0600 file,O_NOFOLLOW). - Terminal prompt (low): site and account text are sanitized like the GUI prompts.
- Stale approval panels from an earlier request can no longer affect a newer one.
macOS app
- New approval panel that names the action ("Sign in to github.com?"), with a short delay before the button enables so a stray keystroke cannot approve. Esc cancels; stays above full-screen apps.
- Passkeys window: search, sortable table (default Last Used), live updates, and type-the-account-name to delete.
- Settings with General, Security and About tabs; a Welcome window on first launch.
- Dock icon appears only while a window or the status menu is open.
- Plain-language copy across prompts and alerts.
Validation
Built with cmake --preset app: 110/110 tests passed; ci preset 112/112. Apple notarization accepted; spctl reports "Notarized Developer ID".