tests: Bluetooth: Mesh: add cfg mesh with mbedtls PSA to bsim CI

Commit adds configuration for mesh with mbedtls PSA
to CI BabbleSim tests as well as emulation of
the Internal Trustable Storage(ITS) based on Zephyr's
settings to run in parallel environment.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
diff --git a/modules/mbedtls/configs/config-tls-generic.h b/modules/mbedtls/configs/config-tls-generic.h
index 0c6d418..9d8ab75 100644
--- a/modules/mbedtls/configs/config-tls-generic.h
+++ b/modules/mbedtls/configs/config-tls-generic.h
@@ -481,6 +481,19 @@
 #include CONFIG_MBEDTLS_USER_CONFIG_FILE
 #endif
 
+#if !defined(CONFIG_MBEDTLS_PSA_CRYPTO_C)
+/* When PSA API is used the checking header is included over the chain:
+ * |-psa/crypto.h
+ * |-psa/crypto_platform.h
+ * |-mbedtls/build_info.h
+ * |-mbedtls/check_config.h
+ * If include this header here then PSA API will be in semiconfigured state
+ * without considering dependencies from mbedtls/config_psa.h.
+ * mbedtls/config_psa.h should be included right after config-tls-generic.h before checking.
+ * Formally, all settings are correct but mbedtls library cannot be built.
+ * The behavior was introduced after adding mbedTLS 3.4.0
+ */
 #include "mbedtls/check_config.h"
+#endif
 
 #endif /* MBEDTLS_CONFIG_H */
diff --git a/subsys/bluetooth/mesh/adv.h b/subsys/bluetooth/mesh/adv.h
index eec6ae2..0e7c5fe 100644
--- a/subsys/bluetooth/mesh/adv.h
+++ b/subsys/bluetooth/mesh/adv.h
@@ -14,7 +14,7 @@
 
 #define BT_MESH_ADV_SCAN_UNIT(_ms) ((_ms) * 8 / 5)
 
-#if defined(CONFIG_BT_EXT_ADV)
+#if defined(CONFIG_BT_EXT_ADV) && !defined(CONFIG_BT_LL_SW_SPLIT)
 #define BT_MESH_SCAN_INTERVAL_MS 3000
 #define BT_MESH_SCAN_WINDOW_MS   3000
 #else
diff --git a/tests/bsim/bluetooth/mesh/CMakeLists.txt b/tests/bsim/bluetooth/mesh/CMakeLists.txt
index f389e75..749e8d7 100644
--- a/tests/bsim/bluetooth/mesh/CMakeLists.txt
+++ b/tests/bsim/bluetooth/mesh/CMakeLists.txt
@@ -37,6 +37,7 @@
 if(CONFIG_BT_MESH_USES_MBEDTLS_PSA)
  target_sources(app PRIVATE
   src/distribute_keyid.c
+  src/psa_its_emul.c
  )
 endif()
 
@@ -82,3 +83,15 @@
   ${BSIM_COMPONENTS_PATH}/libUtilv1/src/
   ${BSIM_COMPONENTS_PATH}/libPhyComv1/src/
 )
+
+# The mbedTLS PSA ITS is not thread safe.
+# The issue: https://github.com/zephyrproject-rtos/zephyr/issues/59362
+# Also, it isn't possible to use "native" ITS implementation since
+# mbedTLS includes headers that do not exist.
+# This linker option allows linking custom ITS implementation instead of
+# precompiled objects from the mbedTLS library to run it in parallel.
+if(CONFIG_BT_MESH_USES_MBEDTLS_PSA)
+  zephyr_ld_options(
+    ${LINKERFLAGPREFIX},--allow-multiple-definition
+    )
+endif()
diff --git a/tests/bsim/bluetooth/mesh/compile.sh b/tests/bsim/bluetooth/mesh/compile.sh
index 0c3e106..de9b4bd 100755
--- a/tests/bsim/bluetooth/mesh/compile.sh
+++ b/tests/bsim/bluetooth/mesh/compile.sh
@@ -28,5 +28,12 @@
   conf_file=prj_mesh1d1.conf conf_overlay=overlay_gatt.conf compile
 app=tests/bsim/bluetooth/mesh \
   conf_file=prj_mesh1d1.conf conf_overlay=overlay_low_lat.conf compile
+app=tests/bsim/bluetooth/mesh conf_file=prj_mesh1d1.conf conf_overlay=overlay_psa.conf compile
+app=tests/bsim/bluetooth/mesh \
+  conf_file=prj_mesh1d1.conf conf_overlay="overlay_pst.conf;overlay_psa.conf" compile
+app=tests/bsim/bluetooth/mesh \
+  conf_file=prj_mesh1d1.conf conf_overlay="overlay_gatt.conf;overlay_psa.conf" compile
+app=tests/bsim/bluetooth/mesh \
+  conf_file=prj_mesh1d1.conf conf_overlay="overlay_low_lat.conf;overlay_psa.conf" compile
 
 wait_for_background_jobs
diff --git a/tests/bsim/bluetooth/mesh/overlay_psa.conf b/tests/bsim/bluetooth/mesh/overlay_psa.conf
new file mode 100644
index 0000000..ba81c1e
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/overlay_psa.conf
@@ -0,0 +1,2 @@
+# Enable mbedTLS PSA as a crypto backend
+CONFIG_BT_MESH_USES_MBEDTLS_PSA=y
diff --git a/tests/bsim/bluetooth/mesh/src/distribute_keyid.c b/tests/bsim/bluetooth/mesh/src/distribute_keyid.c
index 3f10017..8bfb0f6 100644
--- a/tests/bsim/bluetooth/mesh/src/distribute_keyid.c
+++ b/tests/bsim/bluetooth/mesh/src/distribute_keyid.c
@@ -70,13 +70,3 @@
 		LOG_WRN("key id %d is out of the reserved id range", key_id);
 	}
 }
-
-void stored_keys_clear(void)
-{
-	struct bt_mesh_key key;
-
-	for (int i = 0; i < BT_MESH_KEY_ID_RANGE_SIZE; i++) {
-		key.key = BT_MESH_TEST_PSA_KEY_ID_USER_MIN + i;
-		bt_mesh_key_destroy(&key);
-	}
-}
diff --git a/tests/bsim/bluetooth/mesh/src/distribute_keyid.h b/tests/bsim/bluetooth/mesh/src/distribute_keyid.h
deleted file mode 100644
index b78c6cb..0000000
--- a/tests/bsim/bluetooth/mesh/src/distribute_keyid.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2023 Nordic Semiconductor ASA
- *
- * SPDX-License-Identifier: Apache-2.0
- */
-
-#ifndef TESTS_BSIM_BLUETOOTH_MESH_SRC_DISTRIBUTE_KEYID_H_
-#define TESTS_BSIM_BLUETOOTH_MESH_SRC_DISTRIBUTE_KEYID_H_
-
-#if defined CONFIG_BT_MESH_USES_MBEDTLS_PSA
-void stored_keys_clear(void);
-#else
-static inline void stored_keys_clear(void)
-{}
-#endif
-
-#endif /* TESTS_BSIM_BLUETOOTH_MESH_SRC_DISTRIBUTE_KEYID_H_ */
diff --git a/tests/bsim/bluetooth/mesh/src/mesh_test.c b/tests/bsim/bluetooth/mesh/src/mesh_test.c
index cbbc7ac..f9c1e2e 100644
--- a/tests/bsim/bluetooth/mesh/src/mesh_test.c
+++ b/tests/bsim/bluetooth/mesh/src/mesh_test.c
@@ -7,7 +7,6 @@
 #include "argparse.h"
 #include <bs_pc_backchannel.h>
 #include "settings_test_backend.h"
-#include "distribute_keyid.h"
 #include "mesh/crypto.h"
 
 #define LOG_MODULE_NAME mesh_test
@@ -557,7 +556,6 @@
 #if defined(CONFIG_SETTINGS)
 	/* crypto library initialization to be able to remove stored keys. */
 	bt_mesh_crypto_init();
-	stored_keys_clear();
 	settings_test_backend_clear();
 #endif
 }
diff --git a/tests/bsim/bluetooth/mesh/src/psa_its_emul.c b/tests/bsim/bluetooth/mesh/src/psa_its_emul.c
new file mode 100644
index 0000000..92af388
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/src/psa_its_emul.c
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2023 Nordic Semiconductor ASA
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/*
+ *  PSA ITS emulator over settings.
+ */
+
+#include <stdlib.h>
+
+#include <zephyr/bluetooth/mesh.h>
+#include <../library/psa_crypto_its.h>
+
+#define LOG_MODULE_NAME pts_its_emu
+
+#include <zephyr/logging/log.h>
+#include "mesh/net.h"
+#include "mesh/settings.h"
+
+LOG_MODULE_REGISTER(LOG_MODULE_NAME, LOG_LEVEL_INF);
+
+/* The value of 52 bytes was measured practically in the mbedTLS psa security storage. */
+#define MAX_ITEM_LENGTH 52
+#define MAX_ITEM_NUMBER MBEDTLS_PSA_KEY_SLOT_COUNT
+
+typedef struct {
+	uint32_t size;
+	psa_storage_create_flags_t flags;
+	uint8_t data[MAX_ITEM_LENGTH];
+} psa_its_pst_item_t;
+
+typedef struct {
+	psa_storage_uid_t uid;
+	psa_its_pst_item_t pst_item;
+} psa_its_item_t;
+
+static psa_its_item_t item[MAX_ITEM_NUMBER];
+
+static psa_its_item_t *get_item_by_uid(psa_storage_uid_t uid)
+{
+	for (int i = 0; i < MAX_ITEM_NUMBER; i++) {
+		if (uid == item[i].uid) {
+			return &item[i];
+		}
+	}
+
+	return NULL;
+}
+
+static int itsemul_set(const char *name, size_t len_rd, settings_read_cb read_cb, void *cb_arg)
+{
+	ssize_t len;
+	uint64_t uid;
+	psa_its_item_t *p_item;
+
+	LOG_DBG("read out uid: %s", name);
+
+	if (!name) {
+		LOG_ERR("Insufficient number of arguments");
+		return -ENOENT;
+	}
+
+	uid = strtoull(name, NULL, 10);
+	if (uid == ULLONG_MAX) {
+		LOG_ERR("Invalid format for uid");
+		return -EINVAL;
+	}
+
+	p_item = get_item_by_uid(uid);
+	if (p_item == NULL) {
+		p_item = get_item_by_uid(0ull);
+	}
+
+	if (p_item == NULL) {
+		LOG_ERR("Insufficient sources for %llu", uid);
+		return -EINVAL;
+	}
+
+	p_item->uid = uid;
+
+	len = read_cb(cb_arg, &p_item->pst_item, len_rd);
+	if (len < 0) {
+		LOG_ERR("Failed to read value (err %zd)", len);
+		return -EINVAL;
+	}
+
+	LOG_HEXDUMP_DBG(&p_item->pst_item, len, "pst_item:");
+
+	if (len != len_rd) {
+		LOG_ERR("Unexpected length (%zd != %zu)", len, len_rd);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+BT_MESH_SETTINGS_DEFINE(psa_its_emu, "itsemul", itsemul_set);
+
+psa_status_t psa_its_get_info(psa_storage_uid_t uid, struct psa_storage_info_t *p_info)
+{
+	psa_its_item_t *p_item;
+
+	LOG_DBG("get info uid: %llu", uid);
+
+	p_item = get_item_by_uid(uid);
+	if (p_item == NULL) {
+		return PSA_ERROR_DOES_NOT_EXIST;
+	}
+
+	p_info->flags = p_item->pst_item.flags;
+	p_info->size = p_item->pst_item.size;
+
+	LOG_DBG("flags: %lu, size: %lu", p_info->flags, p_info->size);
+
+	return PSA_SUCCESS;
+}
+
+psa_status_t psa_its_get(psa_storage_uid_t uid, uint32_t data_offset, uint32_t data_length,
+			 void *p_data, size_t *p_data_length)
+{
+	psa_its_item_t *p_item;
+	psa_its_pst_item_t *p_pst_item;
+
+	LOG_DBG("get uid: %llu", uid);
+
+	p_item = get_item_by_uid(uid);
+	if (p_item == NULL) {
+		return PSA_ERROR_DOES_NOT_EXIST;
+	}
+
+	p_pst_item = &p_item->pst_item;
+
+	if (data_offset > p_pst_item->size) {
+		return PSA_ERROR_DATA_CORRUPT;
+	}
+
+	*p_data_length = MIN(p_pst_item->size - data_offset, data_length);
+	memcpy(p_data, p_pst_item->data + data_offset, *p_data_length);
+
+	return PSA_SUCCESS;
+}
+
+psa_status_t psa_its_set(psa_storage_uid_t uid, uint32_t data_length, const void *p_data,
+			 psa_storage_create_flags_t create_flags)
+{
+	char path[40];
+	psa_its_item_t *p_item;
+	psa_its_pst_item_t *p_pst_item;
+	psa_status_t status = PSA_SUCCESS;
+
+	LOG_DBG("Set uid: %llu, len: %lu", uid, data_length);
+
+	if (data_length > MAX_ITEM_LENGTH) {
+		LOG_ERR("Too long item data: %lu > " STRINGIFY(MAX_ITEM_LENGTH), data_length);
+	}
+
+	p_item = get_item_by_uid(uid);
+	if (p_item == NULL) {
+		p_item = get_item_by_uid(0ull);
+	}
+
+	if (p_item == NULL) {
+		return PSA_ERROR_STORAGE_FAILURE;
+	}
+
+	snprintk(path, sizeof(path), "bt/mesh/itsemul/%llu", uid);
+
+	p_item->uid = uid;
+	p_pst_item = &p_item->pst_item;
+	p_pst_item->size = data_length;
+	p_pst_item->flags = create_flags;
+	memcpy(p_pst_item->data, p_data, data_length);
+
+	if (settings_save_one(path, p_pst_item, sizeof(psa_its_pst_item_t))) {
+		LOG_ERR("Failed to store its item: %s", path);
+		status = PSA_ERROR_STORAGE_FAILURE;
+	} else {
+		LOG_DBG("Stored its item: %s", path);
+	}
+
+	return status;
+}
+
+psa_status_t psa_its_remove(psa_storage_uid_t uid)
+{
+	char path[40];
+	psa_status_t status = PSA_SUCCESS;
+	psa_its_item_t *p_item;
+
+	LOG_DBG("remove uid: %llu", uid);
+
+	p_item = get_item_by_uid(uid);
+	if (p_item == NULL) {
+		return status;
+	}
+	memset(p_item, 0, sizeof(psa_its_item_t));
+
+	snprintk(path, sizeof(path), "bt/mesh/itsemul/%llu", uid);
+
+	if (settings_delete(path)) {
+		LOG_ERR("Failed to remove its item: %s", path);
+		status = PSA_ERROR_STORAGE_FAILURE;
+	} else {
+		LOG_DBG("Removed its item: %s", path);
+	}
+
+	return status;
+}
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_cancel.sh b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_cancel.sh
index 9b2e5bf..6a56a08 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_cancel.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_cancel.sh
@@ -10,3 +10,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_access_publication_cancel_1d1 \
 	access_tx_cancel access_rx_cancel
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_access_publication_cancel_psa \
+	access_tx_cancel access_rx_cancel
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub.sh b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub.sh
index c05df17..862291b 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub.sh
@@ -10,3 +10,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_access_extended_model_subs_1d1 \
 	access_tx_ext_model access_sub_ext_model
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_access_extended_model_subs_psa \
+	access_tx_ext_model access_sub_ext_model
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub_cap.sh b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub_cap.sh
index 4f52a41..2a4f9cc 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub_cap.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_ext_sub_cap.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_access_extended_model_subs_cap_1d1 access_sub_capacity_ext_model
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_access_extended_model_subs_cap_psa access_sub_capacity_ext_model
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_period.sh b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_period.sh
index 15e26a0..d2bb07c 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_period.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_period.sh
@@ -10,3 +10,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_access_per_pub_1d1 \
 	access_tx_period access_rx_period
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_access_per_pub_psa \
+	access_tx_period access_rx_period
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_transmit.sh b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_transmit.sh
index a3d7803..c2f4a27 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/access/access_transmit.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/access/access_transmit.sh
@@ -10,3 +10,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_access_pub_retr_1d1 \
 	access_tx_transmit access_rx_transmit
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_access_pub_retr_psa \
+	access_tx_period access_rx_period
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/proxy_mixin.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/proxy_mixin.sh
index a024027..8625527 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/proxy_mixin.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/proxy_mixin.sh
@@ -24,3 +24,7 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_gatt_conf
 RunTest mesh_adv_proxy_mixin_1d1 adv_tx_proxy_mixin adv_rx_proxy_mixin
+
+conf=prj_mesh1d1_conf
+overlay="overlay_gatt_conf_overlay_psa_conf"
+RunTest mesh_adv_proxy_mixin_psa adv_tx_proxy_mixin adv_rx_proxy_mixin
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/random_order.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/random_order.sh
index 7cf6e2f..8cfe0f9 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/random_order.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/random_order.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_adv_random_order_1d1 adv_tx_random_order adv_rx_random_order
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_adv_random_order_psa adv_tx_random_order adv_rx_random_order
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/reverse_order.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/reverse_order.sh
index f335a3e..96b3039 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/reverse_order.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/reverse_order.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_adv_reverse_order_1d1 adv_tx_reverse_order adv_rx_receive_order
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_adv_reverse_order_psa adv_tx_reverse_order adv_rx_receive_order
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/send_order.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/send_order.sh
index 29db6c9..e208bf5 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/send_order.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/send_order.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_adv_send_order_1d1 adv_tx_send_order adv_rx_receive_order
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_adv_send_order_psa adv_tx_send_order adv_rx_receive_order
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_multi.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_multi.sh
index d5df191..28827c8 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_multi.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_multi.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_adv_tx_cb_multi_1d1 adv_tx_cb_multi
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_adv_tx_cb_multi_psa adv_tx_cb_multi
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_single.sh b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_single.sh
index 21f73a6..edf4ba0 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_single.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/advertiser/tx_cb_single.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_adv_tx_cb_single_1d1 adv_tx_cb_single adv_rx_xmit
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_adv_tx_cb_single_psa adv_tx_cb_single adv_rx_xmit
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/beacon_interval.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/beacon_interval.sh
index c99b01e..ec70eb2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/beacon_interval.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/beacon_interval.sh
@@ -26,3 +26,9 @@
 RunTest mesh_beacon_interval_1d1 \
 	beacon_tx_secure_beacon_interval \
 	beacon_rx_secure_beacon_interval
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_interval_psa \
+	beacon_tx_secure_beacon_interval \
+	beacon_rx_secure_beacon_interval
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/invalid.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/invalid.sh
index 3cf7991..ccce8c3 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/invalid.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/invalid.sh
@@ -12,3 +12,9 @@
 RunTest mesh_beacon_invalid_1d1 \
 	beacon_tx_invalid \
 	beacon_rx_invalid
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_invalid_psa \
+	beacon_tx_invalid \
+	beacon_rx_invalid
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/iv_update.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/iv_update.sh
index 617059e..64225fd 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/iv_update.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/iv_update.sh
@@ -12,3 +12,9 @@
 RunTest mesh_beacon_on_iv_update_1d1 \
 	beacon_tx_on_iv_update \
 	beacon_rx_on_iv_update
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_on_iv_update_psa \
+	beacon_tx_on_iv_update \
+	beacon_rx_on_iv_update
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/key_refresh.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/key_refresh.sh
index b63a77c..00f8270 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/key_refresh.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/key_refresh.sh
@@ -12,3 +12,9 @@
 RunTest mesh_beacon_on_key_refresh_1d1 \
 	beacon_tx_on_key_refresh \
 	beacon_rx_on_key_refresh
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_on_key_refresh_psa \
+	beacon_tx_on_key_refresh \
+	beacon_rx_on_key_refresh
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/kr_old_key.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/kr_old_key.sh
index 3a89359..3d6b151 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/kr_old_key.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/kr_old_key.sh
@@ -12,3 +12,9 @@
 RunTest mesh_beacon_kr_old_key_1d1 \
 	beacon_tx_kr_old_key \
 	beacon_rx_kr_old_key
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_kr_old_key_psa \
+	beacon_tx_kr_old_key \
+	beacon_rx_kr_old_key
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/multiple_netkeys.sh b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/multiple_netkeys.sh
index dc3b5b1..677e422 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/beacon/multiple_netkeys.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/beacon/multiple_netkeys.sh
@@ -12,3 +12,9 @@
 RunTest mesh_beacon_multiple_netkeys_1d1 \
 	beacon_tx_multiple_netkeys \
 	beacon_rx_multiple_netkeys
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_beacon_multiple_netkeys_psa \
+	beacon_tx_multiple_netkeys \
+	beacon_rx_multiple_netkeys
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast.sh
deleted file mode 100755
index 451580c..0000000
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2022 Nordic Semiconductor
-# SPDX-License-Identifier: Apache-2.0
-
-source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
-
-conf=prj_mesh1d1_conf
-RunTest blob_broadcast_basic \
-	blob_cli_broadcast_basic
-
-conf=prj_mesh1d1_conf
-RunTest blob_broadcast_trans \
-	blob_cli_broadcast_trans
-
-conf=prj_mesh1d1_conf
-RunTest blob_broadcast_unicast_seq \
-	blob_cli_broadcast_unicast_seq
-
-conf=prj_mesh1d1_conf
-RunTest blob_broadcast_unicast \
-	blob_cli_broadcast_unicast
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_basic.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_basic.sh
new file mode 100755
index 0000000..6f1ec61
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_basic.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+conf=prj_mesh1d1_conf
+RunTest blob_broadcast_basic blob_cli_broadcast_basic
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_broadcast_basic_psa blob_cli_broadcast_basic
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_trans.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_trans.sh
new file mode 100755
index 0000000..d5d0f60
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_trans.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+conf=prj_mesh1d1_conf
+RunTest blob_broadcast_trans blob_cli_broadcast_trans
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_broadcast_trans_psa blob_cli_broadcast_trans
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast.sh
new file mode 100755
index 0000000..ee86ce3
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+conf=prj_mesh1d1_conf
+RunTest blob_broadcast_unicast blob_cli_broadcast_unicast
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_broadcast_unicast_psa blob_cli_broadcast_unicast
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast_seq.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast_seq.sh
new file mode 100755
index 0000000..c356122
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_broadcast_unicast_seq.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+conf=prj_mesh1d1_conf
+RunTest blob_broadcast_unicast_seq blob_cli_broadcast_unicast_seq
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_broadcast_unicast_seq_psa blob_cli_broadcast_unicast_seq
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps.sh
deleted file mode 100755
index 07937bc..0000000
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2022 Nordic Semiconductor
-# SPDX-License-Identifier: Apache-2.0
-
-source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
-
-# The test instance sequence must stay as it is due to addressing scheme
-conf=prj_mesh1d1_conf
-RunTest blob_caps_all_rsp \
-	blob_cli_caps_all_rsp blob_srv_caps_standard blob_srv_caps_standard
-
-# The test instance sequence must stay as it is due to addressing scheme
-conf=prj_mesh1d1_conf
-RunTest blob_caps_partial_rsp \
-	blob_cli_caps_partial_rsp blob_srv_caps_standard blob_srv_caps_no_rsp
-
-# The test instance sequence must stay as it is due to addressing scheme
-conf=prj_mesh1d1_conf
-RunTest blob_caps_no_rsp \
-	blob_cli_caps_no_rsp blob_srv_caps_no_rsp blob_srv_caps_no_rsp
-
-# The test instance seqence must stay as it is due to addressing scheme
-conf=prj_mesh1d1_conf
-RunTest blob_caps_cancelled \
-	blob_cli_caps_cancelled blob_srv_caps_standard
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_all_rsp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_all_rsp.sh
new file mode 100755
index 0000000..bc2aa35
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_all_rsp.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+# The test instance sequence must stay as it is due to addressing scheme
+conf=prj_mesh1d1_conf
+RunTest blob_caps_all_rsp \
+	blob_cli_caps_all_rsp blob_srv_caps_standard blob_srv_caps_standard
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_caps_all_rsp_psa \
+	blob_cli_caps_all_rsp blob_srv_caps_standard blob_srv_caps_standard
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_cancelled.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_cancelled.sh
new file mode 100755
index 0000000..3e1bd34
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_cancelled.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+# The test instance seqence must stay as it is due to addressing scheme
+conf=prj_mesh1d1_conf
+RunTest blob_caps_cancelled \
+	blob_cli_caps_cancelled blob_srv_caps_standard
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_caps_cancelled_psa \
+	blob_cli_caps_cancelled blob_srv_caps_standard
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_no_rsp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_no_rsp.sh
new file mode 100755
index 0000000..e53864f
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_no_rsp.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+# The test instance sequence must stay as it is due to addressing scheme
+conf=prj_mesh1d1_conf
+RunTest blob_caps_no_rsp \
+	blob_cli_caps_no_rsp blob_srv_caps_no_rsp blob_srv_caps_no_rsp
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_caps_no_rsp_psa \
+	blob_cli_caps_no_rsp blob_srv_caps_no_rsp blob_srv_caps_no_rsp
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_partial_rsp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_partial_rsp.sh
new file mode 100755
index 0000000..9a1675b
--- /dev/null
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_caps_partial_rsp.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+# Copyright 2023 Nordic Semiconductor
+# SPDX-License-Identifier: Apache-2.0
+
+source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
+
+# The test instance sequence must stay as it is due to addressing scheme
+conf=prj_mesh1d1_conf
+RunTest blob_caps_partial_rsp \
+	blob_cli_caps_partial_rsp blob_srv_caps_standard blob_srv_caps_no_rsp
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_caps_partial_rsp_psa \
+	blob_cli_caps_partial_rsp blob_srv_caps_standard blob_srv_caps_no_rsp
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_friend.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_friend.sh
index be5e51d..1c2bde7 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_friend.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_friend.sh
@@ -15,3 +15,13 @@
 	blob_srv_lpn_pull \
 	blob_srv_lpn_pull \
 	blob_srv_lpn_pull
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_transfer_lpn_psa \
+	blob_cli_friend_pull \
+	blob_srv_lpn_pull \
+	blob_srv_lpn_pull \
+	blob_srv_lpn_pull \
+	blob_srv_lpn_pull \
+	blob_srv_lpn_pull
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_block.sh
similarity index 64%
copy from tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh
copy to tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_block.sh
index f849cc6..73728d1 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_block.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-# Copyright 2022 Nordic Semiconductor
+# Copyright 2023 Nordic Semiconductor
 # SPDX-License-Identifier: Apache-2.0
 
 source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
@@ -11,7 +11,8 @@
 	blob_srv_fail_on_block_get -- -argstest msg-fail-type=0
 
 conf=prj_mesh1d1_conf
-RunTest blob_no_rsp_xfer_get \
+overlay=overlay_psa_conf
+RunTest blob_no_rsp_block_get_psa \
 	blob_cli_fail_on_no_rsp \
-	blob_srv_fail_on_xfer_get \
-	blob_srv_fail_on_xfer_get -- -argstest msg-fail-type=1
+	blob_srv_fail_on_block_get \
+	blob_srv_fail_on_block_get -- -argstest msg-fail-type=0
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_xfer.sh
similarity index 71%
rename from tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh
rename to tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_xfer.sh
index f849cc6..4137deb 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_no_rsp_xfer.sh
@@ -5,13 +5,14 @@
 source $(dirname "${BASH_SOURCE[0]}")/../../_mesh_test.sh
 
 conf=prj_mesh1d1_conf
-RunTest blob_no_rsp_block_get \
+RunTest blob_no_rsp_xfer_get \
 	blob_cli_fail_on_no_rsp \
-	blob_srv_fail_on_block_get \
-	blob_srv_fail_on_block_get -- -argstest msg-fail-type=0
+	blob_srv_fail_on_xfer_get \
+	blob_srv_fail_on_xfer_get -- -argstest msg-fail-type=1
 
 conf=prj_mesh1d1_conf
-RunTest blob_no_rsp_xfer_get \
+overlay=overlay_psa_conf
+RunTest blob_no_rsp_xfer_get_psa \
 	blob_cli_fail_on_no_rsp \
 	blob_srv_fail_on_xfer_get \
 	blob_srv_fail_on_xfer_get -- -argstest msg-fail-type=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer.sh
index 5801182..e5bb421 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer.sh
@@ -12,3 +12,12 @@
 	blob_srv_fail_on_block_get \
 	blob_srv_fail_on_xfer_get \
 	blob_srv_fail_on_nothing
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_fail_psa \
+	blob_cli_fail_on_persistency \
+	blob_srv_fail_on_block_start\
+	blob_srv_fail_on_block_get \
+	blob_srv_fail_on_xfer_get \
+	blob_srv_fail_on_nothing
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer_pull.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer_pull.sh
index 92adfd6..8ead73c 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer_pull.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_persistent_transfer_pull.sh
@@ -10,3 +10,10 @@
 	blob_cli_trans_persistency_pull \
 	blob_srv_trans_persistency_pull \
 	blob_srv_trans_persistency_pull
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_pst_pull_psa \
+	blob_cli_trans_persistency_pull \
+	blob_srv_trans_persistency_pull \
+	blob_srv_trans_persistency_pull
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_pull.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_pull.sh
index 7d926d1..fdb1a80 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_pull.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_pull.sh
@@ -10,3 +10,10 @@
 	blob_srv_trans_complete blob_srv_trans_complete \
 	blob_srv_trans_complete blob_srv_trans_complete \
 	-- -argstest use-pull-mode=1
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_success_pull_psa blob_cli_trans_complete \
+	blob_srv_trans_complete blob_srv_trans_complete \
+	blob_srv_trans_complete blob_srv_trans_complete \
+	-- -argstest use-pull-mode=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_push.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_push.sh
index e2323f4..5345eab 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_push.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_complete_push.sh
@@ -9,3 +9,9 @@
 RunTest blob_success_push blob_cli_trans_complete \
 	blob_srv_trans_complete blob_srv_trans_complete \
 	blob_srv_trans_complete blob_srv_trans_complete
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_success_push_psa blob_cli_trans_complete \
+	blob_srv_trans_complete blob_srv_trans_complete \
+	blob_srv_trans_complete blob_srv_trans_complete
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_pull.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_pull.sh
index 1df0cd4..5b05446 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_pull.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_pull.sh
@@ -6,4 +6,10 @@
 
 # Test that BLOB Client can resume a suspended BLOB Transfer in Pull mode
 conf=prj_mesh1d1_conf
-RunTest blob_resume_pull blob_cli_trans_resume blob_srv_trans_resume -- -argstest use-pull-mode=1
+RunTest blob_resume_pull \
+    blob_cli_trans_resume blob_srv_trans_resume -- -argstest use-pull-mode=1
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_resume_pull_psa \
+    blob_cli_trans_resume blob_srv_trans_resume -- -argstest use-pull-mode=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_push.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_push.sh
index 8de3af6..01150c8 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_push.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_cli_trans_resume_push.sh
@@ -7,3 +7,7 @@
 # Test that BLOB Client can resume a suspended BLOB Transfer in Push mode
 conf=prj_mesh1d1_conf
 RunTest blob_resume_push blob_cli_trans_resume blob_srv_trans_resume
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest blob_resume_push_psa blob_cli_trans_resume blob_srv_trans_resume
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_srv_persistence.sh b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_srv_persistence.sh
index 90bbfea..241a6bd 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_srv_persistence.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/blob_mdls/blob_srv_persistence.sh
@@ -39,3 +39,35 @@
 overlay=overlay_pst_conf
 RunTest blob_recover_phase blob_cli_stop blob_srv_stop -- -argstest \
    recover=1 expected-phase=4
+
+# The same test but with PSA crypto
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=0 expected-phase=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=1 expected-phase=2
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=1 expected-phase=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=1 expected-phase=4
+
+# Test reaching suspended state and continuation after reboot on new procedure.
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=0 expected-phase=5
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest blob_recover_phase_psa blob_cli_stop blob_srv_stop -- -argstest \
+   recover=1 expected-phase=4
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_apply.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_apply.sh
index e2286ab..f612119 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_apply.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_apply.sh
@@ -16,3 +16,12 @@
 	dfu_target_fail_on_apply \
 	dfu_target_fail_on_apply \
 	-- -argstest targets=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_all_tgts_lost_on_apply_psa \
+	dfu_cli_all_targets_lost_on_apply \
+	dfu_target_fail_on_apply \
+	dfu_target_fail_on_apply \
+	dfu_target_fail_on_apply \
+	-- -argstest targets=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_caps_get.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_caps_get.sh
index 02498ab..36dcf8f 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_caps_get.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_caps_get.sh
@@ -16,3 +16,12 @@
 	dfu_target_fail_on_caps_get \
 	dfu_target_fail_on_caps_get \
 	-- -argstest targets=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_all_tgts_lost_on_caps_get_psa \
+	dfu_cli_all_targets_lost_on_caps_get \
+	dfu_target_fail_on_caps_get \
+	dfu_target_fail_on_caps_get \
+	dfu_target_fail_on_caps_get \
+	-- -argstest targets=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_metadata.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_metadata.sh
index 8aa9640..eacb921 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_metadata.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_metadata.sh
@@ -16,3 +16,12 @@
 	dfu_target_fail_on_metadata \
 	dfu_target_fail_on_metadata \
 	-- -argstest targets=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_all_tgts_lost_on_metadata_psa \
+	dfu_cli_all_targets_lost_on_metadata \
+	dfu_target_fail_on_metadata \
+	dfu_target_fail_on_metadata \
+	dfu_target_fail_on_metadata \
+	-- -argstest targets=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_update_get.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_update_get.sh
index 80ea001..f6c5348 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_update_get.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_update_get.sh
@@ -16,3 +16,12 @@
 	dfu_target_fail_on_update_get \
 	dfu_target_fail_on_update_get \
 	-- -argstest targets=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_all_tgts_lost_on_update_get_psa \
+	dfu_cli_all_targets_lost_on_update_get \
+	dfu_target_fail_on_update_get \
+	dfu_target_fail_on_update_get \
+	dfu_target_fail_on_update_get \
+	-- -argstest targets=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_verify.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_verify.sh
index 618f10a..929ab93 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_verify.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_all_targets_lost_on_verify.sh
@@ -16,3 +16,12 @@
 	dfu_target_fail_on_verify \
 	dfu_target_fail_on_verify \
 	-- -argstest targets=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_all_tgts_lost_on_verify_psa \
+	dfu_cli_all_targets_lost_on_verify \
+	dfu_target_fail_on_verify \
+	dfu_target_fail_on_verify \
+	dfu_target_fail_on_verify \
+	-- -argstest targets=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_persistent_transfer.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_persistent_transfer.sh
index e21298b..bcc98df 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_persistent_transfer.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_cli_persistent_transfer.sh
@@ -15,3 +15,14 @@
 	dfu_target_fail_on_verify \
 	dfu_target_fail_on_apply \
 	dfu_target_fail_on_nothing
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_persistency_psa \
+	dfu_cli_fail_on_persistency \
+	dfu_target_fail_on_metadata \
+	dfu_target_fail_on_caps_get \
+	dfu_target_fail_on_update_get \
+	dfu_target_fail_on_verify \
+	dfu_target_fail_on_apply \
+	dfu_target_fail_on_nothing
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update.sh
index c53714e..64f3301 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update.sh
@@ -7,3 +7,7 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_pst_conf
 RunTest dfu_self_update dfu_dist_dfu_self_update -- -argstest targets=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_self_update_psa dfu_dist_dfu_self_update -- -argstest targets=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update_mult_targets.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update_mult_targets.sh
index f9421b2..af7acb1 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update_mult_targets.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_dist_self_update_mult_targets.sh
@@ -8,3 +8,8 @@
 overlay=overlay_pst_conf
 RunTest dfu_self_update_no_change \
     dfu_dist_dfu_self_update dfu_target_dfu_no_change -- -argstest targets=2
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_self_update_no_change_psa \
+    dfu_dist_dfu_self_update dfu_target_dfu_no_change -- -argstest targets=2
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed.sh
index 246c73d..bcac2cb 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed.sh
@@ -9,3 +9,8 @@
 overlay=overlay_pst_conf
 RunTest dfu_mixed dfu_dist_dfu dfu_target_dfu_unprov dfu_target_dfu_no_change \
 	dfu_target_dfu_new_comp_rpr dfu_target_dfu_new_comp_no_rpr -- -argstest targets=4
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_mixed_psa dfu_dist_dfu dfu_target_dfu_unprov dfu_target_dfu_no_change \
+	dfu_target_dfu_new_comp_rpr dfu_target_dfu_new_comp_no_rpr -- -argstest targets=4
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed_fail.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed_fail.sh
index c6fe9aa..c5f67e2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed_fail.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_mixed_fail.sh
@@ -10,3 +10,9 @@
 RunTest dfu_mixed_fail dfu_dist_dfu dfu_target_dfu_unprov dfu_target_dfu_no_change \
 	dfu_target_dfu_new_comp_rpr dfu_target_dfu_new_comp_no_rpr -- -argstest targets=4 \
 	fail-confirm=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_mixed_fail_psa dfu_dist_dfu dfu_target_dfu_unprov dfu_target_dfu_no_change \
+	dfu_target_dfu_new_comp_rpr dfu_target_dfu_new_comp_no_rpr -- -argstest targets=4 \
+	fail-confirm=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_slot.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_slot.sh
index 506a498..63beed9 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_slot.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_slot.sh
@@ -20,3 +20,13 @@
 RunTest dfu_slot dfu_dist_dfu_slot_delete_all
 
 RunTest dfu_slot dfu_dist_dfu_slot_check_delete_all
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_slot_psa dfu_dist_dfu_slot_create
+
+RunTest dfu_slot_psa dfu_dist_dfu_slot_create_recover
+
+RunTest dfu_slot_psa dfu_dist_dfu_slot_delete_all
+
+RunTest dfu_slot_psa dfu_dist_dfu_slot_check_delete_all
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_srv_persistence.sh b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_srv_persistence.sh
index 72982be..119261c 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_srv_persistence.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/dfu/dfu_srv_persistence.sh
@@ -50,3 +50,42 @@
 overlay=overlay_pst_conf
 RunTest dfu_dist_recover_phase dfu_cli_stop dfu_target_dfu_stop -- -argstest \
    recover=1 expected-phase=6
+
+# The same test but with PSA crypto
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+   recover=0 expected-phase=2
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop  -- -argstest \
+  recover=1 expected-phase=3
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+  recover=1 expected-phase=4
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+  recover=1 expected-phase=6
+
+# Use phase `BT_MESH_DFU_PHASE_APPLY_SUCCESS` as marker to bring whole procedure to an end
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+  recover=1 expected-phase=8
+
+# To test recovery from Verify Fail begin new distribution that will end there,
+# reboot devices and continue to Applying.
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+   recover=0 expected-phase=5
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest dfu_dist_recover_phase_psa dfu_cli_stop dfu_target_dfu_stop -- -argstest \
+   recover=1 expected-phase=6
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish.sh
index 77d9ba2..b89ad3a 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_est_1d1 \
 	friendship_friend_est \
 	friendship_lpn_est
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_est_psa \
+	friendship_friend_est \
+	friendship_lpn_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish_multi.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish_multi.sh
index 0241e66..725ddae 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish_multi.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/establish_multi.sh
@@ -22,3 +22,13 @@
 	friendship_lpn_est \
 	friendship_lpn_est \
 	friendship_lpn_est
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_est_multi_psa \
+	friendship_friend_est_multi \
+	friendship_lpn_est \
+	friendship_lpn_est \
+	friendship_lpn_est \
+	friendship_lpn_est \
+	friendship_lpn_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_disable.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_disable.sh
index 2b1c5fd..be22829 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_disable.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_disable.sh
@@ -20,3 +20,9 @@
 RunTest mesh_lpn_disable_check_1d1 \
 	friendship_friend_no_est \
 	friendship_lpn_disable
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lpn_disable_check_psa \
+	friendship_friend_no_est \
+	friendship_lpn_disable
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_loopback.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_loopback.sh
index 4eed914..676b6b8 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_loopback.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_loopback.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_lpn_loopback_1d1 \
 	friendship_lpn_loopback \
 	friendship_friend_est
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_lpn_loopback_psa \
+	friendship_lpn_loopback \
+	friendship_friend_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_terminate_cb.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_terminate_cb.sh
index a98d6a7..7516307 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_terminate_cb.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/lpn_terminate_cb.sh
@@ -18,3 +18,9 @@
 RunTest mesh_lpn_terminate_cb_check_1d1 \
 	friendship_friend_est \
 	friendship_lpn_term_cb_check
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lpn_terminate_cb_check_psa \
+	friendship_friend_est \
+	friendship_lpn_term_cb_check
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_frnd.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_frnd.sh
index 1cc636c..94d6224 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_frnd.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_frnd.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_msg_frnd_1d1 \
 	friendship_friend_msg \
 	friendship_lpn_msg_frnd
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_msg_frnd_psa \
+	friendship_friend_msg \
+	friendship_lpn_msg_frnd
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_group.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_group.sh
index 8493454..6e7287b 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_group.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_group.sh
@@ -15,3 +15,10 @@
 	friendship_lpn_group \
 	friendship_other_group \
 	friendship_friend_group
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_msg_group_psa \
+	friendship_lpn_group \
+	friendship_other_group \
+	friendship_friend_group
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh.sh
index 0276d8e..072e427 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh.sh
@@ -15,3 +15,10 @@
 	friendship_lpn_msg_mesh \
 	friendship_other_msg \
 	friendship_friend_est
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_msg_mesh_psa \
+	friendship_lpn_msg_mesh \
+	friendship_other_msg \
+	friendship_friend_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh_low_lat.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh_low_lat.sh
index 5d4c61a..d659281 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh_low_lat.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_mesh_low_lat.sh
@@ -17,3 +17,10 @@
 	friendship_lpn_msg_mesh \
 	friendship_other_msg \
 	friendship_friend_est
+
+conf=prj_mesh1d1_conf
+overlay="overlay_low_lat_conf_overlay_psa_conf"
+RunTest mesh_friendship_msg_mesh_low_lat_psa \
+	friendship_lpn_msg_mesh \
+	friendship_other_msg \
+	friendship_friend_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_va_collision.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_va_collision.sh
index a1f0d18..360095d 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_va_collision.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/msg_va_collision.sh
@@ -28,3 +28,9 @@
 RunTest mesh_friendship_msg_va_collision_1d1 \
 	friendship_lpn_va_collision \
 	friendship_friend_va_collision
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_msg_va_collision_psa \
+	friendship_lpn_va_collision \
+	friendship_friend_va_collision
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/overflow.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/overflow.sh
index 78027eb..d717be6 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/overflow.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/overflow.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_overflow_1d1 \
 	friendship_friend_overflow \
 	friendship_lpn_overflow
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_overflow_psa \
+	friendship_friend_overflow \
+	friendship_lpn_overflow
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/poll.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/poll.sh
index b91a5db..90e744a 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/poll.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/poll.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_poll_1d1 \
 	friendship_friend_est \
 	friendship_lpn_poll
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_poll_psa \
+	friendship_friend_est \
+	friendship_lpn_poll
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/re-establish.sh b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/re-establish.sh
index e0e35ef..10abb44 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/friendship/re-establish.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/friendship/re-establish.sh
@@ -13,3 +13,9 @@
 RunTest mesh_friendship_re_est_1d1 \
 	friendship_friend_est \
 	friendship_lpn_re_est
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_friendship_re_est_psa \
+	friendship_friend_est \
+	friendship_lpn_re_est
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_all.sh b/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_all.sh
index 0e62118..eef25d0 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_all.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_all.sh
@@ -15,3 +15,10 @@
 	heartbeat_publish_all \
 	heartbeat_publish_all \
 	heartbeat_subscribe_all
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_heartbeat_sub_cb_api_all_psa \
+	heartbeat_publish_all \
+	heartbeat_publish_all \
+	heartbeat_subscribe_all
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_unicast.sh b/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_unicast.sh
index b08114b..fc0660e 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_unicast.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/heartbeat/sub_cb_api_unicast.sh
@@ -15,3 +15,10 @@
 	heartbeat_publish_unicast \
 	heartbeat_publish_unicast \
 	heartbeat_subscribe_unicast
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_heartbeat_sub_cb_api_unicast_psa \
+	heartbeat_publish_unicast \
+	heartbeat_publish_unicast \
+	heartbeat_subscribe_unicast
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_deferring.sh b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_deferring.sh
index 5d206ab..cdf39da 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_deferring.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_deferring.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_ivi_deferring_1d1 ivi_ivu_deferring
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_ivi_deferring_psa ivi_ivu_deferring
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_recovery.sh b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_recovery.sh
index bd41215..39514bf 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_recovery.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_recovery.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_ivi_recovery_1d1 ivi_ivu_recovery
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_ivi_recovery_psa ivi_ivu_recovery
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_update.sh b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_update.sh
index 9318884..ee2b6b2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_update.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/iv_index/iv_update.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_ivi_update_1d1 ivi_ivu_normal
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_ivi_update_psa ivi_ivu_normal
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_max_sdu.sh b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_max_sdu.sh
index a5b55e5..99f0563 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_max_sdu.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_max_sdu.sh
@@ -17,3 +17,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_lcd_test_max_access_payload \
 	lcd_cli_max_sdu_comp_data_request lcd_srv_comp_data_status_respond
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lcd_test_max_access_payload_psa \
+	lcd_cli_max_sdu_comp_data_request lcd_srv_comp_data_status_respond
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_split.sh b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_split.sh
index 8c938d1..45d2c10 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_split.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_comp_data_split.sh
@@ -22,3 +22,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_lcd_test_split_comp_data \
 	lcd_cli_split_comp_data_request lcd_srv_comp_data_status_respond
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lcd_test_split_comp_data_psa \
+	lcd_cli_split_comp_data_request lcd_srv_comp_data_status_respond
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_max_sdu.sh b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_max_sdu.sh
index 3b6e90c..83cc788 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_max_sdu.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_max_sdu.sh
@@ -18,3 +18,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_lcd_test_max_metadata_access_payload \
 	lcd_cli_max_sdu_metadata_request lcd_srv_metadata_status_respond
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lcd_test_max_metadata_access_payload_psa \
+	lcd_cli_max_sdu_metadata_request lcd_srv_metadata_status_respond
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_split.sh b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_split.sh
index 9e8dfc1..622b4ce 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_split.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/large_comp_data/get_metadata_split.sh
@@ -21,3 +21,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_lcd_test_split_metadata \
 	lcd_cli_split_metadata_request lcd_srv_metadata_status_respond
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_lcd_test_split_metadata_psa \
+	lcd_cli_split_metadata_request lcd_srv_metadata_status_respond
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/op_agg/full_status_msg_list.sh b/tests/bsim/bluetooth/mesh/tests_scripts/op_agg/full_status_msg_list.sh
index ac1f92f..fb60110 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/op_agg/full_status_msg_list.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/op_agg/full_status_msg_list.sh
@@ -25,3 +25,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_op_agg_test_max_access_payload \
 	op_agg_cli_max_len_sequence_msg_send op_agg_srv_max_len_status_msg_send
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_op_agg_test_max_access_payload_psa \
+	op_agg_cli_max_len_sequence_msg_send op_agg_srv_max_len_status_msg_send
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/access.sh b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/access.sh
index a3860a3..54c115c 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/access.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/access.sh
@@ -59,3 +59,32 @@
 overlay=overlay_pst_conf
 RunTest mesh_pst_access_data_check_1d1 persistence_access_data_load --\
 	-argstest access-cfg=not-configured
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_data_save
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_data_load --\
+	-argstest access-cfg=configured
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_sub_overwrite --\
+	-argstest access-cfg=configured
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_data_load --\
+	-argstest access-cfg=new-subs
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_data_remove --\
+	-argstest access-cfg=new-subs
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_access_data_check_psa persistence_access_data_load --\
+	-argstest access-cfg=not-configured
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/cfg.sh b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/cfg.sh
index 641c4c0..4368700 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/cfg.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/cfg.sh
@@ -35,3 +35,19 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_pst_conf
 RunTest mesh_pst_cfg_check_1d1 persistence_cfg_load -- -argstest stack-cfg=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_cfg_check_psa persistence_cfg_save -- -argstest stack-cfg=0
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_cfg_check_psa persistence_cfg_load -- -argstest stack-cfg=0
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_cfg_check_psa persistence_cfg_save -- -argstest stack-cfg=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_cfg_check_psa persistence_cfg_load -- -argstest stack-cfg=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/provisioning.sh b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/provisioning.sh
index 4ee4e23..277adff 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/provisioning.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/provisioning.sh
@@ -23,3 +23,11 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_pst_conf
 RunTest mesh_pst_prov_data_check_1d1 persistence_provisioning_data_load
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_prov_data_check_psa persistence_provisioning_data_save
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_prov_data_check_psa persistence_provisioning_data_load
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/reprovisioning.sh b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/reprovisioning.sh
index 2e294cc..3ecf7e9 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/persistence/reprovisioning.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/persistence/reprovisioning.sh
@@ -27,3 +27,13 @@
 overlay=overlay_pst_conf
 RunTest mesh_pst_repr_1d1 persistence_reprovisioning_device \
 	persistence_reprovisioning_provisioner
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_repr_psa persistence_reprovisioning_device \
+	persistence_reprovisioning_provisioner -- -argstest clear-settings=1
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_pst_repr_psa persistence_reprovisioning_device \
+	persistence_reprovisioning_provisioner
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_adv.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_adv.sh
index 19248d1..48724dd 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_adv.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_adv.sh
@@ -8,3 +8,7 @@
 # Test Random value changes for different Random intervals (10s, 0 - on every beacon, 30s).
 conf=prj_mesh1d1_conf
 RunTest mesh_priv_beacon_adv beacon_rx_priv_adv beacon_tx_priv_adv
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_adv_psa beacon_rx_priv_adv beacon_tx_priv_adv
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_interleave.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_interleave.sh
index 6137f60..6d574a7 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_interleave.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_interleave.sh
@@ -17,3 +17,7 @@
 # - PRB is enabled, SNB is disabled. Third PRB is advertised
 conf=prj_mesh1d1_conf
 RunTest mesh_priv_beacon_interleave beacon_rx_priv_interleave beacon_tx_priv_interleave
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_interleave_psa beacon_rx_priv_interleave beacon_tx_priv_interleave
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_invalid.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_invalid.sh
index 0fe934e6..b198328 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_invalid.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_invalid.sh
@@ -7,3 +7,7 @@
 # Test if Private Beacons with invalid data do not affect device
 conf=prj_mesh1d1_conf
 RunTest mesh_priv_beacon_invalid beacon_rx_priv_invalid beacon_tx_priv_invalid
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_invalid_psa beacon_rx_priv_invalid beacon_tx_priv_invalid
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu.sh
index 12eacdb..bb9a591 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu.sh
@@ -10,3 +10,10 @@
   beacon_rx_on_iv_update \
   beacon_tx_priv_on_iv_update \
   -- -argstest rand-int=1
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_on_iv_update_psa \
+  beacon_rx_on_iv_update \
+  beacon_tx_priv_on_iv_update \
+  -- -argstest rand-int=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu_long_interval.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu_long_interval.sh
index ff6742f..ad0d11d 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu_long_interval.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_ivu_long_interval.sh
@@ -12,3 +12,10 @@
   beacon_rx_on_iv_update \
   beacon_tx_priv_on_iv_update \
   -- -argstest rand-int=3
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_on_iv_update_long_interval_psa \
+  beacon_rx_on_iv_update \
+  beacon_tx_priv_on_iv_update \
+  -- -argstest rand-int=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr.sh
index 4be5009..eaf6338 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr.sh
@@ -10,3 +10,10 @@
   beacon_rx_on_key_refresh \
   beacon_tx_priv_on_key_refresh \
   -- -argstest rand-int=1
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_on_key_refresh_psa \
+  beacon_rx_on_key_refresh \
+  beacon_tx_priv_on_key_refresh \
+  -- -argstest rand-int=1
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr_long_interval.sh b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr_long_interval.sh
index 7b2c0f3..cc5722e 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr_long_interval.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/priv_beacon/priv_beacon_kr_long_interval.sh
@@ -12,3 +12,10 @@
   beacon_rx_on_key_refresh \
   beacon_tx_priv_on_key_refresh \
   -- -argstest rand-int=3
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_priv_beacon_on_key_refresh_long_interval_psa \
+  beacon_rx_on_key_refresh \
+  beacon_tx_priv_on_key_refresh \
+  -- -argstest rand-int=3
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_one_duration.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_one_duration.sh
index 1fd78fd..168c262 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_one_duration.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_one_duration.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_prov_iv_update_one_duration_1d1 prov_provisioner_iv_update_flag_one
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_iv_update_one_duration_psa prov_provisioner_iv_update_flag_one
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_zero_duration.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_zero_duration.sh
index b9f10d0..07165b3 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_zero_duration.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/ivu_flag_zero_duration.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_prov_iv_update_zero_duration_1d1 prov_provisioner_iv_update_flag_zero
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_iv_update_zero_duration_psa prov_provisioner_iv_update_flag_zero
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_multi.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_multi.sh
index fc50401..7d8dfbe6 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_multi.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_multi.sh
@@ -19,3 +19,11 @@
 	prov_device_pb_adv_no_oob \
 	prov_device_pb_adv_no_oob \
 	prov_device_pb_adv_no_oob
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_multi_psa \
+	prov_provisioner_pb_adv_multi \
+	prov_device_pb_adv_no_oob \
+	prov_device_pb_adv_no_oob \
+	prov_device_pb_adv_no_oob
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_no_oob.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_no_oob.sh
index 893f9df..bfcb854 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_no_oob.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_no_oob.sh
@@ -12,3 +12,9 @@
 RunTest mesh_prov_pb_adv_on_oob_1d1 \
 	prov_device_pb_adv_no_oob \
 	prov_provisioner_pb_adv_no_oob
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_on_oob_psa \
+	prov_device_pb_adv_no_oob \
+	prov_provisioner_pb_adv_no_oob
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ib_pk.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ib_pk.sh
index 1d66b66..22d197a 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ib_pk.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ib_pk.sh
@@ -11,3 +11,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_prov_pb_adv_oob_auth_1d1 \
 	prov_device_pb_adv_oob_auth prov_provisioner_pb_adv_oob_auth
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_oob_auth_psa \
+	prov_device_pb_adv_oob_auth prov_provisioner_pb_adv_oob_auth
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ignore_oob_pk.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ignore_oob_pk.sh
index 7827942..5459997 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ignore_oob_pk.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_ignore_oob_pk.sh
@@ -12,3 +12,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_prov_pb_adv_device_w_oob_pk_prvnr_wt_pk_1d1 \
 	prov_device_pb_adv_oob_public_key prov_provisioner_pb_adv_oob_auth_no_oob_public_key
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_device_w_oob_pk_prvnr_wt_pk_psa \
+	prov_device_pb_adv_oob_public_key prov_provisioner_pb_adv_oob_auth_no_oob_public_key
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_oob_pk.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_oob_pk.sh
index 2dcae7f..b8ab3a5 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_oob_pk.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_oob_auth_oob_pk.sh
@@ -11,3 +11,8 @@
 conf=prj_mesh1d1_conf
 RunTest mesh_prov_pb_adv_oob_public_key_1d1 \
 	prov_device_pb_adv_oob_public_key prov_provisioner_pb_adv_oob_public_key
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_oob_public_key_psa \
+	prov_device_pb_adv_oob_public_key prov_provisioner_pb_adv_oob_public_key
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_reprovision.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_reprovision.sh
index 193bd34..9c70514 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_reprovision.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_adv_reprovision.sh
@@ -12,3 +12,9 @@
 RunTest mesh_prov_pb_adv_repr_1d1 \
 	prov_device_pb_adv_reprovision \
 	prov_provisioner_pb_adv_reprovision
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_adv_repr_psa \
+	prov_device_pb_adv_reprovision \
+	prov_provisioner_pb_adv_reprovision
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_nppi_robustness.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_nppi_robustness.sh
index 52ca990..d707fdb 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_nppi_robustness.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_nppi_robustness.sh
@@ -18,3 +18,10 @@
 	prov_provisioner_pb_remote_client_nppi_robustness \
 	prov_device_pb_remote_server_unproved \
 	prov_device_pb_remote_server_nppi_robustness
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_remote_nppi_robustness_psa \
+	prov_provisioner_pb_remote_client_nppi_robustness \
+	prov_device_pb_remote_server_unproved \
+	prov_device_pb_remote_server_nppi_robustness
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_parallel.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_parallel.sh
index aec30c6..2c33943 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_parallel.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_parallel.sh
@@ -17,3 +17,11 @@
 	prov_device_pb_remote_server_unproved \
 	prov_device_pb_adv_no_oob \
 	prov_device_pb_adv_no_oob
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_remote_parallel_psa \
+	prov_provisioner_pb_remote_client_parallel \
+	prov_device_pb_remote_server_unproved \
+	prov_device_pb_adv_no_oob \
+	prov_device_pb_adv_no_oob
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_pst_ncrp.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_pst_ncrp.sh
index 9f73a6e..f8669cb 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_pst_ncrp.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_pst_ncrp.sh
@@ -51,3 +51,28 @@
 	prov_provisioner_pb_remote_client_ncrp_second_time \
 	prov_device_pb_remote_server_proved \
 	prov_device_pb_remote_server_ncrp_second_time
+
+# The same test but with PSA crypto
+# Step 1
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_prov_pst_pb_remote_ncrp_psa \
+	prov_provisioner_pb_remote_client_ncrp_provision \
+	prov_device_pb_remote_server_unproved \
+	prov_device_pb_remote_server_ncrp_prepare
+
+# Step 2
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_prov_pst_pb_remote_ncrp_psa \
+	prov_provisioner_pb_remote_client_ncrp \
+	prov_device_pb_remote_server_proved \
+	prov_device_pb_remote_server_ncrp
+
+# Step 3
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_prov_pst_pb_remote_ncrp_psa \
+	prov_provisioner_pb_remote_client_ncrp_second_time \
+	prov_device_pb_remote_server_proved \
+	prov_device_pb_remote_server_ncrp_second_time
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_reprovision.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_reprovision.sh
index c4f1d8a..a49cbcd 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_reprovision.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_reprovision.sh
@@ -17,3 +17,10 @@
 	prov_provisioner_pb_remote_client_reprovision \
 	prov_device_pb_remote_server_unproved \
 	prov_device_pb_adv_reprovision
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_remote_reprovision_psa \
+	prov_provisioner_pb_remote_client_reprovision \
+	prov_device_pb_remote_server_unproved \
+	prov_device_pb_adv_reprovision
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_timeout.sh b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_timeout.sh
index d765f25..8ef61c2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_timeout.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/provision/pb_remote_timeout.sh
@@ -29,3 +29,10 @@
 	prov_provisioner_pb_remote_client_provision_timeout \
 	prov_device_pb_remote_server_unproved_unresponsive \
 	prov_device_unresponsive
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_prov_pb_remote_provisioning_timeout_psa \
+	prov_provisioner_pb_remote_client_provision_timeout \
+	prov_device_pb_remote_server_unproved_unresponsive \
+	prov_device_unresponsive
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/replay_attack.sh b/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/replay_attack.sh
index 2ca843e..190e9e4 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/replay_attack.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/replay_attack.sh
@@ -25,3 +25,15 @@
 RunTest mesh_replay_attack_1d1 \
 	rpc_tx_power_replay_attack \
 	rpc_rx_power_replay_attack
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_replay_attack_psa \
+	rpc_tx_immediate_replay_attack \
+	rpc_rx_immediate_replay_attack
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_replay_attack_psa \
+	rpc_tx_power_replay_attack \
+	rpc_rx_power_replay_attack
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/rpl_frag.sh b/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/rpl_frag.sh
index 3618e8a..9573102 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/rpl_frag.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/replay_cache/rpl_frag.sh
@@ -25,3 +25,11 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_pst_conf
 RunTest mesh_replay_fragmentation_1d1 rpc_rx_reboot_after_defrag
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_replay_fragmentation_psa rpc_rx_rpl_frag rpc_tx_rpl_frag
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest mesh_replay_fragmentation_psa rpc_rx_reboot_after_defrag
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/sar/sar_cfg_persistent_storage.sh b/tests/bsim/bluetooth/mesh/tests_scripts/sar/sar_cfg_persistent_storage.sh
index c908672..dbe8685 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/sar/sar_cfg_persistent_storage.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/sar/sar_cfg_persistent_storage.sh
@@ -12,3 +12,8 @@
 overlay=overlay_pst_conf
 RunTest sar_persistence sar_srv_cfg_store
 RunTest sar_persistence sar_srv_cfg_restore
+
+conf=prj_mesh1d1_conf
+overlay="overlay_pst_conf_overlay_psa_conf"
+RunTest sar_persistence_psa sar_srv_cfg_store
+RunTest sar_persistence_psa sar_srv_cfg_restore
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/sar/slow_transfer_test.sh b/tests/bsim/bluetooth/mesh/tests_scripts/sar/slow_transfer_test.sh
index 47ee720..a022c23 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/sar/slow_transfer_test.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/sar/slow_transfer_test.sh
@@ -17,3 +17,8 @@
 conf=prj_mesh1d1_conf
 RunTest sar_slow_test \
 	sar_cli_max_len_sdu_slow_send sar_srv_max_len_sdu_slow_receive
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest sar_slow_test_psa \
+	sar_cli_max_len_sdu_slow_send sar_srv_max_len_sdu_slow_receive
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/sar/stress_test.sh b/tests/bsim/bluetooth/mesh/tests_scripts/sar/stress_test.sh
index 6856617..89707ad 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/sar/stress_test.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/sar/stress_test.sh
@@ -16,3 +16,8 @@
 conf=prj_mesh1d1_conf
 RunTest sar_test \
 	sar_cli_max_len_sdu_send sar_srv_max_len_sdu_receive
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest sar_test_psa \
+	sar_cli_max_len_sdu_send sar_srv_max_len_sdu_receive
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/scanner/invalid_ad_type.sh b/tests/bsim/bluetooth/mesh/tests_scripts/scanner/invalid_ad_type.sh
index 6f88c9d..9199ac6 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/scanner/invalid_ad_type.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/scanner/invalid_ad_type.sh
@@ -12,3 +12,9 @@
 RunTest mesh_scanner_invalid_ad_type_1d1 \
 	scanner_tx_invalid_ad_type \
 	scanner_rx_invalid_packet
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_scanner_invalid_ad_type_psa \
+	scanner_tx_invalid_ad_type \
+	scanner_rx_invalid_packet
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/scanner/wrong_packet_length.sh b/tests/bsim/bluetooth/mesh/tests_scripts/scanner/wrong_packet_length.sh
index 1bcf8b7..8f09190 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/scanner/wrong_packet_length.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/scanner/wrong_packet_length.sh
@@ -12,3 +12,9 @@
 RunTest mesh_scanner_wrong_packet_length_1d1 \
 	scanner_tx_wrong_packet_length \
 	scanner_rx_invalid_packet
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_scanner_wrong_packet_length_psa \
+	scanner_tx_wrong_packet_length \
+	scanner_rx_invalid_packet
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/fixed.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/fixed.sh
index daabb1b..d4b86d2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/fixed.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/fixed.sh
@@ -17,3 +17,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_fixed_1d1 transport_tx_fixed transport_rx_fixed
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_fixed_1d1 transport_tx_fixed transport_rx_fixed
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/group.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/group.sh
index d407eaa..d85d7cf 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/group.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/group.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_group_1d1 transport_tx_group transport_rx_group
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_group_psa transport_tx_group transport_rx_group
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback.sh
index 3ea5505..9cc1fb3 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest transport_loopback_1d1 transport_tx_loopback transport_rx_none
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest transport_loopback_psa transport_tx_loopback transport_rx_none
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group.sh
index 270139d..3be2bb2 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_loopback_group_1d1 transport_tx_loopback_group transport_rx_group
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_loopback_group_psa transport_tx_loopback_group transport_rx_group
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group_low_lat.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group_low_lat.sh
index 777470f..63829e0 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group_low_lat.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/loopback_group_low_lat.sh
@@ -10,3 +10,7 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_low_lat_conf
 RunTest mesh_transport_loopback_group_low_lat_1d1 transport_tx_loopback_group transport_rx_group
+
+conf=prj_mesh1d1_conf
+overlay="overlay_low_lat_conf_overlay_psa_conf"
+RunTest mesh_transport_loopback_group_low_lat_psa transport_tx_loopback_group transport_rx_group
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_block.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_block.sh
index 7db7384..21a56f3 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_block.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_block.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_seg_block_1d1 transport_tx_seg_block transport_rx_seg_block
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_seg_block_psa transport_tx_seg_block transport_rx_seg_block
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_concurrent.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_concurrent.sh
index 81b1e57..40ba38a 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_concurrent.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_concurrent.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_seg_concurrent_1d1 transport_tx_seg_concurrent transport_rx_seg_concurrent
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_seg_concurrent_psa transport_tx_seg_concurrent transport_rx_seg_concurrent
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_fail.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_fail.sh
index 8a1816b..ca650ed 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_fail.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_fail.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_seg_fail_1d1 transport_tx_seg_fail
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_seg_fail_psa transport_tx_seg_fail
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_ivu.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_ivu.sh
index 0fe822d..9268e42 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_ivu.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/seg_ivu.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_seg_ivu_1d1 transport_tx_seg_ivu transport_rx_seg_ivu
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_seg_ivu_psa transport_tx_seg_ivu transport_rx_seg_ivu
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast.sh
index 4f7c33d..a107a86 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_unicast_1d1 transport_tx_unicast transport_rx_unicast
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_unicast_psa transport_tx_unicast transport_rx_unicast
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast_low_lat.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast_low_lat.sh
index ab61e1d..cbfc8ea 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast_low_lat.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unicast_low_lat.sh
@@ -10,3 +10,7 @@
 conf=prj_mesh1d1_conf
 overlay=overlay_low_lat_conf
 RunTest mesh_transport_unicast_low_lat_1d1 transport_tx_unicast transport_rx_unicast
+
+conf=prj_mesh1d1_conf
+overlay="overlay_low_lat_conf_overlay_psa_conf"
+RunTest mesh_transport_unicast_low_lat_psa transport_tx_unicast transport_rx_unicast
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unknown_app.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unknown_app.sh
index 03ff31e..2a1b274 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/unknown_app.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/unknown_app.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_unknown_app_1d1 transport_tx_unknown_app transport_rx_none
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_unknown_app_psa transport_tx_unknown_app transport_rx_none
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/va.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/va.sh
index 6dd9e3b..698bd16 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/va.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/va.sh
@@ -8,3 +8,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_va_1d1 transport_tx_va transport_rx_va
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_va_psa transport_tx_va transport_rx_va
diff --git a/tests/bsim/bluetooth/mesh/tests_scripts/transport/va_collision.sh b/tests/bsim/bluetooth/mesh/tests_scripts/transport/va_collision.sh
index 9259b02..631c437 100755
--- a/tests/bsim/bluetooth/mesh/tests_scripts/transport/va_collision.sh
+++ b/tests/bsim/bluetooth/mesh/tests_scripts/transport/va_collision.sh
@@ -9,3 +9,7 @@
 
 conf=prj_mesh1d1_conf
 RunTest mesh_transport_va_collision_1d1 transport_tx_va_collision transport_rx_va_collision
+
+conf=prj_mesh1d1_conf
+overlay=overlay_psa_conf
+RunTest mesh_transport_va_collision_psa transport_tx_va_collision transport_rx_va_collision
diff --git a/tests/bsim/compile.source b/tests/bsim/compile.source
index 22ff8ee..603585d 100644
--- a/tests/bsim/compile.source
+++ b/tests/bsim/compile.source
@@ -22,7 +22,8 @@
   local cc_flags="${cc_flags:-"-Werror"}"
 
   if [ "${conf_overlay}" ]; then
-    local exe_basename="${exe_name:-bs_${BOARD}_${app}_${conf_file}_${conf_overlay}}"
+    overlays="${conf_overlay//;/_}"
+    local exe_basename="${exe_name:-bs_${BOARD}_${app}_${conf_file}_${overlays}}"
   else
     local exe_basename="${exe_name:-bs_${BOARD}_${app}_${conf_file}}"
   fi
@@ -43,7 +44,7 @@
   if [ $conf_file != "prj.conf" ]; then
     local cmake_cmd+=( -DCONF_FILE=${conf_file})
   fi
-  local cmake_cmd+=( -DOVERLAY_CONFIG=${conf_overlay} \
+  local cmake_cmd+=( -DOVERLAY_CONFIG="${conf_overlay}" \
             ${modules_arg} \
             ${cmake_args} -DCMAKE_C_FLAGS=\"${cc_flags}\" ${app_root}/${app})