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.
- base: some basic types and utils in yacl.
- crypto: crypto algorithms without link.
- kernel: crypto kernel that includes link with (WIP) multi-thread support, i.e. OT, DPF.
- io: a simple streaming-based io library.
- link: a simple rpc-based MPI framework, providing the SPMD parallel programming capability.
- bazel: .bazelversion file describes the recommended version of bazel. We recommend to use the official bazelisk to manage bazel version.
- gcc >= 10.3
- ninja/ninja-build
- Perl 5 with core modules (Required by OpenSSL)
Yacl uses the bazel build system, you may use the following codes to build and test yacl modules. For more guidelines about how to develop on yacl, please check the Getting Started Guide.