TF-M Reference Manual  1.2.0
TrustedFirmware-M
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
tfm_audit_secure_api.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #include "psa_audit_api.h"
9 #include "tfm_veneers.h"
10 
11 #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
12 
13 #define API_DISPATCH(sfn_name) \
14  tfm_##sfn_name##_veneer( \
15  in_vec, ARRAY_SIZE(in_vec), \
16  out_vec, ARRAY_SIZE(out_vec))
17 
18 #define API_DISPATCH_NO_INVEC(sfn_name) \
19  tfm_##sfn_name##_veneer( \
20  NULL, 0, \
21  out_vec, ARRAY_SIZE(out_vec))
22 
23 #define API_DISPATCH_NO_OUTVEC(sfn_name) \
24  tfm_##sfn_name##_veneer( \
25  in_vec, ARRAY_SIZE(in_vec), \
26  NULL, 0)
27 
28 __attribute__((section("SFN")))
29 psa_status_t psa_audit_retrieve_record(const uint32_t record_index,
30  const uint32_t buffer_size,
31  const uint8_t *token,
32  const uint32_t token_size,
33  uint8_t *buffer,
34  uint32_t *record_size)
35 {
36  psa_status_t status;
37  psa_invec in_vec[] = {
38  {.base = &record_index, .len = sizeof(uint32_t)},
39  {.base = token, .len = token_size},
40  };
41  psa_outvec out_vec[] = {
42  {.base = buffer, .len = buffer_size},
43  };
44 
46 
47  *record_size = out_vec[0].len;
48 
49  return status;
50 }
51 
52 __attribute__((section("SFN")))
53 psa_status_t psa_audit_get_info(uint32_t *num_records, uint32_t *size)
54 {
55  psa_status_t status;
56  psa_outvec out_vec[] = {
57  {.base = num_records, .len = sizeof(uint32_t)},
58  {.base = size, .len = sizeof(uint32_t)},
59  };
60 
62 
63  return status;
64 }
65 
66 __attribute__((section("SFN")))
67 psa_status_t psa_audit_get_record_info(const uint32_t record_index,
68  uint32_t *size)
69 {
70  psa_status_t status;
71  psa_invec in_vec[] = {
72  {.base = &record_index, .len = sizeof(uint32_t)},
73  };
74  psa_outvec out_vec[] = {
75  {.base = size, .len = sizeof(uint32_t)},
76  };
77 
79 
80  return status;
81 }
82 
83 __attribute__((section("SFN")))
84 psa_status_t psa_audit_delete_record(const uint32_t record_index,
85  const uint8_t *token,
86  const uint32_t token_size)
87 {
88  psa_status_t status;
89  psa_invec in_vec[] = {
90  {.base = &record_index, .len = sizeof(uint32_t)},
91  {.base = token, .len = token_size},
92  };
93 
95 
96  return status;
97 }
98 
99 __attribute__((section("SFN")))
101 {
102  psa_status_t status;
103  psa_invec in_vec[] = {
104  {.base = record, .len = sizeof(struct psa_audit_record)},
105  };
106 
108 
109  return status;
110 }
void * base
Definition: client.h:75
#define API_DISPATCH_NO_OUTVEC(sfn_name)
psa_status_t audit_core_delete_record(psa_invec in_vec[], size_t in_len, psa_outvec out_vec[], size_t out_len)
Definition: audit_core.c:491
#define API_DISPATCH_NO_INVEC(sfn_name)
psa_status_t audit_core_add_record(psa_invec in_vec[], size_t in_len, psa_outvec out_vec[], size_t out_len)
Definition: audit_core.c:623
#define API_DISPATCH(sfn_name)
psa_status_t psa_audit_retrieve_record(const uint32_t record_index, const uint32_t buffer_size, const uint8_t *token, const uint32_t token_size, uint8_t *buffer, uint32_t *record_size)
Retrieves a record at the specified index.
This structure contains the record that is added to the audit log by the requesting secure service...
psa_status_t psa_audit_delete_record(const uint32_t record_index, const uint8_t *token, const uint32_t token_size)
Deletes a record at the specified index.
psa_status_t psa_audit_add_record(const struct psa_audit_record *record)
Adds a record.
size_t len
Definition: client.h:76
psa_status_t psa_audit_get_record_info(const uint32_t record_index, uint32_t *size)
Returns the size of the record at the specified index.
psa_status_t audit_core_get_info(psa_invec in_vec[], size_t in_len, psa_outvec out_vec[], size_t out_len)
Definition: audit_core.c:560
psa_status_t audit_core_retrieve_record(psa_invec in_vec[], size_t in_len, psa_outvec out_vec[], size_t out_len)
Definition: audit_core.c:730
const void * base
Definition: client.h:67
int32_t psa_status_t
Function return status.
Definition: crypto_types.h:43
psa_status_t psa_audit_get_info(uint32_t *num_records, uint32_t *size)
Returns the total number and size of the records stored.
psa_status_t audit_core_get_record_info(psa_invec in_vec[], size_t in_len, psa_outvec out_vec[], size_t out_len)
Definition: audit_core.c:586