Commit graph

1725 commits

Author SHA1 Message Date
Harsh Shandilya
23b4d2a6c1
feat: try out new SSH layer again
The underlying bug that we hit before has been fixed so this is ready for another try
2023-11-30 13:09:11 +05:30
Harsh Shandilya
891455d7a7
fix: gate passphrase cache behind authenticator availability
Fixes #2783
2023-11-29 19:39:25 +05:30
Harsh Shandilya
2de636c31b
feat: remove WhatTheStack
This is pretty unmaintained
2023-11-28 11:56:49 +05:30
Harsh Shandilya
1379ca2439
chore: reorder ProGuard rules 2023-11-28 11:54:08 +05:30
Harsh Shandilya
a9b0112279
fix(deps): upgrade to JGit 4.5.7.201904151645-r
Currently requires deleting and re-cloning the repository to properly
detect symlink support, this will be fixed in the future to auto-detect
on existing repositories as well.

Fixes #2594
Fixes #2396
Fixes #636
Fixes #387
Fixes #98
2023-11-27 17:40:11 +05:30
Harsh Shandilya
8fa7b0b60f
feat: remove Leak Canary
This mostly ends up spamming about Autofill leaks in the framework
2023-11-26 21:36:59 +05:30
Harsh Shandilya
c047752ef7
fix: ensure parent hierarchy exists when creating passwords
Also refactor to use NIO Paths APIs

Fixes #2755
2023-11-13 23:56:47 +05:30
Harsh Shandilya
551d223230
Sync localisations from Crowdin (#2747)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-10-29 00:37:04 +00:00
renovate[bot]
47d65d0740
fix(deps): update dependency com.slack.lint:slack-lint-checks to v0.6.0 (#2697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-27 18:45:59 +00:00
renovate[bot]
da17f0b4fb
fix(deps): update dependency com.android.tools.build:gradle to v8.3.0-alpha05 (#2692)
* fix(deps): update dependency com.android.tools.build:gradle to v8.3.0-alpha05

* refactor(autofill): workaround `RequiresApi` Lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-22 09:56:07 +05:30
renovate[bot]
9329710178
fix(deps): update dependency com.facebook:ktfmt to v0.45 (#2687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-18 18:15:11 +00:00
renovate[bot]
1da4c42220
fix(deps): update dependency com.hierynomus:sshj to v0.36.0 (#2670)
* fix(deps): update dependency com.hierynomus:sshj to v0.36.0

* refactor(build): drop unnecessary explicit dependency

* chore(idea): cruft

* fix(app): ensure SLF4J v1 is used

* fix(build): disable illegal BindsCanBeExtensionFunction lint

* chore: refresh Lint baselines

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-04 18:50:19 +00:00
renovate[bot]
2c2a0b1a53
chore(deps): update hilt to v2.48 (#2668)
* chore(deps): update hilt to v2.48

* fix: remove unsupported extension syntax

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-08-31 05:51:20 +00:00
renovate[bot]
8f950fb83e
fix(deps): update dependency org.pgpainless:pgpainless-core to v1.6.2 (#2667)
* fix(deps): update dependency org.pgpainless:pgpainless-core to v1.6.2

* fix(deps): use `-jdk18on` artifacts for BouncyCastle

* chore: re-roll Lint baseline

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-08-30 13:13:18 +00:00
renovate[bot]
7a9d7095f7
fix(deps): update dependency me.zhanghai.android.fastscroll:library to v1.3.0 (#2643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 06:52:27 +00:00
Harsh Shandilya
959a56d7ff
refactor: un-flatten module structure 2023-08-10 03:31:08 +05:30
renovate[bot]
222ff5b052
fix(deps): update bouncycastle to v1.76 (#2632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-07-31 05:49:05 +00:00
Harsh Shandilya
04a143126b
fix: adjust Git log formatter to fix crash
Fixes: d37fdfdbaa ("fix(app): fully migrate to `java.time`")
2023-07-26 17:18:58 +05:30
Harsh Shandilya
fa50628719
fix: address new IntentWithNullActionLaunch lint 2023-07-26 16:22:06 +05:30
Harsh Shandilya
5a12eff24e
chore: remove unnecessary suppressions 2023-07-26 16:02:03 +05:30
Harsh Shandilya
26950dbbd0
Sync localisations from Crowdin (#2616)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-23 00:37:09 +00:00
Harsh Shandilya
cd6c0a2d78
chore: refresh Lint baseline 2023-07-23 00:51:24 +05:30
Harsh Shandilya
d37fdfdbaa fix(app): fully migrate to java.time 2023-07-22 15:54:11 +05:30
Harsh Shandilya
ce650c6f62 chore: remove useless OptIn annotations 2023-07-19 17:38:20 +05:30
Harsh Shandilya
8855190d7c
fix(build): properly resolve JavaPoet version resolution issue 2023-07-12 16:22:27 +05:30
Harsh Shandilya
bfd51efca4
feat(build): target API 34 2023-07-12 16:22:27 +05:30
Harsh Shandilya
26abbbef97
refactor: rework password dialog to avoid memory leak 2023-07-09 18:49:28 +05:30
Harsh Shandilya
7435842bd9
refactor: extract prompt authentication callback creation 2023-07-09 18:03:41 +05:30
Harsh Shandilya
fe7aee24d4
fix: correctly use biometrics result in passphrase cache flow 2023-07-09 17:59:33 +05:30
Harsh Shandilya
dfe4b14b4c
refactor: eliminate one level of nesting from BiometricAuthenticator 2023-07-09 17:59:33 +05:30
Harsh Shandilya
6f3f7e4b4c
refactor: adopt Kotlin 1.9's data objects 2023-07-09 16:48:34 +05:30
Harsh Shandilya
378ce98cd0
Sync localisations from Crowdin (#2595)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-09 00:38:36 +00:00
Harsh Shandilya
f583939635
fix(build): adjust ktfmt path filtering to allow formatting build.gradle.kts files 2023-07-06 13:02:17 +05:30
Harsh Shandilya
fa03ca0ad7
feat(ui): add a dedicated Compose screen for editing passwords 2023-07-05 14:24:35 +05:30
Harsh Shandilya
4c28098cbb
fix(ui): adjust width of items in PasswordEntryScreen 2023-07-05 13:57:21 +05:30
Harsh Shandilya
a4d615b861
fix: remove use of unnecessary Object#clone 2023-06-27 18:07:29 +05:30
Harsh Shandilya
6a18c04e38
fix: remove unused feature flag 2023-06-27 18:07:29 +05:30
Harsh Shandilya
b3be9bad26
fix: replace hard-coded strings 2023-06-27 18:07:29 +05:30
Harsh Shandilya
ee6895b2e8
chore: cleanup IDE warnings 2023-06-27 18:07:29 +05:30
renovate[bot]
a644bccba7
fix(deps): update bouncycastle to v1.75 (#2557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 07:27:10 +00:00
Harsh Shandilya
e875047899
feat: adopt Kotlin 1.9 Enum entries feature 2023-06-15 16:53:21 +05:30
Harsh Shandilya
5dac84c3c8
refactor: consistently adopt PGP over GPG for naming
PGP is the standard, GPG is an implementation of it. We're adhering to PGP, and not using GPG.
2023-06-15 16:17:59 +05:30
renovate[bot]
c168ce2e86
fix(deps): update bouncycastle to v1.74 2023-06-15 14:23:13 +05:30
Harsh Shandilya
26a7298978
fix: address ComposeUnstableCollections lint 2023-06-15 14:21:49 +05:30
Harsh Shandilya
a00bd046b6
chore: rename TOML keys for coroutines deps 2023-06-15 13:58:31 +05:30
Harsh Shandilya
be6583f987
chore: update PGP key list previews 2023-06-15 13:48:37 +05:30
Harsh Shandilya
bfa27750d3
fix: ensure PGP key list item works with longer user IDs 2023-06-15 13:48:21 +05:30
Harsh Shandilya
e7982f1f0c
fix: allow gpg-id to be the first line of a .gpg-id file 2023-06-13 00:44:50 +05:30
Harsh Shandilya
0669f8a062
fix: replace Stack with ArrayDeque in SearchableRepositoryViewModel 2023-06-04 02:24:23 +05:30
Harsh Shandilya
469700f627
feat: add custom dialog title for passphrase cache 2023-06-04 02:02:47 +05:30
Harsh Shandilya
f6e1830647
fix: start clearing violations of DenyListedApi 2023-06-04 01:52:57 +05:30
Harsh Shandilya
3a4e827f1a
fix: clear violations of RawDispatcherUse 2023-06-04 01:52:57 +05:30
Harsh Shandilya
496f421f17
fix: clear violations of FullyQualifiedResource 2023-06-04 01:52:57 +05:30
Harsh Shandilya
5538306927
chore: refresh lint baseline 2023-06-04 01:52:57 +05:30
Harsh Shandilya
b9410a0f31
Revert "fix: adjust R8 rules"
This reverts commit 9838801ed3.
2023-05-31 17:33:15 +05:30
Harsh Shandilya
9838801ed3
fix: adjust R8 rules
Workaround for https://github.com/getsentry/sentry-java/issues/2738
2023-05-28 02:33:51 +05:30
Harsh Shandilya
b022529f5f
Revert "fix(app): remove invalid lint"
This reverts commit 05c9c8c0ef.
2023-05-27 01:26:12 +05:30
Harsh Shandilya
e05c704539
refactor(build): sync Gradle properties set with current AGP 2023-05-20 23:50:39 +05:30
Harsh Shandilya
5420faff34
feat(gpg): add methods to clear entries from GPG passphrase cache 2023-05-19 18:58:48 +05:30
Harsh Shandilya
05c9c8c0ef
fix(app): remove invalid lint 2023-05-16 15:54:50 +05:30
Harsh Shandilya
76efe73e28
chore: refresh Lint baseline with AGP 8.1.0-beta02 2023-05-16 15:41:54 +05:30
Harsh Shandilya
29ca93854a
fix: check feature flag before biometric auth 2023-05-13 15:24:48 +05:30
Harsh Shandilya
ec696c1d8d
feat: raise min SDK to 26
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-12 20:28:36 +05:30
Harsh Shandilya
39c7b0cb7b
fix: add warning to passphrase cache feature 2023-05-09 00:13:09 +05:30
Harsh Shandilya
f3fc246c58
chore: adjust code style 2023-05-08 11:39:49 +05:30
Harsh Shandilya
d988bdd0dc
feat: wire up passphrase cache
Currently has horrible UX and is behind an experimental feature flag
2023-05-08 03:09:26 +05:30
Harsh Shandilya
4ff0525e95
fix: adjust GPGPassphraseCache public API 2023-05-08 02:51:08 +05:30
Harsh Shandilya
df58f484ac
refactor: move out GPG identifier parser to BasePgpActivity 2023-05-08 02:51:08 +05:30
Harsh Shandilya
136f4e5caa
chore: touch up codestyle in BiometricAuthenticator.kt 2023-05-08 01:10:45 +05:30
Harsh Shandilya
f9730cae58
feat: kick off a very basic passphrase cache 2023-05-05 00:51:51 +05:30
Harsh Shandilya
1e68e97b25
refactor: make PreferenceModule codestyle consistent 2023-05-05 00:47:32 +05:30
Harsh Shandilya
def9786736
feat: switch default password generator to Diceware 2023-05-05 00:30:53 +05:30
Harsh Shandilya
ff372c0c97
Sync localisations from Crowdin (#2493)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-04-30 00:30:49 +00:00
renovate[bot]
d04e1fa368
fix(deps): update dependency com.facebook:ktfmt to v0.44 (#2490)
* fix(deps): update dependency com.facebook:ktfmt to v0.44

* chore: reformat with ktfmt 0.44

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-04-29 01:28:41 +00:00
Harsh Shandilya
3e67280f65
fix: use password entry for OTP entry field 2023-04-27 15:15:04 +05:30
Harsh Shandilya
5659ad9863
feat(build): add Slack's Compose Lints 2023-04-27 14:45:06 +05:30
Harsh Shandilya
53497c0365
feat(lint): update baselines 2023-04-27 01:37:20 +05:30
Harsh Shandilya
d6fdd3580f
fix: remove injection redirection in SSHFacade 2023-04-10 22:59:54 +05:30
Harsh Shandilya
fb8d74fc1f
feat: put new SSH layer behind a feature flag
There hasn't been nearly enough regression testing on this and
it is causing breakage, let's move it out of the default path
until we've ironed out the kinks.
2023-04-10 17:19:32 +05:30
Harsh Shandilya
5ab0c53d03
fix: actually apply LeakCanary config changes 2023-04-10 16:20:59 +05:30
Harsh Shandilya
0a16ac7620
fix: only check repo initialization in commit flow 2023-04-06 18:16:09 +05:30
Harsh Shandilya
c4edf7f0e6
feat: wire up key import functionality 2023-04-06 18:14:35 +05:30
Harsh Shandilya
a96f24ac96
fix: use created repository directly 2023-04-06 17:53:14 +05:30
Aditya Wasan
97b3577a46
Refactor SSHKey into a separate module (#2450)
* refactor(ssh): add `ssh` module

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKey` data class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKeyType` enum

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKeyAlgorithm` class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add class to generate `RSA` key

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore(ssh): add required dependencies

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `ECDSAKeyGenerator` and remove constants

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add utilities

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add `SSHKeyWriter`

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): make ssh key generators suspending

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* fix(ssh): fix explicit API violations

* feat: complete `ED25519KeyWriter` implementation

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* factor(ssh/writer): update writer interface

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh/provider): add providers for different key types

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add SSHKeyManager for common key functionality

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add remaining methods to reach feature parity with old SSH implementation

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* wip(app): start using SSHKeyManager instead of SSHKey class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* refactor(ssh): update package name

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore(ssh): fix detekt warnings

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore: fixes across the board

---------

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-04-02 18:04:33 +00:00
Harsh Shandilya
8b97a4a3f1
refactor: migrate to androidx.core APIs for Bundle/Intent API changes 2023-03-27 17:53:10 +05:30
Harsh Shandilya
8258c08f10
Sync localisations from Crowdin (#2440)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-27 04:57:23 +00:00
Harsh Shandilya
cb0a2fe6ee
Sync localisations from Crowdin (#2439)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-26 00:26:24 +00:00
Harsh Shandilya
8af09d5bc8
feat: offer to import a PGP key when none are present 2023-03-25 12:36:13 +05:30
Harsh Shandilya
e2900c26de
fix: use DispatcherProvider in CryptoRepository 2023-03-25 12:26:01 +05:30
Harsh Shandilya
f07bfb2f97
chore: rename import button label string resource 2023-03-25 12:26:01 +05:30
Harsh Shandilya
e3eb6b1c9c
fix: ensure repo dir is recreated after deletion 2023-03-25 11:30:19 +05:30
Harsh Shandilya
73de8ba267
fix: extract hard-coded string 2023-03-24 13:30:14 +05:30
Harsh Shandilya
29eaa09427
feat: add user guidance in PGP key manager screen 2023-03-24 13:17:54 +05:30
Harsh Shandilya
bebb804e01
fix: adjust LeakCanary init flow 2023-03-24 10:19:02 +05:30
Harsh Shandilya
db7756638a
refactor(build): wire up CC-compatible task dependencies for Crowdin 2023-03-21 13:45:12 +05:30
Harsh Shandilya
2f524fc2b7
fix(build): remove DSL_SCOPE_VIOLATION suppression
This was a Gradle bug that is now fixed https://docs.gradle.org/8.1-rc-1/release-notes.html#:~:text=Access%20to%20version%20catalog%20for%20plugins%20in%20the%20plugins%20%7B%7D%20block
2023-03-21 13:43:09 +05:30
Harsh Shandilya
a96213f6ce
fix: inverted test in Migrations#removeCurrentBranchValue 2023-03-19 19:11:27 +05:30
Harsh Shandilya
ddd958a8d6
fix(app): control LeakCanary lifecycle more explicitly 2023-03-18 21:53:50 +05:30
Harsh Shandilya
0fa2521592
fix: also swallow retry attempts in SSHJ biometric auth 2023-03-08 23:05:19 +05:30
Harsh Shandilya
d8dbe74d3a
chore: add more logging to biometric operations 2023-03-08 22:59:31 +05:30