191c73fb4Sqiujian /* 291c73fb4Sqiujian * Copyright 2018, Rockchip Electronics Co., Ltd 391c73fb4Sqiujian * qiujian, <qiujian@rock-chips.com> 491c73fb4Sqiujian * 591c73fb4Sqiujian * SPDX-License-Identifier: GPL-2.0+ 691c73fb4Sqiujian */ 791c73fb4Sqiujian 891c73fb4Sqiujian #ifndef ATTESTATION_KEY_H_ 991c73fb4Sqiujian #define ATTESTATION_KEY_H_ 1091c73fb4Sqiujian 1191c73fb4Sqiujian #include <common.h> 1291c73fb4Sqiujian 1391c73fb4Sqiujian typedef enum { 1491c73fb4Sqiujian ATAP_RESULT_OK, 1591c73fb4Sqiujian ATAP_RESULT_ERROR_DEVICE_NOT_FOUND, 1691c73fb4Sqiujian ATAP_RESULT_ERROR_PARTITION_NOT_FOUND, 1791c73fb4Sqiujian ATAP_RESULT_ERROR_BLOCK_READ, 1891c73fb4Sqiujian ATAP_RESULT_ERROR_BLOCK_WRITE, 1991c73fb4Sqiujian ATAP_RESULT_ERROR_INVALID_HEAD, 2091c73fb4Sqiujian ATAP_RESULT_ERROR_INVALID_BLOCK_NUM, 2191c73fb4Sqiujian ATAP_RESULT_ERROR_INVALID_DEVICE_ID, 2291c73fb4Sqiujian ATAP_RESULT_ERROR_BUF_COPY, 2391c73fb4Sqiujian ATAP_RESULT_ERROR_STORAGE, 24*67d79ab2Scallen.cai ATAP_RESULT_ERROR_ALREADY_EXSIT, 2591c73fb4Sqiujian } atap_result; 2691c73fb4Sqiujian 2791c73fb4Sqiujian /* load attestation key from misc partition. */ 2891c73fb4Sqiujian atap_result load_attestation_key(struct blk_desc *dev_desc, 2991c73fb4Sqiujian disk_partition_t *misc_partition); 301e8c0e44STony Xu atap_result read_key_data(uint8_t **key_buf, uint8_t *key_data, 311e8c0e44STony Xu uint32_t *key_data_length); 321e8c0e44STony Xu /* 331e8c0e44STony Xu * write attestation key to secure storage. 341e8c0e44STony Xu * @received_data: received data from usb 351e8c0e44STony Xu * @len: the size of received_data 361e8c0e44STony Xu * @return ATAP_RESULT_OK if ok, or ATAP_RESULT_ERROR_* on error 371e8c0e44STony Xu */ 381e8c0e44STony Xu atap_result write_attestation_key_to_secure_storage(uint8_t *received_data, 391e8c0e44STony Xu uint32_t len); 4091c73fb4Sqiujian #endif //ATTESTATION_KEY_H_ 41