at Java.Interop.JniEnvironment.StaticMethods.CallStaticObjectMethod(JniObjectReference , JniMethodInfo , JniArgumentValue )
at Java.Interop.JniPeerMembers.JniStaticMethods.InvokeObjectMethod(String , JniArgumentValue )
at AndroidX.Security.Crypto.EncryptedSharedPreferences.Create(Context , String , MasterKey , PrefKeyEncryptionScheme , PrefValueEncryptionScheme )
at Microsoft.Maui.Storage.SecureStorageImplementation.GetEncryptedSharedPreferences()
at Microsoft.Maui.Storage.SecureStorageImplementation.PlatformRemove(String )
at Microsoft.Maui.Storage.SecureStorageImplementation.<>c__DisplayClass5_0.b0()
at System.Threading.Tasks.Task1[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b281_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& , Thread ) --- End of stack trace from previous location --- at NeuroAccessMaui.Services.Crypto.CryptoService.GetCustomKey(String fileName) at NeuroAccessMaui.Services.Crypto.CryptoService.InitializeJwtFactory() at NeuroAccessMaui.App.InitInParallel(TaskCompletionSource1 Result, Boolean BackgroundStart)
--- End of managed Java.Security.GeneralSecurityException stack trace ---
javax.crypto.AEADBadTagException
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:617)
at javax.crypto.Cipher.doFinal(Cipher.java:2114)
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:993)
at com.google.crypto.tink.KeysetHandle.readWithAssociatedData(KeysetHandle.java:878)
at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:859)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readMasterkeyDecryptAndParseKeyset(AndroidKeysetManager.java:378)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:298)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:169)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:130)
Caused by: android.security.KeyStoreException: Signature/MAC verification failed (internal Keystore code: -30 message: In KeystoreOperation::finish
Caused by:
0: In finish: KeyMint::finish failed.
1: Error::Km(ErrorCode(-30))) (public error code: 10 internal Keystore code: -30)
at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:418)
at android.security.KeyStoreOperation.handleExceptions(KeyStoreOperation.java:78)
at android.security.KeyStoreOperation.finish(KeyStoreOperation.java:128)
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:609)
on certain android devices, clearing cache & data corrupts the apps Database https://stackoverflow.com/questions/55665337/keystoreexception-signature-mac-verification-failed-when-trying-to-decrypt
Exception_WasThrown, Java.Security.GeneralSecurityException
at Java.Interop.JniEnvironment.StaticMethods.CallStaticObjectMethod(JniObjectReference , JniMethodInfo , JniArgumentValue ) at Java.Interop.JniPeerMembers.JniStaticMethods.InvokeObjectMethod(String , JniArgumentValue ) at AndroidX.Security.Crypto.EncryptedSharedPreferences.Create(Context , String , MasterKey , PrefKeyEncryptionScheme , PrefValueEncryptionScheme ) at Microsoft.Maui.Storage.SecureStorageImplementation.GetEncryptedSharedPreferences() at Microsoft.Maui.Storage.SecureStorageImplementation.PlatformRemove(String ) at Microsoft.Maui.Storage.SecureStorageImplementation.<>c__DisplayClass5_0.b0()
at System.Threading.Tasks.Task1[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b281_0(Object obj) at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread , ExecutionContext , ContextCallback , Object ) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& , Thread ) --- End of stack trace from previous location --- at NeuroAccessMaui.Services.Crypto.CryptoService.GetCustomKey(String fileName) at NeuroAccessMaui.Services.Crypto.CryptoService.InitializeJwtFactory() at NeuroAccessMaui.App.InitInParallel(TaskCompletionSource1 Result, Boolean BackgroundStart)
--- End of managed Java.Security.GeneralSecurityException stack trace ---
javax.crypto.AEADBadTagException
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:617)
at javax.crypto.Cipher.doFinal(Cipher.java:2114)
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:993)
at com.google.crypto.tink.KeysetHandle.readWithAssociatedData(KeysetHandle.java:878)
at com.google.crypto.tink.KeysetHandle.read(KeysetHandle.java:859)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readMasterkeyDecryptAndParseKeyset(AndroidKeysetManager.java:378)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build(AndroidKeysetManager.java:298)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:169)
at androidx.security.crypto.EncryptedSharedPreferences.create(EncryptedSharedPreferences.java:130)
Caused by: android.security.KeyStoreException: Signature/MAC verification failed (internal Keystore code: -30 message: In KeystoreOperation::finish
Caused by: 0: In finish: KeyMint::finish failed. 1: Error::Km(ErrorCode(-30))) (public error code: 10 internal Keystore code: -30) at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:418) at android.security.KeyStoreOperation.handleExceptions(KeyStoreOperation.java:78) at android.security.KeyStoreOperation.finish(KeyStoreOperation.java:128) 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:609)