xref: /rk3399_ARM-atf/include/drivers/measured_boot/rse/dice_prot_env.h (revision a5b97052d8d736a4b846a79186bd21cd2858c00d)
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