aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorValerio Setti <valerio.setti@nordicsemi.no>2024-06-17 17:34:03 +0200
committerValerio Setti <valerio.setti@nordicsemi.no>2024-06-18 11:00:17 +0200
commit2fd9572f274ffac9c81081fc2e690e881c061a6b (patch)
treeea8713ae26d882084ac94a5ec5caf694b386507b /tests
parent7c52100fbd882437b5fb46e639c5db57bcc56b15 (diff)
downloadmbedtls-2fd9572f274ffac9c81081fc2e690e881c061a6b.zip
mbedtls-2fd9572f274ffac9c81081fc2e690e881c061a6b.tar.gz
mbedtls-2fd9572f274ffac9c81081fc2e690e881c061a6b.tar.bz2
psasim-server: add function to reset operations slots
When the client disconnects the server can clean operations slots so that upcoming clients will not hit the maximum slot limit (at least it's very unlikely to happen for normal clients). Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
Diffstat (limited to 'tests')
-rw-r--r--tests/psa-client-server/psasim/src/psa_sim_crypto_server.c5
-rw-r--r--tests/psa-client-server/psasim/src/psa_sim_serialise.c6
-rw-r--r--tests/psa-client-server/psasim/src/psa_sim_serialise.h2
-rw-r--r--tests/psa-client-server/psasim/src/server.c2
4 files changed, 15 insertions, 0 deletions
diff --git a/tests/psa-client-server/psasim/src/psa_sim_crypto_server.c b/tests/psa-client-server/psasim/src/psa_sim_crypto_server.c
index da3adb0..30d4b26 100644
--- a/tests/psa-client-server/psasim/src/psa_sim_crypto_server.c
+++ b/tests/psa-client-server/psasim/src/psa_sim_crypto_server.c
@@ -2314,3 +2314,8 @@ psa_status_t psa_crypto_call(psa_msg_t msg)
return ok ? PSA_SUCCESS : PSA_ERROR_GENERIC_ERROR;
}
+
+void psa_crypto_close(void)
+{
+ psa_sim_serialize_reset();
+}
diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.c b/tests/psa-client-server/psasim/src/psa_sim_serialise.c
index 9e8c38b..e326637 100644
--- a/tests/psa-client-server/psasim/src/psa_sim_serialise.c
+++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.c
@@ -706,3 +706,9 @@ int psasim_deserialise_mbedtls_svc_key_id_t(uint8_t **pos,
return 1;
}
+
+void psa_sim_serialize_reset(void)
+{
+ memset(hash_operation_handles, 0, sizeof(hash_operation_handles));
+ memset(hash_operations, 0, sizeof(hash_operations));
+}
diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.h b/tests/psa-client-server/psasim/src/psa_sim_serialise.h
index 9c69e65..7217595 100644
--- a/tests/psa-client-server/psasim/src/psa_sim_serialise.h
+++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.h
@@ -54,6 +54,8 @@
* don't contain pointers.
*/
+void psa_sim_serialize_reset(void);
+
/** Return how much buffer space is needed by \c psasim_serialise_begin().
*
* \return The number of bytes needed in the buffer for
diff --git a/tests/psa-client-server/psasim/src/server.c b/tests/psa-client-server/psasim/src/server.c
index 77ce269..10ab5a2 100644
--- a/tests/psa-client-server/psasim/src/server.c
+++ b/tests/psa-client-server/psasim/src/server.c
@@ -54,6 +54,7 @@ int psa_server_main(int argc, char *argv[])
int client_disconnected = 0;
char mbedtls_version[18];
extern psa_status_t psa_crypto_call(psa_msg_t msg);
+ extern psa_status_t psa_crypto_close(void);
mbedtls_version_get_string_full(mbedtls_version);
SERVER_PRINT("%s", mbedtls_version);
@@ -81,6 +82,7 @@ int psa_server_main(int argc, char *argv[])
SERVER_PRINT("Got a disconnection message");
ret = PSA_SUCCESS;
client_disconnected = 1;
+ psa_crypto_close();
break;
default:
SERVER_PRINT("Got an IPC call of type %d", msg.type);