xref: /rk3399_rockchip-uboot/include/optee_include/OpteeClientInterface.h (revision 78ef5fbdb92712dc771643c913975ff4faff380d)
1ae8ec5e1SHisping Lin /*
2ae8ec5e1SHisping Lin  * Copyright 2017, Rockchip Electronics Co., Ltd
3ae8ec5e1SHisping Lin  * hisping lin, <hisping.lin@rock-chips.com>
4ae8ec5e1SHisping Lin  *
5ae8ec5e1SHisping Lin  * SPDX-License-Identifier:	GPL-2.0+
6ae8ec5e1SHisping Lin  */
7ae8ec5e1SHisping Lin #ifndef _OPTEECLIENTTEST_H_
8ae8ec5e1SHisping Lin #define _OPTEECLIENTTEST_H_
9ae8ec5e1SHisping Lin 
10*78ef5fbdSqiujian #include <optee_include/tee_client_api.h>
11*78ef5fbdSqiujian 
122e40c2c1SJason Zhu #define ATAP_HEX_UUID_LEN 32
132e40c2c1SJason Zhu #define ATTEST_DH_SIZE     8
142e40c2c1SJason Zhu #define ATTEST_UUID_SIZE     (ATAP_HEX_UUID_LEN+1)
152e40c2c1SJason Zhu #define ATTEST_CA_OUT_SIZE     256
162e40c2c1SJason Zhu 
17ae8ec5e1SHisping Lin void test_optee(void);
18ae8ec5e1SHisping Lin uint32_t trusty_read_rollback_index(uint32_t slot, uint64_t *value);
19ae8ec5e1SHisping Lin uint32_t trusty_write_rollback_index(uint32_t slot, uint64_t value);
20ae8ec5e1SHisping Lin uint32_t trusty_read_permanent_attributes(uint8_t *attributes, uint32_t size);
21ae8ec5e1SHisping Lin uint32_t trusty_write_permanent_attributes(uint8_t *attributes, uint32_t size);
22ae8ec5e1SHisping Lin uint32_t trusty_read_lock_state(uint8_t *lock_state);
23ae8ec5e1SHisping Lin uint32_t trusty_write_lock_state(uint8_t lock_state);
24ae8ec5e1SHisping Lin uint32_t trusty_read_flash_lock_state(uint8_t *flash_lock_state);
25ae8ec5e1SHisping Lin uint32_t trusty_write_flash_lock_state(uint8_t flash_lock_state);
26*78ef5fbdSqiujian 
27*78ef5fbdSqiujian /*
28*78ef5fbdSqiujian  * read data from rk_keymaster
29*78ef5fbdSqiujian  *
30*78ef5fbdSqiujian  * @filename:		the filename of the saved data to read
31*78ef5fbdSqiujian  * @filename_size: 	size of filename
32*78ef5fbdSqiujian  * @data: 		the buffer used to read data from rk_keymaster
33*78ef5fbdSqiujian  * @data_size: 		buffer size of the data
34*78ef5fbdSqiujian  *
35*78ef5fbdSqiujian  * @return a positive number in case of error, or 0 on success.
36*78ef5fbdSqiujian  */
37*78ef5fbdSqiujian TEEC_Result read_from_keymaster
38*78ef5fbdSqiujian 	(uint8_t *filename, uint32_t filename_size,
39*78ef5fbdSqiujian 	uint8_t *data, uint32_t data_size);
40ae8ec5e1SHisping Lin uint32_t write_to_keymaster
41ae8ec5e1SHisping Lin 	(uint8_t *filename, uint32_t filename_size,
42ae8ec5e1SHisping Lin 	uint8_t *data, uint32_t data_size);
436ef445a4SHisping Lin uint32_t trusty_read_attribute_hash(uint32_t *buf, uint32_t length);
446ef445a4SHisping Lin uint32_t trusty_write_attribute_hash(uint32_t *buf, uint32_t length);
4516539616SHisping Lin uint32_t trusty_notify_optee_uboot_end(void);
462cd27853SHisping Lin uint32_t trusty_read_vbootkey_hash(uint32_t *buf, uint32_t length);
472cd27853SHisping Lin uint32_t trusty_write_vbootkey_hash(uint32_t *buf, uint32_t length);
48468df3b2SHisping Lin uint32_t trusty_read_vbootkey_enable_flag(uint8_t *flag);
49095e2a82SHisping Lin uint32_t trusty_read_permanent_attributes_flag(uint8_t *attributes);
50095e2a82SHisping Lin uint32_t trusty_write_permanent_attributes_flag(uint8_t attributes);
514aa61755SAndy Ye uint32_t trusty_attest_dh(uint8_t *dh, uint32_t *dh_size);
524aa61755SAndy Ye uint32_t trusty_attest_uuid(uint8_t *uuid, uint32_t *uuid_size);
534aa61755SAndy Ye uint32_t trusty_attest_get_ca
544aa61755SAndy Ye 	(uint8_t *operation_start, uint32_t *operation_size,
554aa61755SAndy Ye 	 uint8_t *out, uint32_t *out_len);
564aa61755SAndy Ye uint32_t trusty_attest_set_ca(uint8_t *ca_response, uint32_t *ca_response_size);
57*78ef5fbdSqiujian 
58*78ef5fbdSqiujian /*
59*78ef5fbdSqiujian  * read oem unlock status from rk_keymaster
60*78ef5fbdSqiujian  *
61*78ef5fbdSqiujian  * @unlock:used to read oem unlock status code,0:locked,1:unlocked
62*78ef5fbdSqiujian  *
63*78ef5fbdSqiujian  * @return a positive number in case of error, or 0 on success.
64*78ef5fbdSqiujian  */
65*78ef5fbdSqiujian TEEC_Result trusty_read_oem_unlock(uint8_t *unlock);
66*78ef5fbdSqiujian 
67*78ef5fbdSqiujian /*
68*78ef5fbdSqiujian  * update oem unlock status to rk_keymaster
69*78ef5fbdSqiujian  *
70*78ef5fbdSqiujian  * @unlock: oem unlock status code,0:locked,1:unlocked
71*78ef5fbdSqiujian  *
72*78ef5fbdSqiujian  * @return a positive number in case of error, or 0 on success.
73*78ef5fbdSqiujian  */
74*78ef5fbdSqiujian TEEC_Result trusty_write_oem_unlock(uint8_t unlock);
75*78ef5fbdSqiujian 
76ae8ec5e1SHisping Lin #endif
77