enclave

How to prove that certain data is calculated(or generated) inside Enclave(Intel SGX)?

僤鯓⒐⒋嵵緔 提交于 2019-12-23 03:34:09
问题 How to prove that certain data is calculated(or generated) inside Enclave(Intel SGX)? I tried to generate asymmetric key pair inside enclave(private key might be invisible to outside), and then expose public key with evidence(i guess quote or remote attestation related things). I got how remote attestation goes but, i cannot come up with applying remote attestation to verifying enclave-generated data. Is this possible scenario with Intel SGX? 回答1: You can prove the origin of the public key by

Error Loading Enclave: Couldn't open file with CreateFile()

别说谁变了你拦得住时间么 提交于 2019-12-12 01:22:39
问题 I'm trying to write a simple SGX project for a start. So I have this main host application routine that I've pretty much copied from Lars Richter's blog: #define ENCLAVE_FILE _T("Enclave.signed.dll") #include <tchar.h> #include <cstdio> #include "sgx_urts.h" #include "Enclave_u.h" int main() { sgx_enclave_id_t eid; sgx_status_t ret = SGX_SUCCESS; sgx_launch_token_t token = { 0 }; int updated = 0; ret = sgx_create_enclave(ENCLAVE_FILE, SGX_DEBUG_FLAG, &token, &updated, &eid, NULL); if (ret !=

Passing C++ struct to enclave from app in Intel SGX

做~自己de王妃 提交于 2019-12-09 09:10:43
问题 I have a C++ struct like this: struct node { string splitOn; string label; bool isLeaf; vector<string> childrenValues; vector<node*> children; }; I wanted to pass or read this from App to the Intel SGX enclave. Based on what is mentioned here: https://software.intel.com/en-us/forums/intel-software-guard-extensions-intel-sgx/topic/703489 I tried this: APP: node *root = new node; root = buildDecisionTree(dataTable, root, *tableInfo); //this initializes the root void *data3 = static_cast<void*>

Passing C++ struct to enclave from app in Intel SGX

孤街浪徒 提交于 2019-12-03 12:12:47
I have a C++ struct like this: struct node { string splitOn; string label; bool isLeaf; vector<string> childrenValues; vector<node*> children; }; I wanted to pass or read this from App to the Intel SGX enclave. Based on what is mentioned here: https://software.intel.com/en-us/forums/intel-software-guard-extensions-intel-sgx/topic/703489 I tried this: APP: node *root = new node; root = buildDecisionTree(dataTable, root, *tableInfo); //this initializes the root void *data3 = static_cast<void*>(root); ecall_my_dtree(global_eid, &ecall_return, data3); EDL: public int ecall_my_dtree([user_check]

C++ Arguments to SGX Enclave Edge Functions

巧了我就是萌 提交于 2019-11-30 09:43:06
问题 I'm trying to write a simple SGX enclave that takes in a vector of booleans, but apparently edger8r creates c code; so the edl code enclave{ from "sgx_tstdc.edl" import *; include "BetaDist.h" include <vector> trusted { BetaDist Estimate(std::vector<bool> X, double max_z, double max_delta); }; untrusted { }; }; produces a compile error (Amusingly, the Intel compiler reports it under the title "catastrophic error") saying header vector can't be found. It seems to me that the problem can be

C++ Arguments to SGX Enclave Edge Functions

感情迁移 提交于 2019-11-29 16:44:06
I'm trying to write a simple SGX enclave that takes in a vector of booleans, but apparently edger8r creates c code; so the edl code enclave{ from "sgx_tstdc.edl" import *; include "BetaDist.h" include <vector> trusted { BetaDist Estimate(std::vector<bool> X, double max_z, double max_delta); }; untrusted { }; }; produces a compile error (Amusingly, the Intel compiler reports it under the title "catastrophic error") saying header vector can't be found. It seems to me that the problem can be solved just by compiling the output edge code with a c++ flag. Would that work? Even if so, is there a