Attest: Add initial attestation prototype
Details:
- implement initial version of API
- implement veneer function and SVC handler
- implement wrapper functions around veneers on S and NS side
- create manifest files and generate new partition defines
- add attestation service to build system
- update linker scripts for ARMCLANG and GNUARM
Change-Id: I987509c6cad08fcd082667bca7dbc9a328ea03de
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
diff --git a/interface/src/tfm_initial_attestation_api.c b/interface/src/tfm_initial_attestation_api.c
new file mode 100644
index 0000000..b935f34
--- /dev/null
+++ b/interface/src/tfm_initial_attestation_api.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include "psa_initial_attestation_api.h"
+#include "tfm_initial_attestation_veneers.h"
+#include "tfm_ns_lock.h"
+#include "psa_client.h"
+
+enum psa_attest_err_t
+psa_initial_attest_get_token(const uint8_t *challenge_obj,
+ uint32_t challenge_size,
+ uint8_t *token,
+ uint32_t *token_size)
+{
+ psa_invec in_vec[1];
+ psa_outvec out_vec[1];
+
+ in_vec[0].base = challenge_obj;
+ in_vec[0].len = challenge_size;
+
+ out_vec[0].base = token;
+ out_vec[0].len = *token_size;
+
+ return tfm_ns_lock_dispatch((veneer_fn)tfm_attest_veneer_get_token,
+ (uint32_t)in_vec, 1,
+ (uint32_t)out_vec, 1);
+}