1 /* 2 * Copyright (c) 2022-2024, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef RSE_MEASURED_BOOT_H 8 #define RSE_MEASURED_BOOT_H 9 10 #include <stdint.h> 11 12 #include <common/debug.h> 13 #include <drivers/measured_boot/metadata.h> 14 15 #define RSE_MBOOT_INVALID_ID UINT32_MAX 16 17 struct rse_mboot_metadata { 18 unsigned int id; 19 uint8_t slot; 20 uint8_t signer_id[SIGNER_ID_MAX_SIZE]; 21 size_t signer_id_size; 22 uint8_t version[VERSION_MAX_SIZE]; 23 size_t version_size; 24 uint8_t sw_type[SW_TYPE_MAX_SIZE]; 25 size_t sw_type_size; 26 void *pk_oid; 27 bool lock_measurement; 28 }; 29 30 /* Functions' declarations */ 31 void rse_measured_boot_init(struct rse_mboot_metadata *metadata_ptr); 32 int rse_mboot_measure_and_record(struct rse_mboot_metadata *metadata_ptr, 33 uintptr_t data_base, uint32_t data_size, 34 uint32_t data_id); 35 36 int rse_mboot_set_signer_id(struct rse_mboot_metadata *metadata_ptr, 37 const void *pk_oid, const void *pk_ptr, 38 size_t pk_len); 39 40 #endif /* RSE_MEASURED_BOOT_H */ 41