platform: msm_shared: Add delete keys command support

When userdata partition is wiped out or flashed it is necessary
to send a delete keys command to tz.

Change-Id: Ia346fb11246ec020993e01dae09ba7476e3da0b7
diff --git a/include/km_main.h b/include/km_main.h
index 6df90d8..42920d1 100644
--- a/include/km_main.h
+++ b/include/km_main.h
@@ -140,4 +140,27 @@
 	int status;
 }__attribute__ ((packed)) km_set_milestone_rsp_t;
 
+/*
+ * Structures for delete_all cmd
+ */
+/*
+  @brief
+  Data structure
+
+  @param[in]  cmd_id              Requested command
+*/
+typedef struct _key_op_delete_all_req_t {
+	uint32 cmd_id;
+}__attribute__ ((packed)) key_op_delete_all_req_t;
+
+/*
+  @brief
+  Data structure
+
+  @param[out]   status             Status of the request
+*/
+typedef struct _key_op_delete_all_rsp_t {
+	int status;
+}__attribute__ ((packed)) key_op_delete_all_rsp_t;
+
 #endif /* KM_MAIN_H */
diff --git a/platform/msm_shared/include/secapp_loader.h b/platform/msm_shared/include/secapp_loader.h
index b92832f..0949562 100644
--- a/platform/msm_shared/include/secapp_loader.h
+++ b/platform/msm_shared/include/secapp_loader.h
@@ -58,5 +58,6 @@
 int load_sec_app();
 int get_secapp_handle();
 int send_milestone_call_to_tz();
+int send_delete_keys_to_tz();
 
 #endif /* SAL_MAIN_H */
diff --git a/platform/msm_shared/secapp_loader.c b/platform/msm_shared/secapp_loader.c
index 5538672..ad9cffd 100644
--- a/platform/msm_shared/secapp_loader.c
+++ b/platform/msm_shared/secapp_loader.c
@@ -55,6 +55,25 @@
 	return app_handle;
 }
 
+int send_delete_keys_to_tz()
+{
+	int ret = 0;
+	key_op_delete_all_req_t req = {0};
+	key_op_delete_all_rsp_t rsp = {0};
+	req.cmd_id = KEYMASTER_DELETE_ALL_KEYS;
+
+	// send delete all keys command
+	ret = qseecom_send_command(app_handle, (void *)&req, sizeof(req), (void *)&rsp, sizeof(rsp));
+
+	if (ret < 0 || rsp.status < 0)
+	{
+		dprintf(CRITICAL, "Failed to send delete keys command: Error: %x\n", rsp.status);
+		return -1;
+	}
+
+	return 0;
+}
+
 int send_milestone_call_to_tz()
 {
 	int ret = 0;