Refactor Secure storage into frontend/backend

The secure storage service components are refactored as storage
frontends and backends.  Any frontend can be paired with any
backend.  Each backend implements a common interface.  This
allows new storage frontends and backends to be added more
easily and allows configurations such as proxies to be
created by simply pairing a service provider (frontend) with
a service client (backend).

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I5ef569ff3b61f64d6de69276d2b33e67a7ab0fa6
diff --git a/deployments/sfs-demo/opteesp/sp.c b/deployments/sfs-demo/opteesp/sp.c
index 5bda8e9..1d8fe87 100644
--- a/deployments/sfs-demo/opteesp/sp.c
+++ b/deployments/sfs-demo/opteesp/sp.c
@@ -7,7 +7,8 @@
 #include "sp.h"
 #include <ffa_api.h>
 #include <components/rpc/ffarpc/caller/sp/ffarpc_caller.h>
-#include <components/service/secure_storage/client/psa/its/its_client.h>
+#include <components/service/secure_storage/frontend/psa/its/its_frontend.h>
+#include <service/secure_storage/backend/secure_storage_client/secure_storage_client.h>
 #include <psa/internal_trusted_storage.h>
 #include <sp_api.h>
 #include <sp_rxtx.h>
@@ -133,6 +134,8 @@
 	struct ffa_direct_msg req_msg;
 	struct rpc_caller *caller;
 	struct ffarpc_caller ffa_caller;
+	struct secure_storage_client secure_storage_client;
+	struct storage_backend *storage_backend;
 	uint16_t sp_ids[3];
 	uint32_t sp_id_cnt = 0;
 
@@ -164,7 +167,8 @@
 		goto err;
 	}
 
-	psa_its_client_init(caller);
+	storage_backend = secure_storage_client_init(&secure_storage_client, caller);
+	psa_its_frontend_init(storage_backend);
 
 	/*
 	 * This is not thorough testing of the ITS SP!