xref: /rk3399_rockchip-uboot/include/optee_include/OpteeClientInterface.h (revision 0e00a84cdedf7a1949486746225b35984b351eca)
1 /*
2  * Copyright 2017, Rockchip Electronics Co., Ltd
3  * hisping lin, <hisping.lin@rock-chips.com>
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 #ifndef _OPTEECLIENTTEST_H_
8 #define _OPTEECLIENTTEST_H_
9 
10 #include <optee_include/tee_client_api.h>
11 
12 #define ATAP_HEX_UUID_LEN 32
13 #define ATTEST_DH_SIZE     8
14 #define ATTEST_UUID_SIZE     (ATAP_HEX_UUID_LEN+1)
15 #define ATTEST_CA_OUT_SIZE     256
16 
17 void test_optee(void);
18 uint32_t trusty_read_rollback_index(uint32_t slot, uint64_t *value);
19 uint32_t trusty_write_rollback_index(uint32_t slot, uint64_t value);
20 uint32_t trusty_read_permanent_attributes(uint8_t *attributes, uint32_t size);
21 uint32_t trusty_write_permanent_attributes(uint8_t *attributes, uint32_t size);
22 uint32_t trusty_read_lock_state(uint8_t *lock_state);
23 uint32_t trusty_write_lock_state(uint8_t lock_state);
24 uint32_t trusty_read_flash_lock_state(uint8_t *flash_lock_state);
25 uint32_t trusty_write_flash_lock_state(uint8_t flash_lock_state);
26 
27 /*
28  * read data from rk_keymaster
29  *
30  * @filename:		the filename of the saved data to read
31  * @filename_size: 	size of filename
32  * @data: 		the buffer used to read data from rk_keymaster
33  * @data_size: 		buffer size of the data
34  *
35  * @return a positive number in case of error, or 0 on success.
36  */
37 TEEC_Result read_from_keymaster
38 	(uint8_t *filename, uint32_t filename_size,
39 	uint8_t *data, uint32_t data_size);
40 uint32_t write_to_keymaster
41 	(uint8_t *filename, uint32_t filename_size,
42 	uint8_t *data, uint32_t data_size);
43 int write_keybox_to_secure_storage(uint8_t *uboot_data, uint32_t len);
44 uint32_t trusty_read_attribute_hash(uint32_t *buf, uint32_t length);
45 uint32_t trusty_write_attribute_hash(uint32_t *buf, uint32_t length);
46 uint32_t trusty_notify_optee_uboot_end(void);
47 uint32_t trusty_read_vbootkey_hash(uint32_t *buf, uint32_t length);
48 uint32_t trusty_write_vbootkey_hash(uint32_t *buf, uint32_t length);
49 uint32_t trusty_read_vbootkey_enable_flag(uint8_t *flag);
50 uint32_t trusty_read_permanent_attributes_flag(uint8_t *attributes);
51 uint32_t trusty_write_permanent_attributes_flag(uint8_t attributes);
52 uint32_t trusty_attest_dh(uint8_t *dh, uint32_t *dh_size);
53 uint32_t trusty_attest_uuid(uint8_t *uuid, uint32_t *uuid_size);
54 uint32_t trusty_attest_get_ca
55 	(uint8_t *operation_start, uint32_t *operation_size,
56 	 uint8_t *out, uint32_t *out_len);
57 uint32_t trusty_attest_set_ca(uint8_t *ca_response, uint32_t *ca_response_size);
58 
59 /*
60  * read oem unlock status from rk_keymaster
61  *
62  * @unlock:used to read oem unlock status code,0:locked,1:unlocked
63  *
64  * @return a positive number in case of error, or 0 on success.
65  */
66 TEEC_Result trusty_read_oem_unlock(uint8_t *unlock);
67 
68 /*
69  * update oem unlock status to rk_keymaster
70  *
71  * @unlock: oem unlock status code,0:locked,1:unlocked
72  *
73  * @return a positive number in case of error, or 0 on success.
74  */
75 TEEC_Result trusty_write_oem_unlock(uint8_t unlock);
76 
77 #endif
78