aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/res/drawable/ic_qr_code_scanner.xml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-02 18:57:26 +0100
committerDanilo M. <danix@danix.xyz>2026-11-02 18:57:26 +0100
commit52b19a8c77af7adcb661865cebf8532e605b8d77 (patch)
tree6879866b50e8a899288f02e3b4438797588d12aa /app/src/main/res/drawable/ic_qr_code_scanner.xml
parent9bb39cbc002485fb27fee2de189a257a7b4b02e5 (diff)
downloadHardenedPass-52b19a8c77af7adcb661865cebf8532e605b8d77.tar.gz
HardenedPass-52b19a8c77af7adcb661865cebf8532e605b8d77.zip
feat(crypto): replace androidx security-crypto with Keystore AES-GCM
security-crypto is deprecated in 1.1.0 and the app was stuck on 1.1.0-alpha06, since the stable release fails the warnings-as-errors build. It also pulled in Tink for what is a single AES-GCM operation. KeystorePreferences is a SharedPreferences whose values are AES-GCM sealed under an Android Keystore key (random IV, entry name as AAD so values cannot be swapped between entries); a value that fails to decrypt reads as absent. It backs the Git credentials (git_secrets), the proxy credentials (proxy_secrets) and the PGP passphrase cache, whose key needs the screen lock or a strong biometric within 60s and is recreated if a new biometric enrollment invalidates it. Wrapped Ed25519 SSH keys are sealed the same way into the private key file. Password generator settings are not secret and move to plain preferences. Nothing is migrated: removeSecurityCryptoData deletes the old encrypted preference files, Tink keysets, their Keystore master keys and a security-crypto wrapped Ed25519 key once on upgrade. Only 0.1.x installs from the last few hours have such data. Hardware SSH keys and imported keys are untouched. Tests: KeystorePreferencesTest (round trip, defaults, no plaintext, random IVs, AAD binding, tamper rejection, remove/clear) with a software AES key. Verified on the emulator by upgrading a 0.1.2 debug build that held a wrapped Ed25519 key, Tink keysets and a cached passphrase: the old data was deleted, a new Ed25519 key authenticated over SSH after a fingerprint unlock, and a passphrase cached on first decrypt was reused on the second with only the fingerprint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/main/res/drawable/ic_qr_code_scanner.xml')
0 files changed, 0 insertions, 0 deletions