diff --git a/components/common/libpsa/libpsa.h b/components/common/libpsa/libpsa.h
deleted file mode 100644
index e5a6fa0..0000000
--- a/components/common/libpsa/libpsa.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "psa/crypto_types.h"
-#include "psa/initial_attestation.h"
-#include "psa/internal_trusted_storage.h"
-#include "psa/protected_storage.h"
-
-#ifndef LIBPSA_H
-#define LIBPSA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The functions may be exported as a public interface to
- * a shared library.
- */
-#ifdef EXPORT_PUBLIC_INTERFACE_LIBPSA
-#define LIBPSA_EXPORTED __attribute__((__visibility__("default")))
-#else
-#define LIBPSA_EXPORTED
-#endif
-
-LIBPSA_EXPORTED psa_status_t libpsa_init_crypto_context(const char *service_name);
-LIBPSA_EXPORTED void libpsa_deinit_crypto_context(void);
-
-LIBPSA_EXPORTED psa_status_t libpsa_init_attestation_context(const char *service_name);
-LIBPSA_EXPORTED void libpsa_deinit_attestation_context(void);
-
-LIBPSA_EXPORTED psa_status_t libpsa_init_its_context(const char *service_name);
-LIBPSA_EXPORTED void libpsa_deinit_its_context(void);
-
-LIBPSA_EXPORTED psa_status_t libpsa_init_ps_context(const char *service_name);
-LIBPSA_EXPORTED void libpsa_deinit_ps_context(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBPSA_H */
diff --git a/components/common/libpsa/component.cmake b/components/common/libpsats/component.cmake
similarity index 68%
rename from components/common/libpsa/component.cmake
rename to components/common/libpsats/component.cmake
index 08e4748..e1ea32d 100644
--- a/components/common/libpsa/component.cmake
+++ b/components/common/libpsats/component.cmake
@@ -9,8 +9,8 @@
 endif()
 
 target_sources(${TGT} PRIVATE
-	"${CMAKE_CURRENT_LIST_DIR}/libpsa-attestation.c"
-	"${CMAKE_CURRENT_LIST_DIR}/libpsa-crypto.c"
-	"${CMAKE_CURRENT_LIST_DIR}/libpsa-its.c"
-	"${CMAKE_CURRENT_LIST_DIR}/libpsa-ps.c"
+	"${CMAKE_CURRENT_LIST_DIR}/libpsats-attestation.c"
+	"${CMAKE_CURRENT_LIST_DIR}/libpsats-crypto.c"
+	"${CMAKE_CURRENT_LIST_DIR}/libpsats-its.c"
+	"${CMAKE_CURRENT_LIST_DIR}/libpsats-ps.c"
 	)
diff --git a/components/common/libpsa/libpsa-attestation.c b/components/common/libpsats/libpsats-attestation.c
similarity index 88%
rename from components/common/libpsa/libpsa-attestation.c
rename to components/common/libpsats/libpsats-attestation.c
index 9e795a6..c67422b 100644
--- a/components/common/libpsa/libpsa-attestation.c
+++ b/components/common/libpsats/libpsats-attestation.c
@@ -11,13 +11,13 @@
 #include <service_locator.h>
 #include <stdio.h>
 
-#include "libpsa.h"
+#include "libpsats.h"
 #include "trace.h"
 
 static struct rpc_caller_session *rpc_session;
 static struct service_context *attestation_service_context;
 
-LIBPSA_EXPORTED psa_status_t libpsa_init_attestation_context(const char *service_name)
+LIBPSATS_EXPORTED psa_status_t libpsats_init_attestation_context(const char *service_name)
 {
 	psa_status_t result = PSA_ERROR_GENERIC_ERROR;
 	psa_status_t provision_result = PSA_ERROR_GENERIC_ERROR;
@@ -40,7 +40,7 @@
 
 	if (!rpc_session) {
 		EMSG("Failed to open rpc session\n");
-		libpsa_deinit_attestation_context();
+		libpsats_deinit_attestation_context();
 		return result;
 	}
 
@@ -61,7 +61,7 @@
 	return result;
 }
 
-LIBPSA_EXPORTED void libpsa_deinit_attestation_context(void)
+LIBPSATS_EXPORTED void libpsats_deinit_attestation_context(void)
 {
 	psa_iat_client_deinit();
 	attest_provision_client_deinit();
diff --git a/components/common/libpsa/libpsa-crypto.c b/components/common/libpsats/libpsats-crypto.c
similarity index 86%
rename from components/common/libpsa/libpsa-crypto.c
rename to components/common/libpsats/libpsats-crypto.c
index 4a3a10e..cb4b6f0 100644
--- a/components/common/libpsa/libpsa-crypto.c
+++ b/components/common/libpsats/libpsats-crypto.c
@@ -9,13 +9,13 @@
 #include <service_locator.h>
 #include <stdio.h>
 
-#include "libpsa.h"
+#include "libpsats.h"
 #include "trace.h"
 
 static struct rpc_caller_session *rpc_session;
 static struct service_context *crypto_service_context;
 
-LIBPSA_EXPORTED psa_status_t libpsa_init_crypto_context(const char *service_name)
+LIBPSATS_EXPORTED psa_status_t libpsats_init_crypto_context(const char *service_name)
 {
 	psa_status_t result = PSA_ERROR_GENERIC_ERROR;
 
@@ -37,7 +37,7 @@
 
 	if (!rpc_session) {
 		EMSG("Failed to open rpc session\n");
-		libpsa_deinit_crypto_context();
+		libpsats_deinit_crypto_context();
 		return result;
 	}
 
@@ -49,7 +49,7 @@
 	return result;
 }
 
-LIBPSA_EXPORTED void libpsa_deinit_crypto_context(void)
+LIBPSATS_EXPORTED void libpsats_deinit_crypto_context(void)
 {
 	psa_crypto_client_deinit();
 
diff --git a/components/common/libpsa/libpsa-its.c b/components/common/libpsats/libpsats-its.c
similarity index 87%
rename from components/common/libpsa/libpsa-its.c
rename to components/common/libpsats/libpsats-its.c
index 3915bfc..db98c1d 100644
--- a/components/common/libpsa/libpsa-its.c
+++ b/components/common/libpsats/libpsats-its.c
@@ -10,14 +10,14 @@
 #include <service_locator.h>
 #include <stdio.h>
 
-#include "libpsa.h"
+#include "libpsats.h"
 #include "trace.h"
 
 static struct rpc_caller_session *rpc_session;
 static struct service_context *its_service_context;
 static struct secure_storage_client its_storage_client;
 
-LIBPSA_EXPORTED psa_status_t libpsa_init_its_context(const char *service_name)
+LIBPSATS_EXPORTED psa_status_t libpsats_init_its_context(const char *service_name)
 {
 	psa_status_t result = PSA_ERROR_GENERIC_ERROR;
 
@@ -39,7 +39,7 @@
 
 	if (!rpc_session) {
 		EMSG("Failed to open rpc session\n");
-		libpsa_deinit_its_context();
+		libpsats_deinit_its_context();
 		return result;
 	}
 
@@ -48,7 +48,7 @@
 
 	if (!its_storage_backend) {
 		EMSG("Failed to initialize storage backend\n");
-		libpsa_deinit_its_context();
+		libpsats_deinit_its_context();
 		return result;
 	}
 
@@ -57,7 +57,7 @@
 	return result;
 }
 
-LIBPSA_EXPORTED void libpsa_deinit_its_context(void)
+LIBPSATS_EXPORTED void libpsats_deinit_its_context(void)
 {
 	psa_its_frontend_init(NULL);
 	secure_storage_client_deinit(&its_storage_client);
diff --git a/components/common/libpsa/libpsa-ps.c b/components/common/libpsats/libpsats-ps.c
similarity index 87%
rename from components/common/libpsa/libpsa-ps.c
rename to components/common/libpsats/libpsats-ps.c
index 01d41d1..a776460 100644
--- a/components/common/libpsa/libpsa-ps.c
+++ b/components/common/libpsats/libpsats-ps.c
@@ -10,14 +10,14 @@
 #include <service_locator.h>
 #include <stdio.h>
 
-#include "libpsa.h"
+#include "libpsats.h"
 #include "trace.h"
 
 static struct rpc_caller_session *rpc_session;
 static struct service_context *ps_service_context;
 static struct secure_storage_client ps_storage_client;
 
-LIBPSA_EXPORTED psa_status_t libpsa_init_ps_context(const char *service_name)
+LIBPSATS_EXPORTED psa_status_t libpsats_init_ps_context(const char *service_name)
 {
 	psa_status_t result = PSA_ERROR_GENERIC_ERROR;
 
@@ -39,7 +39,7 @@
 
 	if (!rpc_session) {
 		EMSG("Failed to open rpc session\n");
-		libpsa_deinit_ps_context();
+		libpsats_deinit_ps_context();
 		return result;
 	}
 
@@ -48,7 +48,7 @@
 
 	if (!ps_storage_backend) {
 		EMSG("Failed to initialize storage backend\n");
-		libpsa_deinit_ps_context();
+		libpsats_deinit_ps_context();
 		return result;
 	}
 
@@ -57,7 +57,7 @@
 	return result;
 }
 
-LIBPSA_EXPORTED void libpsa_deinit_ps_context(void)
+LIBPSATS_EXPORTED void libpsats_deinit_ps_context(void)
 {
 	psa_ps_frontend_init(NULL);
 	secure_storage_client_deinit(&ps_storage_client);
diff --git a/components/common/libpsats/libpsats.h b/components/common/libpsats/libpsats.h
new file mode 100644
index 0000000..b4ca9ca
--- /dev/null
+++ b/components/common/libpsats/libpsats.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "psa/crypto_types.h"
+#include "psa/initial_attestation.h"
+#include "psa/internal_trusted_storage.h"
+#include "psa/protected_storage.h"
+
+#ifndef LIBPSATS_H
+#define LIBPSATS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The functions may be exported as a public interface to
+ * a shared library.
+ */
+#ifdef EXPORT_PUBLIC_INTERFACE_LIBPSATS
+#define LIBPSATS_EXPORTED __attribute__((__visibility__("default")))
+#else
+#define LIBPSATS_EXPORTED
+#endif
+
+LIBPSATS_EXPORTED psa_status_t libpsats_init_crypto_context(const char *service_name);
+LIBPSATS_EXPORTED void libpsats_deinit_crypto_context(void);
+
+LIBPSATS_EXPORTED psa_status_t libpsats_init_attestation_context(const char *service_name);
+LIBPSATS_EXPORTED void libpsats_deinit_attestation_context(void);
+
+LIBPSATS_EXPORTED psa_status_t libpsats_init_its_context(const char *service_name);
+LIBPSATS_EXPORTED void libpsats_deinit_its_context(void);
+
+LIBPSATS_EXPORTED psa_status_t libpsats_init_ps_context(const char *service_name);
+LIBPSATS_EXPORTED void libpsats_deinit_ps_context(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBPSATS_H */
