1024c4948STamas Ban /* 2024c4948STamas Ban * Copyright (c) 2024, Arm Limited. All rights reserved. 3024c4948STamas Ban * 4024c4948STamas Ban * SPDX-License-Identifier: BSD-3-Clause 5024c4948STamas Ban */ 6024c4948STamas Ban 7024c4948STamas Ban #ifndef DICE_PROT_ENV_H 8024c4948STamas Ban #define DICE_PROT_ENV_H 9024c4948STamas Ban 10024c4948STamas Ban #include <stdbool.h> 11024c4948STamas Ban #include <stddef.h> 12024c4948STamas Ban #include <stdint.h> 13024c4948STamas Ban 14024c4948STamas Ban #include <drivers/measured_boot/metadata.h> 15024c4948STamas Ban 16024c4948STamas Ban #define DPE_INVALID_ID UINT32_MAX 17024c4948STamas Ban 18024c4948STamas Ban struct dpe_metadata { 19024c4948STamas Ban unsigned int id; 20024c4948STamas Ban uint32_t cert_id; 21024c4948STamas Ban uint8_t signer_id[SIGNER_ID_MAX_SIZE]; 22024c4948STamas Ban size_t signer_id_size; 23024c4948STamas Ban uint8_t version[VERSION_MAX_SIZE]; 24024c4948STamas Ban size_t version_size; 25024c4948STamas Ban uint8_t sw_type[SW_TYPE_MAX_SIZE]; 26024c4948STamas Ban size_t sw_type_size; 27024c4948STamas Ban bool allow_new_context_to_derive; 28024c4948STamas Ban bool retain_parent_context; 29024c4948STamas Ban bool create_certificate; 30*3201faf3STamas Ban int target_locality; 31024c4948STamas Ban void *pk_oid; 32024c4948STamas Ban }; 33024c4948STamas Ban 34024c4948STamas Ban void dpe_init(struct dpe_metadata *metadata); 35024c4948STamas Ban 36024c4948STamas Ban /* Returns 0 in case of success otherwise -1. */ 37024c4948STamas Ban int dpe_measure_and_record(struct dpe_metadata *metadata, 38024c4948STamas Ban uintptr_t data_base, uint32_t data_size, 39024c4948STamas Ban uint32_t data_id); 40024c4948STamas Ban 41024c4948STamas Ban int dpe_set_signer_id(struct dpe_metadata *metadata, 42024c4948STamas Ban const void *pk_oid, const void *pk_ptr, size_t pk_len); 43024c4948STamas Ban 44024c4948STamas Ban /* Child components inherit their first valid context handle from their parents. 45024c4948STamas Ban * How to share context handle is platform specific. 46024c4948STamas Ban */ 478e0fd0bfSTamas Ban void plat_dpe_share_context_handle(int *ctx_handle, int *parent_ctx_handle); 48024c4948STamas Ban void plat_dpe_get_context_handle(int *ctx_handle); 49024c4948STamas Ban 50024c4948STamas Ban #endif /* DICE_PROT_ENV_H */ 51