| Age | Commit message (Collapse) | Author | Files | Lines |
|
sshj 0.40 replaced the unmaintained net.i2p.crypto:eddsa 0.3.0 (last
release 2019) with Bouncy Castle's Ed25519. 0.41.2 still targets Java 8.
The app used eddsa directly for wrapped Ed25519 SSH keys. Generate the
32-byte seed with SecureRandom and build the key pair with sshj's
Ed25519KeyFactory and Bouncy Castle's public key derivation. The wrapped
format is still the raw RFC 8032 seed, so keys generated by 0.1.3 keep
working; Ed25519KeyPairTest pins this with the RFC 8032 test vector.
sshj 0.40 also changed setSecurityProvider(null) to reset the
registerBouncyCastle flag, which undid the earlier
setRegisterBouncyCastle(false): sshj then forced every operation through
Bouncy Castle, which cannot sign with Android Keystore keys ("no encoding
for EC private key"), and hardware-backed SSH keys failed to
authenticate. Call the two in the opposite order; SshjConfigTest checks
that sshj leaves provider selection to the JCA.
Verified with the R8 release build on the emulator against the e2e
server: a hardware ECDSA key, a newly generated wrapped Ed25519 key and
an imported OpenSSH Ed25519 key all authenticated and synced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Set the version to 0.1.0 (versionCode 100, following the versioning
plugin's major*10000 + minor*100 + patch scheme) and add a changelog
section for the first release. Upstream's never-released [Unreleased]
section is kept below it, renamed, since 0.1.0 ships that work too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Autofill is only available on API 26 and above and I do not want to deal with
bugs on these older Android releases.
|
|
|
|
|
|
* feat(app): use `GENERAL_SHOW_TIME` for decryption screen as well
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* feat: update timeout to 60 seconds
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* refactor(app): use constant instead of using a magic number
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Add changelog entry
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
|
|
|
|
* Fix TOTP field flashing on each update
* Add missing changelog entry
|
|
|
|
|
|
* Make feature flags runtime configurable
* Add a settings entry for PGPainless feature flag
* Add changelog entry
|
|
This reverts commit 3f20678d799e15e21d1b7f013bc3672270f0d20f.
|
|
|
|
|
|
* Prevent Git files from turning up in search and listing
* Update changelog
|
|
* feat(aps): allow importing TOTP code from an image containing a QR code
Signed-off-by: Aditya <adityawasan55@gmail.com>
* Reorder OTP import options and implement it for V2
* Replace try-catch with runCatching
* Use the correct TextWatcher extension at the right place
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
|
|
* Make XkPassword generator reactive
* Handle empty strings
* Make password generator reactive
* Sync changelog for 1.13.5 release
* Add to changelog
|
|
* UriTotpFinder: commonize query parameter handling
* gitignore: add more IDEA files
* TotpFinder: add `findIssuer`
* PasswordEntry: don't eagerly fetch TOTP related fields
* format-common: expand SteamGuard workaround
* CHANGELOG: add SteamGuard workaround
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* CHANGELOG: update for pinning support
* PasswordFragment: support pinning
* PasswordStore: use `PasswordItem#createAuthEnabledIntent`
* PasswordItem: add `createAuthEnabledIntent` API
* DecryptActivity: remove last changed time
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* refactor(search): use sublime text's fuzzy matching algorithm
Signed-off-by: SphericalKat <amolele@gmail.com>
* chore(changelog): update
Signed-off-by: SphericalKat <amolele@gmail.com>
* build: fetch sublime-fuzzy from Maven Central
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* chore(changelog): update
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* Inform users that GPG key selection is mandatory
Fixes #1342
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* changelog: sync for 1.13.4 release
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* changelog: add GPG key selection improvements
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* Mark Chrome as reliably fillable and saveable
* Mention Autofill improvements in CHANGELOG
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* ui: add skeleton recyclerview to parse extra content
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* ui: add recyclerview and update PasswordEntry to create map of key-value pairs
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* password-entry: When key-value pair is not correctly formed, display it as Extra Content
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Fix formatting
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* bug: update otp code on main thread
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Add complete string if key-value pair cannot be formed
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* test: add a few tests for key-value parsing logic
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* prefs: remove SHOW_EXTRA_CONTENT from shared preferences
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Update CHANGELOG.md
* Cleanup and refactor
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordEntryTest: silence nullability warning
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordEntry: simplify constructor
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* PasswordEntry: annotate test-enablement visibility
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Reintroduce the catch-all field
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* update parsing logic
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* add one more test case
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Add missing newlines
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Remove unnecessary scrollview
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* rv: do not return if hasExtraContent is false
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
* Don't anchor RV to bottom
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
|
|
|
|
Co-authored-by: Fabian Henneke <fabian@hen.ne.ke>
|
|
Fixes #1274
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* Provide actionable guidance for host key mismatches
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update changelog
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Hide host key clear button after use
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
|
|
* GitOperation: set a 10 second connection timeout
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update changelog
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* GitCommandExecutor: make committer match author
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Add changelog entry
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|
|
* Automatically dismiss decryption screen after 60 seconds
Fixes #1215
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Update changelog
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
|