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