Skip to content

YACL (Yet Another Common crypto library) is a C++ library that contains cryptography, network and io modules which other SecretFlow code depends on.

License

Notifications You must be signed in to change notification settings

secretflow/yacl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e9883e9 · Sep 13, 2024
Jul 21, 2024
Aug 16, 2024
Sep 13, 2024
Aug 16, 2024
Sep 13, 2024
Aug 28, 2024
Jan 25, 2024
Nov 26, 2022
Jul 2, 2022
Jul 2, 2022
Jul 4, 2024
Sep 15, 2023
Aug 16, 2024
Sep 20, 2022
May 15, 2024
Aug 28, 2024
Jul 2, 2022
Jul 2, 2022
Oct 21, 2023
Aug 16, 2024
Jan 11, 2024
Nov 26, 2022
Jan 23, 2024
Jan 11, 2024

Repository files navigation

YACL (Yet Another Common crypto Library)

CircleCI OpenSSF Scorecard

Yacl is a C++ library that contains common cryptgraphy, network and io modules which other SecretFlow code depends on. 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.

Supported platforms:

Linux x86_64 Linux aarch64 macOS x86_64 macOS Apple Silicon Windows x86_64 Windows WSL2 x86_64
yes yes yes1 yes no yes1
  1. Yacl has not been thoroughly tested on these platforms.

Repo Layout

  • base: some basic types and utils in yacl.
  • crypto: crypto algorithms without link.
  • kernel: crypto kernel that includes link with 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.

Prerequisites

Getting Started

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.

License

See LICENSE and NOTICE.md