The compiler for ObliVM
Java Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.externalToolBuilders
.settings
examples
java/com/oblivm/compiler
lib
scripts
test/com/oblivm/compiler
tools
.classpath
.gitignore
.project
README.md
a.lcc
a.txt
clean.sh
compile.sh
compile_cygwin.sh
run-compiler.sh
run-compiler_cygwin.sh

README.md

ObliVM : A Programming Framework for Secure Computation (The compiler)

================================================================================


Author

The ObliVM compiler is developed and currently maintained by Chang Liu.


Disclaimer

The code is a research-quality proof of concept, and is still under development for more features and bug-fixing.


Prerequisit

Oracle Java 8 JavaCC 5.0 (to compile C.jj under the parser folder only) Python 2.7 (to run tools)


Compile

In Linux:

$ ./compile.sh

In Cygwin

$ ./compile_cygwin.sh

Run the hamming distance example (examples/hamming)

Compile the example:

$ ./run-compiler.sh 54321 examples/hamming/hamming.lcc

In Cygwin

$ ./run-compiler_cygwin.sh 54321 examples/hamming/hamming.lcc

Run the real secure computation:

$ ./runtogether.sh examples/hamming/input_alice.txt examples/hamming/input_bob.txt 

In Cygwin

$ ./runtogether_cygwin.sh examples/hamming/input_alice.txt examples/hamming/input_bob.txt 

Tools

Under tools/ folder, the following tools are available:

  • datainitilizer: initialize the bit input file from a file containing an integer or an array of integers

References

[LWNYS15] [ ObliVM: A Programming Framework for Secure Computation ] (http://www.cs.umd.edu/~liuchang/paper/oakland2015-oblivm.pdf) Chang Liu, Xiao Shuan Wang, Kartik Nayak, Yan Huang, Elaine Shi IEEE S&P 2015