Fix incorrect SID matching for bio prompts
The default value for canUnlockViaBiometrics, which determines if we are able to show a bio prompt, is true. However, if there are 0 biometric authenticator IDs, then it's impossible for the user to satisfy a bio prompt. In this case, we should set canUnlockViaBiometrics to false. The loop that is normally expected to invert canUnlockViaBiometrics was never run in the case of 0 bio authenticator ids, so we mistakenly let the crypto init operation succeed when we should have blocked it. Bug: 188864794 Test: Manual, using sample app that displays a biometric prompt. Change-Id: Ib95b0564aa098157718b8d4a45b11baa69dad71b
This commit is contained in:
@@ -89,7 +89,7 @@ abstract class KeyStoreCryptoOperationUtils {
|
|||||||
// specific sensor (the one that hasn't changed), and 2) currently the only
|
// specific sensor (the one that hasn't changed), and 2) currently the only
|
||||||
// signal to developers is the UserNotAuthenticatedException, which doesn't
|
// signal to developers is the UserNotAuthenticatedException, which doesn't
|
||||||
// indicate a specific sensor.
|
// indicate a specific sensor.
|
||||||
boolean canUnlockViaBiometrics = true;
|
boolean canUnlockViaBiometrics = biometricSids.length > 0;
|
||||||
for (long sid : biometricSids) {
|
for (long sid : biometricSids) {
|
||||||
if (!keySids.contains(sid)) {
|
if (!keySids.contains(sid)) {
|
||||||
canUnlockViaBiometrics = false;
|
canUnlockViaBiometrics = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user