16cb5d326STamas Ban /*
2cd89a704SManish V Badarkhe * Copyright (c) 2022-2023, Arm Limited. All rights reserved.
36cb5d326STamas Ban *
46cb5d326STamas Ban * SPDX-License-Identifier: BSD-3-Clause
56cb5d326STamas Ban */
66cb5d326STamas Ban
76cb5d326STamas Ban #include <assert.h>
86cb5d326STamas Ban #include <stdint.h>
96cb5d326STamas Ban
106cb5d326STamas Ban #include <common/desc_image_load.h>
117f8589cdSTamas Ban #include <drivers/measured_boot/rse/rse_measured_boot.h>
126cb5d326STamas Ban
137f8589cdSTamas Ban extern struct rse_mboot_metadata tc_rse_mboot_metadata[];
146cb5d326STamas Ban
plat_mboot_measure_image(unsigned int image_id,image_info_t * image_data)156cb5d326STamas Ban int plat_mboot_measure_image(unsigned int image_id, image_info_t *image_data)
166cb5d326STamas Ban {
176cb5d326STamas Ban int err;
186cb5d326STamas Ban
197f8589cdSTamas Ban /* Calculate image hash and record data in RSE */
207f8589cdSTamas Ban err = rse_mboot_measure_and_record(tc_rse_mboot_metadata,
21cd89a704SManish V Badarkhe image_data->image_base,
226cb5d326STamas Ban image_data->image_size,
236cb5d326STamas Ban image_id);
246cb5d326STamas Ban if (err != 0) {
256cb5d326STamas Ban ERROR("%s%s image id %u (%i)\n",
267f8589cdSTamas Ban "Failed to ", "record in RSE", image_id, err);
276cb5d326STamas Ban }
286cb5d326STamas Ban
296cb5d326STamas Ban return err;
306cb5d326STamas Ban }
31eee9fb02SManish V Badarkhe
plat_mboot_measure_key(const void * pk_oid,const void * pk_ptr,size_t pk_len)32*0c3b84c1SBoyan Karatotev int plat_mboot_measure_key(const void *pk_oid, const void *pk_ptr, size_t pk_len)
33eee9fb02SManish V Badarkhe {
347f8589cdSTamas Ban return rse_mboot_set_signer_id(tc_rse_mboot_metadata, pk_oid, pk_ptr,
35eee9fb02SManish V Badarkhe pk_len);
36eee9fb02SManish V Badarkhe }
37