aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git
AgeCommit message (Collapse)AuthorFilesLines
2020-12-05Refactor package structure (#1233)Harsh Shandilya24-2698/+0
* idea: default test runner to Gradle * Kick off package structure revamp * Reparent all classes under dev.msfjarvis.aps Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-12-03Set 10 second timeout on JGit transport commands (#1230)openpgp-ktx-v2.2.0autofill-parser-v1.0.0Harsh Shandilya1-0/+9
* 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>
2020-12-01GitCommandExecutor: make committer match author (#1226)Harsh Shandilya1-4/+3
* GitCommandExecutor: make committer match author Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Add changelog entry Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-11-01build: compile against SDK 30 and resolve deprecationsHarsh Shandilya3-3/+10
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-10-23Workaround AndroidX lifecycle requirements in OpenKeychain auth (#1168)Harsh Shandilya11-44/+66
* Workaround AndroidX lifecycle requirements in OpenKeychain auth Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * CHANGELOG: add OpenKeychain fix Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
2020-10-21GitServerConfigActivity: add quick-fix for HTTPS URLs with custom portsHarsh Shandilya1-11/+24
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-10-21GitServerConfigActivity: set auth mode visibility on launch as wellHarsh Shandilya1-14/+22
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-10-17Use BottomSheet in place of Snackbar for longer messages (#1157)ashoksinghal1-3/+17
2020-10-08Temporarily work around SSHJ compatibility issues (#1142)Fabian Henneke1-4/+1
Using ECDSA either as a key exchange or a host key algorithm fails with SSHJ 0.30.0 on Android, but should again become possible in 0.31.0. While we wait for the release, demote ECDSA in the list of key algorithms (as it should still be available for public key auth) and remove it from the list of key exchange algorithms.
2020-10-08Introduce app-wide HTTPS proxy setting (#1134)Harsh Shandilya1-0/+34
2020-10-05Resolve lock contention from lazy delegates (#1135)Harsh Shandilya3-5/+5
2020-10-01Make unset author/email behavior match GitHarsh Shandilya1-1/+3
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-29Unwrap root cause for InvalidRemoteException (#1122)Harsh Shandilya1-1/+2
* BaseGitActivity: unwrap root cause for InvalidRemoteException as well JGit's InvalidRemoteException, like TransportException, swallows more useful errors as is clear from this (redacted) snippet. ``` D org.eclipse.jgit.api.errors.InvalidRemoteException: Invalid remote: origin D at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:26) D at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:41) D at com.zeapo.pwdstore.git.GitCommandExecutor$execute$2$result$1.invokeSuspend(GitCommandExecutor.kt:2) D at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:3) D at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:15) D at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) D at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:13) D Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: ssh://msfjarvis@[fe80::dead:beef]:22/pass-repo: fatal: '/pass-repo' does not appear to be a git repository D at org.eclipse.jgit.transport.TransportGitSsh.cleanNotFound(TransportGitSsh.java:14) D at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:20) D at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:1) D at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:1) D at org.eclipse.jgit.transport.Transport.fetch(Transport.java:20) D at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:18) ``` Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Add changelog entry Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-21Refactor auth mode check/uncheck (#1115)Harsh Shandilya1-7/+11
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-19Add check for potential issues with SSH URLHarsh Shandilya1-0/+17
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-18Misc cleanups to build and extension functions (#1108)Harsh Shandilya4-8/+8
2020-09-14Add tentative workaround for dialog crashes and refactor Git-related code ↵Harsh Shandilya4-47/+49
(#1100) * Ensure we're creating dialogs on the main thread Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Remove unused operation type Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Refactor launchGitOperation to use an enum Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-11Disable SSH multiplexing if not supported (#1093)Fabian Henneke3-2/+42
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-08Support multiple authentication methods (#825)Fabian Henneke3-28/+31
* Offer password SSH authentication after publickey * git: re-add back button handling Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Hide unsupported authentication methods Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * GitCommandExecutor: cleanup and address build warning Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Address review comments Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * DecryptActivity: hide menu items until decrypt finishes Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Add changelog entry Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-07UX fixups and improvements (#1086)Harsh Shandilya4-6/+53
* git: re-add back button handling Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Hide unsupported authentication methods Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * GitCommandExecutor: cleanup and address build warning Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Address review comments Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * DecryptActivity: hide menu items until decrypt finishes Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * GitServerConfigActivity: don't finish on failure Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-07Fix behavior on failing Git operations (#1084)Fabian Henneke3-25/+46
2020-09-05SshjConfig: use runCatching to replace exception handlingHarsh Shandilya1-4/+2
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05SshKey: use runCatching to replace exception handlingHarsh Shandilya1-10/+12
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05SshjSessionFactory: use runCatching to replace exception handlingHarsh Shandilya1-3/+4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05GitOperation: use runCatching to replace exception handlingHarsh Shandilya1-6/+7
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05GitLogModel: use runCatching to replace exception handlingHarsh Shandilya1-3/+5
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05GitSettings: use runCatching to replace exception handlingHarsh Shandilya1-2/+4
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05GitConfigActivity: use runCatching to replace exception handlingHarsh Shandilya1-6/+8
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-05GitServerConfigActivity: use runCatching to replace exception handlingHarsh Shandilya1-17/+11
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-04Assorted UX improvements (#1077)Harsh Shandilya2-1/+8
* CredentialFinder: allow seeing password when retrying Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * GitOperation: bail out early when SSH key is missing Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * OnboardingActivity: finish all activities in onBackPressed Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Update CHANGELOG Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-04Add migration to new SshKey backend (#1076)Fabian Henneke3-4/+12
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-04Revamp onboarding logic (#1068)Harsh Shandilya1-2/+8
2020-09-04Remove BaseGitActivity's onOptionsItemSelected override (#1075)Harsh Shandilya1-11/+0
Each activity that inherits from it should handle its own navigation Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-03Refactor Git operations and auth (#1066)Fabian Henneke12-354/+200
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-09-01Add Keystore backend for SSH public key authentication (#1070)Fabian Henneke7-31/+394
2020-08-28Add Activity to view the Git commit log (#1056)Nosweh5-17/+216
2020-08-27Do not return stored password on first retry (#1061)Fabian Henneke1-1/+1
2020-08-27Remember HTTPS password throughout a sync operation (#1062)Fabian Henneke1-3/+14
* Remember HTTPS password throughout a sync operation * Add CHANGELOG.md entry Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-08-27Delete HTTPS instead of SSH key password on error (#1060)Fabian Henneke1-1/+1
2020-08-26Get rid of explicit Git server protocol (#1054)Fabian Henneke2-60/+36
* Double check Git server protocol Ensure that the Git server protocol is not at odds with the URL scheme. Also move the Protocol switches below the URL to make it clear that the URL should be entered first. * Remove protocol selection from server config The protocol is now extracted from the URL, and the authentication mode selection is validated by GitSettings Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Don't use pref values for auth modes Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Apply suggestions from code review Remove now unused protocol mismatch result type Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com> * Simplify migration logic and fix tests Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Revert "Simplify migration logic and fix tests" This reverts commit 1c4c4ba5fbc212843cb6b74dd29ac858eaea7582. * Detect URLs with null scheme as ssh * Add changelog entry Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-08-26Rename ConnectionMode to AuthMode and remove clone_ prefix (#1053)Fabian Henneke5-56/+56
2020-08-24Improve Git server config activity (#1051)Fabian Henneke2-40/+74
2020-08-24Return HTTPS URI username from CredentialsProvider (#1049)Fabian Henneke1-1/+2
Let the PasswordFinderCredentialsProvider support Username as a CredentialItem type and return the user part of the repository URI when it is requested.
2020-08-22Don't use git config for setting author and email (#1043)Harsh Shandilya2-3/+5
Fixes #1038 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-08-18Add SSHJ backend for OpenKeychain authentication (#995)Fabian Henneke9-482/+334
* Update sshj to 0.30.0 and improve algorithm order Updates sshj to 0.30.0, which brings support for rsa-sha2-* key types and bugfixes related to RSA certificates and Android Keystore backed keys. Along the way, this improves the algorithm preferences to be consistent with the Mozilla Intermediate SSH configuration (as far as possible, given that most certificate types and some encryption algorithms are not yet supported). We also add "ext-info-c" to the kex algorithm proposal to work around certain kinds of "user agent sniffing" that limits the support of rsa-sha2-* key types. * Add SSHJ backend for OpenKeychain authentication * Address review comments Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-08-18Preserve SSH key passphrase on connection errors (#979)Fabian Henneke1-1/+0
* Update sshj to 0.30.0 and improve algorithm order Updates sshj to 0.30.0, which brings support for rsa-sha2-* key types and bugfixes related to RSA certificates and Android Keystore backed keys. Along the way, this improves the algorithm preferences to be consistent with the Mozilla Intermediate SSH configuration (as far as possible, given that most certificate types and some encryption algorithms are not yet supported). We also add "ext-info-c" to the kex algorithm proposal to work around certain kinds of "user agent sniffing" that limits the support of rsa-sha2-* key types. * Preserve SSH key passphrase on connection errors Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-08-18Update sshj to 0.30.0 and improve algorithm order (#1026)Fabian Henneke1-17/+20
Updates sshj to 0.30.0, which brings support for rsa-sha2-* key types and bugfixes related to RSA certificates and Android Keystore backed keys. Along the way, this improves the algorithm preferences to be consistent with the Mozilla Intermediate SSH configuration (as far as possible, given that most certificate types and some encryption algorithms are not yet supported). We also add "ext-info-c" to the kex algorithm proposal to work around certain kinds of "user agent sniffing" that limits the support of rsa-sha2-* key types.
2020-08-15Fix external storage UX (#1022)Harsh Shandilya2-5/+13
* build: update to Kotlin 1.4 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * UserPreference: finish if directory selection was triggered from an intent Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * PasswordStore: switch permission request to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * PasswordStore: fix activity reference Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * GitOperationActivity: make invalid values more obvious Would have caught this issue much sooner if I had just done this Fixes: 3d8cea596600 ("Improve permission handling logic (#732)") Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Assorted collection of hackery to make external storage use palatable Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Update changelog Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-08-13Restore workaround for preventing empty commits (#1019)Harsh Shandilya3-2/+24
* Revert "Add symlink support to JGit (#1016)" This reverts commit 5032696cec9da86c2ad97b9931e8d85feb18da0c. * Restore workaround for empty commits and document commands Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Update app/src/main/java/com/zeapo/pwdstore/git/GitCommandExecutor.kt
2020-08-12Create only one SSH session per GitOperation (#1012)Fabian Henneke2-54/+34