# Changelog All notable changes to this project will be documented in this file. ## [Unreleased] ### Changed - Credentials, the passphrase cache and generated Ed25519 SSH keys are now encrypted with Android Keystore AES-GCM directly, replacing the deprecated androidx security-crypto library (and Tink). **Upgrading from 0.1.x deletes the old data once**: re-enter Git HTTPS and proxy credentials and SSH key passphrases, retype cached PGP passphrases, and regenerate a generated Ed25519 SSH key (hardware RSA/ECDSA keys and imported keys are kept). Password generator settings reset to defaults ## [0.1.2] - 2026-11-02 ### Fixed - Saving an entry whose `.gpg-id` names a key the app does not have silently encrypted it to the remaining keys only, so the missing key's owner could no longer decrypt it. Saving now fails with an error naming the missing key; import that key (a public key is enough) to save - A failed encryption no longer writes an empty file over the entry and commits it - Commit messages name HardenedPass instead of Android Password Store, and the Italian "remove" message no longer calls the store a shop ## [0.1.1] - 2026-11-02 ### Fixed - An SSH key generated with "Protect with screen lock credential" could only be unlocked with the PIN or password: unlocking it with a fingerprint passed the prompt, then failed with "Socket closed". Keys generated from now on accept a strong (Class 3) biometric too; regenerate an existing protected key to use your fingerprint with it - The unlock prompt no longer offers weak (Class 2) biometrics on Android 11 and later, since they cannot unlock Keystore keys ## [0.1.0] - 2026-11-02 First release of HardenedPass, a maintained fork of the archived Android Password Store. It installs next to upstream's app (`app.passwordstore`) and never updates over it. Also includes upstream's unreleased 2.0 work, listed in the next section. ### Changed - **BREAKING**: The app is now HardenedPass, with application ID `xyz.danix.hardenedpass`, signed with the fork's own release key - Removed Sentry crash reporting and every Google Play Services dependency; there is a single build with no proprietary code - Updated Bouncy Castle to 1.86 (fixes GHSA-574f-3g2m-x479, GHSA-9pwp-9qqc-pr26, GHSA-c3fc-8qff-9hwx, GHSA-qp49-qgx5-5m26), PGPainless to 1.7.8 and JGit to 5.13.5 - Updated the build to Gradle 9, AGP 9 and Kotlin 2.4 ### Fixed - Messages encrypted by GnuPG 2.3 or later (OCB/AEAD) can now be decrypted - Importing a key without an encryption subkey was accepted instead of rejected - Conflict recovery pushed to a branch named `conflicting-null-