/oram

A rust implementation of ORAM storage in Intel SGX

Primary LanguageRustApache License 2.0Apache-2.0

oram

A rust implementation of ORAM storage in Intel SGX.

Currently available algorithms:

  • Square-Root ORAM

Currently available storage backends:

backend std support 1️⃣ sgx support persistence
in-memory 2️⃣
LevelDB 🚧
SgxFS

Note:

  • 1️⃣ The std support is mostly for development and testing
  • 2️⃣ The in-memory backend has no persistence and should only be used for testing

Development

This crate can be built with std for development purpose.

# quick check in default std environment
cargo check
# unit test
cargo test

To make sure the crate also works in SGX.

cargo check --no-default-features --features=sgx

A all-in-one scripts for compile check.

./scripts/check.sh

Benchmarking

Install gnuplot.

sudo apt install gnuplot -y

Run the benchmarks

cargo bench

Open the file target/criterion/report/index.html in your browser and see the report.

Use in SGX

To use the crate in SGX environment, see the example project at examples/sgx.

License

Apache 2.0