blob: 186a58c7422e0c8a31a8553e59b8b9396d6408c5 [file] [log] [blame]
Tamas Band2b2f092019-01-23 22:29:14 +00001/*
2 * Copyright (c) 2019, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#include "tfm_api.h"
9#include "tfm_secure_api.h"
10#include "attestation.h"
11#include "psa_initial_attestation_api.h"
12#include "bl2/include/tfm_boot_status.h"
13
14enum psa_attest_err_t
15attest_check_memory_access(void *addr,
16 uint32_t size,
17 enum attest_memory_access_t access)
18{
19 enum tfm_status_e tfm_res;
20 enum psa_attest_err_t attest_res = PSA_ATTEST_ERR_SUCCESS;
21
22 tfm_res = tfm_core_memory_permission_check(addr, size, access);
23 if (tfm_res) {
24 attest_res = PSA_ATTEST_ERR_INVALID_INPUT;
25 }
26
27 return attest_res;
28}
29
30enum psa_attest_err_t
31attest_get_caller_client_id(int32_t *caller_id)
32{
33 enum tfm_status_e tfm_res;
34 enum psa_attest_err_t attest_res = PSA_ATTEST_ERR_SUCCESS;
35
36 tfm_res = tfm_core_get_caller_client_id(caller_id);
37 if (tfm_res) {
38 attest_res = PSA_ATTEST_ERR_CLAIM_UNAVAILABLE;
39 }
40
41 return attest_res;
42}
43
44enum psa_attest_err_t
45attest_get_boot_data(uint8_t major_type, void *ptr, uint32_t len)
46{
Tamas Band2b2f092019-01-23 22:29:14 +000047 enum psa_attest_err_t attest_res = PSA_ATTEST_ERR_SUCCESS;
48
Tamas Banca682b22019-01-29 22:03:43 +000049#ifndef BL2
50 struct shared_data_tlv_header *tlv_header;
51
52 /* Avoid compiler warning due to unused argument */
53 (void)len;
54 (void)major_type;
55
56 tlv_header = (struct shared_data_tlv_header *)ptr;
57 tlv_header->tlv_magic = SHARED_DATA_TLV_INFO_MAGIC;
58 tlv_header->tlv_tot_len = SHARED_DATA_HEADER_SIZE;
59#else
60 enum tfm_status_e tfm_res;
61
Tamas Band2b2f092019-01-23 22:29:14 +000062 tfm_res = tfm_core_get_boot_data(major_type, ptr, len);
63 if (tfm_res != TFM_SUCCESS) {
64 attest_res = PSA_ATTEST_ERR_INIT_FAILED;
65 }
Tamas Banca682b22019-01-29 22:03:43 +000066#endif /* BL2 */
Tamas Band2b2f092019-01-23 22:29:14 +000067
68 return attest_res;
69}