Use libpsa in platform-inspect
Currently the demo applications use libts and reference the needed
extra components. Instead of the original solution libpsa is used
to hide the extra dependencies.
Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Change-Id: I29db7a600f7a8cfa22af8fd8e0bbc13ef39b45ad
diff --git a/components/app/platform-inspect/platform_inspect.cpp b/components/app/platform-inspect/platform_inspect.cpp
index 93c8f88..903e6a6 100644
--- a/components/app/platform-inspect/platform_inspect.cpp
+++ b/components/app/platform-inspect/platform_inspect.cpp
@@ -1,45 +1,52 @@
/*
- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ * Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <cstdint>
#include <cstdio>
+#include <service/attestation/reporter/dump/pretty/pretty_report_dump.h>
#include <string>
#include <vector>
-#include <psa/crypto.h>
-#include <service_locator.h>
-#include <service/attestation/reporter/dump/raw/raw_report_dump.h>
-#include <service/attestation/reporter/dump/pretty/pretty_report_dump.h>
+
#include "attest_report_fetcher.h"
+#include "libpsa.h"
-int main(int argc, char *argv[])
+int main(void)
{
- int rval = -1;
+ psa_status_t psa_status = PSA_ERROR_GENERIC_ERROR;
+ int rval = -1;
+ std::string error_msg;
+ std::vector<uint8_t> attest_report;
- psa_status_t psa_status = psa_crypto_init();
+ psa_status = libpsa_init_crypto_context("sn:trustedfirmware.org:crypto:0");
+ if (psa_status) {
+ printf("libpsa_init_crypto_context failed: %d\n", psa_status);
+ goto cleanup;
+ }
- if (psa_status != PSA_SUCCESS) {
+ psa_status = libpsa_init_attestation_context("sn:trustedfirmware.org:attestation:0");
+ if (psa_status) {
+ printf("libpsa_init_crypto_context failed: %d\n", psa_status);
+ goto cleanup;
+ }
- printf("psa_crypto_init failed: %d\n", psa_status);
- return rval;
- }
+ psa_status = psa_crypto_init();
+ if (psa_status) {
+ printf("psa_crypto_init failed: %d\n", psa_status);
+ goto cleanup;
+ }
- service_locator_init();
+ /* Fetch platform info */
+ if (fetch_and_verify(attest_report, error_msg))
+ rval = pretty_report_dump(attest_report.data(), attest_report.size());
+ else
+ printf("%s\n", error_msg.c_str());
- /* Fetch platform info */
- std::string error_msg;
- std::vector<uint8_t> attest_report;
+cleanup:
+ libpsa_deinit_crypto_context();
+ libpsa_deinit_attestation_context();
- if (fetch_attest_report(attest_report, error_msg)) {
-
- rval = pretty_report_dump(attest_report.data(), attest_report.size());
- }
- else {
-
- printf("%s\n", error_msg.c_str());
- }
-
- return rval;
+ return rval;
}