diff --git a/include/hardware/fingerprint.h b/include/hardware/fingerprint.h
index 68687b2..552b5d7 100644
--- a/include/hardware/fingerprint.h
+++ b/include/hardware/fingerprint.h
@@ -157,6 +157,16 @@
     uint64_t (*pre_enroll)(struct fingerprint_device *dev);
 
     /*
+     * get_authenticator_id:
+     * Returns a token associated with the current fingerprint set. This value will
+     * change whenever a new fingerprint is enrolled, thus creating a new fingerprint
+     * set.
+     *
+     * Function return: current authenticator id.
+     */
+    uint64_t (*get_authenticator_id)(struct fingerprint_device *dev);
+
+    /*
      * Cancel pending enroll or authenticate, sending FINGERPRINT_ERROR_CANCELED
      * to all running clients. Switches the HAL state machine back to the idle state.
      * will indicate switch back to the scan mode.
@@ -214,9 +224,6 @@
      * Do not set by hand, use the function above instead.
      */
     fingerprint_notify_t notify;
-
-    /* Reserved for future use. Must be NULL. */
-    void* reserved[8 - 4];
 } fingerprint_device_t;
 
 typedef struct fingerprint_module {
diff --git a/modules/fingerprint/fingerprint.c b/modules/fingerprint/fingerprint.c
index ac7e35b..33ede62 100644
--- a/modules/fingerprint/fingerprint.c
+++ b/modules/fingerprint/fingerprint.c
@@ -32,6 +32,11 @@
     }
 }
 
+
+static uint64_t fingerprint_pre_enroll(struct fingerprint_device __unused *dev) {
+    return FINGERPRINT_ERROR;
+}
+
 static int fingerprint_enroll(struct fingerprint_device __unused *dev,
                                 const hw_auth_token_t __unused *hat,
                                 uint32_t __unused gid,
@@ -39,6 +44,10 @@
     return FINGERPRINT_ERROR;
 }
 
+static uint64_t fingerprint_get_auth_id(struct fingerprint_device __unused *dev) {
+    return FINGERPRINT_ERROR;
+}
+
 static int fingerprint_cancel(struct fingerprint_device __unused *dev) {
     return FINGERPRINT_ERROR;
 }
@@ -81,7 +90,9 @@
     dev->common.module = (struct hw_module_t*) module;
     dev->common.close = fingerprint_close;
 
+    dev->pre_enroll = fingerprint_pre_enroll;
     dev->enroll = fingerprint_enroll;
+    dev->get_authenticator_id = fingerprint_get_auth_id;
     dev->cancel = fingerprint_cancel;
     dev->remove = fingerprint_remove;
     dev->set_active_group = fingerprint_set_active_group;
diff --git a/tests/fingerprint/fingerprint_tests.cpp b/tests/fingerprint/fingerprint_tests.cpp
index db7429c..dbb248f 100644
--- a/tests/fingerprint/fingerprint_tests.cpp
+++ b/tests/fingerprint/fingerprint_tests.cpp
@@ -29,6 +29,11 @@
         << "pre_enroll() function is not implemented";
 }
 
+TEST_F(FingerprintDevice, isThereGetAuthenticatorId) {
+    ASSERT_TRUE(NULL != fp_device()->get_authenticator_id)
+        << "get_authenticator_id() function is not implemented";
+}
+
 TEST_F(FingerprintDevice, isThereCancel) {
     ASSERT_TRUE(NULL != fp_device()->cancel)
         << "cancel() function is not implemented";
