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;
diff --git a/deployments/component-test/arm-linux/CMakeLists.txt b/deployments/component-test/arm-linux/CMakeLists.txt
index a3609d8..b145719 100644
--- a/deployments/component-test/arm-linux/CMakeLists.txt
+++ b/deployments/component-test/arm-linux/CMakeLists.txt
@@ -36,7 +36,7 @@
 	TARGET "component-test"
 	BASE_DIR ${TS_ROOT}
     COMPONENTS
-        "components/service/crypto/provider/mbedcrypto/trng_adapter/linux"
+        "components/service/crypto/backend/mbedcrypto/trng_adapter/linux"
 )
 
 #-------------------------------------------------------------------------------
diff --git a/deployments/component-test/component-test.cmake b/deployments/component-test/component-test.cmake
index 974e4e2..9b6dcf8 100644
--- a/deployments/component-test/component-test.cmake
+++ b/deployments/component-test/component-test.cmake
@@ -65,10 +65,11 @@
 		"components/service/crypto/client/cpp/packed-c"
 		"components/service/crypto/client/test"
 		"components/service/crypto/client/test/standalone"
-		"components/service/crypto/provider/mbedcrypto"
+		"components/service/crypto/provider"
 		"components/service/crypto/provider/serializer/protobuf"
 		"components/service/crypto/provider/serializer/packed-c"
-		"components/service/crypto/provider/mbedcrypto/test"
+		"components/service/crypto/provider/test"
+		"components/service/crypto/backend/mbedcrypto"
 		"components/service/crypto/test/unit"
 		"components/service/crypto/test/service"
 		"components/service/crypto/test/service/protobuf"
diff --git a/deployments/component-test/linux-pc/CMakeLists.txt b/deployments/component-test/linux-pc/CMakeLists.txt
index 2f0e19a..c2514a8 100644
--- a/deployments/component-test/linux-pc/CMakeLists.txt
+++ b/deployments/component-test/linux-pc/CMakeLists.txt
@@ -71,7 +71,7 @@
 	TARGET "component-test"
 	BASE_DIR ${TS_ROOT}
     COMPONENTS
-        "components/service/crypto/provider/mbedcrypto/trng_adapter/linux"
+        "components/service/crypto/backend/mbedcrypto/trng_adapter/linux"
 )
 
 #-------------------------------------------------------------------------------
diff --git a/deployments/crypto/opteesp/CMakeLists.txt b/deployments/crypto/opteesp/CMakeLists.txt
index 8a857b8..ee2c3dc 100644
--- a/deployments/crypto/opteesp/CMakeLists.txt
+++ b/deployments/crypto/opteesp/CMakeLists.txt
@@ -45,10 +45,11 @@
 		"components/service/common/include"
 		"components/service/common/serializer/protobuf"
 		"components/service/common/provider"
-		"components/service/crypto/provider/mbedcrypto"
-		"components/service/crypto/provider/mbedcrypto/trng_adapter/platform"
+		"components/service/crypto/provider"
 		"components/service/crypto/provider/serializer/protobuf"
 		"components/service/crypto/provider/serializer/packed-c"
+		"components/service/crypto/backend/mbedcrypto"
+		"components/service/crypto/backend/mbedcrypto/trng_adapter/platform"
 		"components/service/secure_storage/include"
 		"components/service/secure_storage/frontend/psa/its"
 		"components/service/secure_storage/backend/secure_storage_client"
diff --git a/deployments/crypto/opteesp/crypto_sp.c b/deployments/crypto/opteesp/crypto_sp.c
index f3679d1..bca971b 100644
--- a/deployments/crypto/opteesp/crypto_sp.c
+++ b/deployments/crypto/opteesp/crypto_sp.c
@@ -6,9 +6,10 @@
 
 #include <rpc/ffarpc/endpoint/ffarpc_call_ep.h>
 #include <service/secure_storage/factory/storage_factory.h>
-#include <service/crypto/provider/mbedcrypto/crypto_provider.h>
+#include <service/crypto/provider/crypto_provider.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 <protocols/rpc/common/packed-c/status.h>
 #include <config/ramstore/config_ramstore.h>
 #include <config/loader/sp/sp_config_loader.h>
@@ -26,7 +27,7 @@
 
 void __noreturn sp_main(struct ffa_init_info *init_info)
 {
-	struct mbed_crypto_provider crypto_provider;
+	struct crypto_provider crypto_provider;
 	struct ffa_call_ep ffarpc_call_ep;
 	struct rpc_interface *crypto_iface;
 	struct sp_msg req_msg = { 0 };
@@ -44,13 +45,18 @@
 	if (!storage_backend) goto fatal_error;
 
 	/* Initialize the crypto service */
-	crypto_iface = mbed_crypto_provider_init(&crypto_provider, storage_backend, 0);
+	crypto_iface = NULL;
 
-	mbed_crypto_provider_register_serializer(&crypto_provider,
+    if (mbedcrypto_backend_init(storage_backend, 0) == PSA_SUCCESS) {
+
+        crypto_iface = crypto_provider_init(&crypto_provider);
+
+		crypto_provider_register_serializer(&crypto_provider,
                     TS_RPC_ENCODING_PROTOBUF, pb_crypto_provider_serializer_instance());
 
-	mbed_crypto_provider_register_serializer(&crypto_provider,
+		crypto_provider_register_serializer(&crypto_provider,
                     TS_RPC_ENCODING_PACKED_C, packedc_crypto_provider_serializer_instance());
+	}
 
 	ffa_call_ep_init(&ffarpc_call_ep, crypto_iface);
 
diff --git a/deployments/env-test/env_test.cmake b/deployments/env-test/env_test.cmake
index ee46eba..a983b60 100644
--- a/deployments/env-test/env_test.cmake
+++ b/deployments/env-test/env_test.cmake
@@ -29,9 +29,9 @@
 	"components/service/test_runner/provider/serializer/packed-c"
 	"components/service/test_runner/provider/backend/null"
 	"components/service/test_runner/provider/backend/simple_c"
-	"components/service/crypto/provider/mbedcrypto"
-	"components/service/crypto/provider/mbedcrypto/trng_adapter/platform"
-	"components/service/crypto/provider/mbedcrypto/trng_adapter/test"
+	"components/service/crypto/backend/mbedcrypto"
+	"components/service/crypto/backend/mbedcrypto/trng_adapter/platform"
+	"components/service/crypto/backend/mbedcrypto/trng_adapter/test"
 	"components/service/secure_storage/include"
 	"components/service/secure_storage/frontend/psa/its"
 	"components/service/secure_storage/backend/secure_storage_client"
diff --git a/deployments/env-test/opteesp/env_test_tests.c b/deployments/env-test/opteesp/env_test_tests.c
index beb9cbf..11c1f42 100644
--- a/deployments/env-test/opteesp/env_test_tests.c
+++ b/deployments/env-test/opteesp/env_test_tests.c
@@ -5,7 +5,7 @@
 
 #include <service/test_runner/provider/backend/simple_c/simple_c_test_runner.h>
 #include <config/test/sp/sp_config_tests.h>
-#include <service/crypto/provider/mbedcrypto/trng_adapter/test/trng_env_tests.h>
+#include <service/crypto/backend/mbedcrypto/trng_adapter/test/trng_env_tests.h>
 
 void env_test_register_tests(struct test_runner_provider *context)
 {
@@ -13,4 +13,4 @@
 
 	sp_config_tests_register();
 	trng_env_tests_register();
-}
\ No newline at end of file
+}
diff --git a/deployments/libts/linux-pc/CMakeLists.txt b/deployments/libts/linux-pc/CMakeLists.txt
index 779e2d6..3f0bbcf 100644
--- a/deployments/libts/linux-pc/CMakeLists.txt
+++ b/deployments/libts/linux-pc/CMakeLists.txt
@@ -53,10 +53,11 @@
 		"components/service/attestation/key_mngr"
 		"components/service/attestation/provider"
 		"components/service/attestation/provider/serializer/packed-c"
-		"components/service/crypto/provider/mbedcrypto"
-		"components/service/crypto/provider/mbedcrypto/trng_adapter/linux"
+		"components/service/crypto/provider"
 		"components/service/crypto/provider/serializer/protobuf"
 		"components/service/crypto/provider/serializer/packed-c"
+		"components/service/crypto/backend/mbedcrypto"
+		"components/service/crypto/backend/mbedcrypto/trng_adapter/linux"
 		"components/service/secure_storage/include"
 		"components/service/secure_storage/frontend/psa/its"
 		"components/service/secure_storage/frontend/secure_storage_provider"
diff --git a/deployments/se-proxy/opteesp/CMakeLists.txt b/deployments/se-proxy/opteesp/CMakeLists.txt
index b071b7a..4ab8906 100644
--- a/deployments/se-proxy/opteesp/CMakeLists.txt
+++ b/deployments/se-proxy/opteesp/CMakeLists.txt
@@ -57,7 +57,7 @@
 		"components/service/common/include"
 		"components/service/common/serializer/protobuf"
 		"components/service/common/provider"
-		"components/service/crypto/provider/mbedcrypto"
+		"components/service/crypto/provider"
 		"components/service/crypto/provider/serializer/protobuf"
 		"components/service/crypto/provider/serializer/packed-c"
 		"components/service/secure_storage/include"
@@ -80,7 +80,8 @@
 		"components/service/secure_storage/backend/secure_flash_store"
 		"components/service/secure_storage/backend/secure_flash_store/flash_fs"
 		"components/service/secure_storage/backend/secure_flash_store/flash"
-		"components/service/crypto/provider/mbedcrypto/trng_adapter/platform"
+		"components/service/crypto/backend/mbedcrypto"
+		"components/service/crypto/backend/mbedcrypto/trng_adapter/platform"
 )
 
 target_sources(se-proxy PRIVATE
diff --git a/deployments/se-proxy/opteesp/service_proxy_factory.c b/deployments/se-proxy/opteesp/service_proxy_factory.c
index 4af5a48..303ff0f 100644
--- a/deployments/se-proxy/opteesp/service_proxy_factory.c
+++ b/deployments/se-proxy/opteesp/service_proxy_factory.c
@@ -8,7 +8,7 @@
 #include <rpc/common/endpoint/rpc_interface.h>
 #include <service/attestation/provider/attest_provider.h>
 #include <service/attestation/provider/serializer/packed-c/packedc_attest_provider_serializer.h>
-#include <service/crypto/provider/mbedcrypto/crypto_provider.h>
+#include <service/crypto/provider/crypto_provider.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 <components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h>
@@ -20,6 +20,7 @@
 #include <service/attestation/claims/sources/null_lifecycle/null_lifecycle_claim_source.h>
 #include <service/attestation/claims/sources/instance_id/instance_id_claim_source.h>
 #include <service/secure_storage/backend/secure_flash_store/secure_flash_store.h>
+#include <service/crypto/backend/mbedcrypto/mbedcrypto_backend.h>
 
 
 /* A shared storage backend - should be removed when proxy backends are added */
@@ -70,18 +71,21 @@
 
 struct rpc_interface *crypto_proxy_create(void)
 {
-	struct rpc_interface *crypto_iface;
+	struct rpc_interface *crypto_iface = NULL;
 
 	/* Static objects for proxy instance */
-	static struct mbed_crypto_provider crypto_provider;
+	static struct crypto_provider crypto_provider;
 
-	crypto_iface = mbed_crypto_provider_init(&crypto_provider, shared_storage_backend, 0);
+	if (mbedcrypto_backend_init(shared_storage_backend, 0) == PSA_SUCCESS) {
 
-	mbed_crypto_provider_register_serializer(&crypto_provider,
+		crypto_iface = crypto_provider_init(&crypto_provider);
+
+		crypto_provider_register_serializer(&crypto_provider,
 					TS_RPC_ENCODING_PROTOBUF, pb_crypto_provider_serializer_instance());
 
-	mbed_crypto_provider_register_serializer(&crypto_provider,
+		crypto_provider_register_serializer(&crypto_provider,
 					TS_RPC_ENCODING_PACKED_C, packedc_crypto_provider_serializer_instance());
+	}
 
 	return crypto_iface;
 }
