blob: 4dca76a80303b0f5ce3304d76f51054a88638e39 [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
Tamas Bana24ce042019-02-20 11:50:22 +000045attest_get_boot_data(uint8_t major_type,
46 struct tfm_boot_data *boot_data,
47 uint32_t len)
Tamas Band2b2f092019-01-23 22:29:14 +000048{
Tamas Band2b2f092019-01-23 22:29:14 +000049 enum psa_attest_err_t attest_res = PSA_ATTEST_ERR_SUCCESS;
50
Tamas Banca682b22019-01-29 22:03:43 +000051#ifndef BL2
Tamas Banca682b22019-01-29 22:03:43 +000052 /* Avoid compiler warning due to unused argument */
53 (void)len;
54 (void)major_type;
55
Tamas Bana24ce042019-02-20 11:50:22 +000056 boot_data->header.tlv_magic = SHARED_DATA_TLV_INFO_MAGIC;
57 boot_data->header.tlv_tot_len = SHARED_DATA_HEADER_SIZE;
Tamas Banca682b22019-01-29 22:03:43 +000058#else
59 enum tfm_status_e tfm_res;
60
Tamas Bana24ce042019-02-20 11:50:22 +000061 tfm_res = tfm_core_get_boot_data(major_type, boot_data, len);
Tamas Band2b2f092019-01-23 22:29:14 +000062 if (tfm_res != TFM_SUCCESS) {
63 attest_res = PSA_ATTEST_ERR_INIT_FAILED;
64 }
Tamas Banca682b22019-01-29 22:03:43 +000065#endif /* BL2 */
Tamas Band2b2f092019-01-23 22:29:14 +000066
67 return attest_res;
68}