Skip to content

Migrate credential storage to sailfish-secrets#2

Merged
zackslash merged 2 commits into
mainfrom
feature/sailfish-secrets
Jun 6, 2026
Merged

Migrate credential storage to sailfish-secrets#2
zackslash merged 2 commits into
mainfrom
feature/sailfish-secrets

Conversation

@zackslash

Copy link
Copy Markdown
Owner

Replaces the custom file-based credential encryption with Sailfish OS's native secrets framework. Credentials are now stored in the system encrypted secrets database instead of a custom HMAC-SHA256 JSON file.

Also fixes notification taps opening a duplicate app instance when the app is already running.

Changes:

  • Credential storage backed by sailfish-secrets (CollectionSecret, DeviceLockKeepUnlocked)
  • ICredentialStore interface — old file-based implementation kept as test-only (FileCredentialStore)
  • Notification tap scans /proc before launching — skips invoker if UI is already running
  • Dev builds embed a build timestamp so the daemon only restarts when you actually rebuild

Runtime dependency: sailfishsecretsdaemon-secretsplugins-default

zackslash added 2 commits June 6, 2026 16:26
Replace custom HMAC-SHA256 CTR-mode encryption with Sailfish OS native
sailfish-secrets framework. Uses CollectionSecret with DeviceLockKeepUnlocked
and SystemInteraction mode.

Changes:
- Add ICredentialStore interface for testability
- Rewrite CredentialStore to use sailfish-secrets (CollectionSecret)
- Move old implementation to FileCredentialStore (test-only)
- Update daemon and loginhelper to use ICredentialStore
- Add sailfishsecrets build deps to .pro, .spec, .desktop
- Update tests to use FileCredentialStore with renamed enum values
@zackslash zackslash marked this pull request as ready for review June 6, 2026 15:39
@zackslash zackslash merged commit 37fafe7 into main Jun 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant