aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git/config
AgeCommit message (Collapse)AuthorFilesLines
2020-12-05Refactor package structure (#1233)Harsh Shandilya1-182/+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-10-08Introduce app-wide HTTPS proxy setting (#1134)Harsh Shandilya1-0/+34
2020-10-05Resolve lock contention from lazy delegates (#1135)Harsh Shandilya1-2/+2
2020-09-18Misc cleanups to build and extension functions (#1108)Harsh Shandilya1-2/+2
2020-09-11Disable SSH multiplexing if not supported (#1093)Fabian Henneke1-1/+10
Co-authored-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-08-26Get rid of explicit Git server protocol (#1054)Fabian Henneke1-14/+23
* 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 Henneke1-9/+9
2020-08-24Improve Git server config activity (#1051)Fabian Henneke1-9/+22
2020-08-18Add SSHJ backend for OpenKeychain authentication (#995)Fabian Henneke3-838/+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. * Add SSHJ backend for OpenKeychain authentication * Address review comments 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-12Create only one SSH session per GitOperation (#1012)Fabian Henneke1-49/+27
2020-08-11Switch to URL-based Git config and refactor Git settings (#1008)Fabian Henneke5-79/+118
* Make Git config URL-based and refactor * Use Kotlin style null handling for string prefs * Also show an error if generated URL can't be parsed * Add some testcases for migration strategy Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2020-07-29Upgrade to Kotlin 1.4 (#978)Harsh Shandilya1-6/+6
* build: uprev to Kotlin 1.4 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Remove explicit type argument Not required anymore with Kotlin 1.4 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * build: enable Kotlin 1.4 language features Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * all: add trailing commas where reasonable Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
2020-07-20Use a more common SSH version string (#944)Fabian Henneke1-0/+1
2020-07-08global: set an import order rule and reformat with it (#924)Harsh Shandilya4-9/+13
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-07-03Migrate to ActivityResultContracts (#910)Harsh Shandilya1-5/+5
* Move git directory selection to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * global: replace all android.app.Activity references Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * res: resolve ObsoleteSdkInt lint warning Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * layout: silence some overdraw warnings Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * PasswordFragment: address deprecation Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * PasswordStore: start addressing deprecation warnings Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * autofill: silence deprecation warnings for legacy implementation I don't want to ever touch these files Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Reset scrollTarget after use Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Refresh password list after each swipe Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Convert if to when Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Migrate UserPreference to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Also validate result in git directory selection Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * AutofillSaveActivity: Switch to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * AutofillDecryptActivity: Switch to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * AutofillFilterActivity: Switch to ActivityResultContracts Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Improve deletion flow - Silently delete empty directory - Always refresh password list upon completion Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Uniform naming for activity result handlers Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
2020-07-02Fix up URIish instances with @ in user name (#913)Fabian Henneke1-1/+14
2020-07-01Run a treewide reformat (#908)Fabian Henneke1-2/+2
Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-07-01Use PreferenceKeys file to manage SharedPreferences keys. (#891)Aditya Wasan1-12/+15
* Use PreferenceKeys file to manage SharedPreferences keys. Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Use PreferenceKeys in all files Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Divide PreferenceKeys into multiple regions Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Fix build error Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Use PreferenceKeys in more files Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Reformat code Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Fix build error Signed-off-by: Aditya Wasan <adityawasan55@gmail.com> * Fix merge issues Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
2020-06-26Prevent cached passwords from being wiped (#884)Fabian Henneke1-8/+12
2020-06-23Use a custom sshj config (#878)Fabian Henneke2-1/+272
* Use a custom sshj config * Get random numbers directly from SecureRandom * Use Timber calls for logging * Remove all algorithms that are not in the Mozilla Intermediate SSH config * Address review comments * Fixup slf4j's custom format string format Co-authored-by: Harsh Shandilya <msfjarvis@gmail.com>
2020-06-04Don't show an error if password prompt is cancelled (#833)Fabian Henneke1-9/+5
2020-06-03Improve Git password/passphrase dialog behavior (#829)Fabian Henneke1-4/+41
* Reset PasswordFinder retry state after authentication * Memorize password inbetween Git commands
2020-05-30Switch password authentication over to SSHJ (#811)Fabian Henneke3-30/+7
* Switch password authentication over to SSHJ * Address review comments and refactor further
2020-05-28Use SSHJ for SSH public key authentication (#801)Fabian Henneke2-58/+148
2020-05-10Treewide codestyle cleanup (#765)Harsh Shandilya1-72/+81
- Updated gitignore and checked in the IDE's codestyle config - Removed spotless as the underlying ktlint backend has failed to resolve the super frustrating import order bug[1] in nearly a year - Reformat the entire codebase based on the previously committed code style configuration. 1: https://github.com/pinterest/ktlint/issues/527
2020-05-08Introduce no-auth mode for connections (#768)Harsh Shandilya2-2/+5
Fixes #758 Fixes #526
2020-04-17Refactor Git related activities (#685)Harsh Shandilya3-3/+40
* Refactor git logic into separate parts * Extract hardcoded strings * Add KDoc to updateHostname, remove unused field * Cleanups * Fix dialog message * Wire in repository clone flow * spotless * Remove unused method * Cleanup GitActivity - Rename to GitOperationActivity. - Ensure identityBuilder is always closed regardless of what fragment uses it. - Remove hardcoded "Operation" strings and replace with REQUEST_ARG_OP. - Apply a transparent theme to GitOperationActivity make the UI less jarring. * Tweak some stupidly worded dialog messages As pointed out in #629, these strings are shoddily worded and do not express any clear intent to the user, leaving them confused and angry. * GitOperationActivity: wrap Context to ensure right theme is used * spotless * undo build.gradle change * Use correct parent theme, remove now useless wrapping * GitServerConfigActivity: fix repository clone flow * temp: disable leakcanary framework leaks on Samsung are pissing me off * Make system bars transparent in git activity * Tweak HTTPS password layout * Unhardcode wrong passphrase string * Store SSH passphrase in EncryptedSharedPreferences Also revamp the dialog to look a bit better * Implement support for remembering HTTPS password Fixes #521 * Try to patch HTTPS remote creation logic * Update security-crypto * Clear saved passphrase/password on auth failure * Revert "Update security-crypto" Broken on R DP2.1 This reverts commit 4b20371dd42c512a3dd3b759859abb6c1ffd2961. * Revert "temp: disable leakcanary" This reverts commit 2db7d41bd67b79c6dc8c5b359a7b27100379f45f. * Update CHANGELOG * Remove spacer * Remove useless override * Wrap git server activity in a ScrollView * GitOperation: always finish calling activity when dialogs are dismissed * Wipe saved password/passphrase when hostname changes * Don't commit prefs updates * Don't call listFiles excessively * Finish activity after saving configuration * Make ConnectionMode and Protocol enum classes * Change SSH key passphrase key, don't wipe on host change * Reimplement BaseGitActivity.updateUrl (was updateHostname) * Use SharedPreferences.edit KTX extension * Disable inapplicable connection modes depending on scheme * BaseGitActivity: annotate onDestroy with CallSuper We'll leak the identityBuilder connection otherwise * Move input hack for AlertDialog into an extension function We re-use this in many places * Fix protocol/mode toggle issue and consistenly name options * Fix a crash when opening GitServerConfigActivity without a repo * Fix OpenKeychain callbacks by moving onActivityResult to BaseGitActivity * Run spotlessApply Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Fabian Henneke <fabian@henneke.me>
2020-01-30Update license headers (#625)Harsh Shandilya3-3/+3
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-27Add setting to save OpenKeychain auth keyid (#554)Harsh Shandilya1-5/+35
* Add setting to save OpenKeychain auth keyid * Hide pref not disable Co-Authored-By: Reagan Sanders <vexofp@gmail.com> Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02treewide: Fix typo in license headerHarsh Shandilya3-3/+3
While we're here, also clarify we're strictly GPL-3.0 and not automatically opting into future revisions of the license. Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02treewide: Add copyrightsHarsh Shandilya3-0/+12
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-02Add Spotless to regulate codestyle (#550)Harsh Shandilya2-84/+93
* Add Spotless to regulate codestyle * treewide: Run spotless * Add spotlessCheck to CI test Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-10-01Redesign UI and introduce dark theme (#519)Harsh Shandilya1-6/+8
Caveats: - The openpgp preference had to be removed because the open-intents developers are too lazy to update their libraries. Over the coming weeks I will be reimplementing a local solution for this instead. - The autofill dialog is broken but I since it is being worked on in #410 already I'm not going to bother fixing it.
2019-07-30treewide: ReformatHarsh Shandilya1-0/+1
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-05-31Convert Git and SSH config factories to KotlinHarsh Shandilya4-90/+76
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2019-04-06Authentication using OpenKeystore SSH API (#486)vexofp1-0/+358
* Implemented OpenKeystore SSH API as a new authentication option * Fix formatting problems Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * Addressed review comments. Removed leftover debugging code. Wrapped excessively long lines. Added missing new parameter to Javadoc. * Merge remote-tracking branch 'upstream/master' into gpg-ssh-key
2019-01-02Bump minSdk to 21 (#466)Harsh Shandilya2-4/+1
* Bump minSdk to 21 Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * PasswordGenerator: Constify things Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * Deprecate PRNG fixes The problem being fixed doesn't exist on SDK 21 and above. Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * treewide: Switch to lambdas Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * treewide: Formatting fixes Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com> * treewide: Remove useless casts and add missing annotations Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
2017-07-25Fix lint warnings (#319)Felix Bechstein1-2/+0
* Fix lint errors/warnings Fix a lot of lint errors and warnings. Most things are automatically applied fixes done with android studio: * externalize strings * remove unused code / classes / layouts / imports * migrate some fields to local variables * Remove dead code from comments Removed code that is commented out long ago. * remove unused resources * colors * strings * drawables * layouts * menus
2015-06-08Fix issue with servers that have GSSAPI authentication enabled.lsowen1-1/+2
Force SSH client to only try publickey and password authentication modes (in that order).
2015-01-04git tasks refactoring (clone working)zeapo2-0/+94