aws-mobile-appsync-sdk-android: AWSKeyValueStore: Error during encryption key generation or key loading
I’m using Authentication in my App with Drop-In Auth and I can’t login.
Error:
E/AWSKeyValueStore: Error in decrypting data.
javax.crypto.AEADBadTagException
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:517)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2228)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: android.security.KeyStoreException: Signature/MAC verification failed
at android.security.KeyStore.getKeyStoreException(KeyStore.java:678)
at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:373)
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2228)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
E/AWSKeyValueStore: Error in decrypting data.
javax.crypto.AEADBadTagException
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:517)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2230)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: android.security.KeyStoreException: Signature/MAC verification failed
at android.security.KeyStore.getKeyStoreException(KeyStore.java:678)
at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:373)
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2230)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
E/AWSKeyValueStore: Error in decrypting data.
javax.crypto.AEADBadTagException
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:517)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2232)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: android.security.KeyStoreException: Signature/MAC verification failed
at android.security.KeyStore.getKeyStoreException(KeyStore.java:678)
at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:224)
at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(AndroidKeyStoreAuthenticatedAESCipherSpi.java:373)
at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:506)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.decrypt(AWSKeyValueStore.java:347)
at com.amazonaws.internal.keyvaluestore.AWSKeyValueStore.get(AWSKeyValueStore.java:205)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.readCachedTokens(CognitoUser.java:2232)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:939)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
I/AWSKeyValueStore: Detected Android API Level = 24
Using keyAlias = CognitoIdentityProviderDeviceCache.ap-northeast-********.null.aesKeyStoreAlias
I/AWSKeyValueStore: Creating the AWSKeyValueStore with key for sharedPreferences = CognitoIdentityProviderDeviceCache.ap-northeast--********.null
E/CognitoUserPoolsSignInProvider: Failed to login.
com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:955)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: com.amazonaws.services.cognitoidentityprovider.model.InvalidParameterException: Missing required parameter REFRESH_TOKEN (Service: AmazonCognitoIdentityProvider; Status Code: 400; Error Code: InvalidParameterException; Request ID: fdc0e623-54fc-11e9-a5e3-5745901bbdf6)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:730)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:405)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.invoke(AmazonCognitoIdentityProviderClient.java:5953)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.initiateAuth(AmazonCognitoIdentityProviderClient.java:4127)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.refreshSession(CognitoUser.java:2324)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:948)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
I/HwPointEventFilter: do not support AFT because of no config
E/IdentityManager: SignInProviderResultAdapter.onError(): Amazon Cognito Your User Pools provider error. Failed to authenticate user
com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:955)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: com.amazonaws.services.cognitoidentityprovider.model.InvalidParameterException: Missing required parameter REFRESH_TOKEN (Service: AmazonCognitoIdentityProvider; Status Code: 400; Error Code: InvalidParameterException; Request ID: fdc0e623-54fc-11e9-a5e3-5745901bbdf6)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:730)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:405)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.invoke(AmazonCognitoIdentityProviderClient.java:5953)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.initiateAuth(AmazonCognitoIdentityProviderClient.java:4127)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.refreshSession(CognitoUser.java:2324)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:948)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
E/SignInActivity: Sign-in with Amazon Cognito Your User Pools caused an error.
com.amazonaws.mobile.auth.core.signin.ProviderAuthException: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobile.auth.core.IdentityManager$SignInProviderResultAdapter.onError(IdentityManager.java:484)
at com.amazonaws.mobile.auth.userpools.CognitoUserPoolsSignInProvider$4.onFailure(CognitoUserPoolsSignInProvider.java:365)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5$3.run(CognitoUser.java:705)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6595)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:955)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: com.amazonaws.services.cognitoidentityprovider.model.InvalidParameterException: Missing required parameter REFRESH_TOKEN (Service: AmazonCognitoIdentityProvider; Status Code: 400; Error Code: InvalidParameterException; Request ID: fdc0e623-54fc-11e9-a5e3-5745901bbdf6)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:730)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:405)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.invoke(AmazonCognitoIdentityProviderClient.java:5953)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.initiateAuth(AmazonCognitoIdentityProviderClient.java:4127)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.refreshSession(CognitoUser.java:2324)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:948)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
E/DefaultSignInResultHandler: Sign-in with Amazon Cognito Your User Pools failed.
com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
com.amazonaws.mobile.auth.core.signin.ProviderAuthException: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobile.auth.core.IdentityManager$SignInProviderResultAdapter.onError(IdentityManager.java:484)
at com.amazonaws.mobile.auth.userpools.CognitoUserPoolsSignInProvider$4.onFailure(CognitoUserPoolsSignInProvider.java:365)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5$3.run(CognitoUser.java:705)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6595)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: com.amazonaws.mobileconnectors.cognitoidentityprovider.exceptions.CognitoInternalErrorException: Failed to authenticate user
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:955)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Caused by: com.amazonaws.services.cognitoidentityprovider.model.InvalidParameterException: Missing required parameter REFRESH_TOKEN (Service: AmazonCognitoIdentityProvider; Status Code: 400; Error Code: InvalidParameterException; Request ID: fdc0e623-54fc-11e9-a5e3-5745901bbdf6)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:730)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:405)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:212)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.invoke(AmazonCognitoIdentityProviderClient.java:5953)
at com.amazonaws.services.cognitoidentityprovider.AmazonCognitoIdentityProviderClient.initiateAuth(AmazonCognitoIdentityProviderClient.java:4127)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.refreshSession(CognitoUser.java:2324)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser.getCachedSession(CognitoUser.java:948)
at com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUser$5.run(CognitoUser.java:683)
at java.lang.Thread.run(Thread.java:776)
Environment(please complete the following information):
- AppSync SDK Version: 2.7.+
Device Information (please complete the following information):
- Device: Huawei MediaPad M3 Lite 10
- Android Version: 7.0
Additional context When I clear the memory and cache of the App in Application Settings in my device works, but when uninstalling and installing the App, the error comes back.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 17 (3 by maintainers)
@minbi I got it, thanks!
I’m not having this issue anymore, thank you for your patience!
@kvasukib Thank you for your quick response!
I found these exceptions before the error in decrypting data:
About the Android KeyStore in Logcat:
Am I missing some library in my project? That’s weird because a few weeks ago everything was working normally.