Add DeleteUser/DeleteAllUsers to gatekeeper

Not actually implemented yet, but will respond to calls.

Also add "-Werror -Wunused-parameter" to rules.mk, since that's
what's used by presubmit build checks.

Bug: 160731903
Test: "atest VtsHalGatekeeperV1_0TargetTest"
      manual testing with added instrumentation

Change-Id: I3c9c4d3a2d07f4b018cd7b03691b92a777dd9f0d
diff --git a/gatekeeper.cpp b/gatekeeper.cpp
index 9d77947..436ae81 100644
--- a/gatekeeper.cpp
+++ b/gatekeeper.cpp
@@ -163,6 +163,15 @@
     }
 }
 
+void GateKeeper::DeleteUser(const DeleteUserRequest &/*request*/, DeleteUserResponse *response) {
+    response->error = ERROR_NOT_IMPLEMENTED;
+}
+
+void GateKeeper::DeleteAllUsers(const DeleteAllUsersRequest &/*request*/,
+        DeleteAllUsersResponse *response) {
+    response->error = ERROR_NOT_IMPLEMENTED;
+}
+
 bool GateKeeper::CreatePasswordHandle(SizedBuffer *password_handle_buffer, salt_t salt,
         secure_id_t user_id, uint64_t flags, uint8_t handle_version, const SizedBuffer & password) {
     if (password_handle_buffer == nullptr) return false;
diff --git a/gatekeeper_messages.cpp b/gatekeeper_messages.cpp
index 3450d2b..01f2f8c 100644
--- a/gatekeeper_messages.cpp
+++ b/gatekeeper_messages.cpp
@@ -280,5 +280,8 @@
     return read_from_buffer(&payload, end, &enrolled_password_handle);
 }
 
+DeleteUserRequest::DeleteUserRequest(uint32_t user_id) {
+    this->user_id = user_id;
+}
 };
 
diff --git a/include/gatekeeper/gatekeeper.h b/include/gatekeeper/gatekeeper.h
index 27d4f32..9f70d6f 100644
--- a/include/gatekeeper/gatekeeper.h
+++ b/include/gatekeeper/gatekeeper.h
@@ -44,6 +44,8 @@
 
     void Enroll(const EnrollRequest &request, EnrollResponse *response);
     void Verify(const VerifyRequest &request, VerifyResponse *response);
+    void DeleteUser(const DeleteUserRequest &request, DeleteUserResponse *response);
+    void DeleteAllUsers(const DeleteAllUsersRequest &request, DeleteAllUsersResponse *response);
 
 protected:
 
diff --git a/include/gatekeeper/gatekeeper_messages.h b/include/gatekeeper/gatekeeper_messages.h
index 82fdbcd..ec33f18 100644
--- a/include/gatekeeper/gatekeeper_messages.h
+++ b/include/gatekeeper/gatekeeper_messages.h
@@ -36,6 +36,7 @@
     ERROR_RETRY = 2,
     ERROR_UNKNOWN = 3,
     ERROR_MEMORY_ALLOCATION_FAILED = 4,
+    ERROR_NOT_IMPLEMENTED = 5,
 } gatekeeper_error_t;
 
 struct SizedBuffer {
@@ -231,6 +232,45 @@
 
    SizedBuffer enrolled_password_handle;
 };
+
+struct DeleteUserRequest : public GateKeeperMessage {
+    DeleteUserRequest(uint32_t user_id);
+    DeleteUserRequest() = default;
+
+    uint32_t nonErrorSerializedSize() const override { return 0; }
+    void nonErrorSerialize(uint8_t * /*buffer*/) const override {}
+    gatekeeper_error_t nonErrorDeserialize(
+            const uint8_t * /*payload*/, const uint8_t * /*end*/) override { return ERROR_NONE; }
+};
+
+struct DeleteUserResponse : public GateKeeperMessage {
+    DeleteUserResponse() {}
+
+    uint32_t nonErrorSerializedSize() const override { return 0; }
+    void nonErrorSerialize(uint8_t * /*buffer*/) const override {}
+    gatekeeper_error_t nonErrorDeserialize(
+            const uint8_t * /*payload*/, const uint8_t * /*end*/) override { return ERROR_NONE; }
+};
+
+
+struct DeleteAllUsersRequest : public GateKeeperMessage {
+    DeleteAllUsersRequest() {};
+
+    uint32_t nonErrorSerializedSize() const override { return 0; }
+    void nonErrorSerialize(uint8_t * /*buffer*/) const override {}
+    gatekeeper_error_t nonErrorDeserialize(
+            const uint8_t * /*payload*/, const uint8_t * /*end*/) override { return ERROR_NONE; }
+};
+
+struct DeleteAllUsersResponse : public GateKeeperMessage {
+    DeleteAllUsersResponse() {}
+
+    uint32_t nonErrorSerializedSize() const override { return 0; }
+    void nonErrorSerialize(uint8_t * /*buffer*/) const override {}
+    gatekeeper_error_t nonErrorDeserialize(
+            const uint8_t * /*payload*/, const uint8_t * /*end*/) override { return ERROR_NONE; }
+};
+
 }
 
 #endif // GATEKEEPER_MESSAGES_H_
diff --git a/rules.mk b/rules.mk
index 831c05a..3fff17c 100644
--- a/rules.mk
+++ b/rules.mk
@@ -8,7 +8,7 @@
 
 GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
 
-MODULE_CPPFLAGS := -std=c++11
+MODULE_CPPFLAGS := -std=c++11 -Werror -Wunused-parameter
 
 MODULE_INCLUDES := \
 	$(LOCAL_DIR)/../../hardware/libhardware/include