在三星手机上触摸指纹后发生错误:android.security.KeyStoreException:密钥用户未通过身份验证

香菜

我的应用程序使用Android 6.0指纹API保护Android KeyStore中的AES密钥。由于使用KeyGenParameterSpec初始化了,因此只有在通过指纹传感器验证用户身份后才能使用存储的密钥setUserAuthenticationRequired(true)

当用户触摸传感器时,我从回调中获取了初始化的密码,并将onAuthenticationSucceeded(Cipher)其用于解密。

除了在装有Android 6的三星手机上,此功能非常有效。当我尝试使用返回的密码时,三星手机有时会抛出android.security.KeyStoreException: Key user not authenticated因此,即使onAuthenticationSucceeded(Cipher)Android KeyStore返回了密码,也认为用户未通过指纹传感器进行身份验证。

似乎当应用长时间不使用时,崩溃就会发生。当应用程序被蠕虫感染时,所有程序通常都能正常工作。

由于此错误是随机发生的,并且仅在Samsung手机上出现,因此似乎是由Android 6.0 KeyStore和FingerPrint API的Samsung实现内部的一些内部计时问题引起的。

编辑:在OnePlus和Acer手机中也遇到了此问题。

香菜

由于我不希望上述制造商能很快解决此问题,因此我将其设置KeyGenParameterSpec.setUserAuthenticationRequired(false)为三星,OnePlus,华硕和其他一些设备来解决。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章