Description:
Using Firebase Crashlytics I have a lot of errors about Keystore key generation failed.
Library version:
"capacitor-native-biometric": "^4.2.2"
Platforms:
Devices:
- Redmi 10 2022
- Galaxy A02s
- Galaxy A03 Core
- Galaxy A11
- Galaxy A13
- Galaxy A51
- Galaxy A22
- Galaxy S21 Ultra 5G
- Galaxy Z Flip5
- LG V60 ThinQ
- etc...
Exception:
Fatal Exception: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:783)
at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA()
at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(:8)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by java.security.ProviderException: Keystore key generation failed
at android.security.keystore2.AndroidKeyStoreKeyGeneratorSpi.engineGenerateKey(AndroidKeyStoreKeyGeneratorSpi.java:413)
at javax.crypto.KeyGenerator.generateKey(KeyGenerator.java:612)
at com.epicshaggy.biometric.NativeBiometric.generateKey(NativeBiometric.java:313)
at com.epicshaggy.biometric.NativeBiometric.generateKey(NativeBiometric.java:295)
at com.epicshaggy.biometric.NativeBiometric.getKey(NativeBiometric.java:324)
at com.epicshaggy.biometric.NativeBiometric.encryptString(NativeBiometric.java:265)
at com.epicshaggy.biometric.NativeBiometric.setCredentials(NativeBiometric.java:178)
at java.lang.reflect.Method.invoke(Method.java)
at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138)
at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774)
at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA()
at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(:8)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by android.security.KeyStoreException: System error
at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:334)
at android.security.KeyStoreSecurityLevel.handleExceptions(KeyStoreSecurityLevel.java:57)
at android.security.KeyStoreSecurityLevel.generateKey(KeyStoreSecurityLevel.java:145)
at android.security.keystore2.AndroidKeyStoreKeyGeneratorSpi.engineGenerateKey(AndroidKeyStoreKeyGeneratorSpi.java:400)
at javax.crypto.KeyGenerator.generateKey(KeyGenerator.java:612)
at com.epicshaggy.biometric.NativeBiometric.generateKey(NativeBiometric.java:313)
at com.epicshaggy.biometric.NativeBiometric.generateKey(NativeBiometric.java:295)
at com.epicshaggy.biometric.NativeBiometric.getKey(NativeBiometric.java:324)
at com.epicshaggy.biometric.NativeBiometric.encryptString(NativeBiometric.java:265)
at com.epicshaggy.biometric.NativeBiometric.setCredentials(NativeBiometric.java:178)
at java.lang.reflect.Method.invoke(Method.java)
at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:138)
at com.getcapacitor.Bridge.lambda$callPluginMethod$0(Bridge.java:774)
at com.getcapacitor.Bridge.$r8$lambda$ehFTi5f4HhVNFKTbCKAYDkpQYRA()
at com.getcapacitor.Bridge$$ExternalSyntheticLambda3.run(:8)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.os.HandlerThread.run(HandlerThread.java:67)
Code:
const KEYSTORE_ALIAS = 'my-app-name';
setCredentials(credentials: Credentials): void {
const {username, password} = credentials;
this.deleteCredentials()
.then(() => NativeBiometric.setCredentials({username, password, server: KEYSTORE_ALIAS}));
}
private deleteCredentials(): Promise<void> {
return NativeBiometric.deleteCredentials({server: KEYSTORE_ALIAS});
}
Conclusion:
Any advice or a fix would be appreciated.
Description:
Using Firebase Crashlytics I have a lot of errors about Keystore key generation failed.
Library version:
Platforms:
Devices:
Exception:
Code:
Conclusion:
Any advice or a fix would be appreciated.