xref: /rk3399_rockchip-uboot/include/keymaster.h (revision c2ba77d93f696c0ccb8f2b653571104e7b4afb4e)
1*c2ba77d9SJian Qiu // SPDX-License-Identifier: GPL-2.0
2*c2ba77d9SJian Qiu /*
3*c2ba77d9SJian Qiu  * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4*c2ba77d9SJian Qiu  */
5*c2ba77d9SJian Qiu 
6*c2ba77d9SJian Qiu #ifndef KEYMASTER_H_
7*c2ba77d9SJian Qiu #define KEYMASTER_H_
8*c2ba77d9SJian Qiu 
9*c2ba77d9SJian Qiu #include <optee_include/tee_client_api.h>
10*c2ba77d9SJian Qiu 
11*c2ba77d9SJian Qiu /*
12*c2ba77d9SJian Qiu  * read data from rk_keymaster
13*c2ba77d9SJian Qiu  *
14*c2ba77d9SJian Qiu  * @felename:           the filename of the saved data to read
15*c2ba77d9SJian Qiu  * @filename_size:      size of filename
16*c2ba77d9SJian Qiu  * @data:               the buffer used to read data from rk_keymaster
17*c2ba77d9SJian Qiu  * @data_size:          buffer size of the data
18*c2ba77d9SJian Qiu  *
19*c2ba77d9SJian Qiu  * @return a positive number in case of error, or 0 on success.
20*c2ba77d9SJian Qiu  */
21*c2ba77d9SJian Qiu TEEC_Result read_from_keymaster(uint8_t *filename,
22*c2ba77d9SJian Qiu 				uint32_t filename_size,
23*c2ba77d9SJian Qiu 				uint8_t *data,
24*c2ba77d9SJian Qiu 				uint32_t data_size);
25*c2ba77d9SJian Qiu 
26*c2ba77d9SJian Qiu /*
27*c2ba77d9SJian Qiu  * write data to rk_keymaster
28*c2ba77d9SJian Qiu  *
29*c2ba77d9SJian Qiu  * @felename:           the filename of the saved data to read
30*c2ba77d9SJian Qiu  * @filename_size:      size of filename
31*c2ba77d9SJian Qiu  * @data:               the buffer used to read data from rk_keymaster
32*c2ba77d9SJian Qiu  * @data_size:          buffer size of the data
33*c2ba77d9SJian Qiu  *
34*c2ba77d9SJian Qiu  * @return a positive number in case of error, or 0 on success.
35*c2ba77d9SJian Qiu  */
36*c2ba77d9SJian Qiu TEEC_Result write_to_keymaster(uint8_t *filename,
37*c2ba77d9SJian Qiu 			       uint32_t filename_size,
38*c2ba77d9SJian Qiu 			       uint8_t *data,
39*c2ba77d9SJian Qiu 			       uint32_t data_size);
40*c2ba77d9SJian Qiu 
41*c2ba77d9SJian Qiu /*
42*c2ba77d9SJian Qiu  * read oem unlock status from rk_keymaster
43*c2ba77d9SJian Qiu  *
44*c2ba77d9SJian Qiu  * @unlock:used to read oem unlock status code,0:locked,1:unlocked
45*c2ba77d9SJian Qiu  *
46*c2ba77d9SJian Qiu  * @return a positive number in case of error, or 0 on success.
47*c2ba77d9SJian Qiu  */
48*c2ba77d9SJian Qiu TEEC_Result trusty_read_oem_unlock(uint8_t *unlock);
49*c2ba77d9SJian Qiu 
50*c2ba77d9SJian Qiu /*
51*c2ba77d9SJian Qiu  * update oem unlock status to rk_keymaster
52*c2ba77d9SJian Qiu  *
53*c2ba77d9SJian Qiu  * @unlock: oem unlock status code,0:locked,1:unlocked
54*c2ba77d9SJian Qiu  *
55*c2ba77d9SJian Qiu  * @return a positive number in case of error, or 0 on success.
56*c2ba77d9SJian Qiu  */
57*c2ba77d9SJian Qiu TEEC_Result trusty_write_oem_unlock(uint8_t unlock);
58*c2ba77d9SJian Qiu 
59*c2ba77d9SJian Qiu #endif  //KEYMASTER_H_
60