This application has at least three different parties:
- Client - the data owner
- Trusted Server - can be a government or trustee which acts as a key/IAM server and stores clients encrypted data
- Analytics Engine or its Clients - who are authorized by data owner to get some insight from data owner's data
Our goal is to run application using Fentec-libraries in Intel SGX enclave.
- Client - Data Owner C++ REST client uses CiFEr and runs with graphene-SGX
- Trusted Entity Go REST server uses GoFE
- Analytics Engine Go REST server uses GoFE
cd trustedentity
go run main.go
cd analyticsengine
go run main.go
Clone this repo and go to pp_analytics_app directory
cd client
- Install libcifer followings steps here.
- Install libcurl-dev
sudo apt-get install libcurl4-openssl-dev
- Run
GRAPHENE_DIR=<graphene-root-dir> make SGX=1
(non-debug) orGRAPHENE_DIR=<graphene-root-dir> make SGX=1 DEBUG=1
(debug) in the directory.
With SGX:
SGX=1 ./pal_loader ./fe_sgx_demo_client