diff options
| author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-09-04 11:16:05 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-04 14:46:05 +0530 |
| commit | 4214b7fbb4b42e187ce23b9a56df89b45df87ca6 (patch) | |
| tree | a96dd0ffda61b598aeeda3addd052f467eb74c3d /app/src/main/java/com/zeapo/pwdstore/git | |
| parent | e731943437861f2eeac4d8a442f512065be2a0e7 (diff) | |
| download | HardenedPass-4214b7fbb4b42e187ce23b9a56df89b45df87ca6.tar.gz HardenedPass-4214b7fbb4b42e187ce23b9a56df89b45df87ca6.zip | |
Add migration to new SshKey backend (#1076)
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git')
3 files changed, 12 insertions, 4 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt index 7e9b1496..dd8ea731 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/BaseGitActivity.kt @@ -10,8 +10,8 @@ import com.github.ajalt.timberkt.Timber.tag import com.github.ajalt.timberkt.d import com.github.ajalt.timberkt.e import com.github.michaelbull.result.Err -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.github.michaelbull.result.Result +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.zeapo.pwdstore.R import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.git.operation.BreakOutOfDetached diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitCommandExecutor.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitCommandExecutor.kt index 8d8648bf..6ef09537 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitCommandExecutor.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitCommandExecutor.kt @@ -7,6 +7,7 @@ package com.zeapo.pwdstore.git import android.widget.Toast import androidx.fragment.app.FragmentActivity +import com.github.michaelbull.result.Result import com.google.android.material.snackbar.Snackbar import com.zeapo.pwdstore.R import com.zeapo.pwdstore.git.GitException.PullException @@ -14,7 +15,6 @@ import com.zeapo.pwdstore.git.GitException.PushException import com.zeapo.pwdstore.git.config.GitSettings import com.zeapo.pwdstore.git.operation.GitOperation import com.zeapo.pwdstore.utils.snackbar -import com.github.michaelbull.result.Result import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.eclipse.jgit.api.CommitCommand diff --git a/app/src/main/java/com/zeapo/pwdstore/git/sshj/SshKey.kt b/app/src/main/java/com/zeapo/pwdstore/git/sshj/SshKey.kt index 8b657040..da49111e 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/sshj/SshKey.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/sshj/SshKey.kt @@ -76,7 +76,7 @@ object SshKey { val sshPublicKey get() = if (publicKeyFile.exists()) publicKeyFile.readText() else null val canShowSshPublicKey - get() = type in listOf(Type.KeystoreNative, Type.KeystoreWrappedEd25519) + get() = type in listOf(Type.LegacyGenerated, Type.KeystoreNative, Type.KeystoreWrappedEd25519) val exists get() = type != null val mustAuthenticate: Boolean @@ -128,6 +128,9 @@ object SshKey { Imported("imported"), KeystoreNative("keystore_native"), KeystoreWrappedEd25519("keystore_wrapped_ed25519"), + + // Behaves like `Imported`, but allows to view the public key. + LegacyGenerated("legacy_generated"), ; companion object { @@ -204,6 +207,11 @@ object SshKey { type = Type.Imported } + @Deprecated("To be used only in Migrations.kt") + fun useLegacyKey(isGenerated: Boolean) { + type = if (isGenerated) Type.LegacyGenerated else Type.Imported + } + @Suppress("BlockingMethodInNonBlockingContext") private suspend fun getOrCreateWrappingMasterKey(requireAuthentication: Boolean) = withContext(Dispatchers.IO) { MasterKey.Builder(context, KEYSTORE_ALIAS).run { @@ -268,7 +276,7 @@ object SshKey { } fun provide(client: SSHClient, passphraseFinder: InteractivePasswordFinder): KeyProvider? = when (type) { - Type.Imported -> client.loadKeys(privateKeyFile.absolutePath, passphraseFinder) + Type.LegacyGenerated, Type.Imported -> client.loadKeys(privateKeyFile.absolutePath, passphraseFinder) Type.KeystoreNative -> KeystoreNativeKeyProvider Type.KeystoreWrappedEd25519 -> KeystoreWrappedEd25519KeyProvider null -> null |
