Merge "fix(measured-boot): don't strip last non-0 char" into integration

This commit is contained in:
Sandrine Bailleux 2023-06-02 10:02:47 +02:00 committed by TrustedFirmware Code Review
commit 463655cc81
2 changed files with 16 additions and 6 deletions
include/lib/psa
lib/psa

View file

@ -36,10 +36,10 @@
* signer_id Pointer to signer_id buffer.
* signer_id_size Size of the signer_id in bytes.
* version Pointer to version buffer.
* version_size Size of the version string in bytes (with \0).
* version_size Size of the version string in bytes.
* measurement_algo Algorithm identifier used for measurement.
* sw_type Pointer to sw_type buffer.
* sw_type_size Size of the sw_type string in bytes (with \0).
* sw_type_size Size of the sw_type string in bytes.
* measurement_value Pointer to measurement_value buffer.
* measurement_value_size Size of the measurement_value in bytes.
* lock_measurement Boolean flag requesting whether the measurement

View file

@ -80,16 +80,23 @@ rss_measured_boot_extend_measurement(uint8_t index,
.lock_measurement = lock_measurement,
.measurement_algo = measurement_algo,
.sw_type = {0},
/* Removing \0 */
.sw_type_size = (sw_type_size > 0) ? (sw_type_size - 1) : 0,
.sw_type_size = sw_type_size,
};
if (version_size > VERSION_MAX_SIZE) {
return PSA_ERROR_INVALID_ARGUMENT;
}
if (version_size > 0 && version[version_size - 1] == '\0') {
version_size--;
}
psa_invec in_vec[] = {
{.base = &extend_iov,
.len = sizeof(struct measured_boot_extend_iovec_t)},
{.base = signer_id, .len = signer_id_size},
{.base = version,
.len = (version_size > 0) ? (version_size - 1) : 0},
{.base = version, .len = version_size },
{.base = measurement_value, .len = measurement_value_size}
};
@ -97,6 +104,9 @@ rss_measured_boot_extend_measurement(uint8_t index,
if (extend_iov.sw_type_size > SW_TYPE_MAX_SIZE) {
return PSA_ERROR_INVALID_ARGUMENT;
}
if (sw_type_size > 0 && sw_type[sw_type_size - 1] == '\0') {
extend_iov.sw_type_size--;
}
memcpy(extend_iov.sw_type, sw_type, extend_iov.sw_type_size);
}