Add paper link
Private Set Membership (PSM) is a cryptographic protocol that allows clients to privately query whether the client's identifier is a member of a set of identifiers held by a server in a privacy-preserving manner.
At a high level, PSM provides the following privacy guarantees:
The Private Set Membership library requires the following dependencies:
Abseil for C++ common libraries.
Bazel for building the library.
BoringSSL for underlying cryptographic operations.
GFlag for flags. Needed to use glog.
GLog for logging.
Google Test for unit testing the library.
Protocol Buffers for data serialization.
Shell for fully homomorphic encryption.
Tink for cryptographic PRNGs.
In order to run this library, you need to install Bazel, if you don't have it already. [Follow the instructions for your platform on the Bazel website. Make sure you are installing version 4.2.1 or above.] (https://docs.bazel.build/versions/master/install.html)
You also need to install Git, if you don't have it already. Follow the instructions for your platform on the Git website.
Once you've installed Bazel and Git, open a Terminal and clone the repository into a local folder.
Navigate into the private-membership folder you just created, and build the library and dependencies using Bazel. Note, the library must be built using C++17.
cd private-membership bazel build ... --cxxopt='-std=c++17'
You may also run all tests (recursively) using the following command:
bazel test ... --cxxopt='-std=c++17'
This is not an officially supported Google product. The software is provided as-is without any guarantees or warranties, express or implied.