arm-trusted-firmware/plat/arm/board/tc/rss_ap_test_stubs.c
Mate Toth-Pal 25dd2172ae feat(tc): add delegated attest and measurement tests
This patch adds Delegated Attestation and Measured Boot tests to the
plat/arm/board/tc platform.
The test suite can be activated by adding the build time option
`PLATFORM_TEST=1` to the make command. In this case the boot sequence is
not finished, plat_error_handler is called after the tests are run
(regardless of the test result.)

The actual test code is coming from the Trusted-Firmware-M project. Some
of the files of the tf-m-tests and tf-m-extras repo are linked to the
BL31 image.

Versions used for testing:
https://git.trustedfirmware.org/TF-M/tf-m-tests
    614e8c358377e4146e8ee13d1246e59d01b4bf1b

https: //git.trustedfirmware.org/TF-M/tf-m-extras
    3be9fdd557e6df449de93c2101973fb011699b3d

Change-Id: I98f0f5f760a39d2d7e0dd11d33663ddb75f0b6fc
Signed-off-by: Mate Toth-Pal <mate.toth-pal@arm.com>
2022-12-16 17:15:57 +01:00

121 lines
2.8 KiB
C

/*
* Copyright (c) 2022, Arm Ltd. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <delegated_attestation.h>
#include <measured_boot.h>
#include <psa/error.h>
psa_status_t
tfm_measured_boot_extend_measurement(uint8_t index,
const uint8_t *signer_id,
size_t signer_id_size,
const uint8_t *version,
size_t version_size,
uint32_t measurement_algo,
const uint8_t *sw_type,
size_t sw_type_size,
const uint8_t *measurement_value,
size_t measurement_value_size,
bool lock_measurement)
{
return rss_measured_boot_extend_measurement(index,
signer_id,
signer_id_size,
version,
version_size,
measurement_algo,
sw_type,
sw_type_size,
measurement_value,
measurement_value_size,
lock_measurement);
}
psa_status_t
tfm_measured_boot_read_measurement(uint8_t index,
uint8_t *signer_id,
size_t signer_id_size,
size_t *signer_id_len,
uint8_t *version,
size_t version_size,
size_t *version_len,
uint32_t *measurement_algo,
uint8_t *sw_type,
size_t sw_type_size,
size_t *sw_type_len,
uint8_t *measurement_value,
size_t measurement_value_size,
size_t *measurement_value_len,
bool *is_locked)
{
return rss_measured_boot_read_measurement(index,
signer_id,
signer_id_size,
signer_id_len,
version,
version_size,
version_len,
measurement_algo,
sw_type,
sw_type_size,
sw_type_len,
measurement_value,
measurement_value_size,
measurement_value_len,
is_locked);
}
psa_status_t
tfm_delegated_attest_get_token(const uint8_t *dak_pub_hash,
size_t dak_pub_hash_size,
uint8_t *token_buf,
size_t token_buf_size,
size_t *token_size)
{
return rss_delegated_attest_get_token(dak_pub_hash,
dak_pub_hash_size,
token_buf,
token_buf_size,
token_size);
}
psa_status_t
tfm_delegated_attest_get_delegated_key(uint8_t ecc_curve,
uint32_t key_bits,
uint8_t *key_buf,
size_t key_buf_size,
size_t *key_size,
uint32_t hash_algo)
{
return rss_delegated_attest_get_delegated_key(ecc_curve,
key_bits,
key_buf,
key_buf_size,
key_size,
hash_algo);
}
int tfm_log_printf(const char *fmt, ...)
{
int count;
va_list ap;
va_start(ap, fmt);
count = vprintf(fmt, ap);
va_end(ap);
return count;
}
void printf_set_color(int color_id)
{
(void)color_id;
}