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,