Skip to content

Jamie-Cui/yacl-r

Repository files navigation

Yet Another Cryptographic Library for Research

CircleCI

██╗   ██╗ █████╗  ██████╗██╗           ██████╗ 
╚██╗ ██╔╝██╔══██╗██╔════╝██║           ██╔══██╗
 ╚████╔╝ ███████║██║     ██║     █████╗██████╔╝
  ╚██╔╝  ██╔══██║██║     ██║     ╚════╝██╔══██╗
   ██║   ██║  ██║╚██████╗███████╗      ██║  ██║
   ╚═╝   ╚═╝  ╚═╝ ╚═════╝╚══════╝      ╚═╝  ╚═╝

Yacl-r is a fork and extension of the C++ crypto library secretflow/yacl. The crypto modules in Yacl implement many state-of-art secure computation protocols, including primitives like OT, VOLE, TPRE, and tools like PRG, RO. Check the full list of Yacl's supported algorithms in ALGORITHMS.md.

Warning

Yacl-r is under heavy development, please use at your own risk

Target Platforms (hopefully): MacOS Apple Silicon, Linux x86_64 and Linux aarch64.

Repo Layout

  • base: some basic types and utils in yacl.
  • crypto: crypto algorithms without link.
  • engine: interactive engines that is desgined for a purpose.
  • io: a simple streaming-based io library.
  • kernel: crypto kernel that includes link with (WIP) multi-thread support, i.e. OT, DPF.
  • link: a simple rpc-based MPI framework, providing the SPMD parallel programming capability.
  • math: a simplified math lib (or interface), supporting big integer.
  • utils: other good-to-have utilities

Prerequisites

Getting Started

Yacl-r tries to support both cmake and bazel build system. For more guidelines about how to develop on yacl, please check the Getting Started Guide.

Ubuntu with CMake

# install dependencies
sudo apt install -y git cmake gcc-11 g++-11

# optional, make gcc-11 g++-11 system default
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 10

# download yacl-r
git clone https://github.com/Jamie-Cui/yacl-r.git

# enter the project
cd yacl-r

# configure 
cmake -S . -B build

# build (this may take a while)
cmake --build build

License

See LICENSE

About

yacl-r: Yet Another Cryptographic Library for Research

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published