From fd46f7f1732adc51d595b562e82b6ee3f74606ae Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 31 Jul 2024 22:10:13 +0200 Subject: [PATCH] Migrate psasim wrappers to psa_custom_key_parameters_t Signed-off-by: Gilles Peskine --- .../psasim/src/psa_sim_generate.pl | 48 ------ .../psasim/src/psa_sim_serialise.pl | 161 +----------------- 2 files changed, 1 insertion(+), 208 deletions(-) diff --git a/tests/psa-client-server/psasim/src/psa_sim_generate.pl b/tests/psa-client-server/psasim/src/psa_sim_generate.pl index bc63975e83..e0e9b19f0d 100755 --- a/tests/psa-client-server/psasim/src/psa_sim_generate.pl +++ b/tests/psa-client-server/psasim/src/psa_sim_generate.pl @@ -564,13 +564,6 @@ EOF print $fh < UINT32_MAX / 2) { /* arbitrary limit */ - return 0; /* too big to serialise */ - } - - /* We use 32-bit lengths, which should be enough for any reasonable usage :) */ - /* (the UINT32_MAX / 2 above is an even more conservative check to avoid overflow here) */ - uint32_t len = (uint32_t) (sizeof(data_length) + sizeof(*params) + data_length); - if (*remaining < SER_TAG_SIZE + sizeof(uint32_t) + len) { - return 0; - } - - char tag[SER_TAG_SIZE] = "PKPP"; - - memcpy(*pos, tag, sizeof(tag)); - memcpy(*pos + sizeof(tag), &len, sizeof(len)); - *pos += sizeof(tag) + sizeof(len); - *remaining -= sizeof(tag) + sizeof(len); - - memcpy(*pos, &data_length, sizeof(data_length)); - memcpy(*pos + sizeof(data_length), params, sizeof(*params) + data_length); - *pos += sizeof(data_length) + sizeof(*params) + data_length; - *remaining -= sizeof(data_length) + sizeof(*params) + data_length; - - return 1; -} - -int psasim_deserialise_psa_key_production_parameters_t(uint8_t **pos, - size_t *remaining, - psa_key_production_parameters_t **params, - size_t *data_length) -{ - if (*remaining < SER_TAG_SIZE + sizeof(uint32_t)) { - return 0; /* can't even be an empty serialisation */ - } - - char tag[SER_TAG_SIZE] = "PKPP"; /* expected */ - uint32_t len; - - memcpy(&len, *pos + sizeof(tag), sizeof(len)); - - if (memcmp(*pos, tag, sizeof(tag)) != 0) { - return 0; /* wrong tag */ - } - - *pos += sizeof(tag) + sizeof(len); - *remaining -= sizeof(tag) + sizeof(len); - - if (*remaining < sizeof(*data_length)) { - return 0; /* missing data_length */ - } - memcpy(data_length, *pos, sizeof(*data_length)); - - if ((size_t) len != (sizeof(data_length) + sizeof(**params) + *data_length)) { - return 0; /* wrong length */ - } - - if (*remaining < sizeof(*data_length) + sizeof(**params) + *data_length) { - return 0; /* not enough data provided */ - } - - *pos += sizeof(data_length); - *remaining -= sizeof(data_length); - - psa_key_production_parameters_t *out = malloc(sizeof(**params) + *data_length); - if (out == NULL) { - return 0; /* allocation failure */ - } - - memcpy(out, *pos, sizeof(*out) + *data_length); - *pos += sizeof(*out) + *data_length; - *remaining -= sizeof(*out) + *data_length; - - *params = out; - - return 1; -} -EOF -} sub c_header {