Fix fingerprint crypto operations.
This fixes a bug introduced in the HIDL port where fingerprint no
longer notifies keystore of authentications.
Test: keyguard, FingerprintDialog
Fixes bug 34200870
Change-Id: I5227a5f7feb9eee926ea1511001d0303c90dc594
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
index bc85c1c..1f44a1c 100644
--- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
+++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.h
@@ -95,6 +95,11 @@
msg->data.removed.remaining_templates);
break;
case FINGERPRINT_AUTHENTICATED:
+ if (msg->data.authenticated.finger.fid != 0) {
+ const uint8_t* hat =
+ reinterpret_cast<const uint8_t *>(&msg->data.authenticated.hat);
+ notifyKeystore(hat, sizeof(msg->data.authenticated.hat));
+ }
mClientCallback->onAuthenticated(devId,
msg->data.authenticated.finger.fid,
msg->data.authenticated.finger.gid);
@@ -109,6 +114,7 @@
}
private:
Return<RequestStatus> ErrorFilter(int32_t error);
+ static void notifyKeystore(const uint8_t *auth_token, const size_t auth_token_length);
static FingerprintError VendorErrorFilter(int32_t error,
int32_t* vendorCode);
static FingerprintAcquiredInfo VendorAcquiredFilter(int32_t error,