java 指纹验证失败_触摸三星手机上的指纹后出错:android.security.KeyStoreException:未经过身份验证的密钥用户...

我刚刚在三星看到这个错误,并且似乎是在添加新指纹时引起的 . 在我们的代码中,我们期望在signature.initSign()期间抛出KeyPermenantlyInvalidatedException . 这不会发生,并且初始化的签名在CryptoObject内成功传递到FingerprintManager . 然后成功验证指纹并调用onAuthenticationSucceeded . 尝试调用signature.update(byte [] bytes)时发生错误 .

我认为预期的行为实际上是抛出KeyInvalidatedException,但我不确定我们是否可以期望这个被解决 . 我的解决方案是在onAuthenticationSucceeded方面捕获它 .

@Override

public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {

Log.d(LOG_TAG, "Device Authentication Succeeded");

try {

Signature signature = result.getCryptoObject().getSignature();

String authData = getAuthData();

signature.update(authData.getBytes());

// do something with signature

} catch (SignatureException e) {

Log.d(LOG_TAG, e.getMessage());

if(e.getMessage() != null && e.getMessage().contains("Key user not authenticated")) {

// handle as if were KeyPermanentlyInvalidatedException

} else {

Log.d(LOG_TAG, e.getMessage());

// handle as regular error

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值