xref: /rk3399_rockchip-uboot/include/write_keybox.h (revision 1a4f6af8bfd44c8ae6e87a81ff125eed47042cc5)
1dfbf26e8STony Xu /* SPDX-License-Identifier: GPL-2.0 */
2dfbf26e8STony Xu /*
3dfbf26e8STony Xu  * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4dfbf26e8STony Xu  */
5dfbf26e8STony Xu 
6dfbf26e8STony Xu #ifndef WRITE_KEYBOX_H_
7dfbf26e8STony Xu #define	WRITE_KEYBOX_H_
8dfbf26e8STony Xu 
9dfbf26e8STony Xu #include <common.h>
10*53bea680STony Xu #include <optee_include/tee_client_api.h>
11dfbf26e8STony Xu 
129780bd18STony Xu #if defined CONFIG_ANDROID_WRITE_KEYBOX && defined CONFIG_ANDROID_KEYMASTER_CA
13dfbf26e8STony Xu /*
14dfbf26e8STony Xu  * write_keybox_to_secure_storage
15dfbf26e8STony Xu  *
16dfbf26e8STony Xu  * @received_data:	the data received from usb
17dfbf26e8STony Xu  * @len:		size of received_data
18dfbf26e8STony Xu  *
19dfbf26e8STony Xu  * @return a negative number in case of error, or 0 on success.
20dfbf26e8STony Xu  */
21dfbf26e8STony Xu uint32_t write_keybox_to_secure_storage(uint8_t *received_data, uint32_t len);
22dfbf26e8STony Xu 
239780bd18STony Xu /*
24*53bea680STony Xu  * write_to_secure_storage
25*53bea680STony Xu  *
26*53bea680STony Xu  * @is_use_rpmb:	0, write data to security patition
27*53bea680STony Xu  *			1, write data to rpmb
28*53bea680STony Xu  * @filename:		the file name of data written to secure storage
29*53bea680STony Xu  * @filename_size:	size of filename
30*53bea680STony Xu  * @data:		the data want to write to secure storage
31*53bea680STony Xu  * @data_size:		size of data
32*53bea680STony Xu  *
33*53bea680STony Xu  * @return a nonzero number in case of error, or 0 on success.
34*53bea680STony Xu  */
35*53bea680STony Xu TEEC_Result write_to_security_storage(uint8_t is_use_rpmb,
36*53bea680STony Xu 				      uint8_t *filename,
37*53bea680STony Xu 				      uint32_t filename_size,
38*53bea680STony Xu 				      uint8_t *data,
39*53bea680STony Xu 				      uint32_t data_size);
40*53bea680STony Xu /*
419780bd18STony Xu  * read_raw_data_from_secure_storege
429780bd18STony Xu  *
439780bd18STony Xu  * @raw_data:	the data read from secure storage
449780bd18STony Xu  * @data_size:	size of raw data
459780bd18STony Xu  *
469780bd18STony Xu  * @return size of raw_data in case of success, or 0 on fail
479780bd18STony Xu  */
489780bd18STony Xu uint32_t read_raw_data_from_secure_storage(uint8_t *received_data,
499780bd18STony Xu 					   uint32_t len);
5086574b32STony Xu char *new_strstr(const char *s1, const char *s2, uint32_t l1);
519780bd18STony Xu #else
write_keybox_to_secure_storage(uint8_t * raw_data,uint32_t data_size)529780bd18STony Xu inline uint32_t write_keybox_to_secure_storage(uint8_t *raw_data,
539780bd18STony Xu 					       uint32_t data_size)
549780bd18STony Xu {
559780bd18STony Xu 	return -EPERM;
569780bd18STony Xu }
579780bd18STony Xu 
read_raw_data_from_secure_storage(uint8_t * received_data,uint32_t len)589780bd18STony Xu inline uint32_t read_raw_data_from_secure_storage(uint8_t *received_data,
599780bd18STony Xu 						  uint32_t len)
609780bd18STony Xu {
619780bd18STony Xu 	return -EPERM;
629780bd18STony Xu }
639780bd18STony Xu #endif
649780bd18STony Xu #endif
65