diff options
author | Valerio Setti <valerio.setti@nordicsemi.no> | 2024-06-17 17:34:03 +0200 |
---|---|---|
committer | Valerio Setti <valerio.setti@nordicsemi.no> | 2024-06-18 11:00:17 +0200 |
commit | 2fd9572f274ffac9c81081fc2e690e881c061a6b (patch) | |
tree | ea8713ae26d882084ac94a5ec5caf694b386507b /tests | |
parent | 7c52100fbd882437b5fb46e639c5db57bcc56b15 (diff) | |
download | mbedtls-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')
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); |