Compiler-based tool that protects Intel SGX applications against controlled-channel attacks
C++ LLVM Assembly C Python OCaml Other
Switch branches/tags
Nothing to show
Clone or download
Ming-Wei Shih
Ming-Wei Shih fix bug
Latest commit b1fdda1 May 23, 2017
Permalink
Failed to load latest commit information.
function-name-pass init Apr 15, 2017
function-wrapper-pass init Apr 15, 2017
lib init Apr 15, 2017
llvm-tsgx fix bug May 23, 2017
test init Apr 15, 2017
LICENSE init Apr 15, 2017
README.md x Apr 15, 2017

README.md

T-SGX

Environment & Prerequisites

  • Intel Skylake CPU
  • Ubuntu 16.04 LTS
  • Intel SGX SDK & Driver
  • cmake

Build

  • Build tsgx-llvm backend
$ mkdir build-llvm
$ cd build-llvm
$ cmake -G "Unix Makefiles" ../llvm-tsgx
$ make
  • Build front-end pass
$ cd function-{name|wrapper}-pass
$ mkdir build
$ cd build
$ LLVM_DIR=/path/to/llvmBuild/share/llvm/cmake cmake ..
  (e.g., $ LLVM_DIR=../../build-llvm/share/llvm/cmake cmake ..)
$ make

Usage

  • See test/tsgx-test as a example
$ cd test/tsgx-test
$ make
$ ./App

Note

  • Because of the lazy page allocation feature in Linux, we make a workaround by using tsgx_init function (see lib/).
  • Please manually adjust the code size in tsgx_init accordingly.

Authors