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 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 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