KoffeinFlummi / hybridpir

Rust implementation of a hybrid Private Information Retrieval (PIR) protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HybridPIR

Rust implementation of a hybrid Private Information Retrieval (PIR) protocol, using CIP-PIR as the multi-server, and SealPIR as the single-server protocol, including Android example.

CIP-PIR: implementation, paper

SealPIR: implementation, paper

Dependencies

  • Rust (rustup)
  • Android NDK 21.0.6113669

Setup

  • copy/link/merge cargo-config.toml into ~/.cargo/config, adjusting paths as necessary
  • $ rustup target add aarch64-linux-android armv7-linux-androideabi
  • $ ./build.sh to build Rust project and create libraries for Android project
  • Run $ ./gradlew installRunDebug in android/ to build and run APK

Troubleshooting

  • libc++_shared.so errors: Adjust android/app/src/main/jniLibs/*/libc++_shared.so links
  • Rust build errors: Check NDK paths in ~/.cargo/config and build.sh

About

Rust implementation of a hybrid Private Information Retrieval (PIR) protocol


Languages

Language:Rust 96.9%Language:Java 2.6%Language:Shell 0.5%