xref: /rk3399_rockchip-uboot/include/attestation_key.h (revision 67d79ab2462607c62e2eec07ab87f826dbb5a0e5)
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