A C++ library that contains cryptgraphy, network and io modules which other SecretFlow code depends on.
Repo layout:
- base: some basic types and utils in yacl.
- crypto: a crypto library desigend for secure computation and so on.
- base: basic/standarized crypto, i.e. AES, DRBG, hashing.
- primitives: crypto primitives, i.e. OT, DPF.
- tools: theoretical crypto tools, i.e. Random Oracle (RO), PRG.
- utils: easy-to-use crypto utilities.
- io: a simple streaming-based io library.
- link: a simple rpc-based MPI framework, providing the SPMD parallel programming capability.
Install gcc>=10.3, cmake, ninja, nasm
# Install Xcode
https://apps.apple.com/us/app/xcode/id497799835?mt=12
# Select Xcode toolchain version
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
# Install homebrew
https://brew.sh/
# Install dependencies
brew install bazel cmake ninja nasm automake libtool
# build as debug
bazel build //... -c dbg
# build as release
bazel build //... -c opt
# test
bazel test //...
# [optional] build & test with ASAN
bazel build //... -c dbg --config=asan
bazel test //... --config=asan -c dbg
--define gperf=on
enable gperf--define tracelog=on
enable link trace log.