novasamatech/parity-signer

Android - changing pin code causing app crash

Dmitry-Borodin opened this issue · 1 comments

Changing pin leading to app crash, should at least show error screen

javax.crypto.AEADBadTagException
                                                                                                    	at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:611)
                                                                                                    	at javax.crypto.Cipher.doFinal(Cipher.java:2113)
                                                                                                    	at com.google.crypto.tink.integration.android.AndroidKeystoreAesGcm.decryptInternal(AndroidKeystoreAesGcm.java:118)
                                                                                                    	at com.google.crypto.tink.integration.android.AndroidKeystoreAesGcm.decrypt(AndroidKeystoreAesGcm.java:101)
                                                                                                    	at com.google.crypto.tink.KeysetHandle.decrypt(KeysetHandle.java:919)
                                                                                                    	at com.google.crypto.tink.KeysetHandle.readWithAssociatedData(KeysetHandle.java:804)
                                                                                                    	at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:785)
                                                                                                    	at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readMasterkeyDecryptAndParseKeyset(AndroidKeysetManager.java:381)
                                                                                                    	at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:297)
                                                                                                    	at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:169)
                                                                                                    	at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:130)
                                                                                                    	at androidx.security.crypto.EncryptedSharedPreferencesKt.EncryptedSharedPreferences(EncryptedSharedPreferences.kt:39)
                                                                                                    	at io.parity.signer.domain.storage.SeedStorage.init(SeedStorage.kt:86)
                                                                                                    	at io.parity.signer.domain.usecases.ResetUseCase.totalRefresh(ResetUseCase.kt:72)
                                                                                                    	at io.parity.signer.domain.MainFlowViewModel$onUnlockClicked$1.invokeSuspend(MainFlowViewModel.kt:33)
                                                                                                    	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                    	at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:202)
                                                                                                    	at kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
                                                                                                    	at io.parity.signer.domain.Authentication$authenticate$3$1.onAuthenticationSucceeded(Authentication.kt:202)
                                                                                                    	at androidx.biometric.BiometricFragment$9.run(BiometricFragment.java:907)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:938)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                    	at android.os.Looper.loop(Looper.java:288)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7842)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
                                                                                                    	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@98315b9, Dispatchers.Main.immediate]
                                                                                                    Caused by: android.security.KeyStoreException: Signature/MAC verification failed
                                                                                                    	at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:356)
                                                                                                    	at android.security.KeyStoreOperation.handleExceptions(KeyStoreOperation.java:78)
                                                                                                    	at android.security.KeyStoreOperation.finish(KeyStoreOperation.java:127)
                                                                                                    	at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer$MainDataStream.finish(KeyStoreCryptoOperationChunkedStreamer.java:228)
                                                                                                    	at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:181)
                                                                                                    	at android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:396)
                                                                                                    	at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:603)
                                                                                                    	... 27 more

another report telling it was java.security.UnrecoverableKeyException: User changed or deleted their auth credentials