From cbb96397d1f5cffef7984b08a426646aaea93e5b Mon Sep 17 00:00:00 2001 From: Fabian Henneke Date: Tue, 1 Sep 2020 10:12:27 +0200 Subject: Add Keystore backend for SSH public key authentication (#1070) --- app/src/main/java/com/zeapo/pwdstore/utils/BiometricAuthenticator.kt | 5 ++--- app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt | 4 ++++ app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt | 3 +-- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/com/zeapo/pwdstore/utils') diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/BiometricAuthenticator.kt b/app/src/main/java/com/zeapo/pwdstore/utils/BiometricAuthenticator.kt index 0792c1fc..d7ecb4cd 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/BiometricAuthenticator.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/BiometricAuthenticator.kt @@ -5,12 +5,12 @@ package com.zeapo.pwdstore.utils import android.app.KeyguardManager -import android.os.Handler import androidx.annotation.StringRes import androidx.biometric.BiometricConstants import androidx.biometric.BiometricManager import androidx.biometric.BiometricManager.Authenticators import androidx.biometric.BiometricPrompt +import androidx.core.content.ContextCompat import androidx.core.content.getSystemService import androidx.fragment.app.FragmentActivity import com.github.ajalt.timberkt.Timber.tag @@ -20,7 +20,6 @@ import com.zeapo.pwdstore.R object BiometricAuthenticator { private const val TAG = "BiometricAuthenticator" - private val handler = Handler() sealed class Result { data class Success(val cryptoObject: BiometricPrompt.CryptoObject?) : Result() @@ -69,7 +68,7 @@ object BiometricAuthenticator { .setTitle(activity.getString(dialogTitleRes)) .setAllowedAuthenticators(validAuthenticators) .build() - BiometricPrompt(activity, { handler.post(it) }, authCallback).authenticate(promptInfo) + BiometricPrompt(activity, ContextCompat.getMainExecutor(activity.applicationContext), authCallback).authenticate(promptInfo) } else { callback(Result.HardwareUnavailableOrDisabled) } diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt index edc01776..f41899b9 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt @@ -4,6 +4,7 @@ */ package com.zeapo.pwdstore.utils +import android.app.KeyguardManager import android.content.ClipboardManager import android.content.Context import android.content.Intent @@ -162,6 +163,9 @@ val Context.autofillManager: AutofillManager? @RequiresApi(Build.VERSION_CODES.O) get() = getSystemService() +val Context.keyguardManager: KeyguardManager + get() = getSystemService()!! + fun File.isInsideRepository(): Boolean { return canonicalPath.contains(getRepositoryDirectory().canonicalPath) } diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt index bcda4505..5925809c 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PreferenceKeys.kt @@ -28,6 +28,7 @@ object PreferenceKeys { const val GIT_EXTERNAL = "git_external" const val GIT_EXTERNAL_REPO = "git_external_repo" const val GIT_REMOTE_AUTH = "git_remote_auth" + const val GIT_REMOTE_KEY_TYPE = "git_remote_key_type" @Deprecated("Use GIT_REMOTE_URL instead") const val GIT_REMOTE_LOCATION = "git_remote_location" @@ -75,6 +76,4 @@ object PreferenceKeys { const val SSH_OPENKEYSTORE_CLEAR_KEY_ID = "ssh_openkeystore_clear_keyid" const val SSH_OPENKEYSTORE_KEYID = "ssh_openkeystore_keyid" const val SSH_SEE_KEY = "ssh_see_key" - const val USE_GENERATED_KEY = "use_generated_key" - } -- cgit v1.2.3