summaryrefslogtreecommitdiffstats
path: root/app/src/main/res
AgeCommit message (Collapse)AuthorFilesLines
15 hoursfix(i18n): name HardenedPass in commit messagesDanilo M.7-15/+15
The add and edit commit messages said "using Android Password Store" in every locale. The Italian remove message translated "store" as "negozio" (a shop); use "archivio". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
15 hoursfix(crypto): refuse to encrypt when a .gpg-id recipient key is missingDanilo M.1-2/+3
CryptoRepository.encrypt looked up every .gpg-id recipient and dropped the ones it could not find, so an entry saved on a device that lacked one recipient's key was encrypted to the others only. With a store shared between a phone key and a smartcard key, entries created on the phone could no longer be decrypted with the smartcard alone. Fail with the lookup error instead (KeyNotFoundException names the key), so the user imports the missing public key and saves again. PasswordCreationActivity also ignored the Result of encrypt and wrote the output buffer regardless: on any encryption failure it wrote an empty .gpg file, overwriting the entry when editing, and committed it. Show the error and leave the file untouched. CryptoRepositoryTest covers both the missing-recipient failure and the all-present success path, with keys generated by PGPainless (added as an app test dependency). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 hoursfeat: rename the app to HardenedPass (xyz.danix.hardenedpass)Danilo M.1-1/+1
The fork gets its own application ID and name, so it installs next to upstream's app.passwordstore instead of replacing it, and could be submitted to F-Droid. Debug builds keep the .debug suffix and are labelled "HardenedPass Debug". The Kotlin package stays app.passwordstore: renaming it would be churn with no visible effect. "GrapheneOS" is kept out of the name because it is that project's trademark; "Hardened" nods to its vocabulary. README and AGENTS.md describe the fork's GrapheneOS goal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 hoursbuild(deps): update Bouncy Castle to 1.86 and PGPainless to 1.7.8Danilo M.5-10/+0
Bouncy Castle 1.78.1 is affected by GHSA-574f-3g2m-x479, GHSA-9pwp-9qqc-pr26, GHSA-c3fc-8qff-9hwx and GHSA-qp49-qgx5-5m26, all fixed by 1.85. PGPainless 1.7.8 is the newest 1.x release. A root resolution rule keeps every Bouncy Castle module on the catalog version; before, bcpg 1.77 shipped next to bcprov 1.78.1. The new stack decrypts the OCB (LibrePGP) packets GnuPG 2.3+ emits by default, which the old one rejected as "non-standard AEAD". Drop the NonStandardAEAD error, its bottom sheet and strings, and replace the mislabelled aead_* fixtures (SHA-1 self-signed keys plus a message encrypted to an unrelated key) with a real GnuPG 2.5 key and OCB message that the tests now decrypt. The new fixture is a throwaway test key, so it is allowlisted in .gitleaksignore by fingerprint. Fix KeyUtils.isKeyUsable, which compared a Boolean to null and so accepted every key that parsed, including keys with no encryption subkey. A signing-only key fixture now covers the rejection path. Also: migrate the removed SelectUserId.firstMatch and deprecated addDecryptionPassphrase APIs, keep one copy of the Bouncy Castle META-INF/LICENSE.md in the APK, and move the existing InvalidPackage lint baseline entries to the bcpkix 1.86 jar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2024-08-18fix: rework Crowdin integration (#3175)Harsh Shandilya6-118/+156
* chore: set up Crowdin configuration * fix(app): sync strings from Crowdin Closes #3174 * fix(ci): use crowdin/github-action instead of homebrew setup * fix(build): remove obsolete Crowdin plugin
2024-08-14directory structure setting moved to general settings (#3166)Alexander Grahn11-12/+12
* directory structure setting moved to general settings * Update app/src/main/java/app/passwordstore/util/settings/PreferenceKeys.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: Alexander Grahn <agrahn@users.noreply.github.com> --------- Signed-off-by: Alexander Grahn <agrahn@users.noreply.github.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-08-14chore: add missing copyright headers and update existing onesHarsh Shandilya109-103/+133
2024-08-14feat(build): replace homebrew ktfmt formatter with SpotlessHarsh Shandilya1-1/+1
Spotless has fixed their Gradle Configuration Cache woes in the past couple months which gets rid of my primary complaint.
2024-08-11add user ID input field (password creation/edit), may fix #1458 (#3161)Alexander Grahn2-1/+23
* add user ID input field (password creation/edit), may fix #1458 * fix: revert change to username label * refactor: rework FieldItem to drop hard-coded strings * refactor: drop unnecessary `.apply` --------- Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-08-05enable per-app language setting (Android-13+) (#3152)agrahn1-0/+1
2024-08-04more robust switch actions in pgp settings (#3148)agrahn1-0/+1
* more robust switch actions in pgp settings * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * formatting fixed (ktfmtFormat) --------- Signed-off-by: agrahn <agrahn@users.noreply.github.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-08-04Sync localisations from Crowdin (#3150)Harsh Shandilya2-0/+2
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2024-07-30fix: re-enable biometric lock featureHarsh Shandilya1-0/+1
Fixes #2802
2024-07-28Sync localisations from Crowdin (#3139)Harsh Shandilya2-2/+0
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2024-07-25Fix application crash when disabling cache auto-clear option and potential ↵agrahn1-0/+1
attack vector (#3136) prevent app crash upon passphrase cache clearing
2024-07-22add checkbox in passphrase dialog to clear cache (#3127)agrahn2-0/+6
* add checkbox in passphrase dialog to clear cache * instantiating PasswordDialog via newInstance, passing args as Bundle * refactor: put checkbox directly in the layout --------- Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-07-20enabling pgp passphrase cache with authentication (#3124)agrahn3-3/+3
* enabling pgp passphrase cache with authentication * clear passphrase cache on first autofill decrypt after screen off --------- Co-authored-by: Alexander Grahn <me@null.org>
2024-06-09Sync localisations from Crowdin (#3084)Harsh Shandilya2-0/+10
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2024-05-29fix: bundle JetBrainsMono for monospace use casesHarsh Shandilya1-1/+1
2024-05-26feat: add option to auto clear passphrase cacheHarsh Shandilya1-0/+2
Fixes #3053
2024-04-14fix: special-case AEAD failureHarsh Shandilya1-0/+2
Fixes #2974 Fixes #2963 Fixes #2921 Fixes #2924 Fixes #2653 Fixes #2461 Fixes #2586 Fixes #2179
2024-03-17Sync localisations from Crowdin (#2959)Harsh Shandilya1-287/+0
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2024-03-12fix: clear passphrase cache when disablingHarsh Shandilya1-0/+1
2024-03-10Sync localisations from Crowdin (#2943)Harsh Shandilya1-1/+1
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2024-02-04Sync localisations from Crowdin (#2888)Harsh Shandilya1-0/+287
* strings: sync with crowdin * chore: refresh Lint baseline --------- Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-31Sync localisations from Crowdin (#2841)Harsh Shandilya5-4/+8
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-16Add snackbar error message when .gpg-id contains a short hex id (#2819)Mathias Rav1-0/+1
2023-12-10Sync localisations from Crowdin (#2801)Harsh Shandilya1-0/+344
* strings: sync with crowdin * fix: use ellipsis character Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * fix: use more ellipses --------- Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: GitHub Actions <noreply@github.com>
2023-12-03Sync localisations from Crowdin (#2793)Harsh Shandilya1-3/+3
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-11-29fix: gate passphrase cache behind authenticator availabilityHarsh Shandilya1-1/+1
Fixes #2783
2023-10-29Sync localisations from Crowdin (#2747)Harsh Shandilya1-0/+11
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-23Sync localisations from Crowdin (#2616)Harsh Shandilya8-8/+14
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-09Sync localisations from Crowdin (#2595)Harsh Shandilya1-0/+6
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-05feat(ui): add a dedicated Compose screen for editing passwordsHarsh Shandilya1-0/+1
2023-06-04feat: add custom dialog title for passphrase cacheHarsh Shandilya1-0/+1
2023-05-12feat: raise min SDK to 26Harsh Shandilya2-0/+0
Autofill is only available on API 26 and above and I do not want to deal with bugs on these older Android releases.
2023-05-09fix: add warning to passphrase cache featureHarsh Shandilya1-1/+2
2023-05-08feat: wire up passphrase cacheHarsh Shandilya1-0/+1
Currently has horrible UX and is behind an experimental feature flag
2023-04-27fix: use password entry for OTP entry fieldHarsh Shandilya1-1/+2
2023-04-06feat: wire up key import functionalityHarsh Shandilya1-2/+2
2023-03-27Sync localisations from Crowdin (#2440)Harsh Shandilya1-0/+3
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-26Sync localisations from Crowdin (#2439)Harsh Shandilya2-0/+8
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-25feat: offer to import a PGP key when none are presentHarsh Shandilya1-0/+2
2023-03-25chore: rename import button label string resourceHarsh Shandilya9-9/+9
2023-03-24fix: extract hard-coded stringHarsh Shandilya1-0/+1
2023-03-18fix(app): control LeakCanary lifecycle more explicitlyHarsh Shandilya1-0/+1
2023-03-04fix: make remembering HTTPS password the defaultHarsh Shandilya1-0/+1
Not many good reasons to do this a different way
2023-02-26Sync localisations from Crowdin (#2392)Harsh Shandilya2-0/+4
strings: sync with crowdin Co-authored-by: GitHub Actions <noreply@github.com>
2023-02-23chore(i18n): import current translationsHarsh Shandilya8-7/+329
2023-02-23fix: clarify OTP import failure stringsHarsh Shandilya8-10/+9