summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:23 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:54:44 +0000
commit836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch)
tree1604da8f482d02effa033c94a84be42bc0c848c3 /fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz
netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c
deleted file mode 100644
index 89c4144aa..000000000
--- a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/sgx-ra/wasm-app/main.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2022 Intel Corporation
- * Copyright (c) 2020-2021 Alibaba Cloud
- *
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "lib_rats_wrapper.h"
-
-#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
-
-/**
- * hex_dump
- *
- * @brief dump data in hex format
- *
- * @param title: Title
- * @param buf: User buffer
- * @param size: Dump data size
- * @param number: The number of outputs per line
- *
- * @return void
- */
-void
-hex_dump(const char *title, const uint8_t *buf, uint32_t size, uint32_t number)
-{
- int i, j;
- if (title) {
- printf("\n\t%s:\n\n", title);
- }
-
- for (i = 0; i < size; i += number) {
- printf("%08X: ", i);
-
- for (j = 0; j < number; j++) {
- if (j % 8 == 0) {
- printf(" ");
- }
- if (i + j < size)
- printf("%02X ", buf[i + j]);
- else
- printf(" ");
- }
- printf(" ");
-
- for (j = 0; j < number; j++) {
- if (i + j < size) {
- printf("%c", __is_print(buf[i + j]) ? buf[i + j] : '.');
- }
- }
- printf("\n");
- }
-}
-
-int
-main(int argc, char **argv)
-{
- int ret_code = -1;
- char *evidence_json = NULL;
-
- // Generate user_data by SHA256 buffer and the wasm module.
- // user_data = SHA256(sha256_wasm_module || buffer)
- const char *buffer = "This is a sample.";
-
- // If you want to declare the evidence of type rats_sgx_evidence_t on the
- // stack, you should modify the stack size of the CMAKE_EXE_LINKER_FLAGS in
- // CMakeLists.txt to 51200 at least.
- rats_sgx_evidence_t *evidence =
- (rats_sgx_evidence_t *)malloc(sizeof(rats_sgx_evidence_t));
- if (!evidence) {
- printf("ERROR: No memory to allocate.\n");
- goto err;
- }
-
- int rats_err = librats_collect(&evidence_json, buffer);
- if (rats_err != 0) {
- printf("ERROR: Collect evidence failed, error code: %#x\n", rats_err);
- goto err;
- }
-
- if (librats_parse_evidence(evidence_json, evidence) != 0) {
- printf("ERROR: Parse evidence failed.\n");
- goto err;
- }
-
- // You could use these parameters for further verification.
- hex_dump("Quote", evidence->quote, evidence->quote_size, 32);
- hex_dump("User Data", evidence->user_data, SGX_USER_DATA_SIZE, 32);
- hex_dump("MRENCLAVE", evidence->mr_enclave, SGX_MEASUREMENT_SIZE, 32);
- hex_dump("MRSIGNER", evidence->mr_signer, SGX_MEASUREMENT_SIZE, 32);
- printf("\n\tProduct ID:\t\t%u\n", evidence->product_id);
- printf("\tSecurity Version:\t%u\n", evidence->security_version);
- printf("\tAttributes.flags:\t%llu\n", evidence->att_flags);
- printf("\tAttribute.xfrm:\t\t%llu\n", evidence->att_xfrm);
-
- rats_err = librats_verify((const char *)evidence_json, evidence->user_data);
- if (rats_err != 0) {
- printf("ERROR: Evidence is not trusted, error code: %#x.\n", rats_err);
- goto err;
- }
-
- ret_code = 0;
- printf("Evidence is trusted.\n");
-
-err:
- if (evidence_json) {
- free(evidence_json);
- }
-
- if (evidence) {
- free(evidence);
- }
-
- return ret_code;
-}