diff --git a/components/service/crypto/provider/mbedcrypto/component.cmake b/components/service/crypto/backend/mbedcrypto/component.cmake
similarity index 77%
rename from components/service/crypto/provider/mbedcrypto/component.cmake
rename to components/service/crypto/backend/mbedcrypto/component.cmake
index 6413cb9..4b531b7 100644
--- a/components/service/crypto/provider/mbedcrypto/component.cmake
+++ b/components/service/crypto/backend/mbedcrypto/component.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -9,13 +9,7 @@
 endif()
 
 target_sources(${TGT} PRIVATE
-	"${CMAKE_CURRENT_LIST_DIR}/crypto_provider.c"
-	"${CMAKE_CURRENT_LIST_DIR}/crypto_context_pool.c"
-	)
-
-target_include_directories(${TGT}
-	 PRIVATE
-		"${CMAKE_CURRENT_LIST_DIR}"
+	"${CMAKE_CURRENT_LIST_DIR}/mbedcrypto_backend.c"
 	)
 
 # Force use of the mbed crypto configuration required by the crypto service
diff --git a/components/service/crypto/provider/mbedcrypto/config_mbedtls_user.h b/components/service/crypto/backend/mbedcrypto/config_mbedtls_user.h
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/config_mbedtls_user.h
rename to components/service/crypto/backend/mbedcrypto/config_mbedtls_user.h
diff --git a/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.c b/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.c
new file mode 100644
index 0000000..d9596bb
--- /dev/null
+++ b/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h>
+#include <service/secure_storage/frontend/psa/its/its_frontend.h>
+#include <psa/crypto.h>
+
+
+psa_status_t mbedcrypto_backend_init(struct storage_backend *storage_backend,
+						int trng_instance_num)
+{
+	psa_status_t status;
+
+	status = trng_adapter_init(trng_instance_num);
+
+	if (status == PSA_SUCCESS)
+		status = psa_its_frontend_init(storage_backend);
+
+	if (status == PSA_SUCCESS)
+		status = psa_crypto_init();
+
+	return status;
+}
+
+void mbedcrypto_backend_deinit(void)
+{
+	trng_adapter_deinit();
+}
diff --git a/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.h b/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.h
new file mode 100644
index 0000000..28bd2e9
--- /dev/null
+++ b/components/service/crypto/backend/mbedcrypto/mbedcrypto_backend.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef MBEDCRYPTO_BACKEND_H
+#define MBEDCRYPTO_BACKEND_H
+
+#include <stdbool.h>
+#include <psa/error.h>
+#include <service/secure_storage/backend/storage_backend.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Initialize the mbedcrypto based backend
+ *
+ * Initializes a crypto backend that uses the mbedcrypto library built by
+ * MbedTLS to realize the PSA crypto API used by the crypto service proviser.
+ *
+ * \param[in] storage_backend   The storage backend to use for persistent keys
+ * \param[in] trng_instance_num  The TRNG hardware instance number to use
+ *
+ * \return PSA_SUCCESS if backend initialized successfully
+ */
+psa_status_t mbedcrypto_backend_init(struct storage_backend *storage_backend,
+						int trng_instance_num);
+
+/**
+ * \brief Clean-up to free any resource used by the backend
+ */
+void mbedcrypto_backend_deinit(void);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* MBEDCRYPTO_BACKEND_H */
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/linux/component.cmake b/components/service/crypto/backend/mbedcrypto/trng_adapter/linux/component.cmake
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/linux/component.cmake
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/linux/component.cmake
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c b/components/service/crypto/backend/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c
similarity index 91%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c
index 15a875a..25aab06 100644
--- a/components/service/crypto/provider/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c
+++ b/components/service/crypto/backend/mbedcrypto/trng_adapter/linux/linux_trng_adapter.c
@@ -5,7 +5,7 @@
  */
 #include <mbedtls/entropy.h>
 #include <mbedtls/entropy_poll.h>
-#include <service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h>
+#include <service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h>
 #include <unistd.h>
 #include <sys/syscall.h>
 #include <errno.h>
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/platform/component.cmake b/components/service/crypto/backend/mbedcrypto/trng_adapter/platform/component.cmake
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/platform/component.cmake
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/platform/component.cmake
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c b/components/service/crypto/backend/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c
similarity index 94%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c
index 9342bcf..f05fe63 100644
--- a/components/service/crypto/provider/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c
+++ b/components/service/crypto/backend/mbedcrypto/trng_adapter/platform/platform_trng_adapter.c
@@ -5,7 +5,7 @@
  */
 #include <mbedtls/entropy.h>
 #include <platform/interface/trng.h>
-#include <service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h>
+#include <service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h>
 #include <config/interface/config_store.h>
 #include <psa/error.h>
 #include <stddef.h>
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/test/component.cmake b/components/service/crypto/backend/mbedcrypto/trng_adapter/test/component.cmake
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/test/component.cmake
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/test/component.cmake
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.c b/components/service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.c
similarity index 96%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.c
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.c
index d297821..2b002d8 100644
--- a/components/service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.c
+++ b/components/service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 #include <service/test_runner/provider/backend/simple_c/simple_c_test_runner.h>
-#include <service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h>
+#include <service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h>
 #include <string.h>
 #include <stddef.h>
 
@@ -80,4 +80,4 @@
     };
 
     simple_c_test_runner_register_group(&trng_env_test_group);
-}
\ No newline at end of file
+}
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.h b/components/service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.h
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.h
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.h
diff --git a/components/service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h b/components/service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h
rename to components/service/crypto/backend/mbedcrypto/trng_adapter/trng_adapter.h
diff --git a/components/service/crypto/client/test/standalone/standalone_crypto_client.cpp b/components/service/crypto/client/test/standalone/standalone_crypto_client.cpp
index 56d20c5..a049c43 100644
--- a/components/service/crypto/client/test/standalone/standalone_crypto_client.cpp
+++ b/components/service/crypto/client/test/standalone/standalone_crypto_client.cpp
@@ -9,6 +9,7 @@
 #include <protocols/service/psa/packed-c/status.h>
 #include <service/crypto/provider/serializer/protobuf/pb_crypto_provider_serializer.h>
 #include <service/crypto/provider/serializer/packed-c/packedc_crypto_provider_serializer.h>
+#include <service/crypto/backend/mbedcrypto/mbedcrypto_backend.h>
 #include <service/secure_storage/backend/secure_flash_store/secure_flash_store.h>
 
 standalone_crypto_client::standalone_crypto_client() :
@@ -55,20 +56,22 @@
                         TS_RPC_CALL_ACCEPTED, PSA_ERROR_STORAGE_FAILURE);
         }
 
-        struct storage_backend *client_storage_backend = secure_storage_client_init(&m_storage_client,
-                                                                        storage_caller);
+        struct rpc_interface *crypto_ep = NULL;
+        struct storage_backend *client_storage_backend =
+            secure_storage_client_init(&m_storage_client, storage_caller);
 
-        struct rpc_interface *crypto_ep = mbed_crypto_provider_init(&m_crypto_provider,
-                                                                client_storage_backend, 0);
+        if (mbedcrypto_backend_init(client_storage_backend, 0) == PSA_SUCCESS) {
 
-        struct rpc_caller *crypto_caller = direct_caller_init_default(&m_crypto_caller, crypto_ep);
+            crypto_ep = crypto_provider_init(&m_crypto_provider);
 
-        mbed_crypto_provider_register_serializer(&m_crypto_provider,
+            crypto_provider_register_serializer(&m_crypto_provider,
                     TS_RPC_ENCODING_PROTOBUF, pb_crypto_provider_serializer_instance());
 
-        mbed_crypto_provider_register_serializer(&m_crypto_provider,
+            crypto_provider_register_serializer(&m_crypto_provider,
                     TS_RPC_ENCODING_PACKED_C, packedc_crypto_provider_serializer_instance());
+        }
 
+        struct rpc_caller *crypto_caller = direct_caller_init_default(&m_crypto_caller, crypto_ep);
         rpc_caller_set_encoding_scheme(crypto_caller, TS_RPC_ENCODING_PROTOBUF);
 
         crypto_client::set_caller(crypto_caller);
@@ -83,7 +86,7 @@
 
     if (should_do) {
 
-        mbed_crypto_provider_deinit(&m_crypto_provider);
+        crypto_provider_deinit(&m_crypto_provider);
         secure_storage_provider_deinit(&m_storage_provider);
         secure_storage_client_deinit(&m_storage_client);
 
diff --git a/components/service/crypto/client/test/standalone/standalone_crypto_client.h b/components/service/crypto/client/test/standalone/standalone_crypto_client.h
index 1093a10..0b68101 100644
--- a/components/service/crypto/client/test/standalone/standalone_crypto_client.h
+++ b/components/service/crypto/client/test/standalone/standalone_crypto_client.h
@@ -10,7 +10,7 @@
 #include <service/crypto/client/test/test_crypto_client.h>
 #include <rpc/direct/direct_caller.h>
 #include <rpc/dummy/dummy_caller.h>
-#include <service/crypto/provider/mbedcrypto/crypto_provider.h>
+#include <service/crypto/provider/crypto_provider.h>
 #include <service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h>
 #include <service/secure_storage/backend/secure_storage_client/secure_storage_client.h>
 
@@ -43,7 +43,7 @@
 private:
     bool is_fault_supported(enum fault_code code) const;
 
-    struct mbed_crypto_provider m_crypto_provider;
+    struct crypto_provider m_crypto_provider;
     struct secure_storage_provider m_storage_provider;
     struct secure_storage_client m_storage_client;
     struct direct_caller m_crypto_caller;
diff --git a/components/service/crypto/provider/component.cmake b/components/service/crypto/provider/component.cmake
new file mode 100644
index 0000000..68f32de
--- /dev/null
+++ b/components/service/crypto/provider/component.cmake
@@ -0,0 +1,14 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+if (NOT DEFINED TGT)
+	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
+endif()
+
+target_sources(${TGT} PRIVATE
+	"${CMAKE_CURRENT_LIST_DIR}/crypto_provider.c"
+	"${CMAKE_CURRENT_LIST_DIR}/crypto_context_pool.c"
+	)
diff --git a/components/service/crypto/provider/mbedcrypto/crypto_context_pool.c b/components/service/crypto/provider/crypto_context_pool.c
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/crypto_context_pool.c
rename to components/service/crypto/provider/crypto_context_pool.c
diff --git a/components/service/crypto/provider/mbedcrypto/crypto_context_pool.h b/components/service/crypto/provider/crypto_context_pool.h
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/crypto_context_pool.h
rename to components/service/crypto/provider/crypto_context_pool.h
diff --git a/components/service/crypto/provider/mbedcrypto/crypto_provider.c b/components/service/crypto/provider/crypto_provider.c
similarity index 92%
rename from components/service/crypto/provider/mbedcrypto/crypto_provider.c
rename to components/service/crypto/provider/crypto_provider.c
index 292c180..3dc2a41 100644
--- a/components/service/crypto/provider/mbedcrypto/crypto_provider.c
+++ b/components/service/crypto/provider/crypto_provider.c
@@ -6,9 +6,7 @@
 #include <stdint.h>
 #include <stdlib.h>
 #include <protocols/service/crypto/packed-c/opcodes.h>
-#include <service/crypto/provider/mbedcrypto/crypto_provider.h>
-#include <service/crypto/provider/mbedcrypto/trng_adapter/trng_adapter.h>
-#include <service/secure_storage/frontend/psa/its/its_frontend.h>
+#include <service/crypto/provider/crypto_provider.h>
 #include <protocols/rpc/common/packed-c/status.h>
 #include <psa/crypto.h>
 
@@ -46,46 +44,26 @@
 	{TS_CRYPTO_OPCODE_HASH_FINISH,          hash_finish_handler}
 };
 
-struct rpc_interface *mbed_crypto_provider_init(struct mbed_crypto_provider *context,
-										struct storage_backend *storage_backend,
-										int trng_instance)
+struct rpc_interface *crypto_provider_init(struct crypto_provider *context)
 {
-	struct rpc_interface *rpc_interface = NULL;
-
 	crypto_context_pool_init(&context->context_pool);
-	trng_adapter_init(trng_instance);
 
-	/*
-	 * A storage provider is required for persistent key storage.  As this
-	 * is a mandatory feature of the crypto service, insist on a storage
-	 * provider being available.
-	 */
-	if (context && storage_backend) {
+	for (size_t encoding = 0; encoding < TS_RPC_ENCODING_LIMIT; ++encoding)
+		context->serializers[encoding] = NULL;
 
-		for (size_t encoding = 0; encoding < TS_RPC_ENCODING_LIMIT; ++encoding)
-			context->serializers[encoding] = NULL;
-
-		service_provider_init(&context->base_provider, context,
+	service_provider_init(&context->base_provider, context,
 					handler_table, sizeof(handler_table)/sizeof(struct service_handler));
 
-		if ((psa_its_frontend_init(storage_backend) == PSA_SUCCESS) &&
-			(psa_crypto_init() == PSA_SUCCESS)) {
-
-			rpc_interface = service_provider_get_rpc_interface(&context->base_provider);
-		}
-	}
-
-	return rpc_interface;
+	return service_provider_get_rpc_interface(&context->base_provider);
 }
 
-void mbed_crypto_provider_deinit(struct mbed_crypto_provider *context)
+void crypto_provider_deinit(struct crypto_provider *context)
 {
-	trng_adapter_deinit();
 	crypto_context_pool_deinit(&context->context_pool);
 }
 
-void mbed_crypto_provider_register_serializer(struct mbed_crypto_provider *context,
-						unsigned int encoding, const struct crypto_provider_serializer *serializer)
+void crypto_provider_register_serializer(struct crypto_provider *context,
+				unsigned int encoding, const struct crypto_provider_serializer *serializer)
 {
 	if (encoding < TS_RPC_ENCODING_LIMIT)
 		context->serializers[encoding] = serializer;
@@ -94,7 +72,7 @@
 static const struct crypto_provider_serializer* get_crypto_serializer(void *context,
 														const struct call_req *req)
 {
-	struct mbed_crypto_provider *this_instance = (struct mbed_crypto_provider*)context;
+	struct crypto_provider *this_instance = (struct crypto_provider*)context;
 	const struct crypto_provider_serializer* serializer = NULL;
 	unsigned int encoding = call_req_get_encoding(req);
 
@@ -593,7 +571,7 @@
 	rpc_status_t rpc_status = TS_RPC_ERROR_SERIALIZATION_NOT_SUPPORTED;
 	struct call_param_buf *req_buf = call_req_get_req_buf(req);
 	const struct crypto_provider_serializer *serializer = get_crypto_serializer(context, req);
-	struct mbed_crypto_provider *this_instance = (struct mbed_crypto_provider*)context;
+	struct crypto_provider *this_instance = (struct crypto_provider*)context;
 
 	psa_algorithm_t alg;
 
@@ -643,7 +621,7 @@
 	rpc_status_t rpc_status = TS_RPC_ERROR_SERIALIZATION_NOT_SUPPORTED;
 	struct call_param_buf *req_buf = call_req_get_req_buf(req);
 	const struct crypto_provider_serializer *serializer = get_crypto_serializer(context, req);
-	struct mbed_crypto_provider *this_instance = (struct mbed_crypto_provider*)context;
+	struct crypto_provider *this_instance = (struct crypto_provider*)context;
 
 	uint32_t op_handle;
 	const uint8_t *data;
@@ -678,7 +656,7 @@
 	rpc_status_t rpc_status = TS_RPC_ERROR_SERIALIZATION_NOT_SUPPORTED;
 	struct call_param_buf *req_buf = call_req_get_req_buf(req);
 	const struct crypto_provider_serializer *serializer = get_crypto_serializer(context, req);
-	struct mbed_crypto_provider *this_instance = (struct mbed_crypto_provider*)context;
+	struct crypto_provider *this_instance = (struct crypto_provider*)context;
 
 	uint32_t op_handle;
 
diff --git a/components/service/crypto/provider/mbedcrypto/crypto_provider.h b/components/service/crypto/provider/crypto_provider.h
similarity index 60%
rename from components/service/crypto/provider/mbedcrypto/crypto_provider.h
rename to components/service/crypto/provider/crypto_provider.h
index 19bc2c2..a45b14c 100644
--- a/components/service/crypto/provider/mbedcrypto/crypto_provider.h
+++ b/components/service/crypto/provider/crypto_provider.h
@@ -4,13 +4,12 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#ifndef MBED_CRYPTO_PROVIDER_H
-#define MBED_CRYPTO_PROVIDER_H
+#ifndef CRYPTO_PROVIDER_H
+#define CRYPTO_PROVIDER_H
 
 #include <rpc/common/endpoint/rpc_interface.h>
 #include <service/common/provider/service_provider.h>
 #include <service/crypto/provider/serializer/crypto_provider_serializer.h>
-#include <service/secure_storage/backend/storage_backend.h>
 #include <protocols/rpc/common/packed-c/encoding.h>
 #include "crypto_context_pool.h"
 
@@ -18,7 +17,7 @@
 extern "C" {
 #endif
 
-struct mbed_crypto_provider
+struct crypto_provider
 {
     struct service_provider base_provider;
     struct crypto_context_pool context_pool;
@@ -26,20 +25,17 @@
 };
 
 /*
- * Initializes an instance of the crypto service provider that uses the
- * Mbed Crypto library to implement crypto operations.  Secure storage
- * for persistent keys needs to be provided by a suitable storage
- * backend.
+ * Initializes an instance of the crypto service provider.  A suitable
+ * backend that realizes the PSA Crypto API should have been initialized
+ * prior to initializing the crypto provider.
  */
-struct rpc_interface *mbed_crypto_provider_init(struct mbed_crypto_provider *context,
-                                        struct storage_backend *storage_backend,
-                                        int trng_instance);
+struct rpc_interface *crypto_provider_init(struct crypto_provider *context);
 
 /*
  * When operation of the provider is no longer required, this function
  * frees any resource used by the previously initialized provider instance.
  */
-void mbed_crypto_provider_deinit(struct mbed_crypto_provider *context);
+void crypto_provider_deinit(struct crypto_provider *context);
 
 /*
  * Register a serializer for supportng a particular parameter encoding.  At
@@ -47,11 +43,11 @@
  * to allow alternative parameter serialization schemes to be used to allow
  * for compatibility with different types of client.
  */
-void mbed_crypto_provider_register_serializer(struct mbed_crypto_provider *context,
+void crypto_provider_register_serializer(struct crypto_provider *context,
                     unsigned int encoding, const struct crypto_provider_serializer *serializer);
 
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
 
-#endif /* MBED_CRYPTO_PROVIDER_H */
+#endif /* CRYPTO_PROVIDER_H */
diff --git a/components/service/crypto/provider/mbedcrypto/test/component.cmake b/components/service/crypto/provider/test/component.cmake
similarity index 100%
rename from components/service/crypto/provider/mbedcrypto/test/component.cmake
rename to components/service/crypto/provider/test/component.cmake
diff --git a/components/service/crypto/provider/mbedcrypto/test/crypto_context_pool_tests.cpp b/components/service/crypto/provider/test/crypto_context_pool_tests.cpp
similarity index 97%
rename from components/service/crypto/provider/mbedcrypto/test/crypto_context_pool_tests.cpp
rename to components/service/crypto/provider/test/crypto_context_pool_tests.cpp
index 1b6a12e..de5c612 100644
--- a/components/service/crypto/provider/mbedcrypto/test/crypto_context_pool_tests.cpp
+++ b/components/service/crypto/provider/test/crypto_context_pool_tests.cpp
@@ -5,7 +5,7 @@
  */
 
 #include <stdlib.h>
-#include <service/crypto/provider/mbedcrypto/crypto_context_pool.h>
+#include <service/crypto/provider/crypto_context_pool.h>
 #include <CppUTest/TestHarness.h>
 
 /*
diff --git a/components/service/locator/standalone/services/crypto/crypto_service_context.cpp b/components/service/locator/standalone/services/crypto/crypto_service_context.cpp
index 2679ee3..f245919 100644
--- a/components/service/locator/standalone/services/crypto/crypto_service_context.cpp
+++ b/components/service/locator/standalone/services/crypto/crypto_service_context.cpp
@@ -7,6 +7,7 @@
 #include "crypto_service_context.h"
 #include <service/crypto/provider/serializer/protobuf/pb_crypto_provider_serializer.h>
 #include <service/crypto/provider/serializer/packed-c/packedc_crypto_provider_serializer.h>
+#include <service/crypto/backend/mbedcrypto/mbedcrypto_backend.h>
 
 crypto_service_context::crypto_service_context(const char *sn) :
     standalone_service_context(sn),
@@ -31,12 +32,17 @@
     struct rpc_caller *storage_caller = NULL;
     int status;
 
-    /* Locate and open RPC session with internal-trusted-storage service to provide a persistent keystore */
-    m_storage_service_context = service_locator_query("sn:trustedfirmware.org:internal-trusted-storage:0", &status);
+    /* Locate and open RPC session with internal-trusted-storage service to
+     * provide a persistent keystore
+     */
+    m_storage_service_context =
+        service_locator_query("sn:trustedfirmware.org:internal-trusted-storage:0", &status);
 
     if (m_storage_service_context) {
 
-        m_storage_session_handle = service_context_open(m_storage_service_context, TS_RPC_ENCODING_PACKED_C, &storage_caller);
+        m_storage_session_handle =
+            service_context_open(m_storage_service_context,
+                TS_RPC_ENCODING_PACKED_C, &storage_caller);
 
         if (m_storage_session_handle) {
 
@@ -46,18 +52,25 @@
 
     if (!storage_backend) {
 
-        /* Something has gone wrong with establishing a session with the storage service endpoint */
+        /* Something has gone wrong with establishing a session with the
+         * storage service endpoint
+         */
         storage_backend = null_storage_backend;
     }
 
-    /* Initialse the crypto service provider */
-    struct rpc_interface *crypto_ep = mbed_crypto_provider_init(&m_crypto_provider, storage_backend, 0);
+    /* Initialise the crypto service provider */
+    struct rpc_interface *crypto_ep = NULL;
 
-    mbed_crypto_provider_register_serializer(&m_crypto_provider,
-                    TS_RPC_ENCODING_PROTOBUF, pb_crypto_provider_serializer_instance());
+    if (mbedcrypto_backend_init(storage_backend, 0) == PSA_SUCCESS) {
 
-    mbed_crypto_provider_register_serializer(&m_crypto_provider,
-                    TS_RPC_ENCODING_PACKED_C, packedc_crypto_provider_serializer_instance());
+        crypto_ep = crypto_provider_init(&m_crypto_provider);
+
+        crypto_provider_register_serializer(&m_crypto_provider,
+                        TS_RPC_ENCODING_PROTOBUF, pb_crypto_provider_serializer_instance());
+
+        crypto_provider_register_serializer(&m_crypto_provider,
+                        TS_RPC_ENCODING_PACKED_C, packedc_crypto_provider_serializer_instance());
+    }
 
     standalone_service_context::set_rpc_interface(crypto_ep);
 }
@@ -74,7 +87,7 @@
         m_storage_service_context = NULL;
     }
 
-    mbed_crypto_provider_deinit(&m_crypto_provider);
+    crypto_provider_deinit(&m_crypto_provider);
     secure_storage_client_deinit(&m_storage_client);
     null_store_deinit(&m_null_store);
 }
diff --git a/components/service/locator/standalone/services/crypto/crypto_service_context.h b/components/service/locator/standalone/services/crypto/crypto_service_context.h
index 8d815b5..1b842aa 100644
--- a/components/service/locator/standalone/services/crypto/crypto_service_context.h
+++ b/components/service/locator/standalone/services/crypto/crypto_service_context.h
@@ -9,7 +9,7 @@
 
 #include <service/locator/standalone/standalone_service_context.h>
 #include <rpc/direct/direct_caller.h>
-#include <service/crypto/provider/mbedcrypto/crypto_provider.h>
+#include <service/crypto/provider/crypto_provider.h>
 #include <service/secure_storage/backend/secure_storage_client/secure_storage_client.h>
 #include <service/secure_storage/backend/null_store/null_store.h>
 
@@ -24,7 +24,7 @@
     void do_init();
     void do_deinit();
 
-    struct mbed_crypto_provider m_crypto_provider;
+    struct crypto_provider m_crypto_provider;
     struct secure_storage_client m_storage_client;
     struct null_store m_null_store;
     struct service_context *m_storage_service_context;
