diff --git a/aws-auth-cognito/src/main/java/com/amplifyframework/auth/cognito/data/LegacyKeyProvider.kt b/aws-auth-cognito/src/main/java/com/amplifyframework/auth/cognito/data/LegacyKeyProvider.kt index 4f649ab36a..9ebbe282e7 100644 --- a/aws-auth-cognito/src/main/java/com/amplifyframework/auth/cognito/data/LegacyKeyProvider.kt +++ b/aws-auth-cognito/src/main/java/com/amplifyframework/auth/cognito/data/LegacyKeyProvider.kt @@ -31,12 +31,16 @@ internal object LegacyKeyProvider { val keyStore = KeyStore.getInstance(ANDROID_KEY_STORE_NAME) keyStore.load(null) - if (keyStore.containsAlias(keyAlias)) { - return Result.failure( - CredentialStoreError( - "Key already exists for the keyAlias: $keyAlias in $ANDROID_KEY_STORE_NAME" + try { + if (keyStore.containsAlias(keyAlias)) { + return Result.failure( + CredentialStoreError( + "Key already exists for the keyAlias: $keyAlias in $ANDROID_KEY_STORE_NAME" + ) ) - ) + } + } catch (exception: Exception) { + return Result.failure(CredentialStoreError("Failed to connect to KeyStore")) } val parameterSpec = @@ -60,9 +64,13 @@ internal object LegacyKeyProvider { val keyStore = KeyStore.getInstance(ANDROID_KEY_STORE_NAME) keyStore.load(null) - if (!keyStore.containsAlias(keyAlias)) { - val message = "Key does not exists for the keyAlias: $keyAlias in $ANDROID_KEY_STORE_NAME" - return Result.failure(CredentialStoreError(message)) + try { + if (!keyStore.containsAlias(keyAlias)) { + val message = "Key does not exists for the keyAlias: $keyAlias in $ANDROID_KEY_STORE_NAME" + return Result.failure(CredentialStoreError(message)) + } + } catch (exception: Exception) { + return Result.failure(CredentialStoreError("Failed to connect to KeyStore")) } val key: Key? = keyStore.getKey(keyAlias, null) @@ -79,6 +87,10 @@ internal object LegacyKeyProvider { val keyStore = KeyStore.getInstance(ANDROID_KEY_STORE_NAME) keyStore.load(null) - keyStore.deleteEntry(keyAlias) + try { + keyStore.deleteEntry(keyAlias) + } catch (exception: Exception) { + // KeyStore unreachable + } } }