Sycret documentation
Python library for Function Secret Sharing with an efficient Rust backend using the AES-NI hardware acceleration. It is used in PySyft for ARIANN: Low-Interaction Privacy-Preserving Deep Learning via Function Secret Sharing.
Installation
pip install sycret
Integration with PySyft
The Python package is called from PySyft, like in this branch.
Development instructions
Structure
src
: the Rust crate.rustfss
: the Python package calling the Rust crate with Maturin.tests
: tests for the Rust crate.test
: tests for the Python wrapper.
Build
- Create a Python environment from
dev-requirements.txt
maturin develop -b cffi --release
to build the crate, bind it to the Python package and install the package locally.
Test
cargo test
to test the Rust functionality.pytest test
to test the Python package.
Publish
docker run --rm --env RUSTFLAGS="-C target-feature=+aes,+ssse3" -v $(pwd):/io konstin2/maturin publish -b cffi --manylinux 2010 -u __token__ -p pypi-your-token