android / android/security-samples

BiometricLoginKotlin: crash at Emulator API33

Aperta
#86 2 commenti 5 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Kotlin
Stelle
1k
Fork
450
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I've tried to run the app on Emulator API 33, it crash as below (but it is working on API 32 and below):

2022-09-01 17:46:41.132 21363-21363/com.example.biometricloginsample E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.biometricloginsample, PID: 21363
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:558)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.reflect.InvocationTargetException
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:936) 
Caused by: javax.crypto.IllegalBlockSizeException
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:613)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
at com.example.biometricloginsample.CryptographyManagerImpl.encryptData(CryptographyManager.kt:98)
at com.example.biometricloginsample.EnableBiometricLoginActivity.encryptAndStoreServerToken(EnableBiometricLoginActivity.kt:101)
at com.example.biometricloginsample.EnableBiometricLoginActivity.access$encryptAndStoreServerToken(EnableBiometricLoginActivity.kt:30)
at com.example.biometricloginsample.EnableBiometricLoginActivity$showBiometricPromptForEncryption$biometricPrompt$1.invoke(EnableBiometricLoginActivity.kt:91)
at com.example.biometricloginsample.EnableBiometricLoginActivity$showBiometricPromptForEncryption$biometricPrompt$1.invoke(EnableBiometricLoginActivity.kt:30)
at com.example.biometricloginsample.BiometricPromptUtils$createBiometricPrompt$callback$1.onAuthenticationSucceeded(BiometricPromptUtils.kt:48)
at androidx.biometric.BiometricFragment$2$2.run(BiometricFragment.java:140)
at android.os.Handler.handleCallback(Handler.java:942)
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:7898)
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:936) 
Caused by: android.security.KeyStoreException: Key user not authenticated (internal Keystore code: -26 message: In KeystoreOperation::update

Caused by:
0: In update: KeyMint::update failed.
1: Error::Km(ErrorCode(-26))) (public error code: 2 internal Keystore code: -26)
at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:369)
at android.security.KeyStoreOperation.handleExceptions(KeyStoreOperation.java:78)
at android.security.KeyStoreOperation.update(KeyStoreOperation.java:115)
at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer$MainDataStream.update(KeyStoreCryptoOperationChunkedStreamer.java:222)
at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer.update(KeyStoreCryptoOperationChunkedStreamer.java:156)
at android.security.keystore2.KeyStoreCryptoOperationChunkedStreamer.doFinal(KeyStoreCryptoOperationChunkedStreamer.java:179)
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineDoFinal(AndroidKeyStoreCipherSpiBase.java:603)
... 16 more

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Riproduci il crash su Emulator API 33 e inizia da CryptographyManager.kt alla riga 98, quindi traccia la chiamata da EnableBiometricLoginActivity.kt alla riga 101. Confronta il flusso di crittografia biometrica con API 32 e precedenti; il lavoro è completato quando l’esempio non va più in crash su API 33, mantenendo il comportamento funzionante sulle API precedenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, kotlin
Ambito
authentication, mobile-dev, security
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.